본문으로 건너뛰기
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으로 직렬화합니다 — dispatchatlas-lab --config CLI가 사용하는 것과 동일한 JSON이므로 — 따라서 이 스크립트와 문제 해결 가이드의 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: 4failed_attempts: 0은 작동했음을 의미합니다: 두 개의 솔버가 각각 두 개의 벤치마크 인스턴스에 대해 실행되었고, 모든 실행이 유효한 스케줄을 생성했습니다. 다른 결과는 불완전한 설치를 가리킵니다 — 문제 해결을 참조하세요.

🧩 처음 사용하는 용어

위의 요약은 몇 가지 도메인 용어를 사용합니다. 전체 툴킷은 이들 위에 구축되어 있습니다:

  • 벤치마크 인스턴스 — 생성된 하나의 스케줄링 문제: 작업의 집합, 그것들을 실행하는 리소스, 그리고 그것들 사이의 제약 조건.
  • 솔버 — 시간에 걸쳐 작업을 리소스에 할당하고 스케줄을 반환하는 알고리즘.
  • Objective(목적) — 솔버가 최적화하는 양. 스모크 캠페인은 makespan을 사용합니다: 마지막 작업이 끝나는 순간(낮을수록 좋음).
  • 캠페인 — 선택된 솔버를 선택된 벤치마크에 대해 정해진 횟수만큼 실행하며, 모든 실행을 증거로 기록하는 배치.
  • 시드 / 결정론적 — 모든 무작위 선택을 재현 가능하게 만드는 고정된 숫자로, 동일한 입력이 항상 동일한 스케줄을 산출하도록 합니다.
  • Feasible(실행 가능) — 모든 작업이 배치되고, 어떤 리소스도 과도하게 할당되지 않으며, 모든 의존성이 존중되는 스케줄.

🛠️ 직접 솔브를 구성하기

번들된 캠페인을 실행하는 대신 코드로 단일 솔브를 구성하려면, 체크아웃 내부의 아무 곳에나 이것을 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. 동일한 메타데이터가 어떻게 벤치마크 카탈로그, 결과 미리보기, 솔버 추천기를 구동하는지 살펴봅니다.