Pular para o conteúdo
DispatchAtlas
Buscar

Início rápido

Execute sua primeira campanha de escalonamento em dois comandos. Ambos são de copiar e colar, todo o percurso termina em segundos num clone novo, e cada resultado é determinístico — executar de novo imprime os mesmos números.

Dois comandos até uma primeira execução

# 1 — install the workspace (one time)
uv sync --all-extras --group dev
 
# 2 — build and run the bundled smoke campaign
uv run python experiments/scripts/run_smoke_pilot.py

O script serializa sua configuração em experiments/configs/smoke-pilot.json — o mesmo JSON que a CLI dispatchatlas-lab --config consome —, de modo que o script e os exemplos de CLI no guia de solução de problemas executam a receita idêntica.

Você deve ver um resumo curto como este:

campaign_id: smoke-pilot
config: ...\experiments\configs\smoke-pilot.json
planned_runs: 4
estimated_wall_time_seconds: 2.0
completed_runs: 4
failed_attempts: 0

completed_runs: 4 com failed_attempts: 0 significa que funcionou: dois solvers rodaram cada um contra duas instâncias de benchmark, e cada execução produziu um escalonamento válido. Qualquer outro resultado aponta para uma instalação incompleta — veja solução de problemas.

🧩 Termos para o primeiro uso

O resumo acima usa um punhado de termos do domínio. Todo o kit é construído sobre estes:

  • Instância de benchmark — um problema de escalonamento gerado: um conjunto de tarefas, os recursos que as executam e as restrições entre elas.
  • Solver — um algoritmo que atribui tarefas a recursos ao longo do tempo e retorna um escalonamento.
  • Objetivo — a grandeza que um solver otimiza. A campanha de fumaça usa makespan: o instante em que a última tarefa termina (menor é melhor).
  • Campanha — um lote que executa os solvers escolhidos sobre os benchmarks escolhidos por um número fixo de repetições, registrando cada execução como evidência.
  • Semente / determinístico — um número fixo que torna reproduzível cada escolha aleatória, de modo que as mesmas entradas sempre produzem o mesmo escalonamento.
  • Factível — um escalonamento em que toda tarefa está alocada, nenhum recurso está sobrecarregado e toda dependência é respeitada.

🛠️ Construa uma solução você mesmo

Para construir uma única solução em código em vez de rodar a campanha incluída, salve isto como quickstart.py em qualquer lugar dentro do checkout e execute com uv run python quickstart.py:

from dispatchatlas.bench import smoke_benchmark_provider
from dispatchatlas.core import DisclosureLabel, TerminationPolicy, derive_seed
from dispatchatlas.solve import default_solver_registry
 
provider = smoke_benchmark_provider(root_seed=20260527)
problem = provider.get_problem(provider.list_problem_ids()[0])
 
registry = default_solver_registry()
solvers = registry.select(
    objective="makespan",
    disclosure_label=DisclosureLabel.CORE,
)
 
solver = registry.create(solvers[0].solver_id)
run = solver.solve(
    problem=problem,
    stop=TerminationPolicy(max_iterations=solvers[0].default_stop.max_iterations),
    seed=derive_seed(20260527, "docs.quickstart", 0),
)
 
print(run.result.feasible)

Ele imprime True: o solver selecionado produziu um escalonamento factível. As três partes móveis espelham a campanha acima — smoke_benchmark_provider materializa o catálogo de benchmarks determinístico a partir de uma semente, registry.select filtra os solvers para aqueles que suportam o objetivo makespan no nível público de evidência core, e solver.solve roda sob critérios de parada explícitos com uma semente derivada de coordenadas estáveis, de modo que a execução se repete de forma idêntica.

🧭 Para onde ir em seguida

  1. Faça o Tour guiado — um passeio narrado por todo o arco gerar → resolver → analisar → explorar, partindo da campanha de fumaça que você acabou de executar.
  2. Trabalhe com os tutoriais — primeiro compare dois solvers em uma instância de benchmark, depois execute uma campanha pequena e leia seus resultados.
  3. Avance para o motor de campanhas e o espaço de trabalho de campanhas reprodutíveis para execuções com pontos de verificação e retomáveis.
  4. Explore como os mesmos metadados impulsionam o catálogo de benchmarks, a prévia de resultados e o recomendador de solvers.