Recorrido guiado
DispatchAtlas convierte un problema de planificación en evidencia pública y reproducible en cuatro etapas: generar una instancia de benchmark, resolverla, analizar las ejecuciones y explorarlo todo a través del catálogo. Este recorrido cubre todo el arco a pequeña escala con un fragmento por etapa; los tutoriales convierten cada etapa en un script ejecutable completo.
Si aún no lo has hecho, ejecuta primero el inicio rápido: su campaña de humo produce los registros de ejecución que lee la etapa de análisis más abajo.
1️⃣ Generar — una instancia de benchmark
Una instancia de benchmark es un problema de planificación: tareas, los recursos que las ejecutan, objetivos y restricciones. El catálogo de humo incluido materializa instancias pequeñas y deterministas a partir de una sola semilla, de modo que la misma semilla siempre produce el mismo 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")El atlas completo abarca familias clásicas de planificación y un continuo de familias Edge–Fog–Cloud, cada una con metadatos respaldados por citas y una puntuación de distancia de distribución. → Modelo de benchmark
2️⃣ Resolver — ejecuta un solver sobre ella
Un solver asigna tareas a recursos a lo largo del tiempo y devuelve una planificación. El registro selecciona los solvers que soportan tu objetivo y son visibles en un nivel de evidencia dado, y luego construye uno para ejecutarlo.
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)El registro contiene líneas base constructivas, adaptadores exactos, metaheurísticas, un conjunto diversificado de competidores y una familia de solvers nativa — cada entrada con un contrato de citas que falla en cerrado. → Sistema de solvers · Algoritmos
3️⃣ Analizar — convierte ejecuciones en evidencia
Resolver muchos problemas con muchos solvers produce una campaña de registros de ejecución. La capa de análisis carga una campaña completada y calcula resúmenes descriptivos, pruebas no paramétricas con nombre acompañadas de tamaños del efecto, significancia corregida y clasificaciones de solvers — nunca un valor p a secas.
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])El mismo resumen impulsa figuras deterministas en SVG y PGFPlots y paquetes de evidencia filtrados por divulgación. → Motor de campañas · Exportaciones de análisis
4️⃣ Catálogo — explora el atlas
Todo lo que produjo el recorrido se puede explorar sin escribir código. El portal interactivo te permite buscar y filtrar el atlas de benchmarks por sus metadatos, inspeccionar las capacidades declaradas de cada solver, previsualizar resultados y descargar los conjuntos de datos filtrados por divulgación detrás de cada página.
- Catálogo de benchmarks — filtra y descarga instancias de benchmark por sus metadatos.
- Recomendador de solvers — una clasificación explicable y basada solo en metadatos de qué solvers encajan en un problema.
- Resultados e inspección de la plataforma — previsualiza la evidencia y la propia superficie de capacidades de la plataforma.
🧭 Adónde ir a continuación
- Trabaja los tutoriales para la versión ejecutable completa de cada etapa.
- Configura ejecuciones con puntos de control y reanudables en el espacio de trabajo de campañas reproducibles.
- Lee los contratos del dominio para los tipos que comparte cada paquete.