シミュレータ

グリッドを編集し、実装済みのアルゴリズムを実行できます。計算はすべてブラウザ内で行い、 サーバへは何も送信しません。探索は Web Worker で動くため、実行中も画面操作ができます。

シミュレーションモデル

このシミュレータが採用しているルールです。論文ごとに前提が違うため、明示しておきます。

グラフ4 近傍グリッド(上下左右)。斜め移動なし
時間離散時間。1 ステップで move(隣接セルへ 1 歩)または wait
vertex conflict同時刻に 2 体が同じセルを占有すること。禁止
edge-swap conflict隣接する 2 体が同一ステップで位置を入れ替えること。既定で禁止
goal 到達後既定は stay(そこに留まり、他エージェントを妨げる)。disappear も選択可
目的関数sum of costs と makespan の両方を表示
MAPD の指標service time / throughput / 未処理タスク数(対応 Solver 実装後に有効化)

ルールを変えた場合はシナリオ JSON の rules に保存されます。 暗黙に変更されることはありません。

実装済みの手法

シミュレータで選べるのは、実際に実装がある手法だけです。 現在 36 種類です。

手法原語状態注意
幅優先探索(各エージェント独立)BFS実行可各エージェントを独立に計画する。他エージェントとの衝突は解消しない。MAPF の解ではなく、基礎探索の挙動と、衝突が必ず起きることを示すための実装。
A*(各エージェント独立)A*実行可各エージェントを独立に計画する。他エージェントとの衝突は解消しない。MAPF の解ではなく、基礎探索の挙動と、衝突が必ず起きることを示すための実装。
時空間 A*Space-Time A*実行可原論文どおり (cell,time) を探索する低レベル Solver。CA* と混同しないよう単一エージェントのシナリオだけを受理する。edge-swap / following はサイト共通ルールへの拡張。
SIPPSafe Interval Path Planning実行可SIPP の状態 (cell,safe interval) と最早到着時刻を原論文どおり実装。MAPF で実行するため、Solver wrapper は入力順の prioritized planning として各 agent を SIPP で計画する。
優先順位付き計画(固定順)Prioritized Planning実行可既定は scenario.agents の固定順。extra.priorityOrder で全順序を明示できる。優先順位や同コスト経路によっては、解が存在しても失敗する。PBS のような順序探索は行わない。
Cooperative A*Cooperative A* (CA*)実行可Silver (2005) の基本形どおり、入力順に Space-Time A* を実行し、Manhattan heuristic と疎な reservation table を使う。edge-swap / following はサイト規則への拡張。
HCA*Hierarchical Cooperative A*実行可CA* の Manhattan heuristic を、Silver (2005) Algorithm 1 の on-demand Reverse Resumable A* による抽象距離へ置き換える。入力順は固定で、公開 pibt2 の distance-first priority は採用しない。
WHCA*Windowed Hierarchical Cooperative A*実行可Silver (2005) の window terminal edge、RRA* 再利用、midpoint 再計画、動的 priority を実装。ブラウザ版は同期 window と単純 rotation を使い、サイト既定の stay-at-goal を守るため goal 到達後は離れない。
CBSConflict-Based Search実行可AIJ 2015 Algorithm 2 の CBS 部分を再現。SOC/conflict 数/FIFO の CT tie-break と CAT low-level tie-break を実装する。有限 maxHorizon と安全上限で打ち切られた実行は理論保証の対象外。
BCBSBounded CBS実行可高・低レベル focal search の係数積 wH*wL を保証値とする。既定は suboptimalityFactor を sqrt(w) ずつ配分し、extra.highLevelWeight / lowLevelWeight で両方を明示できる。
ECBSEnhanced CBS実行可low-level FOCAL が返す fMin の和を CT lower bound とし、cost<=w*LB の high-level FOCAL を conflict 数で選ぶ。既定 w=1.5。
ICBS (PC+BP)Improved Conflict-Based Search一部実装cardinal/semi/non-cardinal prioritization と helpful bypass を実装。分類は MDD と等価な child-cost 判定を使う。論文の完全版 ICBS(25) に含まれる MA-CBS merge / merge-and-restart は未実装。
EECBSExplicit Estimation CBS実行可AAAI 2021 §3 の基礎 EECBS: CLEANUP/OPEN/FOCAL の EES 選択、online one-step error、bounded low level を実装。§4 の relaxed bypass、PC、symmetry reasoning、WDG は未実装。既定 w=1.5。
PBS(優先度ベース探索)Priority-Based Search実行可Algorithm 2 の priority-tree DFS、partial-order UpdatePlan、2 段 CAT tie-break を独立実装。finite maxHorizon と row-major 最終 tie-break はブラウザ用の明示的な打切り・決定性規則。
PIBT(優先度継承+バックトラック)Priority Inheritance with Backtracking実行可AIJ 2022 Algorithm 1 の 1-step priority inheritance / backtracking と §4.4.1 の one-shot termination を実装。iterative goal 更新と PIBT+ は未対応。
winPIBT(窓付き PIBT)windowed PIBT実行可winPIBT Algorithms 1–2 の centralized provisional paths、disentangled 制約、retroactive priority inheritance を実装。fixed common window と one-shot goal のみで、iterative task allocation は未対応。
ICTS(Increasing Cost Tree Search)Increasing Cost Tree Search実行可IJCAI 2011 Algorithm 1 の ICT breadth-first search、exact-cost MDD、k-agent MDD search と optional pairwise pruning を実装。Independence Detection と AIJ 拡張版固有の改良は未対応。
M*(Subdimensional Expansion)M*実行可AIJ 2015 Algorithms 1–2 の basic M*、limited neighbors、collision set と backpropagation set を実装。edge collision は site の transition 上で直接検出。recursive / operator-decomposition / inflated M* は未対応。
Push and SwapPush and Swap実行可IJCAI 2011 Algorithms 1–3 の push / multipush / exchange / reverse と、後続一次資料の corrected 4-stage clear を独立実装。後続論文が示した反例のため、失敗は一般の解なし証明として扱わない。solution smoothing は未対応。
Push and RotatePush and Rotate実行可AAMAS 2013 Algorithms 1–4 と著者 thesis Algorithms 4.1.1–4.2.11 を基に、biconnected subproblem merge、agent assignment、priority propagation、plan / push / swap / rotate / resolve、4-stage clear を独立実装。4 近傍 unit-cost grid に限定し、solution smoothing と一般 graph import は含まない。
LaCAM(遅延制約追加探索)Lazy Constraints Addition search for MAPF実行可AAAI 2023 Algorithm 1 の configuration DFS、constraint-tree BFS、lazy successor generation を独立実装。generator は同論文 §3.3 の PIBT 型 1-step assignment。既知 node 再挿入などの engineering は LaCAM* と区別するため含めない。
LaCAM*(最終的最適探索)LaCAM star実行可IJCAI 2023 Algorithm 3 の goal 保持、既知 configuration への有向辺追加、Dijkstra rewiring、admissible f 枝刈りを独立実装。最適性は OPEN 完了時の sum-of-loss に対する eventual guarantee であり、有限 cutoff 時やサイト表示 SOC に対する保証ではない。PIBT swap と random restart は未対応。
MAPF-LNSAnytime MAPF via Large Neighborhood Search実行可IJCAI 2021 §4–5 の initial solution → destroy → repair → accept-if-better 骨格と agent/map/random neighborhood を実装。EECBS、SIPP、論文の全 ALNS 細部は既存の deterministic Space-Time A* に簡略化している。
MAPF-LNS2MAPF-LNS2実行可AAAI 2022 §3–5 の衝突を含む初期 plan、collision-pair / failure / random neighborhood、CP 非増加修復を実装。SIPPS の完全な soft-interval dominance は既存 Space-Time A* と明示的 soft 評価へ簡略化している。
RHCRRolling-Horizon Collision Resolution実行可AAAI 2021 §4 の w-step planning / h-step execution を教材用に実装。one-shot の固定 goal も一要素の queue として実行できる。warehouse 固有 task assigner、Multi-Label A*、Poisson arrivals、windowed ECBS/PBS/CBS の全変種は未対応。
全探索割当 + CBSExhaustive target assignment + CBS実行可チーム内の割当(順列)を全通り試し、それぞれ CBS で解いて makespan 最小を選ぶ。cbm-tapf-aamas-2016 p.2 が「scalability に難がある」と名指しした素朴な方法そのもので、CBM / CBS-TA の比較対象と最適性の検証用に置いている。組合せ数が上限を超える入力は受け付けない。
CBMConflict-Based Min-Cost-Flow実行可チームごとの匿名経路を時空間 min-cost max-flow で求め、チーム間の衝突を CBS 型に分岐して解消します。目的関数は makespan です。
CBS-TAConflict-Based Search with Target Assignment実行可割当行列の候補を Hungarian 法で優先付けし、各候補を CBS で評価する教材実装です。論文の遅延 K-best search forest を、ブラウザ向けに決定的な候補列挙へ置き換えています。
最小費用最大流Min-Cost Max-Flow実行可1 チーム TAPF(匿名 MAPF)を時空間ネットワークの最小費用最大流で解きます。複数チームの衝突解消は CBM が担当します。
貪欲割当(MAPD ベースライン)Greedy MAPD baseline実行可論文手法ではないサイト独自のベースライン。手の空いたエージェントに最も近い未割当タスクを渡し、予約表を見ながら時空間 A* で pickup → delivery を計画する。TP の endpoint 規律(同 p.3-4 の Path2 / Property 2)が無いため、手が空いたエージェントがその場に居座って後続を塞ぐことがある。pickup 経由も 2 回の探索に分けており、MLA* のように 1 本では解かない。理論保証は無い。
TP (Token Passing)Token Passing実行可明示的 token、Path1 / Path2、well-formed の endpoint 規律を実装します。低レベルは MLA* に置き換えた TP+MLA* の教育用実装です。
TPTS (Token Passing with Task Swaps)Token Passing with Task Swaps実行可TP の token / Path1 / Path2 を共有します。未 pickup の task なら前 timestep の carrying 中でも、pickup までの決定的な距離が短い agent が assign で奪えます。loop が swap-task を出し、old owner は同じ step に再計画します。
CENTRALCENTRAL実行可Hungarian による中央割当と MLA* の token 計画を組み合わせた strawman です。論文の二段 CBS はブラウザ版では未実装で、解決性・最適性を保証しません。
LNS-PBSLarge Neighborhood Search with Priority-Based Search実行可MG-MAPD の task sequence と multi-goal を扱う決定的な教育実装。LNS の全 anytime 近傍と dummy-path による完全性証明の実装ではなく、順序付き時空間 A* で PBS の役割を可視化します。
LNS-wPBSWindowed Priority-Based Search with LNS実行可LNS-PBS の task sequence planner に wPBS の rolling window を接続した教育実装。extra.windowSize(既定 w=10)ごとに再計画し、衝突解消範囲を窓内へ限定するため、論文どおり完全性を保証しません。
RMCAIntegrated Task Assignment and Path Planning for Capacitated Multi-Agent Pickup and Delivery実行可capacity つき task sequence を regret insertion で作り、実際の path cost を順序付き planner に反映する教育実装。論文の priority heap 全体と優先順位付き探索の完全性は簡略化しています。objective は service time ではなく TTD です。

高度な手法(CBS、PIBT、LaCAM、LNS など)はまだ実装されていません。アルゴリズム一覧では、 実装済みか解説のみかをバッジで区別しています。