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つの処理段階がある。
-
ルーティング(plans / routing)
-
出発リンク → 到着リンク
-
ネットワーク上で最短経路探索
-
距離・所要時間を計算
-
-
逐次シミュレーション(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. 現実的な選択肢
-
MATSimを使わない
-
自前 MAS
-
経路・接触を一次情報として設計
-
-
MATSimを割り切って使う
-
時間構造・OD生成器として使用
-
空間経路・接触は別エンジンで再構成
-
限界を論文中で明示
-
-
MATSim拡張
-
walk を network mobsim に載せる
-
実装負荷大だが独創性は高い
-
9. 最終的な整理
-
MATSimは「使えない」のではなく、
研究対象に対して抽象化レベルが合っていない。 -
あなたの研究テーマ(共移動・共滞在・出会い)は、
MATSimの想定用途を明確に超えている。 -
その違和感は、技術的にも学術的にも正当。
※このメモは、そのまま
-
研究ノート
-
博士論文の「関連研究・手法選定の限界」節
-
指導教員への説明資料
として使用可能です。