検索
連載

MATSim実践編――ドラッグ&ドロップで1万人超のエージェントを動かしてみるリタイア直前エンジニアの社会人大学漂流記(5-2)(1/4 ページ)

今回のMATSim(マルチエージェントシミュレーション)実践編では、MATSimを使うためのPC環境について説明し、事前準備や起動の手順を紹介します。その上で、私が自作した「ドラッグ&ドロップで簡単にエージェントを動かすツール」を実際に使ってみたいと思います。

Share
Tweet
LINE
Hatena
MASイメージ図

3年間の休載を経て戻ってきました。休載していた理由は、私はリタイア(定年退職)間際だったにもかかわらず、「MAS(マルチエージェントシミュレーション)」を研究すべく、社会人のまま大学院博士課程に突っ込んでいったからです。なぜ“そんなこと”になったのか――。そして私をそこまでさせた「MAS」とは何なのか。社会人大学院生の実態を赤裸々に語りつつ、MASを技術的に深掘りしていきます。
⇒連載バックナンバーはこちらから

⇒前編「社会人大学院生にしか見えない「ドブ板経験」と「学問」のあいだ

 さて、ここからはMATSim(マルチエージェントシミュレーション)のお話になります。前回の「「データの死蔵に耐えられないエンジニア」がたどり着いたMASの沼」は、ちょっと所感を入れてしまったので、今回から再びMATSimの話に戻します。

 私も、ここ数カ月MATSimを使い続けてきて、いくつか分かってきたことがありますので、今回はそこから始めたいと思います。

MATSimを使う前に頭に入れておかなければならないこと

 ここでは、MATSimの環境構築に入る前に、あらかじめ理解しておくべき基本的な前提と注意点について簡単に説明します。

(1) MATSimはバッチ処理型のシミュレータである

 MATSimは、一言で言えばバッチ処理型のシミュレータです。バッチ処理とは、各種の条件や上限を設定したうえで処理を一括実行し、その結果を後から分析する方式を指します。従って、本書で扱う標準的な利用方法では、シミュレーションゲームのように、実行途中で利用者が内容に介入することはできません。

 このように書くと、「そんなことはない」と言う人もいるかもしれません。実際、MATSimもソフトウェアである以上、改造や拡張によって挙動を変更すること自体は可能です。ただし、そのような議論を始めると際限がありません

 本書において「MATSimができないこと」とは、利用者自身がソースコードの改造や追加実装を前提としない範囲での制約を意味します。この点は、最初に明確にしておきます。

(2) MATSimは現実そのものを再現するシミュレータではない

 MATSimの結果は、与えた入力データに強く依存します。人口、行動計画、交通ネットワークの与え方が変われば、結果も変わります。

 さらに、入力データが現実に近かったとしても、それだけで現実そのものを再現できるわけではありません。実際の人間の行動は、天候、気温、体調、偶然の判断、道路工事、新しい建物や通路の出現など、多くの要因によって変化します。

 従って、シミュレーション結果そのものが「正しい現実」を示すわけではありません。MATSimの結果は、現実を考えるための材料であり、検討のためのモデル出力として解釈する必要があります。

(3) MATSimのエージェントは、人の行動を単純化したモデルである

 MATSimのエージェントは、人間の意思決定を完全に再現しているわけではありません。行動計画、経路選択、反復的な再計画などを通じて人の移動行動を表現しますが、それはあくまで単純化されたモデルです

 従って、MATSimを用いたからといって、人間の心理や個性、偶発的な判断まで忠実に再現できるわけではありません。MATSimは、人の移動行動を交通分析の観点から扱うための枠組みであり、人間そのものを完全に写し取るものではありません。

(4) MATSimは地図を持っていない

 MATSimは、Google Mapsのような「地図データ」を内部に保持しているわけではありません。MATSimが扱うのは、道路ネットワークを抽象化したリンクとノードの集合であり、これはあくまで計算のための構造データです。

 そのため、見た目としての地図や背景画像は存在せず、そのままでは地理的な直感に基づく理解は困難です。

 また、現実の地図データを利用する場合も、自動的に読み込まれるわけではなく、OpenStreetMapなどの外部データを加工し、MATSim用のネットワーク形式に変換する必要があります.すなわち、MATSimで使用する地図データは、利用者自身が用意する必要があります

 従って、MATSimにおける「地図」とは、視覚的な地図ではなく、交通流を計算するために構築されたネットワーク構造であると理解しておく必要があります。

