本文へスキップ
DispatchAtlas
検索

アーキテクチャ概要

DispatchAtlas は、dispatchatlas Python 名前空間を共有する 5 つの焦点を絞った 配布パッケージと、ルート集約パッケージから成るワークスペースです。アーキテクチャは ドメイン契約を中心に保ち、ベンチマーク生成、求解、キャンペーン実行、分析、ドキュメント、 リリース自動化を外側へ移します。すべての依存は内側、dispatchatlas.core に向かって 指します——ピアパッケージ間で横方向に向かうことも、ツールへ外向きに向かうことも決して ありません。

🧭 依存方向

                 dispatchatlas.lab
                /        |        \
               v         |         v
  dispatchatlas.bench    |    dispatchatlas.solve
               \         |         /
                v        v        v
                dispatchatlas.core
                         ^
                         |
               dispatchatlas.analytica
       (安定したキャンペーンマニフェストもデータとして読む)

各矢印は「インポートする」を意味します。すべての矢印は dispatchatlas.core を指し、 外向きや横向きに指す矢印はありません。dispatchatlas.analytica は意図的に dispatchatlas.lab への矢印を持ちません: それは完了したキャンペーンがディスク上に 残す JSON マニフェストを消費し、キャンペーンランタイムそのものは消費しません。

各パッケージのマニフェスト(packages/*/pyproject.toml)と、各パッケージの src/ ツリー内のインポート文から導出。2026-06-10 に検証。

レイヤーパッケージ責務インポート可インポート不可
ドメインdispatchatlas.coreスケジューリング契約、検証、来歴、シード、シリアライズ、プロトコル。標準ライブラリと承認された軽量依存のみ。他のあらゆる DispatchAtlas パッケージ。
ベンチマークdispatchatlas.benchベンチマーク分類、ジェネレーター、カタログ、具体化、引用エビデンス。dispatchatlas.coreソルバー・キャンペーン・分析・サイトランタイムのコード。
ソルバーdispatchatlas.solveソルバーメタデータ、レジストリ、ベースライン、メタヒューリスティクス、オペレーター、オプションアダプター。dispatchatlas.coreベンチマークジェネレーター、キャンペーンランナー、分析エクスポート、サイトランタイムのコード。
キャンペーンdispatchatlas.lab再現可能なキャンペーン構成、予算、チェックポイント、リトライ、実行。dispatchatlas.coredispatchatlas.benchdispatchatlas.solve分析パッケージまたはサイトランタイム内部。
分析dispatchatlas.analytica統計、開示フィルタリング、エビデンスバンドル、ポータルデータセット、CLI。dispatchatlas.core、加えて JSON データとして読む安定したキャンペーンマニフェスト。ライブキャンペーン実行またはサイトランタイム内部。
集約dispatchatlasルート配布; バージョン面を公開し、all エクストラを通じて 5 つのパッケージをピン留め。ランタイムでは何も; 合成はエクストラを通じて起こる。

📦 パッケージの役割

  • dispatchatlas.core は内側の境界です。共有スケジューリング語彙(ProblemSpecSchedule、目的、制約)、検証、来歴とシード系譜、正典シリアライズ、そしてすべての 外側パッケージが実装するプロトコル(BenchmarkProviderSolverExperimentRunnerResultRepositoryDisclosurePolicyAnalysisExporter)を 定義します。そのマニフェストは依存ゼロを宣言するため、ドメインはどこでもインポート 可能なまま保たれます。
  • dispatchatlas.bench はドメイン語彙をベンチマークエビデンスに変えます: ジェネレーターファミリー、ドメインプロファイル、スモークと完全カタログ、特性評価 メトリクス、そして各ファミリーの仮定がどこから来るかを記録する引用マトリクス。
  • dispatchatlas.solve はスケジュールを生み出すすべてを所有します: ソルバー メタデータと能力記述子、ソルバーレジストリ、構築的ベースライン、順列メタヒューリス ティクス、NDSO ファミリー、スケジューリングオペレーター、そしてエクストラの背後に 保持されるオプションの厳密ソルバーアダプター。
  • dispatchatlas.lab はベンチマークとソルバーを、チェックポイント付き・予算付き・ 環境スタンプ付きのキャンペーンに、決定的な実行識別子とともに合成し、すべての ファミリーをすべてのソルバーと突き合わせる適用可能性マトリクスを所有します。 そのマトリクスゆえに、core、bench、solve を一緒に見ることを許された唯一の パッケージです。それらを組み合わせることこそ、それが存在する理由だからです。
  • dispatchatlas.analytica は完了したキャンペーンディレクトリ——checkpoint.jsonplan.jsonenvironment.json、結果行——を読み、統計要約、エビデンスバンドル、 レポートの足場、ポータルデータセットを生成します。マニフェストベースの入力が、記録 された成果物だけから分析を再現可能に保ちます。
  • dispatchatlas(ルート)は 5 つのパッケージをワンコマンドインストールのために 集約し、公開バージョン面を担います。

🔒 なぜ方向が強制されるか

内向きのみの方向は、慣習ではなくテスト済みの契約です:

  • テスト容易性。 core はソルバー・キャンペーン・分析の機構を一切インストールせずに 問題とスケジュールを検証するため、ドメインテストは標準ライブラリのみのインポートで 走ります。bench と solve は互いを引き込まずに core 契約に対してテストします。
  • 再現性。 dispatchatlas.analytica がライブキャンペーンランタイムではなく記録 された マニフェストを消費するため、完了したいかなるキャンペーンもその成果物から バイト単位で再分析できます。
  • 独立リリース。 各パッケージは別々にビルドしバージョンをピン留めします; ソルバーの 変更がベンチマークや分析の挙動を静かに変えることはできません。

インポート境界テストは tests/architecture/ にあります: test_import_boundaries.pyast モジュールで各パッケージのソースファイルを走査し、 上記の禁止インポート表を越えるいかなるインポートでも失敗し、test_workspace_privacy.py は私的研究成果物を守ります。その方向を正典として定めているのはルート AGENTS.md (§ Package Boundary Summary) であり、CONTRIBUTING.md がそれを貢献者向けに 引き継ぎます。本ページはその上に立つ詳細解説であり、すべての pull request はこれに 照らしてレビューされます。

🌐 公開面

site/ 下のドキュメントサイトは承認されたエクスポートデータ——開示フィルタ済みの ポータルバンドルとエビデンス要約——を消費します。ライブキャンペーンを実行せず、開示 ポリシーを迂回しません。

🛠️ ガバナンス面

tools/ と CI はすべてのパッケージコード、ビルド成果物、レポートを検査できます。外側 から品質をゲートし、製品パッケージのランタイム依存になることは決してありません。