Pular para o conteúdo
DispatchAtlas
Buscar

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.

🧭 Para onde ir em seguida

  1. Trabalhe os tutoriais para a versão executável completa de cada etapa.
  2. Configure execuções com pontos de verificação e retomáveis no espaço de trabalho de campanhas reprodutíveis.
  3. Leia os contratos do domínio para os tipos que cada pacote compartilha.