(5) MATSimの計算結果の収束は保証されない

 MATSimでは、反復計算によって結果が安定した状態に近づいていきます。しかし、必ずしも同一の解に収束するとは限りません。

 従って、「計算を回せば必ず最適解が得られる」と考えるべきではありません。得られた結果は、入力条件や設定内容を踏まえたうえで解釈する必要があります。

(6) MATSimは計算コストが高い

 エージェント数が増えると、計算時間やメモリ使用量は大きくなります。小規模な例題であれば比較的容易に実行できますが、対象規模を大きくすると、一般的なPCでは計算時間が長くなることがあります。

 従って、システム構築の段階では、どの程度のエージェント数を扱うのか、どの程度の計算資源を見込むのかを、あらかじめ考えておく必要があります。

(7) MATSimは設定ミスがあっても実行されてしまうことがある

 MATSimでは、一部の設定に不備があっても、実行自体は継続してしまう場合があります。そのため、結果がもっともらしく見えても、それだけで正しいとは判断できません。

 シミュレーションでは「動いたこと」と「妥当な結果が得られたこと」は別です。この点は、MATSimに限らず、シミュレーション全般に共通する重要な注意点です。

(8) MATSimの結果を使った可視化は結果の一部にすぎない

 MATSimの主目的は、交通現象を定量的に分析することにあります。そのため、標準機能として可視化機能は存在するものの、分析用途では外部ツールとの併用が一般的です。可視化は理解を助けるうえで有用ですが、それ自体が目的ではないためです

 MATSimには簡易的な可視化機能も存在しますが、実務的な分析では、外部の可視化ツールや専用ツールを併用することが一般的です。

 次に、私がMATSimを複数の方法でインストールして得られた知見をお話します。

MATSimを利用するための望ましいPC環境

 MATSimは一般的なPCで動作しますが、その性能は計算規模や設定内容に大きく依存します。ここでは、MATSimを実行するうえで望ましいハードウェアおよびソフトウェア環境について整理します。

(1) ハードウェア

 MATSimは多数のエージェントを扱うため、CPU性能とメモリ容量が重要になります。CPUについては、反復計算を繰り返す処理の性質上、処理性能の高いものが望まれます。コア数が多い環境も一定の効果がありますが、それ以上に単一コア当たりの性能が効いてくる場面も少なくありません。

 メモリについては特に重要です。エージェント数が増えるとメモリ使用量は急激に増加します。小規模な検証であれば8GB程度でも動作しますが、実用的な規模を扱う場合には16GB以上、場合によってはそれ以上が必要になることもあります。

 ストレージについては、SSDの使用を推奨します。MATSimではログや出力ファイルが大量に生成されるため、ディスクI/O性能が低い環境では処理全体のボトルネックとなる可能性があります。

(2) オペレーティングシステム(OS)

 MATSimは、Windows、Linux、macOSのいずれの環境でも動作します。ただし、実務的な観点からはLinux環境が比較的扱いやすい場合が多いです。

 Linuxでは、スクリプトによる実行やバッチ処理の管理が容易であり、大規模計算や長時間実行にも適しています。一方、Windows環境でも問題なく動作しますが、パス設定や環境構築で手間がかかる場合があります。

 macOSについても動作しますが、利用するライブラリやツールによっては注意が必要です。

(3) 性能向上に寄与しにくいデバイス

 MATSimはGPUを前提とした設計にはなっていません。そのため、高性能なGPUを搭載していても、計算速度の向上にはほとんど寄与しません。

 MATSimの処理は主にCPUとメモリに依存しているため、投資の優先順位としてはGPUよりもCPUおよびメモリの強化を優先すべきです。また、特殊なアクセラレーターや専用デバイスについても、標準的なMATSimの利用においては必要ありません

(4) その他

 MATSimを利用するうえでは、Java実行環境が必須となります。MATSimはJavaで実装されているため、適切なバージョンのJava(JDKまたはJRE)を事前にインストールしておく必要があります。

 また、MATSimはコマンドラインベースでの操作が基本となるため、ターミナルやシェルの操作にある程度慣れておくと作業がスムーズになります。

 さらに、長時間の計算を行う場合には、電源設定やスリープ設定にも注意が必要です。ノートPCの場合、意図せずスリープ状態に入ってしまうことで計算が中断されることがあります。

 最後に、MATSimは比較的シンプルな構成でも動作します。本書の内容であれば、一般的なノートPCでも十分に実行可能です。まずは小規模な環境で動作を確認し、その後必要に応じて計算環境を拡張していくことを推奨します。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る