日本ソフトウェア科学会第 39 回大会 (2022 年度) 講演論文集

分散システム化による交通流シミュレータの拡張
大木 悠生

安藤 崇央

近代社会において，交通渋滞など交通環境の悪化が社会問題になっている．これらの問題に対する施策の効果を実際の道路で確認することは難しく，その代替手段として交通流シミュレータが一般的に用いられている．大規模な交通流シミュレーションを行う際に，マシンスペックによって実行可能なシミュレーションの規模が制限されてしまう事がある．そこで本研究では，交通流シミュレーションを複数のマシン上にノードとして分散させ並列実行させるシステムを設計し実装した．そして，実装したシステムについて，複数ノードを接続してのシミュレーションを行い正常に動作することを確認した．

ションの実行に必要な外部サービスや，複数種類のシ1 はじめにミュレータの接続を容易にする．

近代社会において，道路交通は生活基盤の一部となっている．しかし，その発展にともない，交通渋滞

1. 1 交通流シミュレータなど交通環境の悪化が社会問題になっている．これ

交通流シミュレータとは，交通に関する車両や歩らの問題に対して，交通網の変更，信号での交通の行者といった移動体の動きや信号などの仕組みを擬制御，ITS (Intelligent Transport Systems) の導入な似的に表現し，それによる移動体の流れや渋滞などど，様々な施策が行われている．これらの施策を実施を観測するシステムである．交通流シミュレータにした際の効果を実際の道路交通で事前に測定するこは様々な種類の物があり，目的や用途によって使用すとは，実験に必要な期間や費用，安全性などの問題かるシミュレータは異なる．交通流シミュレータの種類

ら困難なことが多い．そのため，代替手段として交通として主に，大規模なネットワークを対象とし，交流シミュレータを用いた評価が一般的に行われてい通流と流体として扱うマクロ交通流シミュレータや，る．しかし，大規模な交通流シミュレーションを行う

比較的狭いエリアを対象とし，個々の移動体をシミュ際に，マシンスペックによって実行できるシミュレーレーションするミクロ交通流シミュレータなどがあションの規模が制限されてしまう事がある．

る．本研究では，ミクロ交通流シミュレータである

そこで本研究では，交通流シミュレーションを複数のマシン上にノードとして分散させ，それらを統合す

SUMO (Simulation of Urban MObility) [2] を分散化の対象とするシミュレータとしている．

ることで 1 つのシミュレーションとして実行できるシステムを提案する．このシステムを，各シミュレー

1. 2 SUMOションを集中管理する構造とすることで，シミュレー

SUMO は，ドイツ航空宇宙センター (DeutschesEnhanced Traﬃc Simulator with Distributed System.
Yu Ohki, Takahiro Ando, 群馬大学理工学府理工学専
攻, Department of Science and Technology, Graduate School of Science and Technology, Gunma
University.

Zentrum für Luft- und Raumfahrt) が開発しているオープンソースのミクロ交通流シミュレータである．SUMO には，シミュレーションを視覚的に確認するための GUI や，出発地点 (Origin) と目的地点(Destination) の情報である OD 情報と道路ネットワークを入力し，出発地点から目的地点までの経路を自動的に算出するツールも提供されている．さらに，

TraCI と呼ばれるシミュレーションやその内部のオブジェクトを外部からアクセス，操作することを可能とする TCP ベースの API も提供されている．

1. 3 関連研究[1] では，ITS サービスの検証を行う際，対象サービスのモデルをシミュレータ上で作り込むことが必要である問題を解決するために，シミュレータと ITSサービスを仲介し情報のやり取りを手助けする環境を整備することを目的とした支援環境 Agent-BasedUniﬁed Simulation Environment の構築を行っている．この支援環境は，シミュレータ上の各オブジェク

図1

システム構成の概略

トに対応して追跡するエージェントが，外部のサービスと情報を共有する支援を行う．この支援環境によって，検証対象のサービスのモデルをシミュレーション内に作る必要がある問題を解決している．本研究ではシステムを分散化することによって，上記のような問題に加えて，大規模なシミュレーションの実行と，支援環境システムとシミュレータやサービスとの結合度を弱くすることを目的としている．

2 システム概要
2. 1 構成
システム構成の概略図を図 1 に示す．本システム
は，全体の管理を行う中央サーバと，それに接続する複数台のノードから構成され，中央サーバとノード間はソケット通信で接続される．中央サーバは各ノード

図2

シミュレーションの構造に対して指示を送信し，全ノードの管理と同期を行う．ノードは，中央サーバから指示を受け取り処理す呼ぶ道路網データを持つ．それぞれのシミュレーショるノードインスタンスと，交通流シミュレータで構成ンを接続するために，マップ内の道路末端と他ノードされる．中央サーバの指示に従い，ノードインスタンのマップの道路末端との接続関係を記述する JSON

スは TraCI を用いてシミュレータを操作する．

