Lewati ke konten
DispatchAtlas
Cari

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

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

completed_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

  1. Ikuti tur terpandu — penelusuran bernarasi atas seluruh alur hasilkan → selesaikan → analisis → jelajahi yang dibangun di atas kampanye smoke yang baru saja Anda jalankan.
  2. Kerjakan tutorial — pertama bandingkan dua solver pada satu instance benchmark, lalu jalankan kampanye kecil dan baca hasilnya.
  3. Naik tingkat ke mesin kampanye dan ruang kerja kampanye yang dapat direproduksi untuk proses yang ber-checkpoint dan dapat dilanjutkan.
  4. Jelajahi bagaimana metadata yang sama menggerakkan katalog benchmark, pratinjau hasil, dan perekomendasi solver.