(57)【要約】  シミュレーション装置（１）は、状態データ（７）および環境データ（６）を含むシミュレーションデータ（８）を記録する記録部（９）にアクセス可能である。シミュレーション装置（１）は、シミュレーションデータ（８）を参照し、状態データ（７）を更新する状態更新処理を分割し階層化した際の各階層の処理を実行する複数の状態更新部（３ａ〜３ｃ）であって、参照範囲情報にしたがって、シミュレーションデータを参照して前記移動体の状態データを前記階層ごとに更新する、複数の状態更新部（３ａ〜３ｃ）と、状態更新部（３ａ〜３ｃ）に、更新制御情報にしたがって、更新を指示する駆動判定部とを備える。
2011001512.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの移動体の動きをシミュレーションするシミュレーション装置であって、
前記シミュレーション装置は、各移動体の状態を表す状態データおよび前記移動体の状態変化の要因となり得る情報を表す環境データを含むシミュレーションデータを記録する記録部にアクセス可能であって、
前記シミュレーションデータを参照し、参照したシミュレーションデータに基づいて、前記状態データを更新する状態更新処理を分割し階層化した際の各階層の処理を実行する複数の状態更新部であって、前記階層ごとに予め記録された、前記シミュレーションデータの参照範囲を示す参照範囲情報にしたがって、当該参照範囲のシミュレーションデータを参照して前記移動体の状態データを前記階層ごとに更新する、複数の状態更新部と、
前記複数の階層化された状態更新部に、前記状態データの更新を指示する駆動判定部であって、状態更新部ごとの前記更新のタイミングを規定した更新制御情報にしたがって、当該更新制御情報で規定されるタイミングで前記各状態更新部に更新を指示する駆動判定部とを備える、シミュレーション装置。
【請求項２】
前記更新制御情報の更新のタイミングは、前記参照範囲情報が示すシミュレーションデータの範囲に応じて規定される、請求項１に記載のシミュレーション装置。
【請求項３】
前記更新制御情報は、各状態更新部の前記シミュレーションデータ参照の周期を含み、各状態更新部の前記シミュレーションデータ参照の周期は、前記参照範囲情報が示すシミュレーションデータの範囲が広いほど長くなるように規定される、請求項１または２に記載のシミュレーション装置。
【請求項４】
前記状態データは、前記移動体と対応付けられ、環境データは、前記要因が存在する位置を示す位置情報と対応付けられて記録されており、
前記シミュレーションデータの範囲は、前記移動体の存在する位置を基準とした領域で表され、
前記状態更新部は、前記領域内に存在する移動体の状態データおよび前記領域内に存在する要因の環境データを参照する、請求項１〜３に記載のシミュレーション装置。
【請求項５】
前記更新制御情報の更新のタイミングは、更新開始の条件を示す条件データで規定され、
前記駆動判定部は、シミュレーションにおいて発生するイベントを検出し、当該イベントが、前記条件データで示される条件に適合する場合に、前記状態更新部へ更新を指示する、請求項１〜４のいずれか１項に記載のシミュレーション装置。
【請求項６】
前記各状態更新部は、前記更新制御情報におけるそれぞれの状態更新部の前記更新タイミングおよび前記移動体の速度により、前記参照範囲情報が示すシミュレーションデータの範囲を変化させる、請求項１〜５のいずれか１項に記載のシミュレーション装置。
【請求項７】
前記移動体は空間または平面を移動する車両であり、
前記複数の状態更新部は、
前記車両の位置を含む第１の領域における前記移動体の通路の接続を表す情報を含む環境データを参照し、車両の現在地から目的地までの経路を少なくとも更新する第１の階層の状態更新部と、
前記車両の位置を含む第２の領域における他の車両の状態データを参照し、前記車両が進行する車線を少なくとも更新する第２の階層の状態更新部と、
前記車両の位置を含む第３の領域における他の車両の状態データを参照し、前記車両の速度、向きおよび位置を少なくとも更新する第３の階層の状態更新部とを少なくとも含み、
前記第１の領域、前記第２の領域および前記第３の領域は、順に段階的に大きくなっている、請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項８】
前記移動体は空間または平面を移動する人であり、
前記複数の状態更新部は、
第１の領域における通路を表す情報を含む環境データを参照し、人の現在地から目的地までの経路を少なくとも更新する第１の階層の状態更新部と、
第２の領域における他の人の状態データを参照し、人が進行する向きを少なくとも更新する第２の階層の状態更新部と、
第３の領域における前記施設が備える提示品または設備を表す情報を含む環境データを参照し、前記人の移動量を更新する第３の階層の状態更新部とを少なくとも含み、
前記第１の領域、前記第２の領域および前記第３の領域は、順に段階的に大きくなっている、請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項９】
少なくとも１つの移動体の動きをシミュレーションする処理をコンピュータに実行させるシミュレーションプログラムであって、
各移動体の状態を表す状態データおよび前記移動体の状態変化の要因となり得る情報を表す環境データを含むシミュレーションデータを参照し、参照したシミュレーションデータに基づいて、前記状態データを更新する状態更新処理を分割し階層化した際の各階層の処理をそれぞれ実行する複数の状態更新処理であって、前記階層ごとに予め記録された、前記シミュレーションデータの参照範囲を示す参照範囲情報にしたがって、当該参照範囲のシミュレーションデータを参照して前記移動体の状態データを前記階層ごとに更新する、複数の状態更新処理と、
前記複数の階層化された状態更新処理のタイミングを制御する駆動判定処理であって、前記各階層ごとに前記状態データの更新のタイミングを規定した更新制御情報にしたがって、当該更新制御情報で規定されるタイミングで前記各階層の情報更新処理を開始させる駆動判定処理とをコンピュータに実行させる、シミュレーションプログラム。
【請求項１０】
コンピュータが、少なくとも１つの移動体の動きをシミュレーションする処理を実行するシミュレーション方法であって、
各移動体の状態を表す状態データおよび前記移動体の状態変化の要因となり得る情報を表す環境データを含むシミュレーションデータを参照し、参照したシミュレーションデータに基づいて前記状態データを更新する状態更新処理を分割し階層化した際の各階層の処理を前記コンピュータがそれぞれ実行する複数の状態更新工程であって、前記階層ごとに予め記録された、前記シミュレーションデータの参照範囲を示す参照範囲情報にしたがって、当該参照範囲のシミュレーションデータを参照して前記移動体の状態データを前記階層ごとに更新する、複数の状態更新工程と、
前記コンピュータが、前記複数の階層化された状態更新処理のタイミングを制御する駆動判定工程であって、前記各階層ごとに前記状態データの更新のタイミングを規定した更新制御情報にしたがって、当該更新制御情報で規定されるタイミングで前記各階層の情報更新処理を開始させる駆動判定工程とを含む、シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間における移動体の動きをシミュレートする技術に関する。
【背景技術】
【０００２】
一般に、交通流シミュレータは、交通流を流体に近似して広範囲の交通状況を評価するマクロシミュレータと、個々の車両の挙動を模擬して交通流を再現するミクロシミュレータとに分類される。マクロシミュレータは、計算量が少ないため、広域にわたる交通施策の有効性を示すことができる。また、一例として、複数の撮影装置により撮影された複数の画像のそれぞれに存在する車両の台数および走行速度に基づいて渋滞状況を判定する処理が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開公報２００２―２８８７８６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、マクロシミュレータでは、個々の車両の動きの再現まではできないため、多様な運転挙動を考慮した交通施策の評価を行うことが困難である。一方、ミクロシミュレータは個々の車両挙動を模擬できるが、計算量が大きくなるため、広い範囲を対象とする交通施策の評価が困難であった。この課題は、交通流を再現するミクロシミュレータだけでなく、その他の、個々の移動体の動きを模擬するシミュレーションにおいても同様に存在する。【０００５】
本発明は、上記課題を鑑みてなされたものであり、状態更新処理で参照されるデータ総量を節約することができるシミュレーション装置、方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願開示のシミュレーション装置は、少なくとも１つの移動体の動きをシミュレーションするシミュレーション装置であって、前記シミュレーション装置は、各移動体の状態を表す状態データおよび前記移動体の状態変化の要因となり得る情報を表す環境データを含むシミュレーションデータを記録する記録部にアクセス可能であって、前記シミュレーションデータを参照し、参照したシミュレーションデータに基づいて、前記状態データを更新する状態更新処理を分割し階層化した際の各階層の処理を実行する複数の状態更新部であって、前記階層ごとに予め記録された、前記シミュレーションデータの参照範囲を示す参照範囲情報にしたがって、当該参照範囲のシミュレーションデータを参照して前記移動体の状態データを前記階層ごとに更新する、複数の状態更新部と、前記複数の階層化された状態更新部に、前記状態データの更新を指示する駆動判定部であって、状態更新部ごとの前記更新のタイミングを規定した更新制御情報にしたがって、当該更新制御情報で規定されるタイミングで前記各情報更新部に更新を指示する駆動判定部とを備える。
【発明の効果】
【０００７】
本願明細書の開示によれば、状態更新処理で参照されるデータ総量を節約することができるシミュレーション装置、方法、プログラムを提供する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態にかかるシミュレーション装置の構成の一例を示す機能ブロック図である。
【図２】図２は、道路リンクの内容の一例を示す図である。
【図３】図３は、車両状態データの内容の一例を示す図である。
【図４】図４は、フィールドを定義するデータの例を示す図である。
【図５】図５は、更新制御情報５の一例を示す図である。
【図６】図６は、参照範囲情報４ａ〜４ｃの一例を示す図である。
【図７】図７は、第１の実施形態における、状態更新処理の分割、階層化を模式的に表した図の一例である。
【図８】図８は、第１の実施形態における、状態更新処理の分割、階層化を模式的に表した図の一例である。
【図９】図９は、状態更新処理を分割しない場合の状態更新処理とシミュレーションデータ範囲を模式的に表した図の一例である。
【図１０】図１０は、状態更新処理を分割しない場合のシミュレーションデータ量（上段）と、状態更新処理を分割してそれぞれの状態更新処理の周期を異ならせた場合のシミュレーションデータ量（下段）の一例を示す図である。
【図１１】図１１は、状態更新処理を分割、階層化し、さらに、更新時間間隔が短い状態更新処理のシミュレーションデータの範囲が小さくなるように局地化した場合のシミュレーションデータ量（下段）と、状態更新処理を分割しない場合のシミュレーションデータ量（上段）の一例を示す図である。
【図１２】図１２は、シミュレーション装置１の動作例を示すフローチャートの一例である。
【図１３】図１３は、通路リンクの内容の一例を示す図である。
【図１４】図１４は、人状態データの内容の一例を示す図である。
【図１５】図１５は、商品データの内容の一例を示す図である。
【図１６】図１６は、第２の実施形態における更新制御情報の一例を示す図である。
【図１７】図１７は、第２の実施形態における参照範囲情報の一例を示す図である。
【図１８】図１８は、第２の実施形態における、状態更新処理の分割、階層化を模式的に表した図の一例である。
【図１９】図１９は、第２の実施形態における、状態更新処理の分割、階層化を模式的に表した図の一例である。
【図２０】図２０は、第２の実施形態におけるシミュレーション装置の動作例を示すフローチャートである。
【図２１】第３の実施形態にかかるシミュレーション装置の構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して具体的に説明する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態にかかるシミュレーション装置の構成の一例を示す機能ブロック図である。図１に示すシミュレーション装置１は、所定の範囲の地域における、一又は複数の移動体の状態の変化や駆動（動き）をシミュレート（模擬）する。シミュレーション装置１は、従来１つだった状態更新処理を複数の階層に分けて階層毎に状態更新処理する状態更新部３ａ〜３ｃ、および、どの状態更新部を実行するか制御する駆動判定部２を備える。また、シミュレーション装置１は、移動体の状態を表す状態データ７および移動体の状態変化の要因となり得る情報を表す環境データ６を含むシミュレーションデータを記録する記録部９にアクセス可能である。本実施形態では、状態更新部を３個用いて３階層として処理しているが、階層数は特に限定されない。例えば、シミュレーションの規模に応じて、状態更新部の階層数、すなわち状態更新部３の数を変えることができる。
【００１１】
状態更新部３ａ〜３ｃは、それぞれ、シミュレーションデータ８を参照して、参照したデータに基づき移動体の状態データ７を更新する。駆動判定部２は、状態更新部３ａ〜３ｃそれぞれが求めた状態データの更新を指示する。状態更新部３ａ〜３ｃは、それぞれ、前記更新において参照する前記シミュレーションデータの範囲を示す参照範囲情報４ａ〜４ｃにアクセス可能である。状態更新部３ａ〜３ｃは、当該参照範囲情報４ａ〜４ｃの示す範囲のシミュレーションデータを参照して前記移動体の前記状態データを更新する。
【００１２】
このように、各状態更新部３ａ〜３ｃは、参照範囲情報４ａ〜４ｃの示す範囲のシミュレーションデータを選択する参照範囲選択機能を含む。参照範囲情報４ａ〜４ｃは、記録部９に記録されてもよいが、記録される場所は特に限定されない。また、参照範囲情報と上記参照範囲選択機能とを備える参照情報選択部がシミュレーション装置１に構成されてもよい。また、シミュレーションの規模に応じて、参照範囲情報のデータ構成を変えることができる。
【００１３】
駆動判定部２は、状態更新部３ａ〜３ｃそれぞれの階層の更新のタイミングを規定した更新制御情報５にアクセス可能であり、更新制御情報５で規定されるタイミングで各状態更新部３ａ〜３ｃに更新を指示する。
【００１４】
図１に示す構成によれば、複数の状態更新部３ａ〜３ｃが、それぞれ、異なるシミュレーションデータの範囲を示す参照範囲情報にアクセスし、駆動判定部２は、複数の状態更新部３ａ〜３ｃそれぞれが参照するデータの内容に応じて、それぞれの状態更新処理のタイミングを制御（例えば、実行する状態更新処理の切り変えを制御）することができる。シミュレーション装置１によるシミュレーションは、複数の状態更新部３ａ〜３ｃが、シミュレーションデータ８を参照し、参照したシミュレーションデータに基づいて、状態データ７を更新する処理の繰り返しにより実行される。ここで、状態更新処理は、分割し階層化され、各階層の処理を実行する複数の状態更新部３ａ〜３ｃによって、各々実行される。そして、各階層の更新タイミングおよび参照するシミュレーションデータの範囲は参照情報範囲４ａ〜４ｃや、更新制御情報５により設定される。このように、シミュレーション装置１は、状態更新処理を階層化し、階層ごとの更新タイミングや参照情報範囲を制御できる構成である。そのため、効率よくシミュレーションデータを参照して状態更新処理を実行することが可能になる。その結果、状態更新処理で参照されるデータ総量を節約できるので、大規模なシミュレーションが可能になる。
【００１５】
上記構成において、更新制御情報５の示す状態更新部３ａ〜３ｃそれぞれの更新のタイミングは、参照範囲情報４ａ〜４ｃが示すシミュレーションデータの範囲に応じて規定されることが好ましい。これにより、それぞれの状態更新処理で参照するデータに応じて、適切なタイミングで状態更新処理を実行することができる。
【００１６】
例えば、後述するように、上位の階層の状態更新処理ほど広範囲にシミュレーションを参照し、下位の階層ほど、狭い範囲のシミュレーションデータを参照するように制御することができる。さらに、シミュレーションデータの参照範囲が広い状態更新処理ほど、実行する時間間隔を長くすることができる。これにより、参照するデータ量が多く時間や負荷のかかる処理の実行頻度をさげることができる。
【００１７】
具体的には、更新制御情報５は、各状態更新部３ａ〜３ｃによるシミュレーションデータ８の参照の周期を含み、各状態更新部３ａ〜３ｃのシミュレーションデータ参照の周期は、参照範囲情報４ａ〜４ｃが示すシミュレーションデータの範囲が広いほど長くなるように規定されることが好ましい。これにより、一定時間間隔（一定周期）において実行される状態更新処理で参照されるシミュレーションデータの総量を効率よく削減することができる。
【００１８】
また、状態データ７は、移動体と対応付けられ、環境データ６は、要因が存在する位置を示す位置情報と対応付けられて記録されており、シミュレーションデータ９の範囲は、前記移動体の存在する位置を基準とした領域で表され、状態更新部３ａ〜３ｃは、領域内に存在する移動体の状態データおよび前記領域内に存在する要因の環境データを参照する態様とすることができる。この場合、参照範囲情報で示されるシミュレーションデータ８の範囲は、移動体の存在する位置を基準とした領域で表すことができる。状態更新部３ａ〜３ｃは、前記領域内に存在する移動体の状態データおよび前記領域内に存在する要因の環境データを参照することができる。これにより、例えば、周期の短いデータ参照処理のシミュレーションデータの範囲が空間的に小さくなるように局地化することが可能になる。
【００１９】
また、状態更新部３ａ〜３ｃは、更新制御情報５におけるそれぞれの状態更新部３ａ〜３ｃの更新タイミングおよび移動体の速度を用いて、参照範囲情報４ａ〜４ｃが示すシミュレーションデータ８の範囲を変えてもよい。移動体の速度は、例えば、状態データ７に含まれ、状態更新部３ａ〜３ｃによって更新される。これにより、移動体の速度と更新タイミングに基づいて、移動体の状態に応じて柔軟に各状態更新処理におけるシミュレーションデータ量を制御することができる。例えば、移動体の速度が速い場合は、一定時間で移動する距離が長くなるので、参照するシミュレーションデータの範囲を広くするように制御することができる。
【００２０】
本実施形態のシミュレーション装置１は、一例として、前記移動体は道路上を移動する車両とする。複数の状態更新部３ａ〜３ｃのうち、状態更新部３ａは、前記車両の位置を含む第１の領域における道路の接続を表す情報を含む環境データ６を参照し、車両の現在地から目的地までの経路を少なくとも更新する。状態更新部３ｂは、前記車両の位置を含む第２の領域における他の車両の状態データ７を参照し、前記車両が進行する車線を少なくとも更新する。状態更新部３ｃは、前記車両の位置を含む第３の領域における他の車両の状態データを参照し、前記車両の速度、向き、位置を少なくとも更新する。前記第１の領域、前記第２の領域および前記第３の領域は、順に段階的に大きくなっている態様とすることができる。
【００２１】
シミュレーション装置１は、例えば、パーソナルコンピュータやサーバマシン等の汎用コンピュータに所定のプログラムをインストールすることによって実現することができる。また、汎用コンピュータに限らず、例えば、車載情報端末、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家電製品等の電子機器に組み込まれたコンピュータによってシミュレーション装置１０が形成されてもよい。また、シミュレーション装置１の持つ機能を複数のコンピュータに分散させることで、複数のコンピュータでシミュレーション装置１を構成することもできる。
【００２２】
駆動判定部２、状態更新部３ａ〜３ｃの各機能は、ＣＰＵ等のプロセッサが所定のプログラムを実行することによって実現される。したがって、上記の各機能をコンピュータで実現するためのプログラムまたはそれを記録した記録媒体も本発明の一実施態様である。また、記録部９、並びに更新制御情報５および参照範囲情報４ａ〜４ｃを記録する手段は、コンピュータの内蔵記憶装置またはこのコンピュータからアクセス可能な記憶装置によって具現化される。
【００２３】
次に、シミュレーション装置１によるシミュレーションを、具体例を挙げながら説明する。ここでは、一例として、シミュレーション装置１が、仮想空間を移動する個々の車両の動きを模擬して交通流を再現するミクロシミュレータとして機能する場合について説明する。ここで、車両の動きには、車両を運転する運転手の行動(例えば、混雑状況に合わせてすいた車線を選択して走行すること)と、運転手の操作の結果を受けて決まる車体の物理的な運動(例えば、ハンドル操作によって車体の向きが変わること)との少なくともいずれかが含まれる。
【００２４】
この場合、環境データは、仮想空間において、車両が通る通路に関する道路データを含む。状態データは、仮想空間に存在する車両の状態を表す車両状態データを含む。道路データには、例えば、ノードとリンクで表される道路接続情報、地図情報、信号、施設、道路形状、路面状態等が含まれる。例えば、ノードは交差点、リンクは道路を示し、ノードおよびリンクにはそれぞれ固有のＩＤが付される。各車両状態データには、例えば、車両位置、車両の向き、速度、目的地までの経路等が含まれる。
【００２５】
図２は、環境データ６に含まれる道路接続情報の一例である道路リンクの内容を示す図である。図２に示す例では、各道路リンクＩＤに、リンク長、幅、車線、路面形状、路面状態および所属フィールドが対応付けられて記録されている。
【００２６】
図３は、車両状態データの内容の一例を示す図である。図３に示す例では、各車両ＩＤに、車両位置（座標）、車両位置（リンク）、車線、速度、向きおよび所属フィールドが対応付けられて記録される。車両位置（座標）は、例えば、緯度および経度の値で表される。図３に示す車両状態データは、状態更新部３ａ〜３ｂの各状態更新処理時に参照されるとともに、更新される。
【００２７】
図４は、仮想空間上の位置を表す位置情報の一例であるフィールドを定義するデータの例を示す図である。ここで、解析対象の仮想空間を分割した複数の領域がフィールドである。フィールドは、仮想空間における一部の領域である。図４に示す例では、フィールドは、矩形領域であり、当該矩形領域の左下の座標、および右上の座標により表される。この各フィールドは固有のＩＤを有する。図２、３に示すように、道路リンクＩＤおよび車両ＩＤと、フィールドＩＤは、対応付けられて記録される。これにより、道路リンクと位置情報を対応付け、かつ、車両状態と位置情報を対応付けて記録することができる。
【００２８】
図５は、更新制御情報５の一例を示す図である。図５に示す例では、更新処理間隔が、各状態更新ＩＤに対応付けられて記録されている。状態更新ＩＤ「Ｐ１」「Ｐ２」「Ｐ３」は、それぞれ、状態更新部３ａ〜３ｃによる状態更新処理を表す。更新処理間隔は状態更新処理を実行する周期（すなわち、シミュレーションデータ８を参照する周期）を表す。駆動判定部２は、図５に示す更新制御情報に従って、状態更新部３ａには１ｓ毎に、状態更新部３ｂには１００ｍｓ毎に、状態更新部３ｃには５ｍｓ毎に、状態更新処理を順次実行させることになる。このように更新制御情報は、階層化された状態更新処理（または状態更新部）の各階層を識別する情報と、各階層の実行タイミングとを示す情報とを含む。本例では、上層の状態更新部ほど実行時間間隔が長く設定される。これにより、更新処理の効率化が可能になる。
【００２９】
図６は、参照範囲情報４ａ〜４ｃの一例を示す図である。図６に示す例では、参照範囲情報４ａ〜４ｃが１つのテーブルに記録される。参照範囲情報は、本実施例では、記録部には書かれておらず、メインメモリ上のテーブルにあることを前提としているが、記録部から読み出すようにしてもよい。参照範囲およびシミュレーションデータ内容が状態処理部ごとに記録されている。例えば、状態更新部３ａは、この参照範囲情報４ａに従って、状態更新処理Ｐ１において、車両の現在位置周辺のフィールド１００個に属する道路リンクをシミュレーションデータ８から取得することになる。状態更新部３ｂは、状態更新処理Ｐ２で、現在位置周辺の２５個のフィールドに属する車両情報、人、信号、道路形状をシミュレーションデータ８から取得する。状態更新部３ｃは、車両現在位置と同じフィールドの他の車両の車両位置、路面状態を取得する。
【００３０】
ここでは、参照範囲情報４ａ〜４ｃは予め設定されて固定された値であるが、参照範囲情報４ａ〜４ｃを可変とすることもできる。例えば、状態更新部３ａ〜３ｃは、更新制御情報５におけるそれぞれの状態更新部３ａ〜３ｃの周期と、車両の速度を用いて、シミュレーションデータ８の範囲を示す参照範囲情報４ａ〜４ｃを生成してもよい。具体的には、車両の最高速度を状態データに記録しておき、この最高速度に応じて参照範囲の広さを決定することができる。最高速度が大きいほど、参照するデータのエリアの大きさ（ここではフィールド数）を広くすることができる。
【００３１】
図７および図８は、本実施形態における、状態更新処理の分割、階層化を模式的に表した図である。本実施形態では、図７および図８に示すように、状態更新処理は、３つの階層に分割される。３つの階層において、更新時間間隔（周期）は、大、中、小と段階的に変化する。
【００３２】
周期が大の階層の状態更新処理Ｐ１は、車両の現在地から目的地までの経路を決定し、更新する処理である。そのため、状態更新処理Ｐ１では、車両の現在位置のフィールドを含む１００フィールド（管理単位Ａ１）に属する道路リンクがシミュレーションデータ８から取得される。
【００３３】
周期が中の階層の状態更新処理Ｐ２は、車両の車線変更および信号停止の有無を判断し、車両の進行する車線および停止の有無を更新する処理である。そのために、車両の現在位置のフィールドを含む２５フィールド（管理単位Ａ２）に属する他の車両位置、人、信号、道路形状のデータがシミュレーションデータから取得される。
【００３４】
周期が小の階層の状態更新処理Ｐ３は、車両の操作、車両運動（速度、向き、位置）を更新する処理である。そのために、車両の現在位置のフィールド（管理単位Ａ３）に属する他の車両位置、路面状態のデータがシミュレーションデータから取得される。
【００３５】
状態更新処理Ｐ１〜Ｐ３は、仮想空間内の全ての車両ｃ１〜ｃ４それぞれについて実行される。すなわち、状態更新部３ａ〜３ｃは、仮想空間内の複数の車両ｃ１〜ｃ４それぞれの状態データを更新する。
【００３６】
各階層の更新周期は、大、中、小と段階的に変化している。また、各階層で参照されるデータの内容および参照範囲（管理単位）に含まれるエリアの大きさ（フィールドの数）も異なっている。このように、車両状態更新処理の内容を、処理の時間間隔に応じて分割・階層化する(1)とともに、シミュレーションデータを参照される時間間隔に応じて分類し、参照時間間隔が長いものほど大きな範囲で分割して管理する(2)ことで、一定時間の車両状態更新処理で参照されるデータ総量を削減することができる。その結果、車両状態更新処理を一定時間間隔で実行することで大規模化を可能とする。なお、上記(1)のみであっても、参照されるデータ総量を削減することはできる。(1)および(2)の組み合わせにより、さらなるシミュレーションデータ総量の削減が可能になる。
【００３７】
図７および図８に示す状態更新処理の階層は、例えば、人間の意志決定のモデルに基づいて決定することができる。人間の意思決定の代表的なモデルとして、例えば、戦略、戦術および操作の階層で意思決定を行う三階層モデルを利用することができる。具体例としては、戦略レベルでは経路決定処理、戦術レベルでは車線変更や信号停止などの走行モード選択処理、操作レベルではアクセルペダル・ブレーキペダル・ハンドル操作量と、それによって物理的に車両の挙動を計算する処理を、それぞれ複数の状態更新処理部で実行することができる。
【００３８】
これらの各階層の処理は、すべて同時に処理される必要はなく、それぞれ固有の更新間隔で実行すればよい。例えば、操作・物理計算レベルでは、車両の動きを十分滑らかに制御するために、数ミリ秒間隔での処理時間間隔で更新することが好ましい。また、戦術レベルでは、人間の短時間での認知・判断処理の最小単位が100ミリ秒程度であることから、数100ミリ秒程度の処理時間間隔での更新処理が必要で好ましい。戦略レベルでは、人間の長期の判断処理を実現するので、数秒程度の処理時間間隔での更新処理が好ましい。
【００３９】
このように、人間の意志決定のモデルの各階層に応じて、状態更新処理を階層化することにより、車両を運転する人間の意志決定のレベルに合わせて、状態更新処理のタイミングを適切に設定することができる。例えば、意思決定処理の階層化によって、各階層の時間粒度に合わせて処理ができるようになる。これにより、さらに、処理に必要な情報収集範囲の空間粒度も制限できるようになる。人間の認知遅れの模擬も容易に行える効果もある。
【００４０】
例えば、物理計算レベルにおいては他車両との衝突判定処理が計算量の大きな割合を占めているが、自動車の速度が時速200Kmだとしても、処理時間間隔である数ミリ秒の間に車両が進む距離は、せいぜい1m以内に収まる。したがって、自車両の周囲1m以内の範囲に含まれる他車両だけに限定して衝突判定を行うことで、計算量を削減することができる。
【００４１】
他の例では、交差点右折の際の戦術レベルにおいては、前方交差点の状況に応じて停止するかどうかを決定するが、人間が危険に気付いて急ブレーキを踏み始めるまでの空走時間(0.2秒程度)を考慮して停止するまでの距離を算出すると、時速100Kmで走行している場合は100m程度の距離となるため、この範囲の他車両に限って衝突可能性の判定処理を行えばよい。
【００４２】
このように、車両状態更新処理を分割・階層化するとともに情報収集範囲を制限することで、データ参照量を削減することができ、車両状態更新処理の計算量を削減することができる。また、人間の意志決定の階層を状態更新処理の階層とすることで、人間の認知遅れ等の意志決定の過程も考慮した模擬が可能になる。さらに、車両状態更新処理を分割・階層化することで、シミュレーションデータを分割管理できるため、複数計算機による分散環境で実行しやすくなる。
【００４３】
以下、本実施形態における計算量の削減効果について説明する。
【００４４】
図９は、状態更新処理を分割しない場合の状態更新処理とシミュレーションデータ範囲を模式的に表した図である。図９に示す例では、状態更新処理の周期は一定（５ｍｓ）である。また、管理単位は１００フィールドである。すなわち、１００フィールドに属する全てのシミュレーションデータを参照し、車両の状態を更新する処理が５ｍｓ周期で実行される。
【００４５】
図１０は、図９に示すように、状態更新処理を分割しない場合のシミュレーションデータ量（上段）と、状態更新処理を分割してそれぞれの状態更新処理の周期を異ならせた場合のシミュレーションデータ量（下段）とを示す図である。図１０に示すように、図９に示す場合は、１回の状態更新処理ですべてのデータが参照される。これに対して、状態更新部の処理を分割し、処理時間間隔（更新の周期）に基づいて階層化することで、一定時間内に参照されるデータを削減することができる。すなわち、状態更新処理を分割しない場合は、分割した場合の３階層分のシミュレーションデータ（１＋２＋３）を毎回参照する必要がある。分割した場合は、一定時間内において、時間間隔の長いシミュレーションデータ（３）および時間間隔が中程度のシミュレーションデータ（２）は、一定時間内での参照頻度が、分割しない場合に比べて少なくなる。
【００４６】
図１１は、状態更新処理を分割、階層化し、さらに、更新時間間隔が短い状態更新処理のシミュレーションデータの範囲が小さくなるように局地化した場合のシミュレーションデータ量（下段）と、状態更新処理を分割しない場合のシミュレーションデータ量（上段）とを示す図である。図１１の下段に示すシミュレーションデータ量は、例えば、図８に示すような３階層の状態更新処理で、時間間隔が短い状態更新処理ほど、シミュレーションデータの範囲が小さくなるように設定された場合の例である。このように、３つの階層の合計のシミュレーションデータの量ｄ´は、状態更新処理を分割しない場合の１回のシミュレーションデータ量ｄよりも小さくなる。そのため、一定時間内に参照されるデータを、さらに削減することが可能になる。
【００４７】
次に、シミュレーション装置１の動作例を説明する。図１２は、シミュレーション装置１の動作例を示すフローチャートである。図１２においては、シミュレーション装置１は、シミュレーションを開始すると時計を進行させる（Ｏｐ１）。駆動判定部２は、まず、前回の状態更新部３ｃによる状態更新処理Ｐ３の実行からの経過時間が５ｍｓを越えている場合（Ｏｐ２でＹｅｓ）、状態更新部３ａに状態更新処理Ｐ３の指示を出す。なお、シミュレーション開始直後で、前回の状態更新部３ａ〜３ｃによる状態更新処理Ｐ１〜Ｐ３がまだ実行されていない場合は、駆動判定部２は、無条件で状態更新部３ａ〜３ｃに状態更新処理Ｐ１〜Ｐ３の順次指示を出す。
【００４８】
Ｏｐ２でＮｏの場合、駆動判定部２は、前回の状態更新部３ｂによる状態更新処理Ｐ２の実行からの経過時間が１００ｍｓを越えているか判断し（Ｏｐ８）、超えていれば（Ｏｐ８でＹｅｓ）状態更新部３ｂに状態更新処理Ｐ２の実行を指示する。Ｏｐ８でＮｏの場合は、前回の状態更新部３ａによる状態更新処理Ｐ１の実行からの経過時間が１ｓを越えているか判断し（Ｏｐ１４）、超えていれば（Ｏｐ１４でＹｅｓ）状態更新部３ａに状態更新処理Ｐ１の実行を指示する。これにより、状態更新処理Ｐ３は５ｍｓごとに、状態更新処理Ｐ２は１００ｍｓごとに、状態更新処理Ｐ１は１ｓごとに実行されることになる。
【００４９】
Ｏｐ２でＹｅｓの場合、状態更新部３ｃは、仮想空間内の全ての車両について状態更新処理Ｐ３を実行する（Ｏｐ３〜Ｏｐ７）。具体的には、状態更新部３ｃは、まず、仮想空間内の最初の車両を選択し（Ｏｐ３）、全車両につき状態更新処理Ｐ３が完了したか否かを判定（Ｏｐ４）する。最初の車両の場合はＯｐ４ではＮｏと判定される。状態更新部３ｃは、他の車両位置などのデータを、シミュレーションデータ８から取得する（Ｏｐ５）。このとき、状態更新部３ｃは、例えば、図６に示す参照範囲情報４ｃに従い、選択された車両の属するフィールドに存在する他の車両の位置、および、このフィールドにおける道路の路面状態を取得する。状態更新部３ｃは、取得したデータを使って、選択された車両の状態データを更新する（Ｏｐ６）。ここでは、一例として、操作、車両挙動が更新される。選択された車両の状態データが更新されると、次の車両が選択される（Ｏｐ７）。Ｏｐ５〜Ｏｐ７の処理は、仮想空間内の全ての車両について繰り返される（Ｏｐ４でＹｅｓになるまで繰り返される）。これで、状態更新処理Ｐ３の１回分が完了する。
【００５０】
状態更新処理Ｐ３が終了すると（Ｏｐ４でＹｅｓの場合）、駆動判定部２は、状態更新部３ｂに状態更新処理Ｐ２の実行を指示する。状態更新部３ｂは、仮想空間内の全ての車両について状態更新処理Ｐ２を実行する（Ｏｐ９〜Ｏｐ１３）。具体的には、状態更新部３ｂは、まず、仮想空間内の最初の車両を選択し（Ｏｐ９）、全車両につき状態更新処理Ｐ２が完了したか否かを判定（Ｏｐ１０）する。最初の車両の場合はＯｐ１０ではＮｏと判定される。状態更新部３ｂは、他の車両位置などのデータを、シミュレーションデータ８から取得する（Ｏｐ５）。このとき、状態更新部３ｂは、例えば、図６に示す参照範囲情報４ｂに従い、選択された車両の属するフィールドとその周囲のフィールド（合わせて２５フィールド）に存在する他の車両の位置、人の位置および状態、信号の状態、道路形状を取得する。状態更新部３ｂは、取得したデータを使って、選択された車両の状態データを更新する（Ｏｐ１２）。ここでは、一例として、選択された車両の車線変更の有無、信号停止の有無が判断され更新される。選択された車両の状態データが更新されると、次の車両が選択される（Ｏｐ１３）。Ｏｐ１１〜Ｏｐ１３の処理は、仮想空間内の全ての車両について繰り返される（Ｏｐ１０でＹｅｓになるまで繰り返される）。
【００５１】
状態更新処理Ｐ２が終了すると（Ｏｐ１０でＹｅｓの場合）、駆動判定部２は、状態更新部３ａに状態更新処理Ｐ３の実行を指示する。状態更新部３ａは、仮想空間内の全ての車両について状態更新処理Ｐ１を実行する（Ｏｐ１５〜Ｏｐ１９）。具体的には、状態更新部３ａは、まず、仮想空間内の最初の車両を選択し（Ｏｐ１５）、全車両につき状態更新処理Ｐ１が完了したか否かを判定（Ｏｐ１６）する。最初の車両の場合はＯｐ１６ではＮｏと判定される。状態更新部３ｃは、道路リンクなどのデータを、シミュレーションデータ８から取得する（Ｏｐ１７）。このとき、状態更新部３ａは、例えば、図６に示す参照範囲情報４ａに従い、選択された車両の属するフィールドとその周囲のフィールド（合わせて１００フィールド）に存在する道路リンクを取得する。状態更新部３ａは、取得したデータを使って、選択された車両の状態データを更新する（Ｏｐ１８）。ここでは、一例として、道路リンクに基づいて選択された車両の経路が決定され更新される。選択された車両の状態データが更新されると、次の車両が選択される（Ｏｐ１９）。Ｏｐ１５〜Ｏｐ１９の処理は、仮想空間内の全ての車両について繰り返される（Ｏｐ１６でＹｅｓになるまで繰り返される）。
【００５２】
以上、図１２に示した処理により、一定時間の車両状態更新処理で参照されるデータ総量を削減し、車両状態更新処理を一定時間間隔で実行することができる。例えば、一つ一つの車両において、一定時間間隔で全シミュレーションデータ(道路リンク、信号、他車位置、・・・)を読み込み、車両状態更新処理を実行する場合に比べて、参照されるデータ総量を削減することができる。その結果、車両の増加や対象範囲の増加に従って、それぞれの車両の車両状態更新処理において参照するデータ量が増加することを抑えることができる。ひいては、規模を大きくすることが容易になる。
【００５３】
また、近年、通信インフラや車載機の進歩に伴い、交通施策も変化しつつあり、動的経路誘導(DRGS)のように、個々の車両の個別情報を収集し、個々の車両の状況に合わせて個別に指示を配信するものも可能になる。このような交通施策を評価するためには、一つの地方をカバーできるほど大規模・広範囲で、かつ、情報を受け取る個々の車両の運転手の運転行動の多様性まで詳細に模擬できるミクロシミュレータが必要となる。本実施形態によれば、このようなミクロシミュレータを提供することが可能になる。
【００５４】
（第２の実施形態）
本実施形態は、シミュレーション装置１が、仮想空間を移動する個々の人の動きを模擬して施設における人の流れを再現するミクロシミュレータとして機能する場合について説明する。装置の構成は、図１と同様にすることができる。
【００５５】
本実施形態において、環境データは、仮想空間において、人が移動する通路に関する通路データを含む。状態データは、仮想空間（店舗などの施設）に存在する人の状態を表す人状態データを含む。通路データには、例えば、ノードとリンクで表される通路接続情報、位置情報、施設のレイアウト、陳列される商品または展示品に関する情報、等が含まれる。各人状態データには、例えば、人の位置、向き、速度、目的地までの経路等が含まれる。
【００５６】
図１３は、本実施形態の環境データ６に含まれる通路接続情報の一例である通路リンクの内容を示す図である。図１３に示す例では、各通路リンクＩＤに、リンク長、幅、商品ＩＤ、ワゴンＩＤおよび位置情報が対応付けられて記録されている。
【００５７】
図１４は、人状態データの内容の一例を示す図である。図１４に示す例では、各人ＩＤに、位置（座標）、位置（リンク）、速度および向きが対応付けられて記録される。図１４に示す人状態データは、状態更新部３ａ〜３ｂの各状態更新処理時に参照されるとともに、更新される。
【００５８】
図１５は、商品データの内容の一例を示す図である。図１５に示す例では、各商品ＩＤに、陳列の位置（座標）、種類、スペースおよび高さが対応付けられて記録される。
【００５９】
図１６は、本実施形態における更新制御情報５を示す図である。図１６は、図５と同様である。図１７は、本実施形態における参照範囲情報４ａ〜４ｃの一例を示す図である。例えば、状態更新部３ａは、この参照範囲情報４ａに従って、状態更新処理Ｐ１において、人の現在位置を中心とする１００ｍ四方に属する通路リンクおよび目玉商品をシミュレーションデータ８から取得することになる。状態更新部３ｂは、状態更新処理Ｐ２で、現在位置を中心とする１０ｍ四方に属する他の人の位置およびワゴンの位置をシミュレーションデータ８から取得する。状態更新部３ｃは、人の現在位置を中心とする１ｍ四方における商品の並べ方を示すデータを取得する。
【００６０】
図１８および図１９は、本実施形態における、状態更新処理の分割、階層化を模式的に表した図である。本実施形態では、図１８および図１９に示すように、状態更新処理は、３つの階層に分割される。３つの階層において、更新時間間隔（周期）は、大、中、小と段階的に変化するものとする。
【００６１】
周期が大の階層の状態更新処理Ｐ１は、人の現在地から目的地までの経路を決定し、更新する処理である。そのため、状態更新処理Ｐ１では、人の現在位置を中心とする１００ｍ四方（管理単位Ｓ１）に属する通路リンクがシミュレーションデータ８から取得される。
【００６２】
周期が中の階層の状態更新処理Ｐ２は、障害物回避の有無を判断し、人の進む向きを更新する処理である。そのために、人の現在位置を中心とする１０ｍ四方（管理単位Ｓ２）にいる他の人およびワゴンなどの障害物の位置を示すデータがシミュレーションデータから取得される。
【００６３】
周期が小の階層の状態更新処理Ｐ３は、人の移動量を更新する処理である。そのために、人の現在位置を中心として１ｍ四方（管理単位Ｓ３）に存在する商品の並べ方を示すデータがシミュレーションデータから取得される。状態更新処理Ｐ１〜Ｐ３は、仮想空間内の全ての人ｋ１〜ｋ４それぞれについて実行される。
【００６４】
図１８および図１９に示す状態更新処理の各階層の更新周期は、大、中、小と段階的に変化している。また、各階層で参照されるデータの内容および参照範囲（管理単位）に含まれるエリアの大きさ（フィールドの数）も異なっている。そのため、一定時間の人状態更新処理で参照されるデータ総量を削減することができる。また、本実施形態における情報更新処理の階層化も人間の意志決定のモデルに基づいて決定することができる。これにより、人間の認知遅れ等の意志決定の過程も考慮した模擬が可能になる。本実施形態によれば、例えば、店舗内の顧客移動シミュレーションが可能になる。
【００６５】
図２０は、本実施形態におけるシミュレーション装置の動作例を示すフローチャートである。図２０においては、シミュレーション装置１は、シミュレーション開始すると時計を進行させる（Ｏｐ２１）。駆動判定部２は、まず、前回の状態更新部３ｃによる状態更新処理Ｐ３の実行からの経過時間が５ｍｓを越えている場合（Ｏｐ２２でＹｅｓ）、状態更新部３ａに状態更新処理Ｐ３の指示を出す。
【００６６】
Ｏｐ２２でＮｏの場合、駆動判定部２は、前回の状態更新部３ｂによる状態更新処理Ｐ２の実行からの経過時間が１００ｍｓを越えているか判断し（Ｏｐ２８）、超えていれば（Ｏｐ２８でＹｅｓ）状態更新部３ｂに状態更新処理Ｐ２の実行を指示する。Ｏｐ２８でＮｏの場合は、前回の状態更新部３ａによる状態更新処理Ｐ１の実行からの経過時間が１ｓを越えているか判断し（Ｏｐ２４）、超えていれば（Ｏｐ２４でＹｅｓ）状態更新部３ａに状態更新処理Ｐ１の実行を指示する。これにより、状態更新処理Ｐ３は５ｍｓごとに、状態更新処理Ｐ２は１００ｍｓごとに、状態更新処理Ｐ１は１ｓごとに実行されることになる。
【００６７】
Ｏｐ２でＹｅｓの場合、状態更新部３ｃは、仮想空間内の全ての車両について状態更新処理Ｐ３を実行する（Ｏｐ２３〜Ｏｐ２７）。具体的には、状態更新部３ｃは、まず、仮想空間内の最初の顧客（人）を選択し（Ｏｐ２３）、全顧客につき状態更新処理Ｐ３が完了したか否かを判定（Ｏｐ２４）する。最初の顧客の場合はＯｐ２４ではＮｏと判定される。状態更新部３ｃは、商品の並べ方を示すデータを、シミュレーションデータ８から取得する（Ｏｐ２５）。このとき、状態更新部３ｃは、例えば、図１７に示す参照範囲情報４ｃに従い、選択された顧客の位置を中心とする１ｍ四方にある商品の種類、位置、スペースおよび高さを取得する。状態更新部３ｃは、取得したデータを使って、選択された顧客の状態データを更新する（Ｏｐ２６）。ここでは、一例として、顧客の移動量が更新される。選択された顧客の状態データが更新されると、次の顧客が選択される（Ｏｐ２７）。Ｏｐ２５〜Ｏｐ２７の処理は、仮想空間内の全ての顧客について繰り返される（Ｏｐ２４でＹｅｓになるまで繰り返される）。これで、状態更新処理Ｐ３の１回分が完了する。
【００６８】
状態更新処理Ｐ３が終了すると（Ｏｐ２４でＹｅｓの場合）、駆動判定部２は、状態更新部３ｂに状態更新処理Ｐ２の実行を指示する。状態更新部３ｂは、仮想空間内の全ての顧客について状態更新処理Ｐ２を実行する（Ｏｐ２９〜Ｏｐ３３）。具体的には、状態更新部３ｂは、まず、仮想空間内の最初の顧客を選択し（Ｏｐ２９）、全顧客につき状態更新処理Ｐ２が完了したか否かを判定（Ｏｐ３０）する。最初の顧客の場合はＯｐ３０ではＮｏと判定される。状態更新部３ｂは、他の顧客位置などのデータを、シミュレーションデータ８から取得する（Ｏｐ３１）。このとき、状態更新部３ｂは、例えば、図１７に示す参照範囲情報４ｂに従い、選択された顧客の現在位置を中心とする１０ｍ四方に存在する他の顧客の位置、ワゴンの位置を取得する。状態更新部３ｂは、取得したデータを使って、選択された顧客の状態データを更新する（Ｏｐ３２）。ここでは、一例として、選択された顧客の障害物回避の有無が判断され進む向きが更新される。選択された顧客の状態データが更新されると、次の顧客が選択される（Ｏｐ３３）。Ｏｐ３１〜Ｏｐ３３の処理は、仮想空間内の全ての顧客について繰り返される（Ｏｐ３０でＹｅｓになるまで繰り返される）。
【００６９】
状態更新処理Ｐ２が終了すると（Ｏｐ３０でＹｅｓの場合）、駆動判定部２は、状態更新部３ａに状態更新処理Ｐ３の実行を指示する。状態更新部３ａは、仮想空間内の全ての顧客について状態更新処理Ｐ１を実行する（Ｏｐ３５〜Ｏｐ３９）。具体的には、状態更新部３ａは、まず、仮想空間内の最初の顧客を選択し（Ｏｐ３５）、全顧客につき状態更新処理Ｐ１が完了したか否かを判定（Ｏｐ３６）する。最初の顧客の場合はＯｐ３６ではＮｏと判定される。状態更新部３ｃは、通路リンクなどのデータを、シミュレーションデータ８から取得する（Ｏｐ３７）。このとき、状態更新部３ａは、例えば、図１７に示す参照範囲情報４ａに従い、選択された顧客の現在位置を中心とする１００ｍ四方に存在する通路の通路リンクおよび目玉商品に関するデータを取得する。状態更新部３ａは、取得したデータを使って、選択された顧客の状態データを更新する（Ｏｐ３８）。ここでは、一例として、通路リンクおよび目玉商品に関するデータに基づいて選択された顧客の経路が決定され更新される。選択された顧客の状態データが更新されると、次の顧客が選択される（Ｏｐ３９）。Ｏｐ３５〜Ｏｐ３９の処理は、仮想空間内の全ての顧客について繰り返される（Ｏｐ３６でＹｅｓになるまで繰り返される）。
【００７０】
以上、図２０に示した処理により、一定時間の顧客状態更新処理で参照されるデータ総量を削減し、顧客状態更新処理を一定時間間隔で実行することができる。例えば、一つ一つの顧客において、一定時間間隔で全シミュレーションデータ(通路リンク、商品、ワゴン、他の人位置、・・・)を読み込み、顧客状態更新処理を実行する場合に比べて、参照されるデータ総量を削減することができる。その結果、顧客の増加や対象範囲の増加に従って、それぞれの顧客の顧客状態更新処理において参照するデータ量が増加することを抑えることができる。ひいては、規模を大きくすることが容易になる。
【００７１】
（第３の実施形態）
図２１は、第３の実施形態にかかるシミュレーション装置の構成を示す機能ブロック図である。図２１において、図１と同じ機能ブロックには同じ符号を付している。図２１に示すシミュレーション装置１０では、更新制御情報５１として、イベントルールが記録される。イベントルールは、各状態更新部３ａ〜３ｃによる状態更新処理の開始の条件を示す条件データの一例であり、更新処理開始の条件となるイベントを規定する。また、シミュレーション装置１０は、事象収集部１１で集められた外部状況を示すデータを入力する構成になっている。この構成において、駆動判定部２１は、シミュレーションにおいて発生するイベントを、事象収集部１１を介して検出し、前記イベントルールで示される条件に適合する場合に、状態更新部３ａ〜３ｃへ更新を指示する。
【００７２】
事象収集部１１は、シミュレーションにおいて発生するイベント（事象）を収集して、駆動判定部２１へ通知する。イベントは、例えば、状態データ７で表される移動体の状態の変化または、環境データ６で表される要因の変化等が含まれる。上記第１の実施形態の交通流シミュレーションにおけるイベントの具体例として、各フィールドにおいて、右折位置または左折位置に到達したこと、信号の変化、渋滞の発生、天候の急変等が挙げられる。このように、また、イベントの種類として、(a)一つ一つの車両毎に異なる条件で発生するイベントが挙げられる。例えば、「車両が右折位置または左折位置に到達した」、「目的地に到着した」などである。また、他のイベントの種類として、(b)ある範囲に含まれる車両のみで発生するイベントが挙げられる。例えば、「信号の変化」、「渋滞の発生」、「天候の変化」などである。さらに他のイベントの種類として、前述[a][b]の組み合わせがある。例えば、「渋滞に巻き込まれて、かつ、ガソリンの残りが少ない」等である。
【００７３】
例えば、状態更新部３ａ〜３ｃは、平均発生時間間隔の異なるイベントで更新処理を開始する構成とすることができる。これにより、状態更新処理を分割・階層化し、参照されるデータ総量を削減することができる。
【００７４】
なお、本実施形態を、上記第１または第２の実施形態と組み合わせた構成も可能である。例えば、更新制御情報は、所定間隔で定期的に実行する状態更新処理の更新タイミングと、所定のイベント発生を契機に実行する状態更新処理の更新タイミングの双方を含んでもよい。これにより、状態更新処理を、所定時間間隔で実行するものと、イベント発生を契機として実行するものに分割し、階層化することができる。
【００７５】
なお、上記第１〜第３の実施形態は、リアルタイムにシミュレーション結果を表示する場合に限られない。例えば、大規模なシミュレーションでは、リアルタイムに処理して表示することが難しいので、事前にシミュレーション結果を蓄積しておいて、シミュレーション後に、その結果データに基づいてシミュレーション結果を画面等に表示することができる。
【図１】
2011001512.tif 000003
【図２】
2011001512.tif 000004
【図３】
2011001512.tif 000005
【図４】
2011001512.tif 000006
【図５】
2011001512.tif 000007
【図６】
2011001512.tif 000008
【図７】
2011001512.tif 000009
【図８】
2011001512.tif 000010
【図９】
2011001512.tif 000011
【図１０】
2011001512.tif 000012
【図１１】
2011001512.tif 000013
【図１２】
2011001512.tif 000014
【図１３】
2011001512.tif 000015
【図１４】
2011001512.tif 000016
【図１５】
2011001512.tif 000017
【図１６】
2011001512.tif 000018
【図１７】
2011001512.tif 000019
【図１８】
2011001512.tif 000020
【図１９】
2011001512.tif 000021
【図２０】
2011001512.tif 000022
【図２１】
2011001512.tif 000023
【国際調査報告】
2011001512.tif 000024
2011001512.tif 000025
2011001512.tif 000026
2011001512.tif 000027