Mulai Cepat
Jalankan kampanye penjadwalan pertama Anda dalam dua perintah. Keduanya bisa disalin-tempel, seluruh jalurnya selesai dalam hitungan detik pada kloning baru, dan setiap hasilnya deterministik — menjalankan ulang akan mencetak angka yang sama.
⚡ Dua Perintah Menuju Proses Pertama
# 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.pySkrip ini menserialkan konfigurasinya ke
experiments/configs/smoke-pilot.json — JSON yang sama yang dikonsumsi CLI
dispatchatlas-lab --config — sehingga skrip dan contoh CLI di
panduan pemecahan masalah menjalankan resep yang
identik.
Anda seharusnya melihat ringkasan singkat seperti ini:
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 dengan failed_attempts: 0 berarti berhasil: dua solver
masing-masing dijalankan terhadap dua instance benchmark, dan setiap proses
menghasilkan jadwal yang valid. Hasil lain mengindikasikan pemasangan yang tidak
lengkap — lihat pemecahan masalah.
🧩 Istilah Penggunaan Pertama
Ringkasan di atas menggunakan sejumlah istilah domain. Seluruh toolkit dibangun di atas istilah-istilah ini:
- Instance benchmark — satu masalah penjadwalan yang dihasilkan: sekumpulan tugas, sumber daya yang menjalankannya, dan kendala di antara keduanya.
- Solver — algoritma yang menugaskan tugas ke sumber daya sepanjang waktu dan mengembalikan sebuah jadwal.
- Objective — kuantitas yang dioptimalkan solver. Kampanye smoke menggunakan makespan: saat tugas terakhir selesai (lebih rendah lebih baik).
- Campaign — sebuah batch yang menjalankan solver pilihan terhadap benchmark pilihan untuk sejumlah pengulangan tertentu, mencatat setiap proses sebagai bukti.
- Seed / deterministik — angka tetap yang membuat setiap pilihan acak dapat direproduksi, sehingga input yang sama selalu menghasilkan jadwal yang sama.
- Feasible — jadwal di mana setiap tugas ditempatkan, tidak ada sumber daya yang kelebihan beban, dan setiap dependensi dihormati.
🛠️ Bangun Sebuah Solve Sendiri
Untuk menyusun satu solve dalam kode alih-alih menjalankan kampanye yang sudah
dibundel, simpan ini sebagai quickstart.py di mana saja di dalam checkout dan
jalankan dengan 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)Ia mencetak True: solver yang dipilih menghasilkan jadwal yang layak. Tiga
bagian yang bergerak mencerminkan kampanye di atas — smoke_benchmark_provider
mewujudkan katalog benchmark deterministik dari satu seed, registry.select
menyaring solver menjadi yang mendukung objektif makespan pada tingkat bukti
publik core, dan solver.solve berjalan di bawah kriteria berhenti yang
eksplisit dengan seed yang diturunkan dari koordinat stabil sehingga proses
diputar ulang secara identik.
🧭 Ke Mana Selanjutnya
- Ikuti tur terpandu — penelusuran bernarasi atas seluruh alur hasilkan → selesaikan → analisis → jelajahi yang dibangun di atas kampanye smoke yang baru saja Anda jalankan.
- Kerjakan tutorial — pertama bandingkan dua solver pada satu instance benchmark, lalu jalankan kampanye kecil dan baca hasilnya.
- Naik tingkat ke mesin kampanye dan ruang kerja kampanye yang dapat direproduksi untuk proses yang ber-checkpoint dan dapat dilanjutkan.
- Jelajahi bagaimana metadata yang sama menggerakkan katalog benchmark, pratinjau hasil, dan perekomendasi solver.