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.pyO 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: 0completed_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
- 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.
- Trabalhe com os tutoriais — primeiro compare dois solvers em uma instância de benchmark, depois execute uma campanha pequena e leia seus resultados.
- 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.
- Explore como os mesmos metadados impulsionam o catálogo de benchmarks, a prévia de resultados e o recomendador de solvers.