MENU

エージェントシミュレーションによる社会システムの再現・解析 〜「組織のDigital Twin」へ向けた技術基盤について

text=水田 秀行 日本IBM

組織のDigital Twinと社会シミュレーション

最近注目されているDigital Twinとは、主に製造業において工場や機械を実物と双子のようにそっくりなモデルとしてデジタル空間内に再現し、シミュレーションによって設計やテストを行い、現実世界にフィードバックするものである。リアルデータを元にした精緻なシミュレーションによって、実物では困難あるいはコストが嵩む実験や変更をコンピュータ上で行うことができる。

さらに、社会やビジネスなど複雑な領域においても、「組織のDigital Twin」 (DTO:Digital Twin of an Organization)と呼ばれる応用が行われるようになってきた。DTOにおいても、現実を反映したモデルとシミュレーションが必要となるが、その対象となる社会システムは、構成要素として人間や社会、テクノロジーを含み、それらの間に複雑な相互作用が存在する複雑適応系である。このような複雑適応系である社会システムにおいては、電子回路や流体力学のように法則として定まった数式によって記述し、解を得ることは難しい。

エージェントを用いた社会シミュレーションは、このような社会システムのモデルにおける有望なアプローチの1つと考えられている。エージェントベースアプローチとは、エージェントと呼ばれる行動主体に注目し、そのミクロな活動から出発して、エージェント同士の複雑な相互作用の結果生み出されるマクロな現象を理解しようという研究手法である[1]。ミクロとマクロという2つのレベルの間をつなぐものとして、コンピュータシミュレーションを用いた手法が活用される。

エージェント社会シミュレーションでは、エージェントとして多様な主体をモデル化し、時々刻々と変化する状況やそれに対するミクロな行動を計算機上でシミュレートする。そのような多数のエージェントの意思決定と行動の結果として、社会システム全体がどのように動くか再現し、解析を行う。コンピュータの性能向上によって大規模なシミュレーションが可能となり、交通や建築、金融市場、ビジネスプロセス、災害避難計画などの実務にも使われるようになってきている。

大規模シミュレーションフレームワーク XASDI

都市や企業における複雑で大規模な意思決定のシミュレーションを行うためには、そこで活動する非常に多数のエージェントのミクロレベルの意思決定と相互作用をその複雑な環境において実用的な速度で実行するための大規模シミュレーション基盤が必要となる。そのため我々は大規模エージェントシミュレーションフレームワーク XASDI (X10-based Agent Simulation on Distributed Infrastructure)を開発し、オープンソースソフトウェアとして GitHubで公開している[2]。

XASDIフレームワークは、X10言語[3]で実現される大規模分散並列実行と社会シミュレーションでよく使用されるJavaでの容易な開発という特徴を併せ持ち、これまで大規模交通シミュレーターやショッピングモール、都市における歩行シミュレーターの開発にも用いられてきた。

図表1にXASDIを構成するレイヤー構造を示す。

図表1 XASDIのレイヤー構造
図表1 XASDIのレイヤー構造

XASDIはX10言語で書かれたCore層とJavaで書かれたBridge層から構成されている。Core層はX10言語によって実現される分散並列機能を活用し、分散した計算機ノード上で、それぞれエージェントを管理し、マルチスレッドでの実行と、メッセージの交換を行う。Bridge 層は、エージェントシミュレーションのための基本機能をCore層で提供される分散実行やメッセージ交換を用いて実現し、アプリケーションのためのJavaによる基本クラスやAPIを提供する。アプリケーション開発では、Javaを用いてBridge層のクラスを継承したアプリケーション用のクラスを作成し、エージェントの行動や環境との相互作用を実装することになる。

都市交通シミュレーション

ここでは、XASDI上に実装された大規模交通シミュレーターであるIBM Mega Traffic Simulator (Megaffic)について紹介する。XASDIでの並列実行の管理は、比較的小さな並列実行される実行単位(Driver)を用いて行い、各ステップ毎にエージェントに対し定義された処理を実行する。複数ノード(CPU)での実験時には、それら実行単位を各ノードへ分散し並列実行させる。交通シミュレーションにおいては、交差点がこの実行単位となり、接続された道路リンク上の車両エージェントの挙動を管理する。

XASDI には、エージェントを管理する階層的な構造があり、World、 Region、 Place と呼ばれている(図表2)。

図表2 XASDIにおける階層的クラス構造
図表2 XASDIにおける階層的クラス構造

シミュレーターの主体となるのはRegionであり、交通シミュレーターでは都市全体の交通の管理を行う。さらに、Place を継承した Road クラスを作成し、その上にCitizenを継承したVehicleエージェントが車両エージェントとして配置される。

車両エージェントは、それぞれ異なる挙動を行えるように、速度モデル、レーン変更モデル、経路選択モデルを持つ。これらのモデルを入れ替えることにより、さまざまな交通特性のシミュレーションが行える。車両エージェントという名称から機械をイメージするかもしれないが、実際に経路選択、速度変更やレーン変更を行なっている主体は、その中のドライバーであり、人間の意思決定をモデル化したものとなっている。

