सामग्री पर जाएँ
DispatchAtlas
खोजें

त्वरित आरंभ

अपना पहला शेड्यूलिंग अभियान दो कमांड में चलाएं। दोनों कॉपी-पेस्ट करने योग्य हैं, पूरा पथ एक नए क्लोन पर सेकंडों में पूरा हो जाता है, और हर परिणाम नियतात्मक है — फिर से चलाने पर वही संख्याएं प्रिंट होती हैं।

पहले रन तक दो कमांड

# 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

यह स्क्रिप्ट अपने कॉन्फ़िगरेशन को experiments/configs/smoke-pilot.json में क्रमबद्ध करती है — वही JSON जिसे dispatchatlas-lab --config CLI उपभोग करता है — ताकि स्क्रिप्ट और समस्या निवारण मार्गदर्शिका के CLI उदाहरण समान विधि चलाएं।

आपको इस तरह का एक संक्षिप्त सारांश दिखना चाहिए:

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 के साथ failed_attempts: 0 का अर्थ है कि यह काम कर गया: दो सॉल्वर प्रत्येक दो बेंचमार्क इंस्टेंस के विरुद्ध चले, और हर रन ने एक वैध शेड्यूल तैयार किया। कोई अन्य परिणाम एक अधूरी इंस्टॉल की ओर इशारा करता है — देखें समस्या निवारण

🧩 पहली बार उपयोग के शब्द

ऊपर दिया गया सारांश कुछ डोमेन शब्दों का उपयोग करता है। पूरी टूलकिट इन्हीं पर बनी है:

  • बेंचमार्क इंस्टेंस — एक उत्पन्न शेड्यूलिंग समस्या: कार्यों का एक सेट, उन्हें चलाने वाले संसाधन, और उनके बीच की बाधाएं।
  • सॉल्वर — एक एल्गोरिदम जो समय के साथ कार्यों को संसाधनों को सौंपता है और एक शेड्यूल लौटाता है।
  • ऑब्जेक्टिव — वह मात्रा जिसे सॉल्वर अनुकूलित करता है। स्मोक अभियान makespan का उपयोग करता है: वह क्षण जब अंतिम कार्य समाप्त होता है (कम बेहतर है)।
  • अभियान (campaign) — एक बैच जो चुने हुए सॉल्वर को चुने हुए बेंचमार्क के पार एक निर्धारित संख्या में दोहरावों के लिए चलाता है, हर रन को साक्ष्य के रूप में दर्ज करता है।
  • सीड / नियतात्मक (seed / deterministic) — एक निश्चित संख्या जो हर यादृच्छिक चयन को पुनरुत्पादनीय बनाती है, ताकि वही इनपुट हमेशा वही शेड्यूल दें।
  • व्यवहार्य (feasible) — एक शेड्यूल जहां हर कार्य रखा गया है, कोई संसाधन अति-प्रतिबद्ध नहीं है, और हर निर्भरता का सम्मान किया गया है।

🛠️ स्वयं एक सॉल्व बनाएं

बंडल किए गए अभियान को चलाने के बजाय कोड में एकल सॉल्व बनाने के लिए, इसे checkout के अंदर कहीं भी quickstart.py के रूप में सहेजें और इसे 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)

यह True प्रिंट करता है: चयनित सॉल्वर ने एक व्यवहार्य शेड्यूल तैयार किया। तीन गतिशील भाग ऊपर के अभियान को प्रतिबिंबित करते हैं — smoke_benchmark_provider एक सीड से नियतात्मक बेंचमार्क कैटलॉग को साकार करता है, registry.select सॉल्वर को उन तक फ़िल्टर करता है जो सार्वजनिक core साक्ष्य स्तर पर makespan ऑब्जेक्टिव का समर्थन करते हैं, और solver.solve स्थिर निर्देशांकों से व्युत्पन्न एक सीड के साथ स्पष्ट स्टॉप मानदंड के तहत चलता है ताकि रन समान रूप से फिर से चले।

🧭 आगे कहां जाएं

  1. निर्देशित दौरा लें — पूरे उत्पन्न करें → हल करें → विश्लेषण करें → अन्वेषण करें चाप का एक वर्णित भ्रमण, जो उस स्मोक अभियान पर आधारित है जिसे आपने अभी चलाया।
  2. ट्यूटोरियल के माध्यम से काम करें — पहले एक बेंचमार्क इंस्टेंस पर दो सॉल्वर की तुलना करें, फिर एक छोटा अभियान चलाएं और उसके परिणाम पढ़ें।
  3. चेकपॉइंट किए गए, फिर से शुरू करने योग्य रन के लिए अभियान इंजन और पुनरुत्पादनीय अभियान वर्कस्पेस तक उन्नत करें।
  4. जानें कि वही मेटाडेटा कैसे बेंचमार्क कैटलॉग, परिणाम पूर्वावलोकन, और सॉल्वर अनुशंसक को चलाता है।