Aller au contenu
DispatchAtlas
Rechercher

Démarrage rapide

Lancez votre première campagne d'ordonnancement en deux commandes. Les deux se copient-collent, le parcours entier s'achève en quelques secondes sur un clone neuf, et chaque résultat est déterministe — relancer affiche les mêmes chiffres.

Deux commandes jusqu'à une première exécution

# 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

Le script sérialise sa configuration dans experiments/configs/smoke-pilot.json — le même JSON que consomme l'outil dispatchatlas-lab --config — de sorte que le script et les exemples d'outil en ligne de commande du guide de dépannage exécutent la recette identique.

Vous devriez voir un résumé bref comme celui-ci :

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 avec failed_attempts: 0 signifie que cela a fonctionné : deux solveurs ont chacun été exécutés sur deux instances de benchmark, et chaque exécution a produit un ordonnancement valide. Tout autre résultat indique une installation incomplète — voir dépannage.

🧩 Termes de première utilisation

Le résumé ci-dessus emploie une poignée de termes du domaine. Toute la boîte à outils repose sur ceux-ci :

  • Instance de benchmark — un problème d'ordonnancement généré : un ensemble de tâches, les ressources qui les exécutent et les contraintes entre elles.
  • Solveur — un algorithme qui affecte les tâches aux ressources au fil du temps et renvoie un ordonnancement.
  • Objectif — la grandeur qu'un solveur optimise. La campagne de fumée utilise le makespan : l'instant où la dernière tâche se termine (plus c'est bas, mieux c'est).
  • Campagne — un lot qui exécute les solveurs choisis sur les benchmarks choisis pour un nombre fixé de répétitions, en enregistrant chaque exécution comme preuve.
  • Graine / déterministe — un nombre fixe qui rend reproductible chaque choix aléatoire, de sorte que les mêmes entrées produisent toujours le même ordonnancement.
  • Réalisable — un ordonnancement où chaque tâche est placée, aucune ressource n'est sur-engagée et chaque dépendance est respectée.

🛠️ Construire une résolution vous-même

Pour construire une résolution unique dans le code plutôt que de lancer la campagne fournie, enregistrez ceci sous quickstart.py n'importe où dans le dépôt cloné et exécutez-le avec 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)

Il affiche True : le solveur sélectionné a produit un ordonnancement réalisable. Les trois pièces mobiles reflètent la campagne ci-dessus — smoke_benchmark_provider matérialise le catalogue de benchmarks déterministe à partir d'une graine, registry.select filtre les solveurs pour ne garder que ceux qui prennent en charge l'objectif makespan au niveau de preuve public core, et solver.solve s'exécute sous des critères d'arrêt explicites avec une graine dérivée de coordonnées stables, de sorte que l'exécution se rejoue à l'identique.

🧭 Où aller ensuite

  1. Suivez la visite guidée — un parcours commenté de tout l'enchaînement générer → résoudre → analyser → explorer, qui s'appuie sur la campagne de fumée que vous venez de lancer.
  2. Parcourez les tutoriels — comparez d'abord deux solveurs sur une instance de benchmark, puis lancez une petite campagne et lisez ses résultats.
  3. Passez au moteur de campagnes et à l'espace de travail des campagnes reproductibles pour des exécutions avec points de contrôle et reprenables.
  4. Découvrez comment les mêmes métadonnées alimentent le catalogue de benchmarks, l'aperçu des résultats et le recommandateur de solveurs.