(57)【要約】【課題】計算時間を増大させることなく、正確な交通流のシミュレーションを行う。【解決手段】道路ネットワーク情報記憶領域に、道路区間の各々を表す複数のリンク、及び複数のリンク間の接続点を表すノードで表された道路ネットワークを示す道路ネットワーク情報を記憶し、イベント記憶領域３２に、道路ネットワーク上の車両モデルの各々について、車両モデルの発生または車両モデルのノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベント３０を記憶し、イベント３０に記述された時刻順にイベント３０を実行し、イベント３０が実行される際に、車両モデルが次のノードへ到着する時刻を計算し、次のノードへの到着を表すイベント３０を生成し、生成したイベント３０をイベント記憶領域３２に追加して記憶する。【選択図】図４
2011086110.tif 000002
【特許請求の範囲】
【請求項１】
道路区間の各々を表す複数のリンク、及び該複数のリンク間の接続点を表すノードで表された道路ネットワークを示す道路ネットワーク情報を記憶した道路ネットワーク情報記憶手段と、
前記道路ネットワーク上の車両モデルの各々について、該車両モデルの発生または該車両モデルの前記ノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベントを記憶したイベント記憶手段と、
前記イベント記憶手段に記憶されたイベントの実行内容を前記時刻順に実行して、対応する前記車両モデルを前記道路ネットワーク上で模擬走行させるイベント実行手段と、
前記イベントが実行されたときに、前記車両モデルが次のノードへ到着する時刻を計算し、前記次のノードへの到着を表すイベントを生成し、生成したイベントを前記イベント記憶手段に追加して記憶するイベント追加手段と、
を含む交通流シミュレーション装置。
【請求項２】
前記イベント追加手段は、前記車両モデルが次に進入するリンクのリンク旅行時間を求めて、次のノードへ到着する時刻を計算する請求項１記載の交通流シミュレーション装置。
【請求項３】
前記リンク旅行時間を、前記次に進入するリンク上に存在する他車両モデルのリンク密度が予め定めた値以上の場合には、自由流時のリンク旅行時間とし、前記リンク密度が前記予め定めた値を超える場合には、前記自由流時のリンク旅行時間よりも長い渋滞時のリンク旅行時間とした請求項２記載の交通流シミュレーション装置。
【請求項４】
前記イベント追加手段は、さらに、現在のノードから次のリンクへ流出するまでにかかる流出時間を求める請求項２または請求項３記載の交通流シミュレーション装置。
【請求項５】
前記イベント追加手段は、前記車両モデルが次に進入するリンクが飽和状態の場合には、前記流出時間を該リンク上の他車両モデルの数に応じて求め、前記車両モデルの発生時刻または前記車両モデルの現在のノードへの到着時刻を前記流出時間遅らせた時刻に修正したイベントを追加する請求項４記載の交通流シミュレーション装置。
【請求項６】
前記イベント追加手段は、前記車両モデルが一時停止して次のリンクに進入する場合には、一時停止の種類に応じた待ち時間を前記流出時間として求め、該待ち時間の終了時刻を記述したイベントを追加する請求項４または請求項５項記載の交通流シミュレーション装置。
【請求項７】
前記イベント記憶手段に記憶されるイベントを、前記車両モデルが現在存在するリンク毎に記憶した請求項１〜請求項６のいずれか１項記載の交通流シミュレーション装置。
【請求項８】
時間分解能の異なる複数のシミュレーションを実行するためのイベントを前記イベント記憶手段に記憶し、前記複数のシミュレーションを連携して実行する請求項１〜請求項７のいずれか１項記載の交通流シミュレーション装置。
【請求項９】
前記イベント実行手段は、前記道路ネットワークデータを地理的に分割可能なブロックに分割し、ブロック毎のイベントを並行して実行する請求項１〜請求項８のいずれか１項記載の交通流シミュレーション装置。
【請求項１０】
コンピュータを、
道路区間の各々を表す複数のリンク、及び該複数のリンク間の接続点を表すノードで表された道路ネットワーク上の車両モデルの各々について、該車両モデルの発生または該車両モデルの前記ノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベントをイベント記憶手段に記憶するように制御するイベント記憶制御手段、
前記イベント記憶手段に記憶されたイベントの実行内容を前記時刻順に実行して、対応する前記車両モデルを前記道路ネットワーク上で模擬走行させるイベント実行手段、及び
前記イベントが実行されたときに、前記車両モデルが次のノードへ到着する時刻を計算し、前記次のノードへの到着を表すイベントを生成し、生成したイベントを前記イベント記憶手段に追加して記憶するイベント追加手段
として機能させるための交通流シミュレーションプログラム。
【請求項１１】
コンピュータを、請求項１〜請求項９のいずれか１項記載の交通流シミュレーション装置の各構成として機能させるための交通流シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、交通流シミュレーション装置及びプログラムに関する。
【背景技術】
【０００２】
従来、１レーン毎に独立した単位距離のブロックを並列配置して複数レーンの多入力多出力ブロックモジュールを構成し、車両モデルには車種、進行方向、目的地、乗用車換算係数等が個別に記述された属性を付与し、ブロック密度法により車両密度並びに設定された交通量−密度曲線に従って、自ブロックに隣接する上流側の複数のブロックに対して、予め設定した時間間隔でブロック間の流量を計算する交通流シミュレータが提案されている（特許文献１参照）。
【０００３】
また、経路網上の移動体の計画路データに基づいて、ノード又はリンクが一致する位置として得られる現模擬位置から他の移動体を認知する可能性のある位置に相当する他の移動体との会合可能性区間までの移動時間に基づいて、論理時刻刻み幅Δｔを決定し、決定された論理時刻刻み幅Δｔに基づいて模擬時刻を進める動的タイムステップ制御により移動体の模擬を行う移動体シミュレーション装置が提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−１４７２８５号公報
【特許文献２】特開２００８−１５１７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の特許文献１及び特許文献２に記載の技術のように、タイムステップ制御を行う場合には、離散的な時間しか扱うことができないため、単位時間を長くすれば詳細なシミュレーションを行うことができず、単位時間を短くすれば計算時間が増大する、という問題がある。また、ブロック密度法では、単位距離と単位時間との関係が定められており、単位時間を長くすると、車両モデルが単位時間でリンクを飛び越えてしまう場合もあり、正確なシミュレーションが行えない場合がある、という問題がある。
【０００６】
本発明は、上記の問題点を解決するためになされたもので、計算時間を増大させることなく、正確な交通流のシミュレーションを行うことができる交通流シミュレーション装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の交通流シミュレーション装置は、道路区間の各々を表す複数のリンク、及び該複数のリンク間の接続点を表すノードで表された道路ネットワークを示す道路ネットワーク情報を記憶した道路ネットワーク情報記憶手段と、前記道路ネットワーク上の車両モデルの各々について、該車両モデルの発生または該車両モデルの前記ノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベントを記憶したイベント記憶手段と、前記イベント記憶手段に記憶されたイベントの実行内容を前記時刻順に実行して、対応する前記車両モデルを前記道路ネットワーク上で模擬走行させるイベント実行手段と、前記イベントが実行されたときに、前記車両モデルが次のノードへ到着する時刻を計算し、前記次のノードへの到着を表すイベントを生成し、生成したイベントを前記イベント記憶手段に追加して記憶するイベント追加手段と、を含んで構成されている。
【０００８】
また、本発明の交通流シミュレーションプログラムは、コンピュータを、道路区間の各々を表す複数のリンク、及び該複数のリンク間の接続点を表すノードで表された道路ネットワーク上の車両モデルの各々について、該車両モデルの発生または該車両モデルの前記ノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベントをイベント記憶手段に記憶するように制御するイベント記憶制御手段、前記イベント記憶手段に記憶されたイベントの実行内容を前記時刻順に実行して、対応する前記車両モデルを前記道路ネットワーク上で模擬走行させるイベント実行手段、及び前記イベントが実行されたときに、前記車両モデルが次のノードへ到着する時刻を計算し、前記次のノードへの到着を表すイベントを生成し、生成したイベントを前記イベント記憶手段に追加して記憶するイベント追加手段として機能させるためのプログラムである。
【０００９】
本発明の交通流シミュレーション装置及びプログラムによれば、道路ネットワーク情報記憶手段に、道路区間の各々を表す複数のリンク、及び該複数のリンク間の接続点を表すノードで表された道路ネットワークを示す道路ネットワーク情報が記憶されている。また、イベント記憶手段に、道路ネットワーク上の車両モデルの各々について、車両モデルの発生または車両モデルのノードへの到着を含む車両挙動を示す実行内容、及び実行内容が実行される時刻を記述したイベントが記憶されている。
【００１０】
そして、イベント実行手段が、イベント記憶手段に記憶されたイベントの実行内容をイベントに記述された時刻順に実行して、対応する車両モデルを道路ネットワーク上で模擬走行させ、イベント追加手段が、イベントが実行されたときに、車両モデルが次のノードへ到着する時刻を計算し、次のノードへの到着を表すイベントを生成し、生成したイベントをイベント記憶手段に追加して記憶する。
【００１１】
このように、イベント駆動型のシミュレーションを交通流シミュレーションに適用し、イベントが実行されたときに、次のノードへの到着を表すイベントを追加するため、計算時間を増大させることなく、正確な交通流のシミュレーションを行うことができる。
【００１２】
また、前記イベント追加手段は、前記車両モデルが次に進入するリンクのリンク旅行時間を求めて、次のノードへ到着する時刻を計算するようにすることができる。また、前記リンク旅行時間を、前記次に進入するリンク上に存在する他車両モデルのリンク密度が予め定めた値以上の場合には、自由流時のリンク旅行時間とし、前記リンク密度が前記予め定めた値を超える場合には、前記自由流時のリンク旅行時間よりも長い渋滞時のリンク旅行時間とすることができる。これにより、次に進入するリンクが自由流か渋滞かによって、次のノードへの到着時刻を異ならせることができるため、より正確な交通流のシミュレーションを行うことができる。
【００１３】
また、前記イベント追加手段は、さらに、現在のノードから次のリンクへ流出するまでにかかる流出時間を求めることができる。例えば、前記イベント追加手段は、前記車両モデルが次に進入するリンクが飽和状態の場合には、前記流出時間を該リンク上の他車両モデルの数に応じて求め、前記車両モデルの発生時刻または前記車両モデルの現在のノードへの到着時刻を前記流出時間遅らせた時刻に修正したイベントを追加したり、前記車両モデルが一時停止して次のリンクに進入する場合には、一時停止の種類に応じた待ち時間を前記流出時間として求め、該待ち時間の終了時刻を記述したイベントを追加したりすることができる。これにより、次のリンクが飽和状態で進入できない場合や、右折や信号待ち等で、次のリンクに進入する前に一時停止が必要な場合にも対応して、より正確な交通流のシミュレーションを行うことができる。
【００１４】
また、前記イベント記憶手段に記憶されるイベントを、前記車両モデルが現在存在するリンク毎に記憶するようにすることもできる。例えば、上記のように現在のノードへの到着時刻を予め定めた時間遅らせた時刻に修正した場合などには、同一リンク内の他車両モデルの到着時刻も修正する必要があるが、イベントがリンク毎に記憶されていれば、この修正処理も容易になる。
【００１５】
また、時間分解能の異なる複数のシミュレーションを実行するためのイベントを前記イベント記憶手段に記憶し、前記複数のシミュレーションを連携して実行するようにすることができる。例えば、渋滞シミュレーションのように時間分解能が１秒程度のものと、車車間通信を用いた車両挙動をシミュレーションする通信シミュレーションのように時間分解能が１００ｎ秒〜１ｍ秒程度のものについては、タイムステップ方によるシミュレーションでは、時間分解能が細かい方に単位時間を合わせる必要があるなど、連携が困難である。しかし、本発明のようにイベント駆動型のシミュレーションによれば、それぞれのシミュレーションで実行される内容をイベントとして記述することで、容易にそれぞれのシミュレーションを連携して実行することができる。
【００１６】
また、前記イベント実行手段は、前記道路ネットワークデータを地理的に分割可能なブロックに分割し、ブロック毎のイベントを並行して実行するようにすることができる。このように、地理的に分割可能なブロックで実行されるイベントの各々は、相関がないか、または相関が小さいと考えられるため、並行処理が可能であり、これにより、計算時間をより短縮することができる。
【００１７】
なお、本発明のプログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ＲＯＭであってもよい。また、ＣＤ−ＲＯＭやＤＶＤディスク、光磁気ディスクやＩＣカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【発明の効果】
【００１８】
以上説明したように、本発明の交通流シミュレーション装置及びプログラムによれば、イベント駆動型のシミュレーションを交通流シミュレーションに適用し、イベントを実行したときに、次のノードへの到着を表すイベントを追加するため、計算時間を増大させることなく、正確な交通流のシミュレーションを行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態の交通流シミュレーション装置の構成を示すブロック図である。
【図２】道路ネットワークの一例を示す図である。
【図３】イベント記憶領域に記憶されたイベントの一例を示す図である。
【図４】第１の実施の形態の交通流シミュレーション装置における交通流シミュレーション処理ルーチンを示すフローチャートである。
【図５】車両発生データの一例を示す図である。
【図６】車両発生データから生成された発生イベントの一例を示す図である。
【図７】待ち時間イベントの生成及び追加を説明するための図である。
【図８】リンク旅行時間を計算するためのＫ−Ｖ曲線を示す図である。
【図９】次のノードへの到着イベントの生成及び追加を説明するための図である。
【図１０】現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻を修正したイベントの生成及び追加を説明するための図である。
【図１１】１台の車両モデルに着目した場合のイベントの推移を説明するための図である。
【図１２】第２の実施の形態の交通流シミュレーション装置におけるイベント記憶領域に記憶されたイベントの一例を示す図である。
【図１３】第３の実施の形態の交通流シミュレーション装置における複数のシミュレーションの連携を説明するための図である。
【図１４】第３の実施の形態の交通流シミュレーション装置におけるイベント記憶領域に記憶されたイベントの一例を示す図である。
【図１５】第４の実施の形態の交通流シミュレーション装置におけるイベント記憶領域に記憶されたイベントの一例を示す図である。
【図１６】イベント記憶領域に記憶されたイベントの他の例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２１】
図１に示すように、第１の実施の形態の交通流シミュレーション装置１０は、キーボードやマウス等で構成された、各種情報を入力操作するための操作部１２、交通流のシミュレーション結果等を表示するための表示部１４、及び交通流のシミュレーションを実行するコンピュータ１６を備えている。
【００２２】
コンピュータ１６は、交通流シミュレーション装置１０全体の制御を司るＣＰＵ２０、後述する交通流シミュレーションプログラム等各種プログラムを記憶した記憶媒体としてのＲＯＭ２２、ワークエリアとしてデータを一時的に格納するＲＡＭ２４、各種情報が記憶された記憶手段としてのハードディスク（ＨＤＤ）２６、入出力ポート（Ｉ／Ｏポート）２８、ネットワークインターフェース（ネットワークＩ／Ｆ）２９及びこれらを接続するバスを含んで構成されている。Ｉ／Ｏポート２８には、操作部１２及び表示部１４が接続されている。
【００２３】
ＲＯＭ２２またはＨＤＤ２６には、図２に示すような、道路区間の各々を表す複数のリンク、及び複数のリンク間の接続点を表すノードで表された道路ネットワークを示す道路ネットワーク情報が記憶される道路ネットワーク情報記憶領域が設けられている。図２の例では、ノードＡ〜Ｈ、及びリンクｂ〜ｈで道路ネットワークが構築されており、リンクｂとリンクｃとの接続点にノードＢが、リンクｃとリンクｄとリンクｅとリンクｆとの接続点にノードＣが、リンクｆとリンクｇとの接続点にノードＦが、リンクｇとリンクｈとの接続点にノードＧが配置され、リンクｂ、ｄ、ｅ、ｈの他のリンクとの接続点ではない一端に、ノードＡ、Ｄ、Ｅ、Ｈが配置されている。
【００２４】
また、各ノードには、信号スプリットの青信号割合などで定めた信号情報、十字路等における優先道路か非優先道路かを定めた優先／非優先情報等が設定されている。このように構成された道路ネットワーク上で車両モデルを擬似走行させることにより、道路ネットワークにおける交通流をシミュレーションする。
【００２５】
また、ＲＯＭ２２またはＨＤＤ２６には、車両モデルを擬似走行させるための各時刻における車両挙動を記述したイベント３０を記憶するためのイベント記憶領域３２が設けられている。図３に示すように、イベント３０には、車両モデルの識別情報、どのノードで何が起こるかを示す実行内容、及び実行内容が実行される時刻が記述されている。イベント３０の実行内容としては、車両モデルの発生、及び次のノードへの到着等が記述される。また、ノードでの一時停止の待ち時間の終了待ちなど、車両挙動に応じて適宜作成することができる。
【００２６】
また、図３では、イベント記憶領域３２にイベント３０を時刻順に並べて記憶している例を示しているが、実行内容の実行が時刻順に行われればよく、必ずしも時刻順に並べて記憶する必要はない。
【００２７】
次に、第１の実施の形態の交通流シミュレーション装置１０の動作について説明する。
【００２８】
図４を参照して、第１の実施の形態の交通流シミュレーション装置１０における交通流シミュレーション処理ルーチンについて説明する。本ルーチンは、ＲＯＭ２２に記憶された交通流シミュレーションプログラムをＣＰＵ２０が実行することにより行われる。なお、ここでは、車両モデルの発生が実行内容として記述されたイベント３０を「発生イベント」、目的地以外の次のノードへの到着が実行内容として記述されたイベント３０を「到着イベント」、目的地であるノードへの到着が実行内容として記述されたイベント３０を「目的地到着イベント」、及び一時停止の待ち時間の終了待ちが実行内容として記述されたイベント３０を「待ち時間イベント」と呼称する。
【００２９】
ステップ１００で、データの設定タイミングか否かを判定する。データの設定タイミングの場合には、ステップ１０２へ移行し、データの設定タイミングではない場合には、ステップ１０２をスキップしてステップ１０４へ移行する。
【００３０】
ステップ１０２では、ＨＤＤ２６に予め記憶された、または、ネットワークＩ／Ｆ２９を介して接続された外部装置等から取得したＯＤデータに基づいて、車両発生データを生成する。ＯＤデータは、出発地（Ｏ）から目的地（Ｄ）までの時間帯別に車両発生数を表すデータである。このＯＤデータに基づいて、車両モデルの各々がいつ、どのノードに発生し、どのような経路で目的地まで走行するかを定めた車両発生データを、必要な車両発生数分生成する。車両発生データは、例えば、図５に示すように、車両モデルを識別するための車両識別情報、各車両モデルが発生する時刻、及び各車両モデルの出発地から目的地までの経路を対応付けたデータとすることができる。なお、出発地から目的地までの経路は、最短距離経路探索等、従来技術を用いて決定することができる。そして、この車両発生データに基づいて、発生イベントを生成して、イベント記憶手段に記憶する。図６に、一例として、図５に示す車両発生データから生成された発生イベントを示す。
【００３１】
次に、ステップ１０４で、イベント記憶領域３２に記憶されているイベント３０のうち、実行時刻が最も早いイベント３０を読み込み、イベント３０の実行内容を実行する。例えば、「車両Ａ  ノードＡに発生」という実行内容のイベント３０であれば、道路ネットワーク上のノードＡに車両Ａに相当する車両モデルを発生させる。また、例えば、「車両Ｂ  ノードＢに到着」という実行内容のイベント３０であれば、道路ネットワーク上の車両Ｂに相当する車両モデルを、ノードＢに到着させる。
【００３２】
次に、ステップ１０６で、実行したイベント３０が「発生イベント」または「到着イベント」であるか否かを判定する。「発生イベント」または「到着イベント」である場合には、ステップ１０８へ移行し、それ以外のイベント３０（ここでは、「目的地到着イベント」または「待ち時間イベント」）の場合には、ステップ１１２へ移行する。
【００３３】
ステップ１０８では、現在のノードにおいて、一時停止が必要か否かを判定する。一時停止としては、例えば、次のリンクへの進入が右折の場合、信号待ちの場合、及び十字路において、交差する他リンクが優先で自リンクが非優先の場合等がある。右折か否かは、上記ステップ１０２で生成された車両発生データの経路情報、及び道路ネットワーク情報に基づいて判定する。信号待ち、及び優先か非優先かについては、ノードに設定された信号情報、及び優先／非優先情報に基づいて判定する。一時停止が必要であると判定された場合には、ステップ１１０へ移行し、一時停止が必要ないと判定された場合には、ステップ１１４へ移行する。
【００３４】
ステップ１１０では、一時停止に伴う「待ち時間イベント」を追加する。待ち時間イベントは、そのノードでの待ち時間終了時刻が記述される。待ち時間終了時刻の計算は、例えば、右折の場合には、まず、既知の手法を用いて下記（１）式に示すような右折車の直進車換算係数ＥＲＴを求める。ただし、ｆは右折車の通過可能確率、Ｓは対向直進車流入部の飽和交通流率、ｑは対向直進交通量、Ｃは信号の周期長、Ｇは信号の有効青時間、ｋは信号現示の変わり目にさばける右折車数である。
【００３５】
【数１】
2011086110.tif 000003
【００３６】
そして、この直進車換算係数ＥＲＴを用いて、下記（２）式のように右折待ち時間Ｔｒを求め、現ノードへの到着時刻に右折待ち時間Ｔｒを加算して、待ち時間終了時刻を求める。ただし、Ｔは直進の場合の先行車との車頭時間である。
【００３７】
Ｔｒ＝Ｔ×（ＥＲＴ）−１      ・・・（２）
【００３８】
また、信号待ち、及び優先か非優先かによる一時停止の場合も、ノードに設定された信号情報、及び優先／非優先情報に基づいて待ち時間終了時刻を求める。そして、図７に示すように、待ち時間終了時刻を記述した待ち時間イベントを生成して、イベント記憶領域３２に追加して、ステップ１２６へ移行する。
【００３９】
また、上記ステップ１０６で、「発生イベント」または「到着イベント」ではないと判定されてステップ１１２へ移行した場合には、実行したイベント３０が「待ち時間イベント」であるか否かを判定する。「待ち時間イベント」である場合には、ステップ１１４へ移行し、「目的地到着イベント」である場合には、対応する車両モデルについて、イベント３０を追加する必要がないため、ステップ１００へ戻る。これにより、「発生イベント」または「到着イベント」により発生または到着したノードで一時停止が必要ない場合、及び現ノードにおける待ち時間が終了した場合が、ステップ１１４以降の処理へ進むこととなる。
【００４０】
ステップ１１４では、車両モデルが次に進入するリンク（以下、次リンクともいう）上に存在する他車両モデルの数に応じて、次リンクが飽和状態か否かを判定する。いずれのリンクが次リンクとなるかは、車両発生データの経路情報に基づいて判断する。例えば、次リンクのリンク密度Ｋ［台／ｋｍ］がリンク飽和密度Ｋｍａｘ［台／ｋｍ］に達しているような場合には、次リンクが飽和状態であると判定することができる。次リンクが飽和状態の場合には、ステップ１２４へ移行し、次リンクが飽和状態ではない場合には、ステップ１１６へ移行する。
【００４１】
ステップ１１６では、次リンク上に存在する他車両モデルの数に応じて、次リンクが自由流か渋滞かを判定する。具体的には、次リンクのリンク密度Ｋ［台／ｋｍ］とリンク飽和密度Ｋｍａｘ［台／ｋｍ］との関係が、Ｋ≦Ｋｍａｘ／２の場合には、自由流である判定され、Ｋ＞Ｋｍａｘ／２の場合には、渋滞である判定される。自由流の場合には、ステップ１１８へ移行し、渋滞の場合には、ステップ１２０へ移行する。
【００４２】
ステップ１１８では、自由流の場合における、車両モデルが次のノードへ到着する時刻を求める。具体的には、まず、図８に示すようなＫ−Ｖ曲線から、リンク内の走行速度ｖ［Ｋｍ／ｓ］を、下記（３）式により求める。ただし、Ｖｆはリンク内自由走行速度［Ｋｍ／ｓ］である。
【００４３】
ｖ＝Ｖｆ−（ＶｆＫ）／Ｋｍａｘ      ・・・（３）
【００４４】
そして、このリンク内の走行速度ｖ、及びリンク長Ｌ［ｋｍ］から、リンク旅行時間Ｔ［ｓ］は、Ｌ／ｖとして求まる。現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻に、リンク旅行時間Ｔを加算して、次のノードへの到着時刻を求める。
【００４５】
一方、ステップ１２０では、渋滞の場合における、車両モデルが次のノードへ到着する時刻を求める。具体的には、車両モデルがリンクから流出していく間隔は、リンク終端の信号の青時間現示割合ρ、及びリンクの飽和流出容量Ｑ［台／ｓ］から、ρ／Ｑ［ｓ］として表されるため、進入するリンクに既にＭ台の車両が存在するとき、リンク旅行時間Ｔは、ρＭ／Ｑとして求まる。現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻に、リンク旅行時間Ｔを加算して、次のノードへの到着時刻を求める。
【００４６】
次に、ステップ１２２で、図９に示すように、上記ステップ１１８または１２０で求めた次のノードへの到着時刻を記述したイベント３０を生成して、イベント記憶領域３２に追加して、ステップ１２６へ移行する。
【００４７】
一方、上記ステップ１１４で次リンクが飽和状態である判定されてステップ１２４へ移行した場合には、次リンクへの進入が不可能であるため、現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻を修正したイベント３０を追加する。時刻を修正することにより、先行する１台前の車両モデルとの車頭時間間隔が十分に取れるようにする。具体的には、上記ステップ１１８または１２０と同様の方法により求めた自車両モデルの次のノードへの到着時刻と、一台前の車両モデルの次のノードへの到着時刻との差が、リンクの飽和流出容量Ｑの逆数（１／Ｑ）以上となるような車頭間隔時間を取る。
【００４８】
そこで、この場合の車頭間隔時間を１台遅れの発進遅れ時間として、現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻に、（１台遅れの発進遅れ時間）×（滞留台数）を加えて時刻を修正する。そして、図１０に示すように、現ノードでの発生時刻、現ノードへの到着時刻、または待ち時間終了時刻を修正したイベント３０を生成して、イベント記憶領域３２に追加する。また、自車両モデルの現ノードへの到着時刻の修正に伴い、同一リンク内の他車両モデルの到着時刻も修正する。修正は、各々前車両モデルとの車頭時間間隔が１／Ｑとなるように修正したり、自車両モデルの修正分と同一の時間を各車両モデルの到着時刻に加算したりすることにより行う。そして、ステップ１２６へ移行する。
【００４９】
ステップ１２６では、シミュレーション結果の出力タイミングであるか否かを判定する。出力タイミングの場合には、ステップ１２８へ移行して、シミュレーション結果を出力する。シミュレーション結果としては、リンク交通量、リンク旅行時間、及びＯＤ旅行時間等を出力することができる。一方、出力タイミングではない場合には、ステップ１００へ戻る。
【００５０】
なお、上記ステップ１０８では、一時停止の一例として、信号待ちと、右折や優先／非優先に応じた待ちとについて、同様の手法により待ち時間イベントを生成する場合について説明したが、信号待ちについては、一時停止による待ち時間イベントを生成するのではなく、上記ステップ１１８または１２０においてリンク旅行時間を計算する際に、期待値を用いて信号待ちによる待ち時間を見積もったリンク旅行時間として計算するようにしてもよい。右折や優先／非優先に応じた待ちが、対向車等の交通量に応じてリンクからの流出率が変化するのに対して、信号待ちは、信号のサイクルのみで流出率が決定され、常に不変とすることができるからである。
【００５１】
具体的には、下記（４）式に示すように、上記ステップ１１８または１２０で求めたリンク旅行時間Ｔに期待値ｔｓｉｇを加算したリンク旅行時間Ｔ’として計算することができる。ただし、Ｔｒｅｄは信号の赤時間［ｓ］、Ｔｐｅｒｉｏｄは信号の周期［ｓ］である。
【００５２】
Ｔ’＝Ｔ＋ｔｓｉｇ        ・・・（４）
（ｔｓｉｇ＝Ｔｒｅｄ２／２Ｔｐｅｒｉｏｄ）
【００５３】
次に、１台の車両モデルに着目した場合のイベント３０の実行及びイベント３０の追加の推移について、図２に示す道路ネットワークにおいて、車両ＡがノードＡ（出発地：Ｏ）からノードＨ（目的地：Ｄ）へ向かって走行する場合を例に挙げて説明する。途中ノードＣで右折し、リンクｇ及びｈは、飽和から渋滞へ状態が変化するものとする。また、車両Ａの発生時刻は６：００：００とする。
【００５４】
図１１に示すように、（１）で、車両発生データに基づいて、発生イベントが生成され、イベント記憶領域３２に記憶される。そして、イベント３０に記述された時刻「６：００：００」が、イベント記憶領域３２に記憶されたイベント３０に記述された時刻の中で最も早い時刻となった場合には、このイベント３０が実行される。なお、以降では、このようにイベント３０に記述された時刻が、イベント記憶領域３２に記憶されたイベント３０に記述された時刻の中で最も早い時刻となることを、「ＸＸ：ＸＸ：ＸＸ（イベント３０に記述された時刻）」になる、と省略して記載する。
【００５５】
（１）のイベント３０を実行すると共に、（２）で次のリンクｂの自由流の旅行時間を計算して、次のノードＢへの到着イベントを生成して追加する。次に、「６：００：４５」になると、（２）のイベント３０が実行される共に、（３）で次のリンクｃの自由流の旅行時間を計算して、次のノードＣへの到着イベントを生成して追加する。
【００５６】
次に、「６：０１：１０」になると、（３）のイベント３０を実行すると共に、次のリンクｆへの進入が右折であるので、右折による一時停止の待ち時間を計算し、（４）で待ち時間イベントを生成して追加する。次に、「６：０１：２２」になると、（４）のイベント３０を実行することにより、右折待ちが終了したので、（５）で次のリンクｆの自由流の旅行時間を計算して、次のノードＦへの到着イベントを生成して追加する。ここで、（５）のイベント３０が実行される順番になる前に、同一リンクｆ内の先頭車両モデルが進入しようとした次リンクｇが飽和状態であり、その車両モデルのノードＦへの到着イベントの到着時刻が修正されたことにより、（５）’で自車両モデルのノードＦへの到着イベントの到着時刻も修正される。
【００５７】
次に、「６：０２：０７」になると、（５）’のイベント３０が実行されると共に、（６）で次のリンクｇの渋滞の旅行時間を計算して、次のノードＧへの到着イベントを生成して追加する。次に、「６：０３：２０」になると、（６）のイベント３０を実行する。そして、次のリンクｈが飽和状態であるので、（６）’でノードＧへの到着時刻を修正したイベント３０を生成して追加する。次に、「６：０３：３２」になると、（６）’のイベント３０が実行されると共に、（７）で次のリンクｈの渋滞の旅行時間を計算して、次のノードＨへの目的地到着イベントを生成して追加する。そして、「６：０４：５０」になると、（７）のイベント３０が実行され、車両モデルが目的地に到着する。
【００５８】
以上説明したように、第１の実施の形態の交通流シミュレーション装置によれば、イベント駆動型のシミュレーションを交通流シミュレーションに適用し、イベントを実行したときに、次のノードへの到着イベントを追加し、また、次リンクが飽和か否か、自由流か否か、及び一時停止が必要か否か等を判断して、次のノードへの到着イベントの追加、現ノードへの到着イベントの到着時刻の修正、待ち時間イベントの追加を行うため、車両の挙動を把握するために必要な時刻のみを捕らえることで計算時間を増大させることなく、かつ生じうる事象に対応して随時イベントを追加していくため、正確な交通流のシミュレーションを行うことができる。
【００５９】
次に、第２の実施の形態について説明する。第２の実施の形態の交通流シミュレーション装置１０は、イベント記憶領域にイベントを記憶する際の形式が第１の実施の形態の交通流シミュレーション装置１０とは異なる。その他の構成及び処理については、第１の実施の形態の交通流シミュレーション装置１０と同様であるため、同一の符号を付して説明を省略する。
【００６０】
第２の実施の形態の交通流シミュレーション装置１０にいて、図１２に示すように、イベント３０は、車両モデルが現在存在するリンク毎の車両リスト３４と、車両リスト３４の先頭（実行時刻が最も早い）のイベント３０のみを格納したイベントキュー３６との２次元リスト構造でイベント記憶領域３２に記憶されている。
【００６１】
イベントキュー３６内で最も時刻が早いイベント３０が実行されると、実行されたイベント３０と同一の車両リスト３４内の次に時刻が早いイベント３０がイベントキュー３６内に格納される。また、発生イベントについては、まだ対応する車両モデルがリンク上に存在しないため、別途イベントキュー３６内に格納される。そして、発生イベントが実行されると、次のノードへの到着イベントが生成され、生成された到着イベントは、該当するリンクの車両リスト３４へ格納される。
【００６２】
このように、２次元リスト構造でイベントを記憶することで、先頭車両モデルの到着イベントの到着時刻が修正され、同一リンク上に存在する車両モデルの到着イベントの到着時刻の修正が必要になった場合に、簡易に修正を行うことができる。また、同一リンク内に何台の車両モデルが存在するかを容易に把握することができる。
【００６３】
次に、第３の実施の形態について説明する。第３の実施の形態の交通流シミュレーション装置１０は、時間分解能の異なる複数のシミュレーションイベントを連携して実行する点が第１及び第２の実施の形態の交通流シミュレーション装置１０とは異なる。その他の構成及び処理については、第１及び第２の実施の形態の交通流シミュレーション装置１０と同様であるため、同一の符号を付して説明を省略する。
【００６４】
第３の実施の形態の交通流シミュレーション装置１０では、イベント記憶領域３２に、時間分解能の異なる複数のシミュレーションを実行するためのイベント３０をあわせて記憶し、これらのイベント３０を実行することで、複数のシミュレーションを連携して実行する。例えば、第１及び第２の実施の形態の交通流シミュレーション装置１０のように、リンク交通量、リンク旅行時間、及びＯＤ旅行時間等をシミュレーションする渋滞シミュレーションのような場合では、時間分解能は１秒程度である。一方、予防安全アプリケーションの車車間通信を用いて、減速及び停止等の車両挙動をシミュレーションする通信シミュレーションのような場合では、時間分解能が１００ｎ秒〜１ｍ秒程度である。図１３に示すように、都市レベルのマクロシミュレーションの渋滞シミュレーションにおいて、局部的に通信シミュレーションを行う場合などが想定される。
【００６５】
図１４に示すように、車車間通信により車両挙動に変更を生じさせる場合には、対象となる車両モデルの車両識別情報、車両挙動の内容、及び変更の時刻を記述したイベント３０ａを生成し、渋滞シミュレーションのイベント３０ｂが記憶されているイベント記憶領域３２へ追加する（１）。このイベント３０ａを実行する際に、渋滞シミュレーションにおける対象となる車両モデルの到着イベントの到着時刻を、通信シミュレーションのイベント３０ａによる車両挙動に応じた時間修正する（３）→（３）’。なお、図１４では、渋滞シミュレーションのイベント３０ｂを実線で、通信シミュレーションのイベント３０ａを破線で示している。
【００６６】
以上説明したように、第３の実施の形態の交通流シミュレーション装置によれば、それぞれのシミュレーションで実行される内容をイベントとして記述し、一方のシミュレーションのイベント実行時に他方のシミュレーションのイベントを追加又は修正することで、時間分解能の異なるシミュレーションを連携させる場合でも、タイムステップ方式によるシミュレーションのように時間分解能が細かい方に単位時間を合わせる必要もなく、容易にそれぞれのシミュレーションを連携して実行することができる。
【００６７】
次に、第４の実施の形態について説明する。第４の実施の形態の交通流シミュレーション装置１０は、並列処理でイベントを実行する点が第１〜第３の実施の形態の交通流シミュレーション装置１０とは異なる。その他の構成及び処理については、第１〜第３の実施の形態の交通流シミュレーション装置１０と同様であるため、同一の符号を付して説明を省略する。
【００６８】
第４の実施の形態の交通流シミュレーション装置１０は、道路ネットワークを地理的に分割可能なブロックに分割し、ブロック毎のイベント３０を並行して実行する。地理的に分割可能なブロックとは、相関がないか、または相関が小さいブロックである。
【００６９】
図１５に示すように、道路ネットワークを分割したブロック毎にイベント３０を並べ、イベント３０に記述された時刻順に各ブロックのイベント３０の各々を並列して実行する。
【００７０】
以上説明したように、第４の実施の形態の交通流シミュレーション装置によれば、地理的に分割可能なブロックで実行されるイベントの各々を並行処理することにより、計算時間をより短縮することができる。
【００７１】
なお、上記の実施の形態では、イベントとして、発生イベント、到着イベント、目的地到着イベント、及び待ち時間イベントを設定した場合について説明したが、その他車両挙動に応じて、適宜イベントを設定することができる。例えば、重要な交差点などについては、周期及びスプリットを用いた簡易表現の信号情報を、より詳細な信号サイクルとした場合の各リンクへの進入許可及び禁止のイベントや、交通状況に大きな影響を与える特殊な交通規制や右折ブロックの状況、路上駐車、及びバス待ち等のイベントを設定することができる。渋滞の鍵を握る重要なボトルネック交差点などについては、このようなイベントを設定することで、より詳細なシミュレーションを行うことができる。
【００７２】
また、上記実施の形態では、車両の挙動に関する項目のみをイベントとして生成及び追加する場合について説明したが、図１６に示すように、ＯＤデータの読み込み、車両発生データの生成、車両発生データの読み込み、及びシミュレーション結果の出力等についてもイベントとして生成して、実行するようにしてもよい。
【００７３】
また、上記実施の形態では、ＯＤデータに基づいて車両発生データを生成する場合について説明したが、全ての車両モデルの出発地から目的地までの経路を規定した固定経路情報を用いてもよい。また、ＯＤデータと固定経路情報とを組み合わせて用いてもよい。
【符号の説明】
【００７４】
１０   交通流シミュレーション装置
１２   操作部
１４   表示部
１６   コンピュータ
２０   ＣＰＵ
２２   ＲＯＭ
２４   ＲＡＭ
２６   ＨＤＤ
３０   イベント
３２   イベント記憶領域
【図１】
2011086110.tif 000004
【図３】
2011086110.tif 000005
【図４】
2011086110.tif 000006
【図５】
2011086110.tif 000007
【図６】
2011086110.tif 000008
【図７】
2011086110.tif 000009
【図９】
2011086110.tif 000010
【図１０】
2011086110.tif 000011
【図１１】
2011086110.tif 000012
【図１２】
2011086110.tif 000013
【図１４】
2011086110.tif 000014
【図１５】
2011086110.tif 000015
【図１６】
2011086110.tif 000016
【図２】
2011086110.tif 000017
【図８】
2011086110.tif 000018
【図１３】
2011086110.tif 000019