TPTSToken Passing with Task Swaps

シミュレータで実行可解説: 原論文と照合済み

TP の token と Path1 / Path2 を保ったまま、未 pickup task の再割当を試す拡張。

概要

TPTS(Token Passing with Task Swaps)は TP の task set を「未実行 task 全体」へ広げ、未 pickup の task を、より早く pickup できる agent が引き取れるようにします[mapd-tp-tpts-central-2017, §4.2, Algorithm 2, p.4]

まず何がうれしいのか

TP の早い token 順で遠い agent が task を取ったあとでも、近い agent がまだ pickup 前なら交換できます。計算量と通信量は増えます。

前提となる知識

TP、token、Path1 / Path2、MAPD の well-formed endpoint が前提です。

対象問題

online MAPD。サイトの loop が task の実行状態を管理し、TPTS strategy は token の path と未確定 assignment を更新します。

中心となるアイデア

GetTask は h 値順に候補を見ます。既に別 agent が未 pickup task を持っていて、現在 agent の pickup 到達が早ければ、一時的に元 agent の path を token から外して再計画します。

アルゴリズムの手順

  1. TP と同じ token を受け取る。
  2. h 値順に task を調べる。
  3. 未割当なら Path1。
  4. 未 pickup の割当済み task なら、より早い Path1 のとき swap を試す。
  5. 元 agent は別 task または Path2 を試す。
  6. path に沿って 1 step 進む。

小さな例

二体が同じ pickup を競うとき、先に token を受け取った agent が遠ければ、後の agent が task を引き取り、前者は別 task を探します。

データ構造

TP と同じ明示的 token に、task assignment を追加します。交換は swap-task event で可視化します。

疑似コード

for task τ in increasing h(a, pickup(τ)):
  if τ is unassigned:
    assign a; token[a] ← Path1(a, τ, token)
  else if τ is not picked up and a reaches pickup earlier:
    unassign old agent; token[old] ← removed
    assign a; token[a] ← Path1(a, τ, token)
    ask old agent to run GetTask again
  otherwise restore token and try next τ

原論文 Algorithm 2 の再帰的な token 返却を短く再構成しています[mapd-tp-tpts-central-2017, Algorithm 2, p.4]

実装上の注意

PDF p.5 Theorem 5 は「well-formed instance を TPTS が解く」と述べます。非 well-formed の保証対象外警告は runMapdLoop に任せます。

よくある誤解

他手法との比較

TP より assignment の柔軟性が高く、CENTRAL より分散的です。実験上の service time は CENTRAL、TPTS、TP の順に小さい傾向ですが、CENTRAL の解決性保証はありません[mapd-tp-tpts-central-2017, §7, p.8]

サイト上の実装との差異

共通 token / Path1 / Path2 と MLA* を使います。old owner を同じ step の queue に戻す点は再帰的 GetTask の教育用再構成で、論文の通信スケジュール、full path 到達時刻比較、無限 stream は未対応です。

実験してみる

完全性・最適性などの保証

理論保証。原論文で確認できた記述だけを載せています。 「不明」は「保証が無い」ではなく「原論文で未確認」の意味です。
完全性条件付き
最適性不明
対象MAPD

適用範囲の注意: 既に割り当て済みで未 pickup のタスクを、より近いエージェントが奪えるようにした TP の拡張。PDF p.5 Theorem 5 の保証は well-formed に限る。サイト版は MapdStrategy API の制約から同一 timestep 内の未確定 assignment 交換までを実装。

保証の根拠(原論文の記述)

mapd-tp-tpts-central-2017 PDF p.5 Theorem 5「TPTS solves all well-formed MAPD instances.」well-formed を前提とする条件付き完全性。

原論文

公開実装

対応する公開実装は、まだマニフェストへ登録されていません。

最終照合日: