(57)【要約】【課題】論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する論理プロセッサにおいて、無駄な仮説実行を行わずに高速に時刻進行を実行することが可能な論理プロッセを提供する。【解決手段】論理プロセッサ１０１において、イベント・仮説管理部１０４は、受信した将来イベントが有効な場合または無効な場合の関係の２種類の関係により各将来イベントの関係を木構造に分類し、イベントが有効あるいは無効であることが確定した際に木構造の不必要な部分木を削除する。これにより、将来イベントによる仮説処理の実行の必要性を高速に判断可能で、全体の処理負荷低減が可能な分散シミュレーションシステムを構築可能な論理プロセッサを提供することができる。【選択図】図１
2008204008.tif 000002
【特許請求の範囲】
【請求項１】
論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する前記論理プロセッサにおいて、
シミュレーションを実行するシミュレーション実行部と、
前記分散シミュレーションシステムを構成する他の複数の論理プロセッサから将来有効となる将来イベントであってその将来イベントが有効となるべき論理時刻であるイベント有効時刻を有する前記将来イベントを受信し、受信した前記将来イベントのうち所定の将来イベントを木構造のルートとして設定するとともに受信した前記将来イベントを前記ルートも含めて前記イベント有効時刻の昇順により、かつ、前記将来イベントが有効な場合と無効な場合との２分木の関係で前記将来イベントを一つ下層の将来イベントと接続することにより、前記将来イベントの前記木構造を生成し、生成した前記木構造を構成する何れかの前記将来イベントについて無効か有効かが確定した場合には、前記確定結果に基づいて前記木構造のうち不要な将来イベントを特定し、特定した前記将来イベントを削除し、前記将来イベントが削除された前記木構造に基づいて前記シミュレーション実行部にシミュレーションを実行させる木構造生成部と
を備えたことを特徴とする論理プロセッサ。
【請求項２】
論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する前記論理プロセッサにおいて、
シミュレーションを実行するシミュレーション実行部と、
前記分散シミュレーションシステムを構成する他の複数の論理プロセッサから将来有効となる将来イベントであってその将来イベントが有効となるべき論理時刻であるイベント有効時刻を有する前記将来イベントを受信し、受信した前記将来イベントのうち所定の将来イベントを木構造のルートとして設定するとともに受信した前記将来イベントを前記ルートも含めて前記イベント有効時刻の昇順により、かつ、前記将来イベントが有効な場合と無効な場合との２分木の関係で前記将来イベントを一つ下層の将来イベントと接続することにより、前記将来イベントの前記木構造を生成するとともに、前記木構造を構成する前記将来イベントのうち互いに有効と無効との何れかの関係で接続する前記将来イベントどうしが矛盾する場合の関係を示す将来イベント間矛盾関係を格納しており、前記木構造における互いに有効と無効との何れかの関係で接続する前記将来イベントどうしのうち前記将来イベント間矛盾関係を満たすものが存在するかどうかを判定し、存在すると判定した場合には、その判定結果に基づいて前記木構造のうち不要な将来イベントを特定し、特定した前記将来イベントを削除し、前記将来イベントが削除された前記木構造に基づいて前記シミュレーション実行部にシミュレーションを実行させる木構造生成部と
を備えたことを特徴とする論理プロセッサ。
【請求項３】
前記木構造生成部は、
前記将来イベント間矛盾関係として、エンティティの存在に基づく前記将来イベント間矛盾関係を記憶していることを特徴とする請求項２記載の論理プロセッサ。
【請求項４】
前記木構造生成部は、
前記将来イベント間矛盾関係として、エンティティの状態に基づく前記将来イベント間矛盾関係を記憶していることを特徴とする請求項２記載の論理プロセッサ。
【請求項５】
前記木構造生成部は、
前記将来イベント間矛盾関係として、エンティティの位置と速度とに基づく前記将来イベント間矛盾関係を記憶していることを特徴とする請求項２記載の論理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する前記論理プロセッサに関する。
【背景技術】
【０００２】
非特許文献１は、分散シミュレーションシステムのアーキテクチャの標準規約であるＨＬＡ（Ｈｉｇｈ  Ｌｅｖｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＩＥＥＥ  Ｓｔｄ  １５１６−２０００、ＩＥＥＥ  Ｓｔｄ  １５１６．１−２０００、ＩＥＥＥ  Ｓｔｄ  １５１６．２−２０００）における論理時刻管理について論じた論文である。
【０００３】
ＨＬＡにおける論理時刻管理（ＨＬＡではＴｉｍｅ  Ｍａｎａｇｅｍｅｎｔと呼ぶ）とは、分散シミュレーションを構成する各論理プロセッサ（ＨＬＡではＦｅｄｅｒａｔｅと呼ぶ）の処理の同期に論理時刻（ＨＬＡではＬｏｇｉｃａｌ  Ｔｉｍｅと呼ぶ）を使用し、各論理プロセッサの実行進捗を管理する機能である。論理プロセッサは、ある論理時刻における模擬実行結果に応じて他論理プロセッサへのイベントを送信する。イベントには、そのイベントが有効となる論理時刻値が付けられている。論理プロセッサは受信したイベントを基にした模擬実行も行うが、複数の論理プロセッサが矛盾なく並列実行するための手法として、論理プロセッサの論理時刻の進行に応じて有効時刻となったイベントを受信するように管理する手法がある。このような論理時刻進行の手法を保守的手法と呼ぶ。図１１に、保守的手法による論理プロセッサの時刻とイベント交換の例を示す。図１１において、論理プロセッサ（ＬＰ−Ａ）は、現在時刻ＬＴ２５の処理を実行完了し、ＬＴ２７に有効となるイベントを論理プロセッサ（ＬＰ−Ｂ）と論理プロセッサ（ＬＰ−Ｃ）とに送信し、次時刻としてＬＴ２７へ進行を要求中である。論理プロセッサ（ＬＰ−Ｂ）は、ＬＴ２７に有効となる論理プロセッサ（ＬＰ−Ａ）からのイベントを受信し、現在時刻ＬＴ２７の処理を実行中である。論理プロセッサ（ＬＰ−Ｃ）は、現在時刻ＬＴ２６の処理を実行中であり、まだＬＴ２７以降に時刻進行していないため、ＬＴ２７に有効となる論理プロセッサ（ＬＰ−Ａ）からのイベントは受信しない。
【０００４】
前記の「保守的手法」に対して楽観的手法がある。楽観的手法（Ｏｐｔｉｍｉｓｔｉｃ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）とは、論理プロセッサがイベントを受信する際に、その時点で発生している全てのイベントを受信する手法である。楽観的手法では将来の時刻に有効となる未確定の将来イベントを受信することができるため、論理プロセッサは将来イベントに基づき将来の事象を仮説として模擬実行することができ、また、その仮説の模擬実行結果に基づいた将来イベントを他の論理プロセッサに対して送信することができる。
【０００５】
図１２に、楽観的手法に基づく論理時刻進行の例を示す。図１２の楽観的手法は、図１１の保守手法に対して、論理プロセッサ（ＬＰ−Ｃ）の動作が異なる。論理プロセッサ（ＬＰ−Ａ）は現在時刻ＬＴ２５の処理を実行完了し、ＬＴ２７に有効となるイベントを論理プロセッサ（ＬＰ−Ｂ）、論理プロセッサ（ＬＰ−Ｃ）に送信し、次時刻としてＬＴ２７へ進行を要求中である。論理プロセッサ（ＬＰ−Ｂ）は、ＬＴ２７に有効となる論理プロセッサ（ＬＰ−Ａ）からのイベントを受信し、現在時刻ＬＴ２７の処理を実行中である。論理プロセッサ（ＬＰ−Ｃ）は、現在時刻ＬＴ２６の処理を実行中である。論理プロセッサ（ＬＰ−Ｃ）は、まだＬＴ２７以降に時刻進行していないが、ＬＴ２７に有効となる論理プロセッサ（ＬＰ−Ａ）からのイベントは受信し、仮説としてＬＴ２７の処理も実行し、仮設に基づくイベントを論理プロセッサ（ＬＰ−Ａ）に送信する。楽観的手法では、仮説の模擬実行や将来のイベント送信は、未確定の時刻のイベントに基づいて処理されるため、保守的手法と異なり各論理プロセッサが処理する仮説間やイベント間に矛盾が生じる可能性がある。矛盾が生じた場合、論理プロセッサは仮説である模擬実行結果を破棄するとともに、矛盾イベントの送信を取り消すことにより矛盾を解決することができる。
【非特許文献１】Ｆｕｊｉｍｏｔｏ，Ｒ．Ｍ．“Ｔｉｍｅ  Ｍａｎａｇｅｍｅｎｔ  ｉｎ  ｔｈｅ  Ｈｉｇｈ  Ｌｅｖｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ．”Ｓｉｍｕｌａｔｉｏｎ，Ｖｏｌ．７１，Ｎｏ．６，ｐｐ．３８８−４００，Ｄｅｃｅｍｂｅｒ１９９８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
楽観的手法による論理時刻進行では、将来イベントに基づき将来の事象を仮説として模擬実行することができ、また、その仮説の模擬実行結果に基づいた将来イベントを他の論理プロセッサに対して送信することができるため、仮説実行結果を基に各論理プロセッサの時刻進行を高速に実行できる可能性がある。しかし、例えば将来イベントが多数発生しているような状況では、各論理プロセッサにおける仮説の数が膨大になり、また矛盾発生の確率も高まるため、多数の仮説実行結果が無駄処理となってしまう可能性がある。このように、楽観的手法で仮説数が多くなるような場合は、結果的には無駄となってしまう処理を多数実行することになるため、高速化が難しいという課題がある。
【０００７】
本発明は楽観的手法における課題を解決するもので、無駄な仮説実行を行わずに高速に時刻進行を実行することが可能な論理プロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の論理プロセッサは、
論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する前記論理プロセッサにおいて、
シミュレーションを実行するシミュレーション実行部と、
前記分散シミュレーションシステムを構成する他の複数の論理プロセッサから将来有効となる将来イベントであってその将来イベントが有効となるべき論理時刻であるイベント有効時刻を有する前記将来イベントを受信し、受信した前記将来イベントのうち所定の将来イベントを木構造のルートとして設定するとともに受信した前記将来イベントを前記ルートも含めて前記イベント有効時刻の昇順により、かつ、前記将来イベントが有効な場合と無効な場合との２分木の関係で前記将来イベントを一つ下層の将来イベントと接続することにより、前記将来イベントの前記木構造を生成し、生成した前記木構造を構成する何れかの前記将来イベントについて無効か有効かが確定した場合には、前記確定結果に基づいて前記木構造のうち不要な将来イベントを特定し、特定した前記将来イベントを削除し、前記将来イベントが削除された前記木構造に基づいて前記シミュレーション実行部にシミュレーションを実行させる木構造生成部と
を備えたことを特徴とする。
【発明の効果】
【０００９】
この発明の論理プロセッサにより、論理時刻に基づき時刻進行する複数の論理プロセッサから構成される楽観的手法の分散シミュレーションシステムを構成する前記論理プロセッサにおいて、無駄な仮説実行を行わずに高速に時刻進行を実行することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１〜図５を用いて実施の形態１を説明する。実施の形態１は、論理時刻に基づき時刻進行する複数の論理プロセッサから構成される分散シミュレーションシステムの時刻進行方式に関する。楽観的手法による時刻進行において各論理プロセッサが受信した将来の時刻が有効時刻（イベント有効時刻）となっているイベント（将来イベント）の、各イベント間の関係性に着目し、実行する必要が無い仮説を高速に発見し削除することで全体的な処理性能の向上を実現するシステムに関する。実施の形態１では、楽観的手法による分散シミュレーションシステムにおいて、将来イベントによる仮説をイベントの「木構造」を用いて整理し、各イベント間の関係性に着目して不必要な仮説を削減することで全体的な処理能力の向上を実現する実施形態である。
【００１１】
図１は、実施の形態１における分散シミュレーションシステム１０００を示す構成図である。分散シミュレーションシステム１０００は、分散シミュレーション実行基盤１０５と、分散シミュレーション実行基盤１０５に接続された複数の論理プロセッサ１０１とを備える。論理プロセッサ１０１は、分散シミュレーションシステム１０００を構成する。分散シミュレーションシステム１０００では、複数の論理プロセッサ１０１によって、シミュレーション処理が分散並列処理として実行される。また、分散シミュレーション実行基盤１０５は、各論理プロセッサ間で送受信される将来イベントや、各論理プロセッサの論理時刻進行等を実行管理する。
【００１２】
論理プロセッサ１０１を説明する。論理プロセッサ１０１は、イベント・仮説管理部１０４（木構造生成部）と、仮説プール部１０２（シミュレーション実行部）とを備える。
（１）イベント・仮説管理部１０４は、仮説実行処理１０３を生成し、仮説プール部１０２にて処理される仮説と、その仮説が生じた基となったイベントの関係を管理する。
（２）仮説プール部１０２は、論理プロセッサ１０１内において、楽観的手法に基づく論理時刻進行とイベント送受信によって生じた将来時刻における仮説（シミュレーション）を処理（実行）する。
（３）仮説実行処理１０３は、仮説プール部１０２により将来時刻における仮説毎に実行される。
【００１３】
図２は、論理プロセッサ１０１が含まれる分散シミュレーションシステム１０００を実現するコンピュータの外観の一例を示している。論理プロセッサ１０１は、ソフトウェア（プログラム）としてコンピュータで実行される。論理プロセッサ１０１を含む分散シミュレーションシステム１０００は、図２に示すように１台のコンピュータで実現されてもよい。また、図３に示すように、分散シミュレーションシステム１０００は、ネットワークを介して接続された複数のコンピュータにより実現されても構わない。分散シミュレーションシステム１０００（論理プロセッサ）が実現されるハードウェアは限定されない。
【００１４】
図４は、分散シミュレーションシステム１０００を実現するコンピュータのハードウェア構成を示す図である。図４において、分散シミュレーションシステムを実現するコンピュータは、論理プロセッサ等のプログラムを実行するＣＰＵ８１０（中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
【００１５】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部の一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１６】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１７】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１８】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００１９】
ファイル群８２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２０】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２１】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２２】
次に動作を説明する。
（１．イベント・仮説管理部１０４）
論理プロセッサ１０１のイベント・仮説管理部１０４（木構造生成部）は、楽観的手法により分散シミュレーション実行基盤１０５から将来イベントを受信すると、受信した将来イベントが有効であった場合と、将来イベントが無効（他論理プロセッサによって取り消される場合）であった場合との、２種類の有効／無効の関係を立て（後述する図５に示す有効、無効）、それぞれの有効／無効に対応した仮説実行処理１０３を生成し、仮説プール部１０２において仮説を実行する。後述する図５で説明すれば、
イベント１→無効→イベント２→無効→イベント３→無効
が仮説実行処理−１に相当し、
イベント１→無効→イベント２→無効→イベント３→有効
が仮説実行処理−２に相当する。
【００２３】
（２．仮説実行処理１０３）
イベント・仮説管理部１０４が生成する仮説実行処理１０３は、その論理プロセッサの論理時刻進行によってイベントが有効と「確定」するか、あるいは矛盾の発生によってイベントが無効（取り消される）と「確定」するで、仮説プール部１０２にて実行されるとともに、イベント・仮説管理部１０４により管理される。仮説実行処理１０３が無効となった場合、その仮説実行処理の処理結果によって発生し、他の論理プロセッサに対して送信されたイベントは全て取り消される。例えば取り消しは、ＨＬＡに詳しい。
【００２４】
図５は、イベント・仮説管理部１０４が生成する木構造を示す図である。図５を参照して、さらに具体的に説明する。図５は、イベント・仮説管理部１０４が管理しているイベント（将来イベントを含む）を、イベント・仮説管理部１０４が、イベント有効時刻の昇順に、イベントが有効な場合と無効な場合との２分岐でイベント間を接続して生成した木構造の例を示している。イベント有効時刻の昇順に接続する理由は、時刻の異なるイベント間には因果関係がある可能性があるためである。同じ有効時刻を持ったイベントが複数あった場合には、これらのイベント間には因果関係が無いため、任意の順序で接続する。この木構造では、木の葉として各イベントの有効／無効により独立して実行できる可能性のある仮説を導出することができる。仮説の総数は、イベント・仮説管理部１０４が受信した将来イベントの総数をＮ個とすると「２のＮ乗」個となる。図５の例では、イベント・仮説管理部１０４が、将来イベントとして、イベント１、イベント２、イベント３の３イベントを受信している場合を示している。このため、イベント・仮説管理部１０４が立てる仮説の数は、２の３乗、すなわち８つである。このため、仮説プール部１０２は、最大で８つの仮説実行処理（即ちシミュレーション）を実行する必要がある。
【００２５】
図５の場合、イベント・仮説管理部１０４は、木構造に基づいて仮説実行処理の管理を行う。例えば、木構造が図５の状態において、この論理プロセッサ１０１が時刻進行することによりイベント１が有効であることが確定した場合、図５の木構造のイベント１のノード以下の左部分木に対応する仮説実行処理は不要な処理となる。このため、イベント・仮説管理部１０４は、これらを一括して削除することができる。また、木構造が図５の状態において、イベント１が無効となり取り消された場合、図５の木構造のイベント１のノード以下の右部分木に対応する仮説実行処理は不要な処理となる。このため、イベント・仮説管理部１０４は、この不要な部分木を一括して削除することができる。
【００２６】
さらに図５を参照して、イベント・仮説管理部１０４の動作を具体的に説明する。
（１）イベント・仮説管理部１０４は、図１において、分散シミュレーションシステムを構成する他の複数の論理プロセッサから将来有効となる将来イベントであってその将来イベントが有効となるべき論理時刻であるイベント有効時刻を有する将来イベントを受信する。
（２）イベント・仮説管理部１０４は、受信した将来イベントのうち所定の将来イベントを木構造のルートとして設定するとともに受信した将来イベントをルートである将来イベントも含めてイベント有効時刻の昇順、かつ、将来イベントが有効な場合と無効な場合との２分木の関係で接続することにより将来イベントの木構造を生成する。
（３）イベント・仮説管理部１０４は、生成した木構造を構成する何れかの将来イベントについて無効か有効かが確定した場合には、その確定結果に基づいて木構造のうち不要な将来イベントを特定する。図６の場合では、イベント・仮説管理部１０４は、例えば、左部分木を構成する将来イベントを特定する。そしてイベント・仮説管理部１０４は、特定した将来イベント（部分木）を削除する。
（４）イベント・仮説管理部１０４は、部分木が削除された木構造に基づいて仮説プール部１０２に仮説実行処理（シミュレーション）を実行させる。このように、イベント・仮説管理部１０４は、部分木が削除された後の木構造に基づき仮説プール部１０２に仮説実行処理（シミュレーション）を実行させるので、削除した部分木の部分については仮説プール部１０２は処理する必要がないため、仮説プール部１０２の実行するべき処理が減少し効率がアップする。
【００２７】
実施の形態１の論理プロセッサは、イベント・仮説管理部１０４を備えたので、楽観的手法に基づく分散シミュレーションの時刻進行において、受信した将来イベントとイベントの有効または無効に関連付けられた各仮説を、有効となる場合の関係または無効となる場合の関係の２種類の関係により木構造に整理し、イベントの有効または無効が確定した際に木構造の不必要な部分木を一括削除することにより、全体の処理量の削減や将来イベントによる仮説処理の実行の必要性を高速に判断することが可能となる。
【００２８】
実施の形態２．
次に図６を参照して実施の形態２を説明する。実施の形態１では、イベント・仮説管理部１０４が管理しているイベントが有効な場合と無効な場合で仮説を接続した木構造により、イベントが有効、あるいは無効が確定した場合に不必要な仮説実行処理を削減する例を示した。実施の形態２では、同じ木構造を使用し、さらにシミュレーションに登場するエンティティの「存在」に基づく「イベント間矛盾発見ルール」（将来イベント間矛盾関係）を用いて、より効率的に不必要な仮説実行処理１０３を削減する例を説明する。ここで「イベント間矛盾発見ルール」とは、木構造を構成する将来イベントのうち互いに有効と無効とのいずれかの関係で接続する将来イベントどうしが矛盾する場合の関係を定めたルールである。
【００２９】
イベント・仮説管理部１０４は、予め設定された「イベント間矛盾発見ルール」を格納している。イベント・仮説管理部１０４による木構造の生成は、実施の形態１と同じである。実施の形態１におけるイベント・仮説管理部１０４との相違は次の点である。実施の形態２では、イベント・仮説管理部１０４は、木構造における互いに接続する将来イベントどうしのうち「イベント間矛盾ルール」を満たすものが存在するかどうかを判定する。そして、イベント・仮説管理部１０４は、存在すると判定した場合には、その判定結果に基づき木構造のうち不要な将来イベントを特定し、特定した将来イベントを削除する。そして、将来イベントが削除された木構造に基づき、仮説プール部１０２にシミュレーションを実行させる。これにより、仮説プール部１０２は削除された将来イベントに相当するシミュレーションを実行する必要がなくなるため、処理の高速化、処理の負担軽減を図ることができる。
【００３０】
図６を参照して、実施の形態２の動作を具体的に説明する。図６は、車両１に関する将来イベントにより作成された木構造を示す図である。
（１）まず、イベント１として「車両１削除（このシミュレーションから車両１というエンティティの存在を削除）」というイベントが発生し、
（２）ついで、イベント２、イベント３として「車両１移動Ａ」及び「車両１移動Ｂ」というイベントが発生している。この図６の例では、イベント１は車両１（エンティティの一例）の「存在」そのものを削除するイベントであり、イベント２、およびイベント３は車両１の存在を前提としたイベントである。このため、イベント１とイベント２、またイベント１とイベント３は矛盾したイベントである。そのため、図６の木構造において、イベント１のノード以下の右部分木は予め実行されることが無い仮説であることは明らかである。よって、イベント・仮説管理部１０４は、イベント２やイベント３を受信した時点において不要な処理として仮説実行処理を生成する必要が無いことが分かる。
【００３１】
すなわち、図６の場合において、イベント・仮説管理部１０４は、他の論理プロセッサからイベント有効時刻を有する将来イベントを受信すると、図６の木構造を作成する。また、イベント・仮説管理部１０４は、図６の木構造を構成する将来イベントのうち互いに接続する将来イベントどうしが矛盾する場合の関係を示す「イベント間矛盾ルール」を格納している。図６において、「イベント間矛盾ルール」とは、上記のように車両の存在に関して矛盾が生じる関係を規定したものである。イベント・仮説管理部１０４は、木構造における互いに接続する将来イベントどうしのうち「イベント間矛盾ルール」を満たすものが存在するかどうかを判定する。図６の場合、イベント・仮説管理部１０４は、「イベント１：車両１削除」→有効→「イベント２：車両１移動Ａ」の接続が「イベント間矛盾ルール」を満たすと判定する。そして、イベント・仮説管理部１０４は、その判定に基づいて、木構造のうち不要な将来イベントを特定する。図６の場合、イベント・仮説管理部１０４は、不要な将来イベントとして、図６に示す破線で囲んだ範囲の将来イベントを特定し、破線で囲んだ範囲の部分木を削除する。そして、イベント・仮説管理部１０４は、その部分木が削除された図６の木構造をもとに、仮説プール部１０２にシミュレーションを実行させる。
【００３２】
このように、シミュレーションに登場するエンティティの存在に基づいたイベント間の矛盾について「イベント間矛盾発見ルール」としてイベント・仮説管理部１０４に定義することにより、より効率的に不必要な仮説実行処理１０３を削減することができる。
【００３３】
実施の形態３．
図７を参照して実施の形態３を説明する。実施の形態３では、エンティティの「状態」に基づく「イベント間矛盾発見ルール」について説明する。
【００３４】
図７は、車両１（エンティティの一例）に関する将来イベントにより作成された木構造である。
（１）まず、イベント１として「車両１故障（故障すると移動不可能）」というイベントが発生し、ついでイベント２、イベント３として「車両１移動Ａ」及び「車両１移動Ｂ」というイベントが発生している。この場合、「故障」（状態の一例）とは、車両が移動不可能となる「故障」である。
（２）この例では、イベント１は車両１の移動が不可能となったことを示すイベントであり、イベント２、およびイベント３は車両１の移動を前提としたイベントである。このため、イベント１とイベント２、またイベント１とイベント３は矛盾したイベントである。そのため、図７の木構造において、イベント１のノード以下の右部分木は予め実行されることが無い仮説であることは明らかであり、イベント・仮説管理部１０４は、イベント２やイベント３を受信した時点において不要な処理として仮説実行処理を生成する必要が無いと判定する。したがって、イベント・仮説管理部１０４は、図７の木構造において、イベント１のノード以下の右部分木を削除し、この削除した木構造に基づき仮説プール部１０２にシミュレーションを実行させる。
【００３５】
このように、論理プロセッサでは、シミュレーションに登場するエンティティの状態に基づいたイベント間の矛盾についてイベント間矛盾発見ルールとしてイベント・仮説管理部１０４に定義することにより、より効率的に不必要な仮説実行処理１０３を削減することができる。
【００３６】
実施の形態４．
図８〜図１０を参照して実施の形態４を説明する。実施の形態４では、エンティティの位置と移動速度に基づく「イベント間矛盾発見ルール」について説明する。
【００３７】
図８は、車両１に関する将来イベントにより作成された木構造である。まず、イベント１として「車両１移動Ａ（車両１が地点Ａに移動する）」というイベントが発生している。ついで、イベント２、イベント３として「車両１移動Ｂ」及び「車両１移動Ｃ」というイベントが発生している。イベント１は現在から１０分後のイベント、イベント２は現在から２０分後、イベント３は現在から３０分後にそれぞれ有効時刻が設定されているものとする。
【００３８】
図９の（ａ）は、各イベントで移動先として示されている地点Ａ、地点Ｂ、地点Ｃを示し、図９の（ｂ）は、対応する仮説と、仮説で実行する移動ルートおよび総移動距離の対応表である。
【００３９】
以上の例において、車両１の最大速度Ｖｍａｘとイベントが発生する時間間隔Ｔｅｖにより、車両１が移動できる最大距離（ＤｍａｘＮ＝Ｖｍａｘ×ＴｅｖＮ）を求め、各移動地点Ａ、Ｂ、Ｃの距離間隔から実際に車両１の模擬として矛盾なく模擬実行が可能な仮説を選ぶことができる。
【００４０】
例えば、車両１の最大速度Ｖｍａｘが６０Ｋｍ／ｈとすると、イベント１が発生する時間間隔Ｔｅｖ１が１０分のため、車両１が移動可能な距離Ｄｍａｘ１は最大１０Ｋｍである。また、イベント２が発生する時間間隔Ｔｅｖ２は２０分のため、車両１が移動可能な距離は最大２０Ｋｍである。イベント３が発生する時間間隔Ｔｅｖ３は３０分のため、車両１が移動可能な距離は最大３０Ｋｍである。そのため、各仮説における総移動距離と、車両１が移動可能な距離を比較することにより、車両１が実際に移動することができる仮説を選ぶことができ、その他の仮説実行処理を生成する必要が無いことが算出できる。
【００４１】
図１０に、車両１のイベントに対して仮説の実行の必要性を算出した結果を示す。例えば、仮説３、仮説４はいずれも「×」である。例えば仮説３は、図８において、
イベント１→無効→イベント２→有効→イベント３→無効
の経路である。イベント・仮説管理部１０４は、この場合、イベント３（１１）を削除する。同様に、仮説７、仮説７はいずれも「×」であるため、イベント・仮説管理部１０４は、イベント３（１２）を削除する。
【００４２】
このように、シミュレーションに登場するエンティティの位置と移動速度に基づいたイベント間の矛盾について「イベント間矛盾発見ルール」としてイベント・仮説管理部１０４に定義することにより、より効率的に不必要な仮説実行処理を削減することができる。
【００４３】
以上の実施の形態では、楽観的手法に基づく分散シミュレーションの時刻進行において、受信した将来イベントが有効な場合または無効な場合の関係の２種類の関係により各将来イベントの関係を木構造に分類し、イベントが有効あるいは無効であることが確定した際に木構造の不必要な部分木を一括削除することにより、将来イベントによる仮説処理の実行の必要性を高速に判断可能で、全体の処理負荷低減が可能な分散シミュレーションシステムを説明した。
【００４４】
以上の実施の形態では、楽観的手法に基づく分散シミュレーションの時刻進行において、受信した将来イベントが有効な場合または無効な場合の関係の２種類の関係により各将来イベントの関係を木構造に分類する分散シミュレーションシステムにおいて、エンティティの存在に基づくイベント間矛盾発見ルールに基づき、木構造の不必要な部分木を一括削除する分散シミュレーションシステムを説明した。
【００４５】
以上の実施の形態では、楽観的手法に基づく分散シミュレーションの時刻進行において、受信した将来イベントが有効な場合または無効な場合の関係の２種類の関係により各将来イベントの関係を木構造に分類する分散シミュレーションシステムにおいて、エンティティの状態に基づくイベント間矛盾発見ルールに基づき、木構造の不必要な部分木を一括削除する分散シミュレーションシステムを説明した。
【００４６】
以上の実施の形態では、楽観的手法に基づく分散シミュレーションの時刻進行において、受信した将来イベントが有効な場合または無効な場合の関係の２種類の関係により各将来イベントの関係を木構造に分類する分散シミュレーションシステムにおいて、エンティティの位置と速度に基づくイベント間矛盾発見ルールに基づき、木構造の不必要な部分木を一括削除する分散シミュレーションシステムを説明した。
【図面の簡単な説明】
【００４７】
【図１】実施の形態１における分散シミュレーションシステムの構成図。
【図２】実施の形態１における分散シミュレーションシステムを実現するコンピュータの外観の一例を示す図。
【図３】実施の形態１における分散シミュレーションシステムを実現するコンピュータの外観の別の例を示す図。
【図４】実施の形態１における分散シミュレーションシステムを実現するコンピュータのハードウェア構成の一例を示す図。
【図５】実施の形態１における木構造を示す図。
【図６】実施の形態２における木構造を示す図。
【図７】実施の形態３における木構造を示す図。
【図８】実施の形態４における木構造を示す図。
【図９】実施の形態４における仮説と車両の移動との関係を示す図。
【図１０】実施の形態４における仮説の成立性を示す図。
【図１１】従来技術の分散シミュレーションシステムにおける保守的手法を説明する図。
【図１２】従来技術の分散シミュレーションシステムにおける楽観的手法を説明する図。
【符号の説明】
【００４８】
１０１  論理プロセッサ、１０２  仮説プール部、１０３  仮説実行処理、１０４  イベント・仮説管理部、１０５  分散シミュレーション実行基盤、１０００  分散シミュレーションシステム。
【図１】
2008204008.tif 000003
【図２】
2008204008.tif 000004
【図３】
2008204008.tif 000005
【図４】
2008204008.tif 000006
【図５】
2008204008.tif 000007
【図６】
2008204008.tif 000008
【図７】
2008204008.tif 000009
【図８】
2008204008.tif 000010
【図９】
2008204008.tif 000011
【図１０】
2008204008.tif 000012
【図１１】
2008204008.tif 000013
【図１２】
2008204008.tif 000014