MATSimにおける walk モードと軌跡・接触解析に関する検討メモ

結論から先に言うと『MATSimは歩行のルート再現をしてくれず、私の博士論文の研究"共時空間、RCM"には直接使えん、ということが、本日判明』

(歩行は、交通全体から見ると、"瑣末"なものなので、MATSimのターゲットではないんだ、とか)

# 正確に言うと、歩行ルートも計算しているそうだが、それを出力する機能がないんだとか (『オプションメニューで、歩行軌跡も出力できるように作っておけよ』と腹を立てています)

ODと経過時間は分かっているのだから、そこはお前がローカルで経路計算しろ?』ということらしいが ーー
そんな面倒くさいことさせるなーーー! 

問題意識(出発点)

  • MATSim を用いてエージェントシミュレーションを実施。

  • <leg mode="car"> では LinkEnter/Leave が出力され、軌跡(リンク列)が復元可能。

  • <leg mode="walk"> では departure / arrival / travelled は出るが、LinkEnter/Leave が一切出ない。

  • その結果、歩行エージェントの軌跡が可視化できず、接触(出会い)解析が不可能に見える。


2. 技術的事実の整理(MATSimの挙動)

2.1 walk は「動いていない」のではない

  • walk モードでも以下は正しく出力される:

    • 歩行開始:PersonDepartureEvent (legMode=walk)

    • 歩行終了:PersonArrivalEvent (legMode=walk)

    • 距離:TravelledEvent (mode=walk, distance=…)

  • 歩行時間は
    arrival.time − departure.time
    として明確に算出可能。

walk はシミュレーションされていないのではなく、「逐次シミュレーションされていない」


2.2 MATSim における移動の2レイヤ構造

MATSim には移動に関する2つの処理段階がある。

  1. ルーティング(plans / routing)

    • 出発リンク → 到着リンク

    • ネットワーク上で最短経路探索

    • 距離・所要時間を計算

  2. 逐次シミュレーション(QSim / mobsim)

    • リンクに入る・出る

    • 渋滞・相互干渉

    • LinkEnter / LinkLeave イベント生成

car / pt
→ 1 + 2 の両方を実施
walk(デフォルト)
→ 1 のみ実施、2 は実施しない(teleported leg)


2.3 「テレポート」の正確な意味

  • teleported = 瞬間移動ではない

  • ルーティングは実施する

  • ただし、リンク単位の逐次挙動を保持・出力しない

つまり、

  • 歩行ルートは内部的には計算されている

  • しかし リンク列として保存されず、events にも出ない


3. なぜ歩行時間は「正確」に出るのか

  • walk の所要時間は

    • network.xml 上で最短経路探索

    • リンク長合計 ÷ 歩行速度
      により算出されている。

  • 「ルートを調べずに時間を出している」のではなく、
    「調べたが、結果(経路)を捨てている」


4. 徒歩→バス→徒歩はどう出力されるか

4.1 徒歩区間

  • departure / arrival / travelled のみ

  • 途中経路は存在しない

4.2 バス区間

  • 車両(vehicle)がネットワークを走行

  • vehicle に対して LinkEnter / LinkLeave が出力

  • person は PersonEntersVehicle / LeavesVehicle で紐づく

events には「バスの軌跡」はあるが「徒歩の軌跡」はない


5. 研究上の重大な問題点

5.1 接触・出会い解析が不可能

  • エージェント同士の出会いには、

    • 同じリンク

    • 同じ時間帯
      の情報が必要。

  • walk ではリンク列が出ないため、
    歩行中の共時空間・接触が定義不能


5.2 後処理での経路再計算の問題

  • departure / arrival から最短経路を再計算すれば、
    MATSim と同一の経路になる理屈ではある。

  • しかし、

    • 本当に同じアルゴリズムか?

    • tie-break や実装差はないか?
      という 再現性・保証の問題が残る。


6. なぜ MATSim は経路を保存しないのか(設計思想)

  • MATSim は本来、

    • 交通需要

    • 混雑

    • 政策評価
      を目的とした MAS。

  • 都市スケールで数十万〜数百万人を扱うため、

    • 全 walk 経路保存はメモリ・容量的に非現実的。

  • そのため、

    歩行の詳細な空間挙動は捨象する
    という設計判断がなされている。


7. 評価と所感(研究者視点)

  • ODを完全に算出しない MAS に、接触解析の観点で意味はあるのか?
    → 交通政策評価には意味がある。
    → 出会い・共時空間解析には不十分。

  • 「スケーラビリティのために経路を捨てる」という説明は、
    研究目的によっては 逃げ・卑怯に見える

  • 結論として、

    MATSim は接触機会・出会いを一次情報として扱う研究には、そのままでは使えない


8. 現実的な選択肢

  1. MATSimを使わない

    • 自前 MAS

    • 経路・接触を一次情報として設計

  2. MATSimを割り切って使う

    • 時間構造・OD生成器として使用

    • 空間経路・接触は別エンジンで再構成

    • 限界を論文中で明示

  3. MATSim拡張

    • walk を network mobsim に載せる

    • 実装負荷大だが独創性は高い


9. 最終的な整理

  • MATSimは「使えない」のではなく、
    研究対象に対して抽象化レベルが合っていない

  • あなたの研究テーマ(共移動・共滞在・出会い)は、
    MATSimの想定用途を明確に超えている

  • その違和感は、技術的にも学術的にも正当。


※このメモは、そのまま

  • 研究ノート

  • 博士論文の「関連研究・手法選定の限界」節

  • 指導教員への説明資料

として使用可能です。

未分類

Posted by ebata