Inicio rápido
Ejecuta tu primera campaña de planificación con dos comandos. Ambos son de copiar y pegar, todo el recorrido termina en segundos sobre un clon nuevo, y cada resultado es determinista: volver a ejecutarlo imprime los mismos números.
⚡ Dos comandos hasta una primera ejecución
# 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.pyEl script serializa su configuración en
experiments/configs/smoke-pilot.json —el mismo JSON que consume la CLI
dispatchatlas-lab --config—, de modo que el script y los ejemplos de la CLI
de la guía de resolución de problemas ejecutan la
misma receta.
Deberías ver un resumen breve 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 con failed_attempts: 0 significa que funcionó: dos
solvers se ejecutaron cada uno contra dos instancias de benchmark, y cada
ejecución produjo una planificación válida. Cualquier otro resultado apunta a
una instalación incompleta; consulta
resolución de problemas.
🧩 Términos para el primer uso
El resumen anterior usa un puñado de términos del dominio. Todo el kit se construye sobre estos:
- Instancia de benchmark — un problema de planificación generado: un conjunto de tareas, los recursos que las ejecutan y las restricciones entre ellas.
- Solver — un algoritmo que asigna tareas a recursos a lo largo del tiempo y devuelve una planificación.
- Objetivo — la magnitud que un solver optimiza. La campaña de humo usa makespan: el momento en que termina la última tarea (menor es mejor).
- Campaña — un lote que ejecuta los solvers elegidos sobre los benchmarks elegidos durante un número fijo de repeticiones, registrando cada ejecución como evidencia.
- Semilla / determinista — un número fijo que hace reproducible cada elección aleatoria, de modo que las mismas entradas siempre producen la misma planificación.
- Factible — una planificación donde toda tarea está colocada, ningún recurso está sobrecargado y toda dependencia se respeta.
🛠️ Construye una solución tú mismo
Para construir una única solución en código en lugar de ejecutar la campaña
incluida, guarda esto como quickstart.py en cualquier lugar dentro del
checkout y ejecútalo con 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)Imprime True: el solver seleccionado produjo una planificación factible. Las
tres partes móviles reflejan la campaña anterior: smoke_benchmark_provider
materializa el catálogo de benchmarks determinista a partir de una semilla,
registry.select filtra los solvers a los que soportan el objetivo makespan
en el nivel público de evidencia core, y solver.solve se ejecuta bajo
criterios de parada explícitos con una semilla derivada de coordenadas
estables, de modo que la ejecución se repite de forma idéntica.
🧭 Adónde ir a continuación
- Haz el recorrido guiado: un paseo narrado por todo el arco generar → resolver → analizar → explorar que se apoya en la campaña de humo que acabas de ejecutar.
- Trabaja con los tutoriales: primero compara dos solvers en una instancia de benchmark, y luego ejecuta una campaña pequeña y lee sus resultados.
- Avanza al motor de campañas y al espacio de trabajo de campañas reproducibles para ejecuciones con puntos de control y reanudables.
- Explora cómo los mismos metadatos impulsan el catálogo de benchmarks, la vista previa de resultados y el recomendador de solvers.