(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023157707
(43)【公開日】2023-10-26
(54)【発明の名称】シミュレーション方法及びシミュレーションプログラム
(51)【国際特許分類】
G08G 1/00 20060101AFI20231019BHJP
【FI】
G08G1/00 A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022067783
(22)【出願日】2022-04-15
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】高橋 英一
(72)【発明者】
【氏名】山岡 久俊
(72)【発明者】
【氏名】岡林 美和
【テーマコード(参考)】
5H181
【Fターム(参考)】
5H181AA01
5H181BB13
5H181EE02
5H181FF22
5H181FF32
(57)【要約】
【課題】計算量を抑えつつ精度の良いシミュレーションを実行するシミュレーション方法及びシミュレーションプログラムを提供する。
【解決手段】複数の領域のそれぞれにおける車両の密度と速度との関係を基に、複数の領域を、所定の解像度での第1シミュレーションを行う第1領域と、第1領域より解像度の荒い第2シミュレーションを行う第2領域とに分類し、第1領域に対して第1シミュレーションを実行し、第2領域に対して第2シミュレーションを実行する処理をコンピュータに実行させる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数の領域のそれぞれにおける車両の密度と速度との関係を基に、前記複数の領域を、所定の解像度での第1シミュレーションを行う第1領域と、前記第1領域より解像度の荒い第2シミュレーションを行う第2領域とに分類し、
前記第1領域に対して前記第1シミュレーションを実行し、
前記第2領域に対して前記第2シミュレーションを実行する
処理をコンピュータに実行させることを特徴とするシミュレーション方法。
【請求項2】
前記第2領域とされた特定領域に存在する前記車両の前記密度と前記速度との関係が所定条件満たしたことを検出して、前記特定領域を前記第1領域に変更することを特徴とする請求項1に記載のシミュレーション方法。
【請求項3】
特定領域における前記車両の速度から交通流量と車両密度との関係を表す交通流量関数を求め、前記特定領域における前記車両密度が、前記交通流量関数において前記交通流量が極大値となる第1車両密度から所定量少ない第2車両密度までの間にある場合に、前記特定領域を前記第1領域とすることを特徴とする請求項1に記載のシミュレーション方法。
【請求項4】
前記特定領域における車両密度が前記第1車両密度から前記第2車両密度までの間にない場合、前記特定領域に流入する車両の入力交通流量及び前記特定領域から流出する車両の出力交通流量を求め、前記入力交通流量と前記出力交通流量との比が所定値以上の場合に、前記特定領域を前記第1領域とすることを特徴とする請求項3に記載のシミュレーション方法。
【請求項5】
前記車両の前記密度と前記速度との関係を基に、前記複数の領域の中から前記第1領域とする選択領域を特定し、前記選択領域から所定時間で前記車両が到達可能な範囲に含まれる前記領域を前記第1領域とすることを特徴とする請求項1に記載のシミュレーション方法。
【請求項6】
前記車両の前記密度と前記速度との関係を基に、前記複数の領域の中から前記第1領域とする選択領域を特定し、前記選択領域を含み且つ前記複数の領域のいくつかを含む結合領域について、前記結合領域を異なる数に分割した複数の分割パターンを作成し、前記分割パターンに含まれる分割領域のうち、含まれる前記選択領域の数とそれ以外の前記領域の数との比が予め設定した値以上であり且つ前記比の値が最小となる前記分割領域に含まれる前記領域を前記第1領域とすることを特徴とする請求項1に記載のシミュレーション方法。
【請求項7】
複数の領域のそれぞれにおける車両の密度と速度との関係を基に、前記複数の領域を、所定の解像度での第1シミュレーションを行う第1領域と、前記第1領域より解像度の荒い第2シミュレーションを行う第2領域とに分類し、
前記第1領域に対して前記第1シミュレーションを実行し、
前記第2領域に対して前記第2シミュレーションを実行する
処理をコンピュータに実行させることを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション方法及びシミュレーションプログラムに関する。
【背景技術】
【0002】
渋滞などの交通現象をコンピュータ上で再現する交通シミュレータは、都市計画や交通施策評価などに用いられる。交通シミュレータが行うシミュレーションには解像度に応じた3つのモデルがある。
【0003】
1つは、解像度が最も低いマクロモデルである。マクロモデルは、ある範囲内の車両すべてを1つの車両群とし、流体力学などをベースにした振舞で交通現象を再現する。マクロモデルでは、車両単位の振舞は再現されないが、計算の効率が良く計算コストが低いので、広域のシミュレーションに用いられることが多い。
【0004】
他の1つは、解像度が最も高いミクロモデルである。ミクロモデルは、車両ごとに性能や運転特性まで反映した詳細なモデルで、現実に近い振舞を再現できる。ただし、ミクロモデルは、大量の計算を実行するため計算コストが高く、ごく小さな領域のシミュレーションに用いられることが多い。
【0005】
残りの1つは、マクロモデルとミクロモデルの中間の解像度のメゾモデルである。メゾモデルは、ミクロモデル同様、車両を個別に扱うが、区単位(例えば500m)の道路や交差点間の道路を待ち行列などで近似して、車両の振舞を簡略化している。メゾモデルでは、各車両の走行ルートなどは再現されるが、道路や交差点での加減速や車線変更など細かい振舞は再現されない。メゾモデルにおける、計算コストはマクロモデルほど低くはないが、ミクロモデルと比べるとかなり低く、例えばミクロモデルの100分の1程度に抑えられる。メゾモデルは、都市レベル程度の広域のシミュレーションに用いられることが多い。
【0006】
近年、CO2削減など問題の複雑化に伴い、交通現象のシミュレーションにおいても、解像度と広域性との両方が要求されてきている。しかし、単純にミクロモデルを用いて高解像度で広域をシミュレートすると計算量が非常に多く計算コストが膨大となるので、実用性に難があった。
【0007】
そこで、解像度と広域性を両立する技術として、ハイブリッド・シミュレーション技術が提案されている。ハイブリッド・シミュレーション技術は、ユーザが地図上で注目したい領域を指定すると、その指定された領域をミクロモデルでシミュレートし、それ以外の領域をメゾモデルでシミュレートする。注目領域を高解像度、他の広い領域を低解像度とすることで、ハイブリッド・シミュレーション技術は、解像度と広域性とを両立させる。
【0008】
また、ミクロモデルとマクロモデルとの接続に関してバッファエリアを設けて、個別車両と車群とを相互変換する交通シミュレーションの技術が提案されている。
【0009】
交通シミュレーション以外では、粒子の空間密度に合わせたボクセルで圧縮表現する技術が提案されている。この技術では、粒子が高密である領域が小さなボクセルで覆われ高解像度でシミュレートが実行され、そうでない領域は大きなボクセルで覆われ低解像度でシミュレートが実行される。こうすることで、領域全体のデータサイズを抑えながら、高解像度相当の粒子の空間情報を保持することができる。この考えを交通シミュレーションへ応用すると、車両が高密である領域をミクロモデル、そうでない領域をメゾモデルでシミュレートすることが考えられる。
【先行技術文献】
【特許文献】
【0010】
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、交通現象のシミュレーションにおいては、ユーザがミクロモデルでシミュレートする領域を指定することが困難な場合がある。例えば、通行料を課金するロードプライシング施策の効果を評価するケースでは、迂回路を選択する車両が増えるなどにより交通流が大きく変化する。その結果、別の場所で渋滞が発生してしまうことがあるが、それがいつどのように生じるかを予測することは難しく、ユーザが予めミクロモデルでシミュレートする領域を指定することは困難である。そこで、ミクロモデルの領域をある程度広めにとることが考えられるが、これでは計算量を軽減させて計算コストを十分に抑えることが難しく、また、渋滞発生を確実にミクロモデルで捉えることが困難となるおそれもある。
【0012】
車両などの対象の密度が高い領域をミクロモデルとすれば、ユーザがあらかじめ指定しなくても、シミュレーションの状況に応じてミクロモデル及びメゾモデルの領域を設定できる。この場合、車両密度を領域設定の基準としているため、既に渋滞状態にある領域がミクロモデルの領域とされる。ただし、渋滞状態の車両の振る舞いは、解像度が低いメゾモデルでもミクロモデル相当の精度でシミュレートできる。なぜなら、渋滞状態の車両は、加減速や車線変更などをほとんどしないので、低速で車間距離が短いこと以外には通常走行状態と大きな違いがない。その結果、渋滞状態の車両の振る舞いの再現については、ミクロモデルとメゾモデルとの間に大きな差が出ないからである。
【0013】
ここで、交通シミュレーションの計算量は、主に車両数に比例する。渋滞状態では、道路上に存在する車両の数が多い。車両密度にしたがって領域設定を行う場合、渋滞状態の車両のシミュレートは、計算量が少なく計算コストが低いメゾモデルで十分であるにもかかわらず、ミクロモデルでシミュレートしてしまうため、計算量を削減して計算コストを十分抑えることは難しい。
【0014】
計算量を削減して計算コストを十分に抑えるためには、渋滞が発生している領域ではなく、渋滞が発生する可能性が高い領域をミクロモデルでシミュレートし、それ以外をメゾモデルでシミュレートすることが好ましい。
【0015】
開示の技術は、上記に鑑みてなされたものであって、計算量を抑えつつ精度の良いシミュレーションを実行するシミュレーション方法及びシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
本願の開示するシミュレーション方法及びシミュレーションプログラムの一つの態様において、複数の領域のそれぞれにおける車両の密度と速度との関係を基に、前記複数の領域を、所定の解像度での第1シミュレーションを行う第1領域と、前記第1領域より解像度の荒い第2シミュレーションを行う第2領域とに分類し、前記第1領域に対して前記第1シミュレーションを実行し、前記第2領域に対して前記第2シミュレーションを実行する処理をコンピュータに実行させる。
【発明の効果】
【0017】
1つの側面では、本発明は、計算量を抑えつつ精度の良いシミュレーションを実行することができる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、実施例に係る交通シミュレーション装置のブロック図である。
【
図5】
図5は、ミクロモデルとメゾモデルとの対応を説明するための図である。
【
図6】
図6は、メタ安定状態を説明するための図である。
【
図7】
図7は、車両速度に応じた車両密度と交通流量の関係を示す図である。
【
図10】
図10は、設定値δの算出方法を説明するための図である。
【
図12】
図12は、車両が移動によって異なるモデル領域の道路へ侵入するケースを示す図である。
【
図13】
図13は、車両が異なる種類のモデル領域に移動した場合の車両の情報の設定方法を説明するための図である。
【
図14】
図14は、車両が存在する道路のモデル領域が変化するケースを示す図である。
【
図15】
図15は、車両が存在する道路が異なる種類のモデル領域に遷移した場合の車両の情報の設定方法を説明するための図である。
【
図16】
図16は、シミュレーション全体の動作を示すフロー図である。
【
図17】
図17は、道路をミクロモデル領域とメゾモデル領域とに分ける処理のフロー図である。
【
図18】
図18は、メタ安定状態か否かの判定処理のフロー図である。
【
図19】
図19は、対象道路のモデル領域を判定する処理のフロー図である。
【
図20】
図20は、シミュレータ間の車両転送処理のフロー図である。
【
図21】
図21は、メゾモデル領域からミクロモデル領域へ移動した車両の転送処理のフロー図である。
【
図22】
図22は、ミクロモデル領域からメゾモデル領域へ移動した車両の移動処理のフロー図である。
【
図23】
図23は、メゾモデル領域からミクロモデル領域へ変化した道路上の車両の転送処理のフロー図である。
【
図24】
図24は、ミクロモデル領域からメゾモデル領域へ変化した道路上の車両の転送処理のフロー図である。
【
図25】
図25は、実施例に係る交通シミュレーション装置のハードウェア構成図である。
【
図26】
図26は、交通シミュレーション装置の他の構成例を示す図である。
【発明を実施するための形態】
【0019】
以下に、本願の開示するシミュレーション方法及びシミュレーションプログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するシミュレーション方法及びシミュレーションプログラムが限定されるものではない。
【実施例0020】
図1は、実施例に係る交通シミュレーション装置のブロック図である。
図1に示すように、本実施例に係る交通シミュレーション装置1は、ステップ制御部11、領域決定部12、連携部13、地図管理部14、ミクロシミュレータ15及びメゾシミュレータ16を有する。また、交通シミュレーション装置1は、ミクロ情報格納部21、メゾ情報格納部22、車両情報格納部23、道路情報格納部24及び地図情報格納部25を有する。以下では、ミクロモデルを用いてシミュレーションを実行する領域を「ミクロモデル領域」と呼び、メゾモデルを用いてシミュレーションを実行する領域を「メゾモデル領域」と呼ぶ。また、ミクロモデル領域とメゾモデル領域とを合わせて、「モデル領域」と呼ぶ。
【0021】
ステップ制御部11は、予めシミュレーションの1ステップの間隔を保持する。例えば、1ステップの間隔は、1秒としてもよいし、1分としてもよい。ステップ制御部11は、シミュレーションの開始からステップ間隔の計測を開始する。そして、ステップ制御部11は、シミュレーションのステップを1つずつ進める。
【0022】
ステップ制御部11は、シミュレーションのステップを1つ進めた後に、ミクロシミュレータ15とメゾシミュレータ16との間における車両移動処理の完了の通知を連携部13から受ける。そして、車両移動処理の完了の通知を受けると、ステップ制御部11は、次のステップへの進行指示をミクロシミュレータ15及びメゾシミュレータ16へ出力してシミュレーションを1ステップ進ませる。さらに、ステップ制御部11は、ミクロシミュレータ15及びメゾシミュレータ16を1ステップ進ませる毎に、領域の決定の実行を領域決定部12に指示する。
【0023】
その後、ステップ制御部11は、シミュレーションにおいて実行された総ステップ数が設定した終了ステップ数であるかを判定する。総ステップ数が終了ステップ数に達していなければ、ステップ制御部11は、次の車両移動処理の完了の通知まで待機して、その後ステップを進ませる。これに対して、総ステップ数が終了ステップ数に達した場合、ステップ制御部11は、シミュレーションを終了する。
【0024】
地図管理部14は、道路の長さやつながりを有する地図情報を地図情報格納部25から取得する。
図2は、地図情報の一例を示す図である。例えば、地図情報は、
図2に示すように、各道路に割り当てられた識別情報に対応させて、それぞれの道路の長さ、各道路の制限時速及びその道路が接続する他の道路の情報である接続先の情報を有する。また、地図情報は、例えば、道路を表す折れ線の位置情報のリストなどのその他の情報を含んでもよい。
【0025】
ここで、本実施例において道路は、一般道であれば、例えば、交差点と交差点との間の区間や交差点間の距離が長い場合にはその距離を所定の長さに分割したそれぞれの区間を道路の単位とする。また、高速道であれば、例えば、1km毎に分割したそれぞれの区間を道路の単位とする。
【0026】
そして、地図管理部14は、地図情報をミクロシミュレータ15、メゾシミュレータ16及び連携部13へ出力する。また、地図管理部14は、地図情報に含まれる全ての道路の情報を登録した道路情報を作成して、各道路へのモデル領域の初期状態の割り当てを行い、作成した道路情報を道路情報格納部24に格納する。例えば、地図管理部14は、モデル領域の初期状態として全ての道路をメゾモデル領域としても良いし、予め指定された渋滞が発生しそうな道路をミクロモデル領域としてその他の道路をメゾモデル領域としても良い。
【0027】
ミクロシミュレータ15は、ミクロモデルを用いて交通現象を再現するシミュレータである。ミクロシミュレータ15は、地図情報を地図管理部14から取得する。また、ミクロシミュレータ15は、ミクロ情報格納部21に格納されたミクロモデル領域として設定された道路に存在する車両の位置や速度などのミクロ情報をミクロ情報格納部21から取得する。
【0028】
図3は、ミクロ情報の一例を示す図である。ミクロ情報は、例えば、
図3に示すように、車両毎に、その車両が位置する場所の緯度及び経度、その車両の速度、並びに、その車両が存在する道路の識別情報を含む。さらに、ミクロ情報は、例えば、各車両の走行ルートや走行時間の情報などを含むその他の情報が登録されてもよい。
【0029】
さらに、ミクロシミュレータ15は、車両の移動又は道路のモデル領域の変化により滞在道路がミクロモデル領域からメゾモデル領域に変化した車両が存在する場合、その車両の情報のミクロ情報からの削除の指示を連携部13から受ける。そして、ミクロシミュレータ15は、ミクロ情報からその車両の情報を削除する。
【0030】
また、ミクロシミュレータ15は、車両の移動により滞在道路がメゾモデル領域からミクロモデル領域に変化した車両が存在する場合、その車両がその時点での滞在道路の始点の位置に存在するとしたミクロ情報の入力を連携部13から受ける。そして、ミクロシミュレータ15は、取得したその車両のミクロ情報を、保持するミクロ情報に追加する。
【0031】
また、ミクロシミュレータ15は、道路のモデル領域の変化により滞在道路がメゾモデル領域からミクロモデル領域に変化した車両が存在する場合、その車両のその時点での位置、速度及び滞在道路の識別情報を格納したミクロ情報の入力を連携部13から受ける。そして、ミクロシミュレータ15は、取得したその車両のミクロ情報を、保持するミクロ情報に追加する。
【0032】
ミクロシミュレータ15は、ステップ制御部11からのステップの進行指示を受けて、ステップを1つ進める。そして、ミクロシミュレータ15は、地図情報及びミクロ情報を用いて、1ステップ後の車両の位置や速度を計算する。その後、ミクロシミュレータ15は、ミクロ情報格納部21に格納されたミクロ情報を更新する。これにより、ミクロシミュレータ15は、地図情報及びミクロ情報を基に、車両の振舞を詳細に再現する。
【0033】
メゾシミュレータ16は、メゾモデルを用いて交通現象を再現するシミュレータである。メゾシミュレータ16は、地図情報を地図管理部14から取得する。また、メゾシミュレータ16は、メゾモデル領域として設定された道路に存在する車両の情報や滞在時間などのメゾ情報をメゾ情報格納部22から取得する。
【0034】
図4は、メゾ情報の一例を示す図である。メゾ情報は、例えば、
図4に示すように、メゾ道路情報26及びメゾ車両情報27を含む。
【0035】
メゾ道路情報26は、メゾモデル領域として設定された各道路の識別情報に対応させて、各道路に存在する車両の情報が登録される。メゾ道路情報26では、各道路における車両の位置は、待ち行列を用いて表される。例えば、メゾ道路情報26のFIFO(Fast In Fast Out)欄は、道路上に存在する車両の識別情報をその道路に入った順序で保持する。例えば、
図4におけるFIFO欄は、道路road21に車両car21、car22、・・・がこの順序で存在することを示す。さらに、メゾ道路情報26は、速度上限で通過した場合の時間などのその他の情報を含んでもよい。
【0036】
メゾ車両情報27は、各車両の識別情報に対応させて、それぞれの車両が存在する道路の識別情報、及び、その道路における各車両の滞在時間が登録される。滞在時間は、その車両がその道路に入ってからの経過時間である。例えば、
図4のメゾ車両情報27は、車両car25が道路road23に入って10秒が経過したことを示す。さらに、メゾ車両情報27は、それぞれの車両の走行ルート情報や走行時間などの他の情報を含んでもよい。
【0037】
さらに、メゾシミュレータ16は、車両の移動又は道路のモデル領域の変化により滞在道路がメゾモデル領域からミクロモデル領域に変化した車両が存在する場合、その車両の情報のメゾ情報からの削除の指示を連携部13から受ける。そして、メゾシミュレータ16は、保持するメゾ道路情報におけるその車両の滞在道路の待ち行列からその車両の情報を削除する。さらに、メゾシミュレータ16は、保持するメゾ車両情報からその車両の情報を削除する。
【0038】
また、メゾシミュレータ16は、車両の移動により滞在道路がミクロモデル領域からメゾモデル領域に変化した車両が存在する場合、その車両が滞在する滞在道路の情報及び滞在時間を0としたメゾ情報の入力を連携部13から受ける。そして、メゾシミュレータ16は、取得したその車両のメゾ車両情報を、保持するメゾ情報のメゾ車両情報に追加する。また、メゾシミュレータ16は、メゾ道路情報におけるその車両の滞在道路の待ち行列の最後に対象車両の情報を加える指示を連携部13から受ける。そして、メゾシミュレータ16は、保持するメゾ道路情報におけるその車両の滞在道路の待ち行列の最後に対象車両の情報を加える。
【0039】
また、メゾシミュレータ16は、道路のモデル領域の変化により滞在道路がミクロモデル領域からメゾモデル領域に変化した車両が存在する場合、その車両が滞在する滞在道路の情報及び滞在時間が登録されたメゾ情報の入力を連携部13から受ける。そして、メゾシミュレータ16は、取得したその車両のメゾ車両情報を、保持するメゾ情報のメゾ車両情報に追加する。また、メゾシミュレータ16は、メゾ情報の中のメゾ道路情報における滞在道路の待ち行列にその車両の情報を滞在時間に応じて追加する指示を連携部13から受ける。そして、メゾシミュレータ16は、保持するメゾ道路情報におけるその車両の滞在道路の待ち行列の滞在時間に応じた位置に対象車両の情報を加える。
【0040】
メゾシミュレータ16は、ステップ制御部11からのステップの進行指示を受けて、ステップを1つ進める。そして、メゾシミュレータ16は、地図情報及び保持するメゾ情報を用いて、1ステップ後の車両が存在する道路や滞在時間を計算する。その後、メゾシミュレータ16は、メゾ情報格納部22に格納されたメゾ情報を更新する。これにより、メゾシミュレータ16は、地図情報及びメゾ情報を基に、車両の簡略化した振舞を再現する。
【0041】
ここで、ミクロモデルにおける車両とメゾモデルにおける車両との対応関係について説明する。
図5は、ミクロモデルとメゾモデルとの対応を説明するための図である。ミクロモデルを用いたシミュレーションでは、
図5の道路202のように個々の車両の位置及び速度を用いて車両の動きが精密に再現される。これに対して、メゾモデルを用いたシミュレーションでは、
図5の道路201のように侵入した順番の車両の並びを示す待ち行列及び各車両の滞在時間を用いて車両の動きが簡略化されて再現される。
【0042】
そして、メゾモデルにおける滞在時間及び速度を用いて、ミクロモデルにおける位置算出できるので、メゾモデルにおける待ち行列に入れられた車両の、ミクロモデル上の対応する位置を算出することができる。すなわち、メゾモデルの道路201における待ち行列に存在する車両211~213のそれぞれの滞在時間が時間t1~t3である場合、時間t1~t3を用いて、ミクロモデルの長さL1の道路202におけるどの位置に車両211~213がいるかが決定される。また。逆に、ミクロモデル上の位置から、メゾモデルにおける待ち行列を作成され、且つ、位置と速度から滞在時間が算出される。
【0043】
図1に戻って説明を続ける。領域決定部12は、ステップ制御部11から領域の決定の指示を受けると、各車両の位置及び速度の情報をミクロシミュレータ15及びメゾシミュレータ16から収集する。そして、領域決定部12は、ミクロモデルを用いてシミュレーションを実行するミクロモデル領域とメゾモデルを用いてシミュレーションを実行するメゾモデル領域を決定する。
【0044】
ここで、領域決定部12によるミクロモデル領域とメゾモデル領域との決定処理に用いるメタ安定状態について説明する。
図6は、メタ安定状態を説明するための図である。グラフの横軸は車両密度を表し、縦軸は交通流量を表す。車両密度は、例えば1kmといった単位距離あたりの車両数である。交通流量は、例えば1分などの単位時間に通過した車両数である。
【0045】
曲線101は、車両密度と交通流量の関係を表す。曲線101における領域111は、通常状態であり車両がスムーズに移動している状態で、車両速度や車間距離がほぼ一定である。通常状態では、車両密度が高くなるほど交通流量も増える。
【0046】
直線102は、渋滞状態の車両密度と交通流量の関係を表す。直線102に示すように、渋滞状態では車両密度が高いほど交通流量は減少する。これは車両速度の低下によるものである。そして、曲線101における直線102と近似される領域113は、渋滞状態である。
【0047】
領域111の通常状態でも領域113の渋滞状態でも、車両は加減速や車線変更などをあまり行わず、車両速度や車間距離は大きく変化しない。そのため、領域111の通常状態や領域113の渋滞状態であれば、メゾモデルで車両の振舞を十分に再現可能である。一方、曲線101の極大値を含む直線102との交点の近傍の領域112は、通常は、通常状態から渋滞状態へ遷移する領域で、メタ安定状態と呼ばれる。
【0048】
領域112のメタ安定状態では、車列内のある車両の小さく偶発的な加減速などが後続車両の加減速などを誘発し、それがさらに後続車両へと伝搬していくことで、スムーズな走行が一気に渋滞状態に変わってしまう。この現象はメゾモデルを用いたシミュレーションで再現することは困難であり、ミクロモデルを用いたシミュレーションで扱うことが好ましい。そのためには、領域112の状態にある道路を、ミクロモデル領域とすれば良い。
【0049】
ここで、曲線101は、車両の速度に応じて決まる。
図7は、車両速度に応じた車両密度と交通流量の関係を示す図である。
図7の横軸は車両密度を表し、縦軸は交通流量を表す。
図7の、グラフ121は車両速度が10m/sの場合を表し、グラフ122は車両速度が20m/sの場合を表し、グラフ123は車両速度が30m/sの場合を表す。すなわち、
図7における曲線101の極大値近傍のメタ安定状態にあたる領域112の位置は、車両速度によって異なる。速度が高いほど低い車両密度でメタ安定状態になる。
【0050】
そこで、領域決定部12は、
図7に示すような車両速度に応じた車両密度と交通流量の関係を用いて、車両速度から曲線101を特定する。そして、領域決定部12は、その時の車両分布から車両密度を求め、特定した曲線101を用いて、その時の車両密度から対象道路がメタ安定状態か否かを判定することができる。
【0051】
図1に戻って説明を続ける。領域決定部12は、各道路について、メタ安定状態か否かを判定する。その後、領域決定部12は、各道路についてのメタ安定状態か否かの判定結果を用いて、その時点で各道路が、ミクロモデル領域とメゾモデル領域とのどちらの領域かを道路情報から判定する。以下に、領域決定部12によるミクロモデル領域とメゾモデル領域を決定する処理の詳細について説明する。ここでは、1つの特定の対象道路に対するミクロモデル領域又はメゾモデル領域の決定処理を例に説明する。領域決定部12は、以下の処理を全ての道路について実行する。
【0052】
まず、メタ安定状態か否かの判定処理の具体例について説明する。領域決定部12は、対象道路の道路情報を道路情報格納部24から取得する。そして、領域決定部12は、その時点における対象道路のモデル領域の種類を特定する。
【0053】
図8は、道路情報の一例を示す図である。
図8に示すように、道路情報の道路欄には、各道路に割り当てられた識別情報が登録される。また、モデル欄には、その時点で各道路がミクロモデル領域とメゾモデル領域とのどちらであるかを表す情報が登録される。前モデル欄は、前ステップ時に各道路がミクロモデル領域又はメゾモデル領域のどちらであったかを表す情報が登録される。例えば、
図8に示す道路情報では、道路road31は、ミクロモデル領域であり、road32はメゾモデル領域である。
【0054】
領域決定部12は、対象道路がミクロモデル領域であればミクロシミュレータ15から対象とする道路上の車両の車両情報を取得し、メゾモデル領域であればメゾシミュレータ16から対象とする道路上の車両情報を取得する。また、領域決定部12は、ミクロシミュレータ15及びメゾシミュレータ16が有する対象道路の地図情報を取得する。そして、領域決定部12は、地図情報の中から対象道路の長さ及び速度上限を抽出する。ここで、本実施例では、領域決定部12は、ミクロシミュレータ15及びメゾシミュレータ16から地図情報を取得したが、地図管理部14から取得してもよい。
【0055】
次に、領域決定部12は、以下のように車両密度k、車両平均速度vを求める。対象道路がミクロモデル領域の場合、領域決定部12は、その時点での車両密度kを、k=n/ΣΔx_iとして算出する。ここで、nは対象とする道路に存在する車両数を表し、Δx_iは各車両の位置から求められる車間距離を表す。また、領域決定部12は、対象とする道路に存在する各車両の速度の平均値を算出して車両平均速度vとする。
【0056】
これに対して、対象とする道路がメゾモデル領域の場合、領域決定部12は、車両数n及び道路長Lから、その時点での車両密度kをk=n/Lとして求める。また、領域決定部12は、車両平均速度vを、
図9のグラフ130で示される最適速度モデルにしたがって算出する。
図9は、最適速度モデルを示す図である。
図9の横軸は車間距離を示し、縦軸は速度を示す。また、
図9におけるVmaxは対象とする道路での速度上限値である。
図9のグラフ130は、例えば、次の数式(1)にしたがう。
【0057】
【0058】
ここで、Δxは車間距離であり、Δx=L/kである。また、d、m、L_cは、予め与えられる設定値である。dは、車間距離を表し、速度に応じた常識的な車間距離を目安に決められる値であり、例えばVmaxが50km/hの場合には35mなどと設定される。mは、ドライバーの加減速に対する感度を表し、経験的に求められる値であり、例えば0.2である。mは、グラフ130のdにおける傾きにあたる。L_cは車両長の平均値で例えば5mである。
【0059】
次に、領域決定部12は、算出したその時点での車両密度k及び平均車両速度vを用いて、交通流量Qを表す交通流量関数を求める。次に、領域決定部12は、交通流量関数の極大値での極大値車両密度k_pを算出する。交通流量関数の極大値は、交通流量関数の接線の傾きが0の位置にあたる。例えば、領域決定部12は、極大値車両密度k_pを以下の手順で算出する。交通流量Qは、例えば、次の数式(2)にしたがう。ここで、vは数式(1)で表される。この数式(2)で表される曲線が、
図6に例示した曲線101に対応する。
【0060】
【0061】
次に、領域決定部12は、交通流量Qを車両密度kで微分してQ’を求める。Q’は、例えば、次の数式(3)にしたがう。
【0062】
【0063】
そして、領域決定部12は、数式(3)においてQ’=0となる車両密度を極大値車両密度k_pとする。例えば、領域決定部12は、二分法などを用いて極大値車両密度k_pを算出する。
【0064】
次に、領域決定部12は、その時点での車両密度kと極大値車両密度k_pとの差分Δk=k_p-kを求める。そして、領域決定部12は、差分Δkが0以上で且つ設定値δより小さければ、対象の道路をメタ安定状態と判定する。これに対して、差分Δkが0未満もしくは設定値δ以上であれば、対象の道路をメタ安定状態でないと判定する。ここで、領域決定部12は、δとして、実験で求められた値を用いることができる。例えば、領域決定部12は、δ=0.25×k_pとすることができる。
【0065】
ここで、領域決定部12は、以下のような方法で、極大値車両密度とその時点での車両密度との差分Δkの下限値である設定値δを算出することもできる。
図10は、設定値δの算出方法を説明するための図である。
図10の横軸は車両密度を表し、縦軸は交通流量を表す。
【0066】
例えば、混み始めて車間距離が短くなりつつあるなどのメタ安定状態になり始める状況下の速度をβVmaxとする。Vmaxは、走行中の道路で出せる最大速度である。また、βは、減速の程度を表す係数である。βは、例えば、0.98とすることができる。
【0067】
そして、領域決定部12は、βと数式(1)におけるd、m、L_cを用いて、次の数式(4)~(6)からδを算出することができる。
【0068】
【0069】
領域決定部12は、数式(4)から得られる数式(5)により、
図10におけるk_qを求めることができる。そして、領域決定部12は、極大値車両密度k_pと求めたk_qから、数式(6)を用いることで、極大値車両密度とその時点での車両密度との差分Δkの下限値である設定値δを算出することができる。
【0070】
以上のような方法で各道路についてメタ安定状態か否かを判定した後、領域決定部12は、各道路をミクロモデル領域又はメゾモデル領域のどちらにするかを決定する。以下に、領域決定部12によるミクロモデル領域又はメゾモデル領域の決定処理の詳細について説明する。
【0071】
領域決定部12は、対象道路の道路情報にメタ安定状態か否かの判定結果を加えた情報を取得する。対象道路がメタ安定状態であれば、領域決定部12は、対象道路をミクロモデル領域とする。
【0072】
これに対して、対象道路がメタ安定状態でなければ、領域決定部12は、対象道路の終端が交差点か否かを判定する。例えば、領域決定部12は、
図2に示す地図情報で対象の道路の接続先が複数ある場合に、終端が交差点であるとみなす。終端が交差点でなければ、領域決定部12は、対象道路をメゾモデル領域とする。
【0073】
逆に、終端が交差点であれば、領域決定部12は、対象の道路への入力交通流量IQ(台/s)及び対象の道路からの出力交通流量OQ(台/s)を求める。ここで、領域決定部12は、入力交通流量IQ及び出力交通流量OQを次のようにして求める。
【0074】
領域決定部12は、対象道路に接続する各道路について、対象道路を含め終点で接続する道路を道路u_i(i=1,・・・,n_u)とし、始点で接続する道路を道路d_j(j=1,・・・,n_d)とする。次に、領域決定部12は、道路u_iのそれぞれについて、車両数n_i(台)、車両速度v_i(m/s)及び車列長L_i(m)を算出する。
【0075】
具体的には、この時点で道路u_iがミクロモデル領域であれば、領域決定部12は、道路u_iに滞在する全車両の速度の平均値を車両速度v_iとして算出し、各車両の車間距離の総和を車列長L_iとして算出する。逆に、道路u_iがメゾモデル領域であれば、領域決定部12は、車両速度v_iを速度上限とし、且つ、車列長L_iは道路長とする。
【0076】
さらに、領域決定部12は、道路u_iそれぞれからの対象道路の終端の交差点への入力交通流量iq_iを、次の数式(7)を用いて算出する。
【0077】
【0078】
そして、領域決定部12は、次の数式(8)で示すように、対象道路の終端の交差点に終点で接続する道路u_i(i=1,・・・,n_u)それぞれの入力交通流量iq_iの総和を対象道路への入力交通流量IQとして算出する。
【0079】
【0080】
また、領域決定部12は、対象道路の終端の交差点に始点で接続する全ての道路d_j(j=1,・・・,n_d)について、車両数n_j(台)、車両速度v_j(m/s)、及び車列長L_j(m)を、道路u_iと同様の方法で求める。その後、領域決定部12は、道路d_jそれぞれへの対象道路の終端の交差点からの出力交通流量oq_jを次の数式(9)を用いて算出する。
【0081】
【0082】
そして、領域決定部12は、次の数式(10)で示すように、対象道路の終端の交差点に始点で接続する道路d_j(j=1,・・・,n_d)それぞれの出力交通流量oq_jの総和を対象道路からの出力交通流量ОQとして算出する。
【0083】
【0084】
次に、領域決定部12は、入力交通流量IQと出力交通流量OQの比Rqを求める。比Rqが予め設定されたαより小さければ、領域決定部12は、対象道路をメゾモデル領域とする。逆に、比Rqが予め設定されたα以上であれば、領域決定部12は、対象道路をミクロモデル領域とする。ここで、αは、実験で求めることが可能である。例えば、αは、1.1とすることができる。
【0085】
以上のように各道路についてミクロモデル領域かメゾモデル領域かを決定した後、領域決定部12は、決定結果に基づいて道路情報格納部24に格納された道路情報を更新する。また、領域決定部12は、1ステップ毎の領域決定の完了を連携部13に通知する。
【0086】
ここで、領域決定部12は、ミクロモデル領域と決定した道路の周辺の道路も同様の交通状態に遷移する可能性が高いため、それらの領域も含めてミクロモデル領域を設定してもよい。例えば、領域決定部12は、ミクロモデル領域と決定した道路を起点として、車両の進行方向の予め決められたn(m)先までの道路をミクロモデル領域としてもよい。nは、例えば、シミュレーションの1ステップの時間で車両が進む距離とすることができる。また、領域決定部12は、ミクロモデル領域と決定した道路の半径rの領域に含まれる道路をミクロモデル領域としてもよい。rは、例えば、シミュレーションの1ステップの時間で車両が進む距離とすることができる。
【0087】
他にも、領域決定部12は、地図を解像度が異なるメッシュ階層で表し、高解像度から低解像度へ向かって「メッシュ内のミクロモデル領域となる道路の数/ミクロモデル領域以外の道路の数」を集計する。そして、領域決定部12は、集計結果が設定した数以上となるメッシュ層のうち最も解像度が低いメッシュ層をミクロモデル領域としてもよい。
【0088】
すなわち、領域決定部12は、ミクロモデル領域と決定した道路を含み且つ複数の道路を含む結合領域について、結合領域を異なる数に分割した複数の分割パターンを作成して、分割数にしたがってメッシュ階層を作成する。そして、領域決定部12は、分割パターンに対応するメッシュ階層に含まれる各分割領域において、その分割領域に含まれるミクロモデル領域とされた道路の数とそれ以外の道路の数との比を求める。すなわち、領域決定部12は、「ミクロモデル領域とされた道路の数/ミクロモデル領域とされた道路以外の道路の数」を求める。次に、領域決定部12は、分割領域に含まれるミクロモデル領域とされた道路の数とそれ以外の道路の数との比が予め設定した値以上であり且つ比の値が最小となる分割領域を特定する。そして、領域決定部12は、特定した分割領域に含まれる道路をミクロモデル領域とする。
【0089】
連携部13は、1ステップ毎の領域決定の完了通知を領域決定部12から受ける。そして、連携部13は、道路情報を道路情報格納部24から取得する。また、連携部13は、車両情報を車両情報格納部23から取得する。さらに、連携部13は、道路情報を地図管理部14から取得する。
【0090】
図11は、車両情報の一例を示す図である。
図11に示すように、車両情報は、車両の識別情報、各車両がその時点のステップで滞在する道路の識別情報及び各車両が前のステップで滞在していた道路の識別情報を含む。例えば、
図11の車両情報は、車両car31が道路road42からroad41へ移動したことを示し、車両car32が道路road43内で移動したことを示す。
【0091】
そして、連携部13は、各車両がミクロモデル領域とメゾモデル領域のいずれに属するかにしたがって、ミクロシミュレータ15とメゾシミュレータ16との間で車両の移動を行う。以下に連携部13によるシミュレータ間の車両移動処理の詳細について説明する。ここでは、連携部13が実行する、特定の対象車両に対する車両移動処理について説明する。連携部13は、以下の車両移動処理を全ての車両に対して実行する。
【0092】
図12は、車両が移動によって異なるモデル領域の道路へ侵入するケースを示す図である。
図12における領域145がミクロモデル領域にあたる。また、領域145以外の領域がメゾモデル領域にあたる。状態141から状態142への遷移は、メゾモデル領域からミクロモデル領域への車両140の移動を示す。状態142から状態143への遷移は、ミクロモデル領域からメゾモデル領域への車両140の移動を示す。
【0093】
連携部13は、取得した車両情報から対象車両の情報を取得する。次に、連携部13は、その時点のステップでの対象車両の滞在道路である現道路と、前のステップでの対象車両の滞在道路である前道路とを比較する。
【0094】
現道路と前道路とが異なれば、連携部13は、現道路のモデル領域及び前道路の前モデル領域を道路情報から取得する。そして、連携部13は、現道路のモデル領域と前道路の前モデル領域とを比較する。現道路のモデル領域と前道路の前モデル領域とが同じであれば、連携部13は、対象車両に対するシミュレータ間の車両移動処理を終了する。
【0095】
これに対して、現道路のモデル領域と前道路の前モデル領域とが異なる場合、前道路がメゾモデル領域であれば、連携部13は、
図12の状態141から状態142への遷移と同様に、対象車両はメゾモデル領域からミクロモデル領域へ移動したと判定する。そして、連携部13は、対象車両の情報のメゾ情報からの削除をメゾシミュレータ16に指示する。次に、連携部13は、道路の識別情報はミクロ情報とメゾ情報との間で共通であるので、対象車両が現道路の始点の位置に存在するとしたミクロ情報を生成する。そして、連携部13は、生成したミクロ情報をミクロシミュレータ15へ出力する。これにより、新たにミクロモデル領域の道路に侵入した対象車両の情報が、ミクロ情報に加えられる。
【0096】
図13は、車両が異なる種類のモデル領域に移動した場合の車両の情報の設定方法を説明するための図である。例えば、車両220がメゾモデル領域の道路221からミクロモデル領域の道路222へ侵入した場合、連携部13は、道路221の待ち行列から出た車両220を次の待ち行列に入れずに、道路222の始点に車両220を配置する。
【0097】
反対に前道路がミクロモデル領域であれば、連携部13は、
図12の状態142から状態143への遷移と同様に、対象車両はミクロモデル領域からメゾモデル領域へ移動したと判定する。そして、連携部13は、対象車両の情報のミクロ情報からの削除をミクロシミュレータ15に指示する。次に、連携部13は、道路の識別情報はミクロ情報とメゾ情報との間で共通であるので、メゾ情報の中のメゾ道路情報における現道路の待ち行列の最後に対象車両の情報を加える指示をメゾシミュレータ16に通知する。さらに、連携部13は、対象車両が現道路に存在し且つ滞在時間が0であるとしたメゾ車両情報を生成する。そして、連携部13は、生成したメゾ車両情報をミクロシミュレータ15へ出力する。これにより、新たにメゾモデル領域の道路に侵入した対象車両の情報が、メゾ情報に加えられる。
【0098】
例えば、
図13に示すように、車両220がミクロモデル領域の道路223からメゾモデル領域の道路224へ侵入した場合、連携部13は、道路223から出た車両220を道路の始点には置かずに、道路224の待ち行列の最後尾に車両220を追加する。
【0099】
一方、現道路と前道路とが同一の場合、連携部13は、現道路のその時点でのモデル領域である現モデル領域と前のステップでのモデル領域である前モデル領域の情報を、取得した道路情報から取得する。そして、連携部13は、現モデル領域と前モデル領域とを比較する。現モデル領域と前モデル領域とが同一であれば、連携部13は、対象車両に対するシミュレータ間の車両移動処理を終了する。これに対して、現モデル領域と前モデル領域とが異なる場合、連携部13は、以下の処理を実行する。
【0100】
図14は、車両が存在する道路のモデル領域が変化するケースを示す図である。
図14における領域155がミクロモデル領域にあたる。また、領域155以外の領域がメゾモデル領域にあたる。状態151から状態152への遷移は、交差点付近が、メゾモデル領域からミクロモデル領域へ変化したことを示す。また、状態152から状態153への遷移は、交差点付近がミクロモデル領域からメゾモデル領域への変化したことを示す。
【0101】
前モデル領域がメゾモデル領域であり現モデル領域がミクロモデル領域である場合、連携部13は、
図14の状態151から状態152への遷移と同様に、対象車両が存在する道路がメゾモデル領域からミクロモデル領域へ変化したと判定する。そして、連携部13は、メゾ情報の中の対象車両の情報をメゾシミュレータ16から取得する。次に、連携部13は、取得したメゾ情報に含まれる対象車両の現道路での滞在時間及び現道路の速度上限から対象車両の現道路内での移動距離を算出する。連携部13は、例えば次の数式(11)で移動距離を求めることができる。
【0102】
【0103】
ここで、d_iは移動距離を表す。また、t_iは滞在時間を表す。また、Vmax_iは速度上限を表す。連携部13は、地図管理部14から取得した地図情報から速度上限を取得可能である。
【0104】
次に、連携部13は、メゾ情報の中のメゾ道路情報における現道路の待ち行列からの対象車両の情報の削除及びメゾ車両情報からの対象車両の情報の削除をメゾシミュレータ16に指示する。この場合、現道路に存在する車両は最終的に待ち行列から全て削除されるため、待ち行列に車両が存在しなくなると、連携部13は、現道路のメゾ道路情報からの削除をメゾシミュレータ16に指示する。また、連携部13は、算出した移動距離を対象車両が現道路の始点から進んだ位置に存在するミクロ情報を生成する。そして、連携部13は、生成したミクロ情報をミクロシミュレータ15へ出力する。これにより、ミクロモデル領域に変化した道路に存在する対象車両の情報が、ミクロ情報に加えられる。
【0105】
図15は、車両が存在する道路が異なる種類のモデル領域に遷移した場合の車両の情報の設定方法を説明するための図である。例えば、車両230が走行する道路231がメゾモデル領域からミクロモデル領域に変化した場合、連携部13は、道路231の待ち行列に格納されていた滞在時間から、道路231の始点からの距離L11を算出して、その位置に車両230を配置する。同様に、車両240が走行する道路241がメゾモデル領域からミクロモデル領域に変化した場合、連携部13は、道路241の待ち行列に格納されていた滞在時間から、道路241の始点からの距離L12を算出して、その位置に車両240を配置する。
【0106】
反対に前モデル領域がミクロモデル領域であり現モデル領域がメゾモデル領域である場合、連携部13は、
図13の状態152から状態153への遷移と同様に、対象車両が存在する道路がミクロモデル領域からメゾモデル領域へ変化したと判定する。そして、連携部13は、対象車両のミクロ情報をミクロシミュレータ15から取得する。次に、連携部13は、取得したミクロ情報の中から対象車両の速度及び位置を取得する。そして、連携部13は、対象車両の速度及び位置から現道路における滞在時間を算出する。連携部13は、例えば次の数式(12)で滞在時間を求めることができる。
【0107】
【0108】
ここで、t_iは滞在時間である。また、v_iは対象車両の速度であり、d_iは現道路の始点から対象車両のその時点の位置までの距離である。例えば、連携部13は、道路情報の他の情報に含まれる各道路を表す折れ線の位置情報と対象車両の位置の情報とから現道路の始点から対象車両のその時点の位置までの距離を算出可能である。
【0109】
その後、連携部13は、対象車両の情報のミクロ情報からの削除の指示をミクロシミュレータ15に通知する。さらに、連携部13は、対象車両の現道路における滞在時間を登録したメゾ車両情報を生成する。そして、連携部13は、生成したメゾ車両情報をメゾシミュレータ16へ出力する。また、連携部13は、メゾ情報の中のメゾ道路情報における現道路の待ち行列に対象車両の情報を、対象車両の滞在時間に応じて追加する指示をメゾシミュレータ16に通知する。ただし、現道路の情報がメゾ情報のメゾ道路情報に存在しない場合、連携部13は、対象車両を現道路の待ち行列に加えた現道路のメゾ道路情報を生成する。そして、連携部13は、生成したメゾ道路情報をメゾシミュレータ16へ出力する。これにより、メゾモデル領域に変化した道路に存在する対象車両の情報が、メゾ情報に加えられる。
【0110】
例えば、
図15に示すように、車両230が走行する道路232がミクロモデル領域からメゾモデル領域に変化した場合、連携部13は、道路232における始点からの距離L14と車両230の速度とを用いて滞在時間を算出して、道路232の待ち行列に車両230を格納する。同様に、車両240が走行する道路242がミクロモデル領域からメゾモデル領域に変化した場合、連携部13は、道路242における始点からの距離L13と車両240の速度とを用いて滞在時間を算出して、道路242の待ち行列に車両240を格納する。
【0111】
図16は、シミュレーション全体の動作を示すフロー図である。次に、
図16を参照して、交通シミュレーション装置1によるシミュレーション全体の流れを説明する。
【0112】
交通シミュレーション装置1の領域決定部12は、各道路がミクロモデル領域かメゾモデル領域かを決定する(ステップS1)。
【0113】
次に、交通シミュレーション装置1の連携部13は、各道路のモデル領域及び各車両の移動を基に、各車両をミクロシミュレータ15とメゾシミュレータ16との間で移動させる(ステップS2)。
【0114】
その後、交通シミュレーション装置1のステップ制御部11は、シミュレーションを1ステップ進ませる(ステップS3)。
【0115】
そして、ステップ制御部11は、総ステップ数が終了ステップ数に到達したか否かにより、シミュレーションが終了したか否かを判定する(ステップS4)。シミュレーションが未だ終了していない場合(ステップS4:否定)、シミュレーションの実行処理はステップS1へ戻る。
【0116】
これに対して、シミュレーションが終了した場合(ステップS4:肯定)、交通シミュレーション装置1は、シミュレーションを終了する。
【0117】
図17は、道路をミクロモデル領域とメゾモデル領域とに分ける処理のフロー図である。
図17のフローで示した処理は、
図16のステップS1で実行される処理の一例にあたる。次に、
図17を参照して、領域決定部12による道路をミクロモデル領域とメゾモデル領域とに分ける処理の流れについて説明する。
【0118】
領域決定部12は、
図7に示すような車両速度に応じた車両密度と交通流量の関係を用いて、道路毎の車両速度から車両密度と交通流量との関係を表す曲線を特定する。そして、領域決定部12は、その時の車両分布から車両密度を求め、特定した曲線を用いて、その時の車両密度から対象道路がメタ安定状態か否かを判定する(ステップS101)。
【0119】
次に、領域決定部12は、道路毎に、メタ安定状態か否かの判定結果、並びに、入力交通流量及び出力交通流量を用いて、その道路がミクロモデル領域かメゾモデル領域かを決定する(ステップS102)。
【0120】
図18は、メタ安定状態か否かの判定処理のフロー図である。
図18のフローで示した処理は、
図17のステップS101で実行される処理の一例にあたる。次に、
図18を参照して、領域決定部12によるタ安定状態か否かの判定処理の流れについて説明する。以下の説明では、1つの対象道路に対する処理の流れを説明する。領域決定部12は、全ての道路について同様の処理を実行する。
【0121】
領域決定部12は、対象道路の道路情報を道路情報格納部24から取得する(ステップS111)。そして、領域決定部12は、その時点での対象道路のモデル領域の種類を特定する。
【0122】
次に、領域決定部12は、対象道路上の車両の車両情報を取得する。また、領域決定部12は、対象道路の地図情報を取得する。そして、領域決定部12は、地図情報の中から対象道路の長さ及び速度上限を抽出する。次に、領域決定部12は、対象道路における車両密度k、車両平均速度vを求める(ステップS112)。詳しくは、対象道路がミクロモデル領域の場合、領域決定部12は、対象道路に存在する車両数n及び車間距離Δx_iから、車両密度k=n/ΣΔx_iを算出する。また、領域決定部12は、対象道路に存在する各車両の速度の平均値を車両平均速度vとして算出する。これに対して、対象とする道路がメゾモデル領域の場合、領域決定部12は、車両数n及び道路長Lから、車両密度kをk=n/Lと算出する。また、領域決定部12は、車両平均速度vを、最適速度モデルにしたがう数式(1)を用いて算出する。
【0123】
次に、領域決定部12は、算出した車両密度k及び平均車両速度vを用いて、数式(2)から交通流量Qを求める。次に、領域決定部12は、交通流量Qの極大値での極大値車両密度k_pを算出する(ステップS113)。
【0124】
次に、領域決定部12は、その時点での車両密度kと極大値車両密度k_pとの差分Δk=k_p-kを求める。そして、領域決定部12は、差分Δkが0以上で且つ設定値δより小さいか否かを判定する(ステップS114)。
【0125】
差分Δkが0以上で且つ設定値δより小さい場合(ステップS114:肯定)、領域決定部12は、対象道路をメタ安定状態と判定する(ステップS115)。
【0126】
これに対して、差分Δkが0未満もしくは設定値δ以上の場合(ステップS114:否定)、領域決定部12は、対象道路をメタ安定状態でないと判定する(ステップS116)。
【0127】
図19は、対象道路のモデル領域を判定する処理のフロー図である。
図19のフローで示した処理は、
図17のステップS102で実行される処理の一例にあたる。次に、
図19を参照して、領域決定部12による対象道路のモデル領域を判定する処理の流れについて説明する。以下の説明では、1つの対象道路に対する処理の流れを説明する。領域決定部12は、全ての道路について同様の処理を実行する。
【0128】
領域決定部12は、対象の道路の道路情報にメタ安定状態か否かの判定結果を加えた情報を取得する(ステップS121)。
【0129】
次に、領域決定部12は、対象道路がメタ安定状態か否かを判定する(ステップS122)。対象道路がメタ安定状態でない場合(ステップS122:否定)、領域決定部12は、道路情報を用いて、対象道路の終端に交差点があるか否かを判定する(ステップS123)。対象道路の終端に交差点がない場合(ステップS123:否定)、領域決定部12は、処理をステップS126へ進ませる。
【0130】
これに対して、対象道路の終端に交差点がある場合(ステップS123:肯定)、領域決定部12は、対象道路と接続する各道路について入力交通流量及び出力交通流量を算出する(ステップS124)。詳しくは、領域決定部12は、対象の道路の接続先の道路について、対象の道路を含め終点で接続する道路を道路u_i(i=1,・・・,n_u)とし、始点で接続する道路を道路d_j(j=1,・・・,n_d)とする。次に、この時点で道路u_iがミクロモデル領域であれば、領域決定部12は、道路u_iに滞在する全車両の速度の平均値を車両速度v_iとして算出し、各車両の車間距離の総和を車列長L_iとして算出する。逆に、道路u_iがメゾモデル領域であれば、領域決定部12は、車両速度v_iを速度上限とし、且つ、車列長L_iは道路長とする。さらに、領域決定部12は、数式(7)を用いて、道路u_iそれぞれからの対象の道路の終端の交差点への入力交通流量iq_iを算出する。そして、領域決定部12は、数式(8)を用いて、道路u_i(i=1,・・・,n_u)それぞれの入力交通流量iq_iの総和を対象道路への入力交通流量IQとして算出する。また、領域決定部12は、道路d_j(j=1,・・・,n_d)について、車両数n_j(台)、車両速度v_j(m/s)、及び車列長L_j(m)を、道路u_iと同様の方法で求める。その後、領域決定部12は、数式(9)を用いて、道路d_jそれぞれへの対象の道路の終端の交差点からの出力交通流量oq_jを算出する。次に、領域決定部12は、数式(10)を用いて、道路d_j(j=1,・・・,n_d)それぞれの出力交通流量oq_jの総和を対象道路からの出力交通流量ОQとして算出する。
【0131】
次に、領域決定部12は、入力交通流量IQと出力交通流量OQの比Rq=IQ/OQを算出する。そして、領域決定部12は、比Rqが予め設定されたα未満かを判定する(ステップS125)。
【0132】
対象道路の終端に交差点が無い場合(ステップS123:否定)又は比Rqがα未満の場合(ステップS125:肯定)、領域決定部12は、対象道路をメゾモデル領域と決定する(ステップS126)。
【0133】
これに対して、対象道路がメタ安定状態の場合(ステップS122:肯定)又は比Rqがα以上の場合(ステップS125:否定)、領域決定部12は、対象道路をミクロモデル領域と決定する(ステップS127)。
【0134】
図20は、シミュレータ間の車両転送処理のフロー図である。
図20のフローで示した処理は、
図16のステップS2で実行される処理の一例にあたる。次に、
図20を参照して、連携部13によるシミュレータ間の車両転送処理の流れについて説明する。以下の説明では、1台の対象車両に対する処理の流れを説明する。連携部13は、全ての車両について同様の処理を実行する。
【0135】
連携部13は、対象車両の車両情報を車両情報格納部23から取得する(ステップS201)。また、連携部13は、道路情報を道路情報格納部24から取得する。さらに、連携部13は、道路情報を地図管理部14から取得する。
【0136】
次に、連携部13は、その時点のステップで対象車両が存在する現道路と、前のステップで対象車両が存在した前道路とを比較して、対象車両が滞在する滞在道路の変化がないか否かを判定する(ステップS202)。
【0137】
現道路と前道路とが異なる場合(ステップS202:否定)、連携部13は、現道路のモデル領域及び前道路のモデル領域を道路情報から取得する(ステップS203)。
【0138】
次に、連携部13は、現道路のモデル領域と前道路の前モデル領域とが同じか否かを判定する(ステップS204)。現道路のモデル領域と前道路の前モデル領域とが一致する場合(ステップS204:肯定)、連携部13は、対象車両に対するシミュレータ間の車両転送処理を終了する。
【0139】
これに対して、現道路のモデル領域と前道路の前モデル領域とが異なる場合(ステップS204:否定)、連携部13は、車両の移動により滞在道路のモデル領域がメゾモデル領域からミクロモデル領域へ変化したか否かを判定する(ステップS205)。
【0140】
車両の移動により滞在道路のモデル領域がメゾモデル領域からミクロモデル領域へ変化した場合(ステップS205:肯定)、対象車両をメゾシミュレータ16からミクロシミュレータ15へ転送する(ステップS206)。
【0141】
これに対して、車両の移動により滞在道路のモデル領域がミクロモデル領域からメゾモデル領域へ変化した場合(ステップS205:否定)、対象車両をミクロミュレータ15からメゾシミュレータ16へ転送する(ステップS207)。
【0142】
一方、現道路と前道路とが同じ場合(ステップS202:肯定)、連携部13は、滞在道路の現在のモデル領域及び前のステップでのモデル領域の情報を取得する(ステップS208)。
【0143】
次に、連携部13は、対象車両の滞在道路のモデル領域に変化がないか否かを判定する(ステップS209)。対象車両の滞在道路のモデル領域に変化がない場合(ステップS209:肯定)、連携部13は、対象車両に対するシミュレータ間の車両移動処理を終了する。
【0144】
これに対して、対象車両の滞在道路のモデル領域に変化がある場合(ステップS209:否定)、連携部13は、対象車両の滞在道路のモデル領域がメゾモデル領域からミクロモデル領域に変化したか否かを判定する(ステップS210)。
【0145】
対象車両の滞在道路のモデル領域がメゾモデル領域からミクロモデル領域に変化した場合(ステップS210:肯定)、対象車両をメゾシミュレータ16からミクロシミュレータ15へ転送する(ステップS211)。
【0146】
これに対して、対象車両の滞在道路のモデル領域がミクロモデル領域からメゾモデル領域へ変化した場合(ステップS210:否定)、対象車両をミクロミュレータ15からメゾシミュレータ16へ転送する(ステップS212)。
【0147】
図21は、メゾモデル領域からミクロモデル領域へ移動した車両の転送処理のフロー図である。
図21のフローで示した処理は、
図20のステップS206で実行される処理の一例にあたる。次に、
図21を参照して、連携部13によるメゾモデル領域からミクロモデル領域へ移動した車両の転送処理の流れについて説明する。
【0148】
連携部13は、対象車両の情報のメゾ道路情報からの削除をメゾシミュレータ16に指示して、対象車両の情報をメゾ道路情報における対象車両の現道路の待ち行列から削除させる(ステップS221)。
【0149】
次に、連携部13は、メゾシミュレータ16に指示して、対象車両の情報をメゾ車両情報から削除させる(ステップS222)。
【0150】
さらに、連携部13は、対象車両が現道路の始点の位置に存在するとしたミクロ情報を生成する。そして、連携部13は、生成したミクロ情報をミクロシミュレータ15へ出力して、対象車両の位置を現道路の始点とした対象車両の情報をミクロ情報に加えさせる(ステップS223)。
【0151】
図22は、ミクロモデル領域からメゾモデル領域へ移動した車両の移動処理のフロー図である。
図22のフローで示した処理は、
図20のステップS207で実行される処理の一例にあたる。次に、
図22を参照して、連携部13によるミクロモデル領域からメゾモデル領域へ移動した車両の転送処理の流れについて説明する。
【0152】
連携部13は、ミクロシミュレータ15に指示して、対象車両の情報をミクロ情報から削除させる(ステップS231)。
【0153】
次に、連携部13は、対象車両のメゾ道路情報への追加をメゾシミュレータ16に指示して、メゾ道路情報における対象車両の現道路の待ち行列の最後に対象車両の情報を追加させる(ステップS232)。
【0154】
さらに、連携部13は、対象車両が現道路に存在し且つ滞在時間が0であるとしたメゾ情報のうちのメゾ車両情報を生成する。そして、連携部13は、生成したメゾ車両情報をメゾシミュレータ16へ出力して、滞在時間を0とした対象車両の情報をメゾ車両情報に追加する(ステップS233)。
【0155】
図23は、メゾモデル領域からミクロモデル領域へ変化した道路上の車両の転送処理のフロー図である。
図23のフローで示した処理は、
図20のステップS211で実行される処理の一例にあたる。次に、
図23を参照して、連携部13によるメゾモデル領域からミクロモデル領域へ変化した道路上の車両の転送処理の流れについて説明する。
【0156】
連携部13は、メゾ情報の中の対象車両の情報をメゾシミュレータ16から取得する。そして、連携部13は、取得した対象車両のメゾ情報から対象車両の滞在道路における滞在時間の情報を取得する(ステップS241)。
【0157】
次に、連携部13は、地図情報を地図管理部14から取得して、地図情報から滞在道路の速度上限の情報を取得する(ステップS242)。
【0158】
次に、連携部13は、数式(11)を用いて、滞在道路の速度上限及び対象車両の滞在時間から対象車両の滞在道路内での移動距離である道路内移動距離を算出する(ステップS243)。
【0159】
次に、連携部13は、メゾ情報の中のメゾ道路情報からの対象車両の情報の削除をメゾシミュレータ16に指示して、対象車両の情報をメゾ道路情報における滞在道路の待ち行列から対象車両の情報を削除させる(ステップS244)。
【0160】
さらに、連携部13は、メゾシミュレータ16に指示して、対象車両の情報の削除をメゾ車両情報から削除させる(ステップS245)。
【0161】
次に、連携部13は、現道路の始点から道路内移動距離進んだ位置に対象車両を配置してミクロ情報を生成する。そして、連携部13は、生成したミクロ情報をミクロシミュレータ15へ出力して、滞在道路上で道内移動距離進んだ位置に配置した対象車両の情報をミクロ情報に追加する(ステップS246)。
【0162】
図24は、ミクロモデル領域からメゾモデル領域へ変化した道路上の車両の転送処理のフロー図である。
図24のフローで示した処理は、
図20のステップS212で実行される処理の一例にあたる。次に、
図24を参照して、連携部13によるミクロモデル領域からメゾモデル領域へ変化した道路上の車両の転送処理の流れについて説明する。
【0163】
連携部13は、ミクロ情報の中の対象車両の情報をミクロシミュレータ15から取得する。そして、連携部13は、取得した対象車両のミクロ情報から対象車両の位置及び速度を取得する(ステップS251)。
【0164】
次に、連携部13は、数式(12)を用いて、対象車両の速度及び位置から滞在道路における滞在時間を算出する(ステップS252)。
【0165】
次に、連携部13は、ミクロシミュレータ15に指示して、対象車両の情報をミクロ情報から削除させる(ステップS253)。
【0166】
次に、連携部13は、メゾ情報の中のメゾ道路情報への対象車両の情報の追加をメゾシミュレータ16に指示して、対象車両の滞在時間に応じてメゾ道路情報における滞在道路の待ち行列に対象車両の情報を追加させる(ステップS254)。
【0167】
また、連携部13は、対象車両の滞在道路における滞在時間を登録したメゾ車両情報を生成する。そして、連携部13は、生成したメゾ車両情報をメゾシミュレータ16へ出力して、算出した滞在時間を有する対象車両の情報をメゾ車両情報に追加する(ステップS255)。
【0168】
以上に説明したように、本実施例に係る交通シミュレーション装置は、道路がメタ安定状態か否かを判定する。そして、交通シミュレーション装置は、メタ安定状態の判定結果、並びに、道路への入力交通流量及び出力交通流量を用いて各道路についてミクロモデル領域とするかメゾモデル領域とするかを決定する。
【0169】
これにより、本実施例に係る交通シミュレーション装置は、渋滞が発生している領域ではなく、渋滞が発生しそうな領域を検出することができる。そして、本実施例に係る交通シミュレーション装置は、渋滞が発生しそうな領域についてはミクロモデルを用いたシミュレーションを行い、それ以外の領域ではメゾモデルを用いたシミュレーションを行う。そして、ミクロモデルを用いたシミュレーションとメゾモデルを用いたシミュレーションとを分担させて異なるシミュレータで実行させる。これにより、高解像度でシミュレート領域を抑えつつ精度の良いシミュレーションを実現することができる。したがって、広域で高解像度のシミュレーションと同等の結果を、計算量を抑えつつ低い計算コストで求めることが可能になる。
【0170】
(ハードウェア構成)
図25は、実施例に係る交通シミュレーション装置のハードウェア構成図である。次に、
図25を参照して、実施例に係る交通シミュレーション装置1を実現するためのハードウェア構成の一例について説明する。
【0171】
係る交通シミュレーション装置1は、例えば、
図25に示すように、CPU(Central Processing Unit)91、メモリ92,記憶装置93、出力制御装置94、入力制御装置95、メディア読取装置96及びネットワークインタフェース97を有する。
【0172】
CPU91は、バスを介して、メモリ92,記憶装置93、出力制御装置94、入力制御装置95、メディア読取装置96及びネットワークインタフェース97のそれぞれと接続される。
【0173】
出力制御装置94は、モニタ2などに接続される。そして、出力制御装置94は、CPU91から指定された画像などのデータをモニタ2に表示させる。
【0174】
入力制御装置95は、マウス3やキーボード4などが接続される。そして、入力制御装置95は、マウス3やキーボード4などを用いて入力された情報をCPU91へ転送する。
【0175】
メディア読取装置96は、DVD(Digital Versatile Disc)ドライブなどである。メディア読取装置96は、DVDなどの可搬記憶媒体5からのデータの読み込みや、可搬記憶媒体5へのデータの書き込みを行う。
【0176】
ネットワークインタフェース97は、交通シミュレーション装置1と外部装置との間の通信インタフェースである。ネットワークインタフェース97は、ネットワーク6に接続され、ネットワーク6を介してCPU91と外部装置との間の通信を中継する。
【0177】
記憶装置93は、ハードディスクドライブやSSD(Solid State Drive)などの補助記憶装置である。記憶装置93は、
図1に例示した、ミクロ情報格納部21、メゾ情報格納部22、車両情報格納部23、道路情報格納部24及び地図情報格納部25の機能を実現する。また、記憶装置93は、
図1に例示した、ステップ制御部11、領域決定部12、連携部13、地図管理部14、ミクロシミュレータ15及びメゾシミュレータ16などの機能を実現するためのプログラムを含む各種プログラムを格納する。
【0178】
メモリ92は、主記憶装置である。メモリ92は、例えば、DRAM(Dynamic Random Access Memory)などである。
【0179】
CPU91は、記憶装置93に格納された各種プログラムを読み出してメモリ92に展開して実行する。これにより、CPU91は、
図1に例示した、ステップ制御部11、領域決定部12、連携部13、地図管理部14、ミクロシミュレータ15及びメゾシミュレータ16などの機能を実現する。
【0180】
図26は、交通シミュレーション装置の他の構成例を示す図である。
図1では、1つの装置である交通シミュレーション装置1の中に、ステップ制御部11、領域決定部12、連携部13、地図管理部14、ミクロシミュレータ15及びメゾシミュレータ16などの機能が搭載される構成を示した。ただし、これらの機能の一部を、異なる装置が有する構成も可能である。
【0181】
例えば、
図26に示す情報処理装置301~303で、交通シミュレーション装置1と実現してもよい。情報処理装置301~303は、サーバなどである。
【0182】
例えば、情報処理装置301~303が、それぞれネットワークで接続される。そして、情報処理装置301は、ステップ制御部11、領域決定部12、連携部13、地図管理部14、車両情報格納部23、道路情報格納部24及び地図情報格納部25を有する。また、情報処理装置302は、ミクロシミュレータ15及びミクロ情報格納部21を有する。また、情報処理装置303は、メゾシミュレータ16及びメゾ情報格納部22を有する。
【0183】
この場合、ミクロモデルを用いたシミュレーションとメゾモデルを用いたシミュレーションとは、それぞれが情報処理装置302と情報処理装置303という異なる装置で実行される。そして、情報処理装置301は、道路のモデル領域の決定や、シミュレータ間での車両転送処理を実行する。