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.pyDas 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: 0completed_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
- 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.
- 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.
- Steigen Sie zur Kampagnen-Engine und dem Arbeitsbereich für reproduzierbare Kampagnen auf, für mit Checkpoints versehene, wiederaufnehmbare Läufe.
- Erkunden Sie, wie dieselben Metadaten den Benchmark-Katalog, die Ergebnisvorschau und den Solver-Empfehler antreiben.