実際の道路ネットワークを用いるシミュレーションでは、交通センサスから得られるゾーン間の交通需要を表として記録したOD (Origin-Destination)表を用いて、各車両の始点と終点を決定する。交通シミュレーターは、開始時刻から終了時刻までの間、このように定められた経路を持つ車両エージェントを生成し、1秒毎の各ステップにおいて、速度とレーンの変更を必要なら行いつつ、すべての交差点と道路上における車両エージェント位置と状態を更新する。また、一定時間(たとえば1時間)の間の各道路における通過交通量や平均速度、CO2排出量などをログファイルに出力する。

交通シミュレーターを用いたWhat-if解析

このように開発した交通シミュレーターとさまざまなエージェントパラメータを用いて現実の道路における交通状況をシミュレートすることにより、現在の状況から何かを変化させたときどうなるかというwhat-if解析による意思決定支援が可能となる。ここでは、広島市道路交通局と協力して行った実証実験について簡単に紹介する[4]。

図表3に広島の道路ネットワークを用いてシミュレーションを行っているスクリーンショットを示す。この道路ネットワークには、4万619の交差点と12万1543の道路リンクが定義されている。道路上の明るいドットは各車両を示しており、区別のためランダムに色を割り当てている。

図表3 広島市における交通シミュレーション
図表3 広島市における交通シミュレーション

実証実験としては、祇園新道における交通規制による周辺の交通の変化をwhat-if 解析によって評価した。上下それぞれ3車線道路のうち下り3車線が工事のため夜間通行止めとなる際に、残る上り3車線をどのように使用するか2通りのシナリオを検討した。1つは、そのまま上り3車線の一方通行道路とするもの(シナリオ1)であり、もう1つはこの3車線を交通整理によって上り1車線、下り1車線として分割しつつ上下共に通行できるようにするもの(シナリオ2)である。

シミュレーションの実行ログから各道路について通過交通量および平均速度が得られ、交通規制を行わない通常時の交通量からの倍率を評価した。2つのシナリオによる交通規制のどちらにおいても交通量の変化は大きくても2倍程度であり、平均速度はさらに変化が小さい。特にシナリオ2では両方向が使用可能なこともあり、通常時との変化は小さい。シナリオ1では、下り車線が使えなくなったことにより、東西に平行に走っている2つの道路の交通量が増加しているが、渋滞が発生するほどの増加量ではなかった。もともと夜間で交通量が少ないこともあって、問題となる渋滞は発生しないことがシミュレーションによって予測できた。この結果はたとえば、交通規制としては負担の小さいシナリオ1を選ぶというような判断の補強にも使える。

金融や災害時の避難・救出などさまざまな応用へ

本記事では、人間社会とテクノロジーを含む複雑適応系である社会システムの再現や解析の効果的なツールとしてエージェントを用いた社会シミュレーションと大規模エージェントシミュレーションフレームワークの紹介を行った。ここで一例として紹介した交通シミュレーションのほかにも、金融市場や災害時における避難や救出、コミュニケーション、サービスシステムなどさまざまな応用が考えられている[5]。

エージェントシミュレーションを用いることによって、実際の社会で行うには困難があったり、コストが膨大になる試行錯誤を、さまざまな条件において多数回の実験を行うことが可能となる。これをより精緻に、現実のデータを元に行うことで、組織のDigital Twin(DTO)を実現することができる。


[1] T. Terano, H. Kita, H. Deguchi, and K. Kijima. 2007.  “Agent-Based Approaches in Economic and Social Complex Systems IV: Post Proceedings of The AESCS International Workshop 2005 (1st. ed.).  ” Springer Publishing Company,  Incorporated.
[2] XASDI,  “X10-based agent simulation on distributed infrastructure (XASDI).”
https://github.com/x10-lang/xasdi
[3] X10, “The X10 parallel programming language.”
http://x10-lang.org/
[4] 水田秀行, 恐神貴行, 鈴村豊太郎, 井手剛. (2013).  “大規模交通シミュレーターが支援する都市計画.” 電気学会論文誌 C (電子・情報・システム部門誌),  133(9),  1632-1635.
[5] 水田秀行.  (2020).  “サービスサイエンスのための社会シミュレーション.” 有賀裕二編著. 「価値創造と分散型市場設計」. 中央大学出版部 研究叢書 中央大学企業研究所編 42. 第8章.
https://www.chuo-u.ac.jp/research/institutes/business/publication/book_series/book42/

著者
水田 秀行 氏

日本アイ・ビー・エム株式会社
テクノロジー事業本部
クライアントエンジニアリング本部
テクノロジーエンジニア
法政大学大学院情報科学研究科兼任講師
TEC-J Steering Committeeメンバー
博士(理学)

2021年7月まで東京基礎研究所に所属し、 金融、サービスサイエンス(SSME)、大規模交通シミュレーション等のエージェント社会シミュレーションの研究に従事。
現在はクライアントエンジニアリング保険グループに所属。

*本記事は筆者個人の見解であり、IBMの立場、戦略、意見を代表するものではありません。


当サイトでは、TEC-Jメンバーによる技術解説・コラムなどを掲載しています。

TEC-J技術記事https://www.imagazine.co.jp/tec-j/

[i Magazine・IS magazine]

新着