(57)【要約】【課題】動的タイムステップ制御方式に基づいてシミュレーションを実行している場合において、実行性能の劣化を防ぐことのできるシミュレーション方法を得る。【解決手段】複数の移動体を主対象としたタイムステップ法に基づく計算機シミュレーションを行う際に、他の移動体と会合する可能性がある時刻までタイムステップ間隔Δｔを大きくすることにより実行性能向上を図る動的タイムステップ制御方式を用いるシミュレーション方法であって、タイムステップ間隔Δｔの増加に伴って増加し、タイムステップ間隔Δｔの算出に要する計算コストの増加に伴って減少する切り替え判定関数をあらかじめ用意し、切り替え判定関数の値が所定閾値を下回った場合には、タイムステップ間隔Δｔを算出せずに毎時刻固定の細かいタイムステップδｔに基づく従来のシミュレーション方式に変更してシミュレーションを続行する。【選択図】図２
2008197985.tif 000002
【特許請求の範囲】
【請求項１】
複数の移動体を主対象としたタイムステップ法に基づく計算機シミュレーションを行う際に、他の移動体と会合する可能性がある時刻までタイムステップ間隔Δｔを大きくすることにより実行性能向上を図る動的タイムステップ制御方式を用いるシミュレーション方法であって、
タイムステップ間隔Δｔの増加に伴って増加し、タイムステップ間隔Δｔの算出に要する計算コストの増加に伴って減少する切り替え判定関数をあらかじめ用意し、前記切り替え判定関数の値が所定閾値を下回った場合には、前記タイムステップ間隔Δｔを算出せずに毎時刻固定の細かいタイムステップδｔに基づく従来のシミュレーション方式に変更してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項２】
請求項１に記載のシミュレーション方法において、
前記複数の移動体のそれぞれについて、前記切り替え判定関数の値を計算し、移動体ごとに前記従来のシミュレーション方式への変更を判定することを特徴とするシミュレーション方法。
【請求項３】
請求項１に記載のシミュレーション方法において、
前記複数の移動体のそれぞれについて計算した前記切り替え判定関数の値から平均値を求め、前記平均値が前記所定閾値を下回った場合には、前記複数の移動体を一括して前記従来のシミュレーション方式に変更してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項４】
請求項１ないし３のいずれか１項に記載のシミュレーション方法において、
ある移動体が前記従来のシミュレーション方式を実行している場合に、前記従来のシミュレーション方式を所定回数実行した後に動的タイムステップ制御方式に戻してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項５】
請求項２に記載のシミュレーション方法において、
ある移動体が前記従来のシミュレーション方式を実行している場合に、該移動体が他の移動体と会合状態でなければ動的タイムステップ制御方式に戻してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項６】
請求項２に記載のシミュレーション方法において、
ある移動体が前記従来のシミュレーション方式を実行している場合に、該移動体が、動的タイムステップ制御方式によりシミュレーションを実行している他のいずれの移動体においても会合対象となっていなければ動的タイムステップ制御方式に戻してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項７】
請求項２に記載のシミュレーション方法において、
ある移動体が前記従来のシミュレーション方式を実行している場合に、該移動体の周囲の移動体密集度を調べ、前記移動体密集度が所定閾値以下であれば移動体間で会合する可能性が低いと判断し、該移動体を動的タイムステップ制御方式に戻してシミュレーションを続行することを特徴とするシミュレーション方法。
【請求項８】
請求項３に記載のシミュレーション方法において、
前記複数の移動体のすべてが、前記従来のシミュレーション方式を一括して実行している場合に、それぞれの移動体について他の移動体と会合状態であるか否かを判断し、会合状態であると判断された移動体の割合が所定閾値以下であれば、前記複数の移動体を一括して動的タイムステップ制御方式に戻してシミュレーションを続行することを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的タイムステップ制御方式を用いて多数の移動体のシミュレーションを行うシミュレーション方法に関する。
【背景技術】
【０００２】
航空機、船舶、車両、人等の移動体が多数登場する移動体シミュレーションでは、各移動体が複雑に影響を及ぼし合うため、どのようなイベントが、いつ、どこで発生するかを特定することは、非常に困難である。従って、このような特徴を持つ移動体シミュレーションでは、発生するイベントを時系列に並べて、時系列順に処理するイベント駆動型のシミュレーションを実現することが困難である。
【０００３】
そこで、このようなシミュレーションでは、シミュレーション時刻のタイムステップ幅（Δｔ）を定義して、このΔｔに基づいてシミュレーション時刻を進めるタイムステップ法を用いるのが一般的である。タイムステップ法では、定義するΔｔによって模擬精度が左右されるが、複数の移動体を同時に模擬できるため、並列シミュレーション技術を用いることにより高速化が図れるという特徴がある。
【０００４】
しかし、移動速度は、移動体毎に異なるため、タイムステップ法により全ての移動体を同一のΔｔに基づいて模擬することは、非効率である。模擬精度および模擬結果が同じであれば、可能な限りΔｔを大きくした方が、他の移動体との情報交換および移動体自身の模擬に要する処理負荷が小さくなり、実行性能向上が図れることになる。この概念に基づいて提案された方式が「動的タイムステップ制御方式」である（例えば、非特許文献１参照）。
【０００５】
この動的タイムステップ制御方式は、各移動体が他の移動体と会合状態でない場合には、自身の状態情報だけを利用して模擬できるとして、他の移動体と情報交換する必要がないと考え、Δｔを大きくする方式である。ここで、会合状態とは、他の移動体と「見る」または「見られる」（「探知」または「被探知」）状態のことであり、相互作用を及ぼし合う状態を意味する。
【０００６】
なお、動的タイムステップ制御方式の基本概念は、他の移動体と自身の位置情報、両者の直線距離、そして両者の最大速度情報を利用して、該直線距離上を互いが最高速度で近づき合うと仮定して、会合可能性時刻を求める。そして、他の全ての移動体に対して求めた会合可能性時刻の中で、現在時刻から最も近い未来の時刻を当該移動体の次の模擬時刻に設定するものである。従って、この動的タイムステップ制御方式は、最悪時を想定して次の模擬時刻を決める保守的方式といえる。
【０００７】
図４は、従来の基本的な動的タイムステップ制御方式におけるΔｔの算出例の説明図である。より具体的には、３つの移動体（ＭＯ：Ｍｏｖｉｎｇ  Ｏｂｊｅｃｔ）ＭＯａ、ＭＯｂ、ＭＯｃが存在する場合に、ＭＯａの次の模擬時刻を決定するためのΔｔの算出例を示したものである。この例の場合では、tａ→ｂ＜tａ→ｃとなるため、tａ→ｂがＭＯａの次の模擬時刻を決定するためのΔｔとなる。
【０００８】
なお、他の移動体と会合状態または会合する可能性がある状態では、従来方式で用いられている細かいタイムステップ（δｔ）に基いて模擬することにより、従来方式と同等の模擬精度を実現できる。ここで、従来方式とは、要求された模擬精度に基いて設定された固定のタイムステップ（δｔ）により、シミュレーション時刻を進める実行方式である。
【０００９】
以上のことから、動的タイムステップ制御方式の適用によりタイムステップを比較的大きく取れるようなアプリケーションでは、この動的タイムステップ制御方式は、実行性能向上のための有効な方式となる。
【００１０】
【非特許文献１】“Event-Aware Dynamic Time Step Synchronization Method for Distributed Moving Object Simulation、” IEICE TRANSACTIONS on Fundamentals of Electronics、 Communications and Computer Sciences  Vol.E89-A  No.11  pp.3175-3184
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術には次のような課題がある。
動的タイムステップ制御方式は、会合状態では模擬精度を維持するために、従来方式と同じδｔ（≦Δｔ）に基づいて模擬する。このため、δｔに基づいて模擬する状態が長く続くと、Δｔを算出するコスト分がオーバーヘッドとなり、従来方式よりも実行性能が劣る可能性が高くなるといった課題がある。
【００１２】
本発明は上述のような課題を解決するためになされたもので、動的タイムステップ制御方式に基づいてシミュレーションを実行している場合において、実行性能の劣化を防ぐことのできるシミュレーション方法を得ることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るシミュレーション方法は、複数の移動体を主対象としたタイムステップ法に基づく計算機シミュレーションを行う際に、他の移動体と会合する可能性がある時刻までタイムステップ間隔Δｔを大きくすることにより実行性能向上を図る動的タイムステップ制御方式を用いるシミュレーション方法であって、タイムステップ間隔Δｔの増加に伴って増加し、タイムステップ間隔Δｔの算出に要する計算コストの増加に伴って減少する切り替え判定関数をあらかじめ用意し、切り替え判定関数の値が所定閾値を下回った場合には、タイムステップ間隔Δｔを算出せずに毎時刻固定の細かいタイムステップδｔに基づく従来のシミュレーション方式に変更してシミュレーションを続行するものである。
【発明の効果】
【００１４】
本発明によれば、タイムステップ間隔Δｔの増加に伴って増加し、タイムステップ間隔Δｔの算出に要する計算コストの増加に伴って減少する切り替え判定関数を導入してシミュレーション方式の切り替えを判断することにより、会合状態または会合状態になる可能性があると判断した場合には細かい固定のタイムステップを用いる従来方式に切り替えてシミュレーションを継続することができ、動的タイムステップ制御方式に基づいてシミュレーションを実行している場合において、実行性能の劣化を防ぐことのできるシミュレーション方法を得ることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明のシミュレーション方法の好適な実施の形態につき図面を用いて説明する。
【００１６】
実施の形態１．
図１は、本発明の実施の形態１における動的タイムステップ制御方式の挙動と、従来の動的タイムステップ制御方式の挙動とを比較した説明図である。図１（ａ）が従来方式、図１（ｂ）が本発明の方式に相当し、任意の移動体におけるシミュレーション時刻進行に関して、両方式を対比して示している。
【００１７】
図１において、「探知模擬」とは、周囲の移動体の情報を収集する処理を意味する。また、「運動模擬」とは、探知模擬結果を基に行動し、自身の次の状態を決定する処理を意味する。さらに、「通信処理」とは、運動模擬の結果を他の移動体へ伝送する処理を意味する。
【００１８】
従来の動的タイムステップ制御方式では、「探知模擬」、「運動模擬」、「通信処理」からなるコストユニットを、細かいδｔのタイムステップ間隔で実施している（図１（ａ）参照）。これに対して、本実施の形態１の動的タイムステップ制御方式では、タイムステップ間隔をδｔからΔｔに大きく取ることが可能となるが、「探知模擬」、「運動模擬」、「通信処理」の３つの処理の他に、タイムステップ間隔（Δｔ）を計算する「Δｔ計算」処理が必要となる（図１（ｂ）参照）。
【００１９】
このため、動的タイムステップ制御方式を適用した場合において、Δｔが大きく取れずに従来方式のδｔと同程度になってしまう状況では、Δｔを計算する処理コスト分がオーバーヘッドとなり、実行性能が劣化することとなる。すなわち、動的タイムステップ制御方式を適用した場合に、実行性能向上に寄与する条件は、Δｔを計算する処理コスト以上にタイムステップを大きく取れることによる効果がある場合である。
【００２０】
従って、実行性能向上に対する寄与と処理コストの両面のトレードオフを考慮して、従来方式と本発明の動的タイムステップ制御方式とを切り換えることが考えられる。図２は、本発明の実施の形態１において制御方式の切り換え判断を行うフローチャートである。一例として、図２に示すような関数ｆを用意して、関数ｆの値が所定閾値である１未満であれば従来方式を適用し、１以上であれば本発明の動的タイムステップ制御方式を適用することが考えられる。
【００２１】
ここで、図２に示した関数ｆ中のＣｏｓｔΔｔは、本実施の形態１における動的タイムステップ制御方式で新たに追加した「Δｔ計算」の処理コストである。また、ＣｏｓｔＵｎｉｔは、従来方式における１時刻分の処理（模擬）コストに相当するものであり（図１参照）、従来方式での単位時間δｔおよびシミュレーション時刻の最小単位時間を１とした場合のものである。
【００２２】
図２に示す関数ｆは、Δｔの増加に伴って増加し、かつΔｔ算出に要する計算コストの増加に伴って減少する関数であり、切り替え判定関数に相当する。このような関数を用いて所定閾値との比較により制御方法の切り替えを判定することにより、実行性能向上に対する寄与と処理コストの両面のトレードオフを考慮することができる。
【００２３】
具体的な切り替え方法としては、個々の移動体単位でどちらの実行方式にするかを判断して切り替える方法（以下、個別切り替え方法と称す）と、全体的な状況から全部の移動体の制御方式を一括して切り替える方法（以下、一括切り替え方法と称す）とが考えられる。後者の一括切り替え方法に関しては、例えば、図２の判定式に基づいて、従来方式を選択した移動体数の割合が、ある閾値以上であれば全部を従来方式に変えるといった方法が考えられる。
【００２４】
以上のように、実施の形態１によれば、切り替え判定関数を導入することにより、実行性能向上に対する寄与と処理コストの両面のトレードオフを考慮して、従来方式と本発明の動的タイムステップ制御方式との切り替えが実現できる。この結果、動的タイムステップ制御方式に基づいてシミュレーションを実行している場合においても、会合状態に応じて従来方式に切り替えることができ、実行性能の劣化を防ぐことのできるシミュレーション方法を得ることができる。
【００２５】
実施の形態２．
本実施の形態２では、先の実施の形態１で述べたＣｏｓｔΔｔの具体的な設定方法に関して、次の３つの場合について説明する。
ケース１：ＣｏｓｔΔｔを固定値に設定する方法
ケース２：ＣｏｓｔΔｔを場合分けして設定する方法
ケース３：ＣｏｓｔΔｔを動的（実行中）に設定する方法
【００２６】
ケース１：ＣｏｓｔΔｔを固定値に設定する方法
例えば、従来技術において、先の図４を用いて説明した動的タイムステップ制御方式の基本形では、各移動体ｉは、下式（１）を計算することによりΔｔｉを求め、次の模擬時刻を決定する。
【００２７】
【数１】
2008197985.tif 000003
【００２８】
なお、上式（１）中のｉは自移動体、ｊは他の移動体を示している。また、ｔｍｐΔｔｉｊは、移動体ｉと移動体ｊとの間の会合可能性時刻に関するΔｔを示したものである。従って、上式（１）は、自移動体ｉにおける他の移動体ｊ群に対しての最小のΔｔを求めることを示すものである。また、ｔｍｐΔｔｉｊは、下式（２）より算出される。
【００２９】
【数２】
2008197985.tif 000004
【００３０】
ここで、Ｄｉｊは、移動体ｉと移動体ｊとの間の距離、Ｒｉ、Ｒｊは、移動体ｉと移動体ｊのそれぞれの見る範囲（半径値）、Ｖｉ、Ｖｊは、移動体ｉと移動体ｊのそれぞれの最高速度を示したものである。この上式（１）および（２）の実際の実行時間をＣｏｓｔΔｔに設定することが考えられる。
【００３１】
ケース２：ＣｏｓｔΔｔを場合分けして設定する方法
アプリケーションによっては、全ての移動体との会合可能性時刻を算出する必要がない場合がある。例えば、道路交通シミュレーションでは、車の次の時刻の状態を決定する際に、該車の前方車の情報は必要とするが、前々方車の情報は必要としない場合が殆どである。
【００３２】
さらに、走行車線上の車の情報のみを利用し、反対車線の状況は無視したモデルで実装する場合が多い。このような場合、会合可能性時刻算出のために対象となる他の移動体数は、その時々で変わることとなる。
【００３３】
また、先に図４を基に説明した基本的な動的タイムステップ制御方式は、移動体間の直線距離に基づいて会合可能性時刻を算出した。しかしながら、道路交通シミュレーションの場合には、移動体間の距離として道路網に沿った距離を用いることも考えられる。このような場合、Δｔを算出するコストも、対象とする移動体間の位置的な関係で異なる。
【００３４】
このようなアプリケーションでは、例えば、以下のようなパターン１〜パターン４に場合分けし、各パターン毎のコストを事前に設定しておく。そして、実行中に該当するパターンのコストを累積した値をＣｏｓｔΔｔ値として採用することが考えられる。図３は、本発明の実施の形態２における場合分けパターンを用いた道路交通シミュレーションの説明図である。
【００３５】
ここで、図３におけるパターン１〜パターン４は、一例として、以下のように場合分けできる。
パターン１）交差点を介さない同一車線上の前方車：コスト５
パターン２）交差点１つを介する前方車：コスト１０（例：図３の自車Ａと他車Ｂとの関係に相当）
パターン３）交差点２つを介する前方車：コスト１５（例：図３の自車Ａと他車Ｃの関係に相当）
パターン４）交差点３つ以上を介する前方車：３０
【００３６】
本方法は、基本的には、移動体単位で判断し、切り替えることとなる。しかしながら、例えば、切り替わった移動体の全体の割合を基に、この割合がある所定閾値を超えた場合には、全体を一括して従来方式に切り替えるといったことも考えられる。また、以下のケース３で説明する方法では、コストの値に揺らぎが生じるが、このケース２の方法では、そのような問題が生じないといったメリットがある。
【００３７】
ケース３：ＣｏｓｔΔｔを動的（実行中）に設定する方法
ケース２で述べたように、あらかじめ場合分けを決めておくのではなく、実際にΔｔ算出のために要した実行時間をシミュレーション実行中に測定し、その値をＣｏｓｔΔｔ値として採用することが考えられる。本方法は、実際にΔｔ算出のために要した実行時間が正確に測定されれば、精度の良い値となる。しかしながら、測定時に、たまたま他の処理（例えば、ガーベッジコレクション等）が実行されたりしたことにより、実質以上に大きな値となってしまう可能性があるといった課題がある。
【００３８】
以上のように、実施の形態２によれば、種々の具体的な方法により、ＣｏｓｔΔｔを算出でき、この算出結果を用いて切り替え判定関数による切り替え判断を行うことにより、最適なシミュレーション方式を選択できる。
【００３９】
実施の形態３．
動的タイムステップ制御方式に基づいてシミュレーションを実行中の場合には、Δｔを計算するプロセスで、従来方式に切り替える適当なタイミング情報を抽出できる。しかし、従来方式を実行中には、Δｔを計算しないため、従来方式から動的タイムステップ制御方式に戻す切り替えタイミングの情報が乏しい。
【００４０】
そこで、本実施の形態３では、従来方式から本発明の動的タイムステップ制御方式へ変換するタイミングの具体例として、次の３つの方法について説明する。
ケース１：Ｎ回（ステップ）後に動的タイムステップ制御方式へ切り替える方法
ケース２：会合状態でなければ動的タイムステップ制御方式へ切り替える方法
ケース３：周囲の状況から判断して動的タイムステップ制御方式へ切り替える方法
【００４１】
ケース１：Ｎ回（ステップ）後に動的タイムステップ制御方式へ切り替える方法
例えば、Ｎ＝１０として、従来方式で１０ステップ（δｔ×１０）後に動的タイムステップ制御方式へ切り替える（ただし、Ｎは、２以上の整数である）。または、このＮ値を適当に変えてみて、その中で最も実行性能が良かった時の値を設定することが考えられえる。
【００４２】
本方法は、従来のシミュレーション方式を所定ステップ数実行した後に、動的タイムステップ制御方式に戻してシミュレーションを続行するものである。従って、後述するケース２およびケース３に比べて、切り替える判断コストがかからないといったメリットがある。しかしながら、その一方で、動的タイムステップ制御方式へ切り替えるのに適したタイミングを逃すというデメリットがある。基本的には、全移動体が同一のタイミングで実行方式を切り替えることとなる。
【００４３】
また、移動体間で会合する可能性が高いところ（例：道路交通シミュレーションにおける街中（渋滞等）、ウォーゲームシミュレーションにおける戦闘領域など）では、Ｎの値を大きくし、会合する可能性が低いところでは、Ｎの値を小さくするといったことが考えられる。この場合は、動的タイムステップ制御方式に基づいて実行している移動体と、従来方式により実行している移動体とが混在することになる。
【００４４】
ケース２：会合状態でなければ動的タイムステップ制御方式へ切り替える方法
従来方式に基づいて実行中であっても、各移動体は、回りの移動体の状況を見ながら行動しているため、現状が会合状態であるか否かを判断することができる。この情報を利用して、会合状態でなければ動的タイムステップ制御方式へ切り替えることが考えられる。
【００４５】
また、本方法では、動的タイムステップ制御方式に基づいて実行している移動体と、従来方式により実行している移動体とが混在している。このため、動的タイムステップ制御方式に基づいて実行している移動体の情報を活用して、従来方式により実行している移動体の実行方式を切り替えることも考えられる。
【００４６】
例えば、従来方式により実行しているある移動体が、動的タイムステップ制御方式に基づいて実行しているその他のいずれの移動体からも会合対象となっていない場合には、この移動体を従来方式から動的タイムステップ制御方式に切り替えることが考えられる。
【００４７】
本方法は、基本的には、移動体単位で判断し、切り替えることとなるが、例えば、切り替わった移動体の全体の割合を基に、この割合がある所定閾値を超えた場合は、移動体全体を一括して動的タイムステップ制御方式に切り替えるといったことも考えられる。
【００４８】
ケース３：周囲の状況から判断して動的タイムステップ制御方式へ切り替える方法
移動体が密集している状態では、基本的に、移動体間で会合する可能性は高くなる。この性質を利用し、従来方式により実行中の移動体は、例えば、道路交通シミュレーションの場合、周囲１００ｍ以内の範囲に存在する車の数を移動体密集度として調べ、この移動体密集度がある所定閾値以下となった時には、会合する可能性が低いと判断し、従来方式から動的タイムステップ制御方式に切り替えることが考えられる。
【００４９】
本方法では従来方式の実行コストに加え、毎時刻、周囲の車の数を調べる分のコストが発生することとなるが、動的タイムステップ制御方式へ切り替える適当なタイミングを抽出することができることになる。
【００５０】
以上のように、実施の形態３によれば、従来方式から本発明の動的タイムステップ制御方式へ変換するタイミングとして、定期的に切り替える方法、会合状態でなければ切り替える方法、および周囲の状況から判断して切り替える方法といった具体的な方法を採用することができる。これにより、適当な切り替えタイミングを容易に抽出することが可能となり、実行性能の劣化を防止したシミュレーション方法を得ることができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態１における動的タイムステップ制御方式の挙動と、従来の動的タイムステップ制御方式の挙動とを比較した説明図である。
【図２】本発明の実施の形態１において制御方式の切り換え判断を行うフローチャートである。
【図３】本発明の実施の形態２における場合分けパターンを用いた道路交通シミュレーションの説明図である。
【図４】従来の基本的な動的タイムステップ制御方式におけるΔｔの算出例の説明図である。
【図１】
2008197985.tif 000005
【図２】
2008197985.tif 000006
【図３】
2008197985.tif 000007
【図４】
2008197985.tif 000008