Zum Inhalt springen
DispatchAtlas
Suchen

Schnellstart

Führen Sie Ihre erste Planungskampagne in zwei Befehlen aus. Beide sind zum Kopieren und Einfügen, der gesamte Pfad ist in Sekunden auf einem frischen Klon fertig, und jedes Ergebnis ist deterministisch — bei erneuter Ausführung werden dieselben Zahlen ausgegeben.

Zwei Befehle bis zum ersten Lauf

# 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

Das Skript serialisiert seine Konfiguration nach experiments/configs/smoke-pilot.json — dasselbe JSON, das die dispatchatlas-lab --config-CLI einliest —, sodass das Skript und die CLI-Beispiele in der Fehlerbehebung dasselbe Rezept ausführen.

Sie sollten eine kurze Zusammenfassung wie diese sehen:

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 mit failed_attempts: 0 bedeutet, dass es funktioniert hat: Zwei Solver liefen jeweils gegen zwei Benchmark-Instanzen, und jeder Lauf erzeugte einen gültigen Plan. Jedes andere Ergebnis deutet auf eine unvollständige Installation hin — siehe Fehlerbehebung.

🧩 Begriffe für den ersten Gebrauch

Die obige Zusammenfassung verwendet eine Handvoll Domänenbegriffe. Das gesamte Toolkit baut auf diesen auf:

  • Benchmark-Instanz — ein generiertes Planungsproblem: eine Menge von Aufgaben, die Ressourcen, die sie ausführen, und die Einschränkungen zwischen ihnen.
  • Solver — ein Algorithmus, der Aufgaben über die Zeit Ressourcen zuweist und einen Plan zurückgibt.
  • Objective (Zielgröße) — die Größe, die ein Solver optimiert. Die Smoke-Kampagne verwendet makespan: den Zeitpunkt, an dem die letzte Aufgabe endet (niedriger ist besser).
  • Kampagne — ein Stapel, der ausgewählte Solver über ausgewählte Benchmarks für eine festgelegte Anzahl von Wiederholungen laufen lässt und jeden Lauf als Beleg aufzeichnet.
  • Seed / deterministisch — eine feste Zahl, die jede zufällige Auswahl reproduzierbar macht, sodass dieselben Eingaben immer denselben Plan ergeben.
  • Feasible (zulässig) — ein Plan, in dem jede Aufgabe platziert ist, keine Ressource überlastet ist und jede Abhängigkeit eingehalten wird.

🛠️ Bauen Sie selbst eine Lösung

Um einen einzelnen Lösungslauf im Code zu konstruieren, anstatt die gebündelte Kampagne auszuführen, speichern Sie dies als quickstart.py irgendwo innerhalb des Checkouts und führen Sie es mit uv run python quickstart.py aus:

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)

Es gibt True aus: Der ausgewählte Solver hat einen zulässigen Plan erzeugt. Die drei beweglichen Teile spiegeln die obige Kampagne wider — smoke_benchmark_provider materialisiert den deterministischen Benchmark-Katalog aus einem Seed, registry.select filtert Solver auf jene, die das makespan-Objective auf der öffentlichen core-Beleg-Tier unterstützen, und solver.solve läuft unter expliziten Stopp-Kriterien mit einem Seed, der aus stabilen Koordinaten abgeleitet ist, sodass der Lauf identisch wiederholt wird.

🧭 Wohin als Nächstes

  1. Machen Sie die Geführte Tour — ein erzählter Durchgang durch den gesamten Bogen Generieren → Lösen → Analysieren → Erkunden, der auf der soeben ausgeführten Smoke-Kampagne aufbaut.
  2. Arbeiten Sie die Tutorials durch — vergleichen Sie zuerst zwei Solver an einer Benchmark-Instanz, führen Sie dann eine kleine Kampagne aus und lesen Sie ihre Ergebnisse.
  3. Steigen Sie zur Kampagnen-Engine und dem Arbeitsbereich für reproduzierbare Kampagnen auf, für mit Checkpoints versehene, wiederaufnehmbare Läufe.
  4. Erkunden Sie, wie dieselben Metadaten den Benchmark-Katalog, die Ergebnisvorschau und den Solver-Empfehler antreiben.