形式ファイルを用意し，これを中央サーバに登録する．道路末端の接続関係は，自ノードと他ノードの道

2. 2 シミュレーション構造

路末端に対して，1 対 1，1 対多，多対多の関係を用

図 2 にシステム内のシミュレーション構造を示す．

いることができる．

各ノードは，それぞれ 1 つのシミュレーションを担当し，シミュレーションを実行するための “マップ” と0150x7E

データ長 n
図3n+5
格納データ

パケット形式3 システム設計
3. 1 中央サーバ―ノード間通信プロトコル
中央サーバとノード間の通信は TCP を用いるソケット通信で行う．各マシン間でやり取りされるオブジェクトは，Protocol Buﬀers [3] を用いてバイナリ形式にエンコードされる．また，オブジェクトはパケットと呼ぶ構造に格納されて送受信される．パケット

図4

システムの処理シーケンス

は，図 3 のような構造を取る．先頭は 0x7E で始まり，その次の 4 バイトは格納するデータの長さをリトルエンディアンで格納する．先頭バイトはパケットの始点を認識するために用いられ，パケット内全体で 1 度のみしか現れない．パケットの先頭以外の場所で 0x7E
もしくは 0x7D が現れる箇所は，[0x7D, 0x20⊕(該当バイト)] のバイト列に置換される．

3. 2 システムの処理シーケンス
本システムの処理シーケンスの概略図を図 4 に示

図5す．中央サーバはまず，ノードの接続受付を開始しシステム動作中の様子て，シミュレーションを実行するために必要な台数の上の条件でシミュレーションを実行し，車両オブジェ

ノードが参加するまで待機する．規定台数のノードがクトが設定した経路を辿ることを確認できた．実行中参加したら，中央サーバはノードに対してコマンドの画面の様子を図 5 に示す．

を 1 つずつ送信し，ノードはシミュレーションを操

さらに，実際のネットワーク上でもシステムを動作作してデータか ACK (Acknowledgement) を返送すさせることを確認するために，Windows10 マシン上る．中央サーバはコマンドの送信後，参加している全に中央サーバと 3 つのノード，Ubuntu 18.04 をインてのノードから応答を受け取るまで待機することで，ストールした RaspberryPi にノードを 1 つのシステ全体のシミュレーションを同期させる．

ムを構築した．この構成で同様のシミュレーションを実行し，車両オブジェクトが設定した経路を辿ること4 システムの評価を確認した．

4. 1 システムの動作確認
実装したシステムについて，実際に動作させて，シ4. 2 ネットワーク使用帯域の測定ミュレーションが正常に実行できるかどうかを確認しシミュレーション中のネットワーク帯域の使用量にた．中央サーバと 4 つのノードを同一の Windows10

ついてネットワークキャプチャーソフトの Wireshark

マシン上で，localhost 内のネットワークでシステムで測定を行った．“ノードに 1 シミュレーション時間を構築した．シミュレーションには，車両オブジェクに流入する車両の数 (vehicles/step)” を変化させ，使トが各ノード間を循環するような経路を設定した．以用帯域の測定を行った．この測定値をまとめたグラ5 まとめ本研究では，既存の交通流シミュレータを分散化させることを可能にするシステムを設計し実装した．
また，動作実験によってシステムが正常に動作しシミュレーションを実行できることを確認した．さらに，ネットワーク負荷について，測定を行い評価した．今後の課題として，人などの車両以外のシミュレーションオブジェクトへの対応，街単位とビル内部などの粒度が異なるシミュレーションの結合，今回用いた SUMO 以外のシミュレータや ITS サービスへの
図6

流入車両数に対するネットワーク使用帯域対応，結合などが挙げられる．

フを図 6 に示す．ただし，ノードから車両が流出する際にもデータ送信が行われており，これも測定対象となっている．グラフのデータについて，相関係数は0.999996123 であったため，概ね比例関係であるといえる．この結果から，中央サーバが動作するシステ
ムで利用可能なネットワークの帯域幅を W kbps, 全ノードに流入する車両頻度の合計を a vehicles/stepとして，同時に接続可能なノードの台数を次のように推定することができる．
（ノード台数）=W
20.477a + 110.65

参 考 文 献[1] Fujii, R., Ando, T., Hisazumi, K., Mine, T.,
Nakanishi, T., and Fukuda, A.: Architecture andDevelopment of Agent-Based Uniﬁed Simulation
Environment for ITS Services, Springer Singapore,
2019, pp. 227–246.
[2] Lopez, P. A., Behrisch, M., Bieker-Walz, L., Erdmann, J., Flötteröd, Y.-P., Hilbrich, R., Lücken, L.,
Rummel, J., Wagner, P., and Wiessner, E.: Microscopic Traﬃc Simulation using SUMO, 2018 21stInternational Conference on Intelligent Transportation Systems (ITSC), 2018, pp. 2575–2582.
[3] Varda, K.: Protocol Buﬀers: Google’s Data Interchange Format, Technical report, Google, 6 2008.