Tour guiado
O DispatchAtlas transforma um problema de planejamento em evidência pública e reprodutível em quatro etapas: gerar uma instância de benchmark, resolvê-la, analisar as execuções e explorar tudo pelo catálogo. Este tour percorre todo o arco em pequena escala com um trecho por etapa; os tutoriais transformam cada etapa em um script executável completo.
Se ainda não o fez, execute primeiro o início rápido: sua campanha de fumaça produz os registros de execução que a etapa de análise abaixo lê.
1️⃣ Gerar — uma instância de benchmark
Uma instância de benchmark é um problema de planejamento: tarefas, os recursos que as executam, objetivos e restrições. O catálogo de fumaça incluído materializa instâncias pequenas e determinísticas a partir de uma única semente, de modo que a mesma semente sempre produz o mesmo problema.
from dispatchatlas.bench import smoke_benchmark_provider
provider = smoke_benchmark_provider(root_seed=20260527)
problem = provider.get_problem(provider.list_problem_ids()[0])
print(problem.spec.id, len(problem.spec.tasks), "tasks")O atlas completo abrange famílias clássicas de planejamento e um continuum de famílias Edge–Fog–Cloud, cada uma com metadados respaldados por citações e uma pontuação de distância de distribuição. → Modelo de benchmark
2️⃣ Resolver — execute um solver sobre ela
Um solver atribui tarefas a recursos ao longo do tempo e retorna um planejamento. O registro seleciona os solvers que suportam o seu objetivo e são visíveis em um dado nível de evidência e, em seguida, constrói um para executar.
from dispatchatlas.core import DisclosureLabel, TerminationPolicy, derive_seed
from dispatchatlas.solve import default_solver_registry
registry = default_solver_registry()
candidate = registry.select(objective="makespan", disclosure_label=DisclosureLabel.CORE)[0]
solver = registry.create(candidate.solver_id)
run = solver.solve(
problem=problem,
stop=TerminationPolicy(max_iterations=candidate.default_stop.max_iterations),
seed=derive_seed(20260527, "tour", 0),
)
print(run.result.feasible)O registro contém linhas de base construtivas, adaptadores exatos, metaheurísticas, um conjunto diversificado de concorrentes e uma família de solvers nativa — cada entrada com um contrato de citação que falha de forma fechada. → Sistema de solvers · Algoritmos
3️⃣ Analisar — transforme execuções em evidência
Resolver muitos problemas com muitos solvers produz uma campanha de registros de execução. A camada de análise carrega uma campanha concluída e calcula resumos descritivos, testes não paramétricos nomeados acompanhados de tamanhos de efeito, significância corrigida e classificações de solvers — nunca um valor p isolado.
from pathlib import Path
from dispatchatlas.analytica import load_campaign_dataset, summarize_dataset
campaign_dir = Path("experiments") / "results" / "smoke-pilot"
dataset = load_campaign_dataset(campaign_dir)
summary = summarize_dataset(dataset)
print([s.solver_id for s in summary.solver_summaries])O mesmo resumo impulsiona figuras determinísticas em SVG e PGFPlots e pacotes de evidência filtrados por divulgação. → Motor de campanhas · Exportações de análise
4️⃣ Catálogo — explore o atlas
Tudo o que o tour produziu pode ser explorado sem escrever código. O portal interativo permite buscar e filtrar o atlas de benchmarks por seus metadados, inspecionar as capacidades declaradas de cada solver, pré-visualizar resultados e baixar os conjuntos de dados filtrados por divulgação por trás de cada página.
- Catálogo de benchmarks — filtre e baixe instâncias de benchmark por seus metadados.
- Recomendador de solvers — uma classificação explicável e baseada apenas em metadados de quais solvers se ajustam a um problema.
- Resultados e inspeção da plataforma — pré-visualize a evidência e a própria superfície de capacidades da plataforma.
🧭 Para onde ir em seguida
- Trabalhe os tutoriais para a versão executável completa de cada etapa.
- Configure execuções com pontos de verificação e retomáveis no espaço de trabalho de campanhas reprodutíveis.
- Leia os contratos do domínio para os tipos que cada pacote compartilha.