Saltar al contenido
DispatchAtlas
Buscar

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.py

El 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: 0

completed_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

  1. 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.
  2. 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.
  3. Avanza al motor de campañas y al espacio de trabajo de campañas reproducibles para ejecuciones con puntos de control y reanudables.
  4. Explora cómo los mismos metadatos impulsan el catálogo de benchmarks, la vista previa de resultados y el recomendador de solvers.