複数の脳内小人(コロポックル)で構成された運転手を用いた交通渋滞シミュレーション(頁3)  〜JAVA プログラム

   ネスト構造を持つマルチエージェントモデル             前頁へ<<             (Up)


 前頁からの続き)
 
<シミュレーション:Step3>
  〜  ネスト構造を持つコロポックル動作の確認
 〜 

 シミュレーションの4頁目は、信号機の有る交差点と、信号機の無い交差点が混在している道路を配置しています。

 

 上方の西/東1 に走る道路は優先道路です。 十字路の信号は、優先道路(横方向)側の緑色時間は2分、非優先道路(縦方向)側の緑色時間は1分です。 T字路では、優先道路側からは、右折も左折も有りですが、非優先道路側からの合流は左折のみです。 また、下側の信号の無い十字路は T字路から南側方向に走る道路(縦方向)が優先となっています。
 信号機のある交差点では、 右左折車が多いと、減速するため車の流れの滞留が生じます。 特に右折車は、対向車が通りすぎるのを待つ為、滞留する列が長くなります。    

  シミュレーション5頁目では、渋滞が発生した信号有りの十字路に右左折車専用の車道を80m設置し、また、T字路でも優先道路からの右折、左折車専用車道を設置しました。
 右左折車専用車道を設けた場合には、同じ交通量でも、十字路での渋滞は発生していません。

 (mp4形式動画)
 




 ここで、制作した交通渋滞シミュレーションについて、一通り纏めてみます。


(1)車両は1次元の有向線分(折れ線も可能)上(ここではトラックと称する)を走行し、交差点で、他の有向線分に乗り換えることが可能である。しかし、トラックを離れて走行を行うことは不可とする。
(2)車両は1人の運転手が乗り、各車両の運転手が、自車の周りの状況(前方車との車間距離、速度、道路状況等)を認知し、その結果に基いて それぞれ走行のコントロール(主に加速度の制御)を行う。
(3)運転手の脳内には、認知した状況を「要素」に分解し、各「要素」毎に加速度を導き出す知能=小人(コロポックル)を住まわせる。 各小人(コロポックル)が自分の専門知能から計算した加速度をそれぞれ、運転手の脳に提案する。
(4)運転手の脳は、提案された複数の加速度のうち、最も小さな値を採用する。
(5)交差点の様に複雑な要素に対しては、その内部をさらに要素を分解し、それに対応するコロボックルを複数準備する。 すなわち、コロポックルはネスト構造を持つことができる。(コロポックル内にさらに小さなコロポックルが含まれる) 上位に位置するコロポックルは、下位の提案した加速度の最も小さい値を採用する。 つまり、運転手は最上位のコロポックルと見なせる。
(6)運転手には、シミュレーションに参加した時点で 目的地とそこに到達するまでの「道順」を持たせる。 運転手はその道順にしたがって、交差点での右左折等を判断する。
(7)運転手に持たせる「道順」(=出発点、到達点、道順)を 季節/天候/曜日/時刻等によって変更すれば、朝夕の通勤・通学、休日・イベント等の状況を創り出す事ができる。


 シミュレーション上の車両の動きを観察してみると、上記の様な「ネスト構造を持つ運転エージェント(コロポックル)」によって、比較的人間に近い運転制御を行うエージェントが生成できたと思います。
 

<今後の発展構想>

 今回のプログラムは「ネスト構造を持ったマルチエージェント」という思い浮かんだアイディアを、先ずプログラム化して動作を確認してみたものです。 従って、プログラムを試行錯誤し、ボトムアップ的に作成したので、かなりスパゲティ化したプログラム構造になってしまいました。 バグも存在しています。 そこで、このプログラムは一旦クローズし、一度整理してから、トップダウンから再設計して見たいと思います。
 この時、GUI上から交差点を結ぶ事で、道路網を配置する等 もっと簡単にシミュレーションしたい道路配置モデルを制作することができるようにしたいと良いと思います。
 また、交通要素として、一時停止を伴わない合流、追い越し等の車線変更、狭い道での離合等、不足している要素の追加も必要です。

 <<帰宅後や休日に少しづつ制作しているので、遅々として進みませんが、追加したいと思っている項目です。 ・・・・・・・・ 自分に対する備忘録
   ・道路状況要因:速度制限、急カーブ等の安全速度注意、悪天候や道路凍結への対応。
   ・運転手の疲労等要因:各コロポックルが動作するために心的エネルギーを消費するが、疲労等が溜ると心的エネルギーの消費が大きいコロポックルが動作しなくなることにより、不注意等につながる。
   ・運転手の錯覚:錯覚によりコロポックルへの入力が変容し、誤った出力をしてしまうこと。(魔の交差点やカーブ等の存在)
 
   ・・・・・ 運転手の判断が、コロポックルという分割された要素オブジェクトで生成されている為、上記への対応は、比較的容易に行える筈なのですが ・・・・・。
 >>

<参考文献> 

1) 杉山雄規著    交通流の物理(<特集>交通流)              Physics of Traffic Flow(<Special Reviews>Traffic Flow)‎  (2003) ‎
2) 小松輝久著        交通渋滞と粉体の渋滞(<特集>交通流)     Traffic Congestion and Granular Jamming(<Special Reviews>Traffic Flow)‎  (2003) ‎
3) M.A.アービブ著  『脳』  ューラルネットと脳理論        (株)サイエンス社(1992)  
4) Norman D. Cook著  ブレインコード                紀伊國屋書店(1988)
5) 本間三郎著    人間の脳−その未知なるもの−       朝倉書店(1989)
   

キーワード: 交通渋滞、マルチエージェント、ネスト構造、シミュレーション、Javaプログラム


(JAVAプログラム実行へ)                   前頁へ<<                (Topへ)

 Javaソースプログラムは、上記(Javaプログラム実行へ)の頁からダウンロードできます(ウイルスチェック済み)。

初版:2014/2/24 | 第2版:2014/3/7





蛇島伸吾