(57)【要約】【課題】システム全体の処理時間を遅延させない統合シミュレーションシステムを得ること。【解決手段】シミュレーション演算部１０−１〜Ｎが、シミュレーションを行うモデル演算部１３と、シミュレーション時刻を出力する時刻制御部１２と、シミュレーション結果とパラメータを記録する結果記録部３０−１〜Ｎと、結果記録部３０−１〜Ｎを検索するデータ検索部１４と、パラメータを生成するパラメータ生成部１５と、パラメータおよびシミュレーション時刻を含むデータを生成し、同期制御部２０へ送信するデータ出力部１６と、を備え、同期制御部２０が、データからシミュレーション時刻を抽出し、他のシミュレーション演算部のシミュレーション時刻との比較を行う時刻監視部２３と、時刻監視部２３の比較結果に基づいて、シミュレーション演算部のパラメータ生成方法を決定する時刻同期部２５と、を備える。【選択図】図１
2012128567.tif 000002
【特許請求の範囲】
【請求項１】
複数のシミュレーション演算装置と、同期制御装置を備えた統合シミュレーションシステムであって、
前記シミュレーション演算装置が、
前記同期制御装置経由で他のシミュレーション演算装置から取得したパラメータを利用してシミュレーションを実施するモデル演算手段と、
シミュレーションの進捗を管理し、シミュレーションの進捗を示すシミュレーション時刻を出力する時刻制御手段と、
前記モデル演算手段が算出したシミュレーション結果を、シミュレーションに利用したパラメータと関連付けて記録するための結果記録手段と、
前記同期制御装置の決定に従って、他のシミュレーション演算装置から取得したパラメータを利用して前記結果記録手段を検索するデータ検索手段と、
前記シミュレーション結果または前記データ検索手段における検索結果を用いて、他のシミュレーション演算装置で利用するパラメータを生成するパラメータ生成手段と、
前記パラメータおよび前記シミュレーション時刻を含むデータを生成し、前記同期制御装置へ送信するデータ出力手段と、
を備え、
前記同期制御装置が、
前記シミュレーション演算装置から受信したデータから、当該データの宛先ＩＤ、送信元ＩＤ、およびパラメータを抽出するパラメータ情報処理手段と、
前記データから、シミュレーション時刻を抽出し、他のシミュレーション演算装置から取得済みのシミュレーション時刻との比較を行う時刻監視手段と、
前記データから抽出したシミュレーション時刻と当該データの送信元ＩＤとを関連付けて記録し、また、前記時刻監視手段における比較結果を記録するための時刻記録手段と、
前記比較結果に基づいて、前記データの送信元シミュレーション演算装置におけるパラメータの生成方法を決定する時刻同期手段と、
前記パラメータを含むデータメッセージを生成し、前記宛先ＩＤのシミュレーション演算装置へ送信するメッセージ生成手段と、
を備えることを特徴とする統合シミュレーションシステム。
【請求項２】
前記時刻同期手段は、前記データの送信元シミュレーション演算装置の処理負荷が他のシミュレーション装置の処理負荷よりも大きいと判定した場合、パラメータの生成に前記データ検索手段における検索結果を用いることを決定し、その旨を示すパラメータ生成方法情報を生成し、
前記メッセージ生成手段は、前記パラメータ生成方法情報を含むデータメッセージを生成し、前記データの送信元シミュレーション装置へ送信する、
ことを特徴とする請求項１に記載の統合シミュレーションシステム。
【請求項３】
前記複数のシミュレーション演算装置は、同等の機能を備えて並列の関係にある、
ことを特徴とする請求項１または２に記載の統合シミュレーションシステム。
【請求項４】
前記複数のシミュレーション演算装置は、マスタおよびスレーブの関係にあり、マスタのシミュレーション演算装置のシミュレーション要求に応じて、スレーブのシミュレーション演算装置がシミュレーション結果を返答する、
ことを特徴とする請求項１または２に記載の統合シミュレーションシステム。
【請求項５】
複数のシミュレーション演算装置と、同期制御装置を備えた統合シミュレーションシステムにおける統合シミュレーション同期制御方法であって、
前記シミュレーション演算装置が、
算出したシミュレーション結果を、シミュレーションに利用したパラメータと関連付けて記録するための結果記録手段、を備え、
前記同期制御装置が、
前記シミュレーション演算装置より受信したデータから抽出した、シミュレーションの進捗を示すシミュレーション時刻と、当該データの送信元ＩＤとを関連付けて記録し、また、シミュレーション時刻の比較結果を記録するための時刻記録手段、を備える場合に、
所定のシミュレーション演算装置が、前記同期制御装置経由で他のシミュレーション演算装置から取得したパラメータを利用してシミュレーションを実施し、シミュレーション結果を前記結果記録手段に記録するモデル演算ステップと、
前記所定のシミュレーション演算装置が、シミュレーションの進捗を管理し、シミュレーション時刻を出力する時刻制御ステップと、
前記所定のシミュレーション演算装置が、前記シミュレーション結果を用いて、他のシミュレーション演算装置で利用するパラメータを生成するパラメータ生成ステップと、
前記所定のシミュレーション演算装置が、前記パラメータおよび前記シミュレーション時刻を含むデータを生成し、前記同期制御装置へ送信するデータ出力ステップと、
前記同期制御装置が、前記所定のシミュレーション演算装置から受信したデータから、当該データの宛先ＩＤ、送信元ＩＤ、およびパラメータを抽出するパラメータ情報処理ステップと、
前記同期制御装置が、前記データからシミュレーション時刻を抽出して前記時刻記録手段に記録し、前記時刻記録手段から他のシミュレーション演算装置のシミュレーション時刻を読み出して、抽出したシミュレーション時刻との比較を行い、比較結果を前記時刻記録手段に記録する時刻監視ステップと、
前記同期制御装置が、前記比較結果に基づいて、前記所定のシミュレーション演算装置におけるパラメータの生成方法を決定する時刻同期ステップと、
前記同期制御装置が、前記宛先ＩＤのシミュレーション演算装置に対して、前記パラメータを含むデータメッセージを生成して送信するメッセージ送信ステップと、
を含むことを特徴とする統合シミュレーション同期制御方法。
【請求項６】
前記時刻同期ステップにおいて、前記所定のシミュレーション演算装置の処理負荷が他のシミュレーション演算装置の処理負荷よりも大きいと判定した場合、
さらに、
前記同期制御装置が、前記所定のシミュレーション演算装置に対して、パラメータの生成に前記結果記録手段を検索した検索結果を用いることを決定し、その旨を示すパラメータ生成方法情報を含むデータメッセージを生成して送信するパラメータ生成方法情報送信ステップと、
前記所定のシミュレーション演算装置が、前記パラメータ生成方法情報および受信済みのパラメータに基づいて、前記結果記録手段を検索する検索ステップと、
を含み、
前記パラメータ生成ステップでは、前記検索結果を用いてパラメータを生成する、
ことを特徴とする請求項５に記載の統合シミュレーション同期制御方法。
【請求項７】
前記複数のシミュレーション演算装置は、同等の機能を備えて並列の関係にある、
ことを特徴とする請求項５または６に記載の統合シミュレーション同期制御方法。
【請求項８】
前記複数のシミュレーション演算装置は、マスタおよびスレーブの関係にあり、マスタのシミュレーション演算装置のシミュレーション要求に応じて、スレーブのシミュレーション演算装置がシミュレーション結果を返答する、
ことを特徴とする請求項５または６に記載の統合シミュレーション同期制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシミュレーション演算部が連携して１つのシナリオに対する総合的なシミュレーションを行う統合シミュレーションシステムに関する。
【背景技術】
【０００２】
従来の統合シミュレーションシステムは、システム内に分散する複数のシミュレーション演算部が接続情報や時間情報を含むメッセージを交換しており、各シミュレーション演算部は、自己の処理分を完了するとシミュレーション上の時間を進行させる要求を通知する。そして、その通知を受信した他のシミュレーション演算部が、受信した通知に基づいて次の処理を進行することにより、シミュレーション実行上の時間的な同期をとっている。このような技術が、下記特許文献１において開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１７１５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術によれば、分散する各シミュレーション演算部の処理能力や処理量が異なっていても、各シミュレーション演算部は進行要求の範囲内で次の処理を進行する。そのため、各シミュレーション演算部の処理の時間的な同期をとる場合、処理を終えたシミュレーション演算部が十分な処理能力を有していても、処理のもっとも遅いシミュレーション演算部が処理を完了するまで処理を進めることができず、システム全体の処理時間の進行が遅くなる、という問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、シミュレーション演算部間の処理負荷に偏りが生じた場合に、システム全体の処理時間を遅延させない統合シミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、複数のシミュレーション演算装置と、同期制御装置を備えた統合シミュレーションシステムであって、前記シミュレーション演算装置が、前記同期制御装置経由で他のシミュレーション演算装置から取得したパラメータを利用してシミュレーションを実施するモデル演算手段と、シミュレーションの進捗を管理し、シミュレーションの進捗を示すシミュレーション時刻を出力する時刻制御手段と、前記モデル演算手段が算出したシミュレーション結果を、シミュレーションに利用したパラメータと関連付けて記録するための結果記録手段と、前記同期制御装置の決定に従って、他のシミュレーション演算装置から取得したパラメータを利用して前記結果記録手段を検索するデータ検索手段と、前記シミュレーション結果または前記データ検索手段における検索結果を用いて、他のシミュレーション演算装置で利用するパラメータを生成するパラメータ生成手段と、前記パラメータおよび前記シミュレーション時刻を含むデータを生成し、前記同期制御装置へ送信するデータ出力手段と、を備え、前記同期制御装置が、前記シミュレーション演算装置から受信したデータから、当該データの宛先ＩＤ、送信元ＩＤ、およびパラメータを抽出するパラメータ情報処理手段と、前記データから、シミュレーション時刻を抽出し、他のシミュレーション演算装置から取得済みのシミュレーション時刻との比較を行う時刻監視手段と、前記データから抽出したシミュレーション時刻と当該データの送信元ＩＤとを関連付けて記録し、また、前記時刻監視手段における比較結果を記録するための時刻記録手段と、前記比較結果に基づいて、前記データの送信元シミュレーション演算装置におけるパラメータの生成方法を決定する時刻同期手段と、前記パラメータを含むデータメッセージを生成し、前記宛先ＩＤのシミュレーション演算装置へ送信するメッセージ生成手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、シミュレーション演算部間の処理負荷に偏りが生じた場合に、システム全体の処理時間を遅延させない、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１における統合シミュレーションシステムの構成例を示す図である。
【図２】図２は、実施の形態１の同期制御部２０による各シミュレーション演算部の同期制御動作を示すシーケンス図である。
【図３】図３は、同期制御部２０とシミュレーション演算部１０−２の同期制御動作を示すフローチャートである。
【図４】図４は、実施の形態２における統合シミュレーションシステムの構成例を示す図である。
【図５】図５は、実施の形態２の同期制御部２０による行動シミュレータ４０および無線ネットワークシミュレータ５０の同期制御動作を示すシーケンス図である。
【図６】図６は、各シミュレーション時刻におけるノード位置を示す図である。
【図７】図７は、ネットワークトポロジ情報の構成例を示す図である。
【図８】図８は、ネットワークトポロジ情報の構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかる統合シミュレーションシステムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本実施の形態における統合シミュレーションシステムの構成例を示す図である。統合シミュレーションシステムは、シミュレーション演算部１０−１〜１０−Ｎと、同期制御部２０と、結果記録部３０−１〜３０−Ｎと、を備える。
【００１１】
同期制御部２０は、シミュレーション演算部間での時間的な同期を制御する。同期制御部２０は、この制御を実現するための構成として、データ入力部２１と、パラメータ情報処理部２２と、時刻監視部２３と、時刻記録部２４と、時刻同期部２５と、メッセージ生成部２６と、メッセージ出力部２７と、を備える。なお、時刻監視部２３、時刻記録部２４および時刻同期部２５がパラメータ生成方法の決定手段を構成し、メッセージ生成部２６がパラメータ生成方法通知手段を構成する。
【００１２】
データ入力部２１は、各シミュレーション演算部１０−１〜１０−Ｎから送信されたデータを受信し、パラメータ情報処理部２２および時刻監視部２３へ出力する。
【００１３】
パラメータ情報処理部２２は、データ入力部２１が受信したデータから、そのデータの送信元のシミュレーション演算部の識別情報（以下、送信元ＩＤとする。）、宛先のシミュレーション演算部の識別情報（以下、宛先ＩＤとする。）、および送信元のシミュレーション演算部が算出したパラメータデータ（以下、パラメータとする。）を抽出し、これらをメッセージ生成部２６に出力する。ここで、パラメータとは、シミュレーションに利用する情報であり、各シミュレーション演算部の間で共有することが可能な情報である。
【００１４】
時刻監視部２３は、データ入力部２１が受信したデータに含まれている、当該データの送信元のシミュレーション演算部についてのシミュレーション時刻の情報を抽出し、各シミュレーション演算部の演算処理の進行度を監視する。進行度監視動作は、受信データから抽出したシミュレーション時刻と、時刻記録部２４に保持させておいた他のシミュレーション演算部からのシミュレーション時刻とを比較することにより進行度を監視する。また、時刻監視部２３は、受信データから上記シミュレーション時刻の情報とともに送信元ＩＤを抽出し、抽出した情報（シミュレーション時刻、送信元ＩＤ）、および比較結果を時刻記録部２４に記録させる。
【００１５】
時刻記録部２４は、時刻監視部２３から受け取ったシミュレーション時刻、送信元ＩＤ、および比較結果などの情報を関連付けて記録し保持する。
【００１６】
時刻同期部２５は、各シミュレーション演算部の処理の進行にあわせて、シミュレーション演算部のパラメータ生成方法を決定する。時刻同期部２５は、時刻記録部２４から読み出した比較結果に基づいて、各シミュレーション演算部での演算負荷（処理負荷）に差があるかどうかを判定し、判定結果に基づいて、各シミュレーション演算部におけるシミュレーションが同期を維持しつつ実行されるように（各シミュレーションの進行が同等になるように）、シミュレーション演算部でのパラメータ生成方法を決定する。具体的には、パラメータの生成の際に、モデル演算部１３での結果を用いるか、データ検索部１４が結果記録部３０−ｎを検索した結果を用いるかを決定する。時刻同期部２５は、シミュレーション演算部において、パラメータの生成の際にデータ検索部１４が結果記録部３０−ｎを検索した結果を用いると決定した場合、その旨を指示するパラメータ生成方法情報を生成し、メッセージ生成部２６に出力する。
【００１７】
なお、結果記録部３０−ｎは、ｎ＝１、２、…、Ｎとし、各シミュレーション演算部が接続する結果記録部を示す。例えば、シミュレーション演算部１０−１であれば、自身が接続する結果記録部３０−１を対象とする。
【００１８】
メッセージ生成部２６は、パラメータ情報処理部２２から取得した宛先ＩＤおよび送信元ＩＤをそれぞれ宛先アドレスおよび送信元アドレスに設定し、パラメータ情報処理部２２から取得したパラメータ、時刻同期部２５経由で時刻記録部２４から読み出したシミュレーション時刻、および時刻同期部２５からパラメータ生成方法情報を取得した場合にはパラメータ生成方法情報、を含むデータメッセージを生成する。
【００１９】
メッセージ出力部２７は、メッセージ生成部２６で生成されたデータメッセージをその宛先のシミュレーション演算部に向けて送信する。
【００２０】
つぎに、シミュレーション演算部１０−１〜１０−Ｎについて説明する。シミュレーション演算部１０−１〜１０−Ｎは、分散処理を行うシミュレータである。各シミュレーション演算部は同一の構成をとり、それぞれ、メッセージ入力部１１と、時刻制御部１２と、モデル演算部１３と、データ検索部１４と、パラメータ生成部１５と、データ出力部１６と、を備える。また、シミュレーション演算部１０−１〜１０−Ｎは、それぞれ、結果記録部３０−１〜Ｎと１対１で接続する。各シミュレーション演算部の動作は同じである。そのため、以下の説明において、各シミュレーション演算部で共通の部分についてはシミュレーション演算部を特定せずに説明を行う。なお、時刻制御部１２がシミュレーション時刻通知手段を構成する。
【００２１】
メッセージ入力部１１は、他のシミュレーション演算部から送信されたパラメータ等を含むデータを、同期制御部２０経由でデータメッセージとして受信する。また、受信したデータメッセージを時刻制御部１２、モデル演算部１３、およびデータ検索部１４へ出力する。
【００２２】
時刻制御部１２は、モデル演算部１３によるモデル演算（シミュレーション）の進捗を監視し、あらかじめ設定されていた条件を満たした場合に、シミュレーションの進捗を示すシミュレーション時刻をデータ出力部１６へ出力する。また、同期制御部２０からパラメータ生成方法情報を受信した場合、データ検索部１４に対して結果記録部３０−ｎを検索するように指示する。データ検索部１４が結果記録部３０−ｎを検索した場合にも、シミュレーション時刻をデータ出力部１６へ出力する。
【００２３】
モデル演算部１３は、メッセージ入力部１１で受信したデータメッセージに含まれる他のシミュレーション演算部のパラメータを利用して、モデル演算（シミュレーション）を実施する。あらかじめ設定されていた条件を満たした場合、その旨を時刻制御部１２へ通知する。
【００２４】
データ検索部１４は、同期制御部２０からパラメータ生成方法情報を受信した場合、時刻制御部１２の指示に従って、メッセージ入力部１１で受信したデータメッセージに含まれる他のシミュレーション演算部のパラメータを利用して、結果記録部３０−ｎを検索する。
【００２５】
ここで、結果記録部３０−ｎは、モデル演算部１３で算出されたシミュレーション結果を、シミュレーションのときに利用したパラメータと関連付けて記録しておくための記録部である。また、別のシミュレーション試行の結果や実測データなど、モデル演算部１３が算出したシミュレーション結果と同等の形式の記録を保持する。
【００２６】
パラメータ生成部１５は、モデル演算部１３によるシミュレーション結果またはデータ検索部１４による検索結果を用いて、他のシミュレーション演算部に送信するパラメータを生成する。
【００２７】
データ出力部１６は、シミュレーション時刻、パラメータなどの情報を含んだデータを生成し、同期制御部２０経由で他のシミュレーション演算部へ送信する。
【００２８】
また、各シミュレーション演算部の時刻制御部１２は、予め指定された条件を満たすまでの処理をモデル計算部１３が完了したかどうかを監視し、完了した場合には、その時点のシミュレーション時刻を同期制御部２０へ通知する。なお、各シミュレーション演算部から同期制御部２０へ通知されるシミュレーション時刻の差（ずれ量）が少ない場合（すれ量が一定量以内の場合）、「同期がとれている」といえる。
【００２９】
ここで、シミュレーション時刻とは、仮想的な時刻情報であり、例えば、実行すべき処理全体に対して現在どの程度まで処理が完了しているかを示す情報である。各シミュレーション演算部が、処理全体に対してｍ％の処理を完了するごとに、完了した処理の割合（またはこれに相当する情報）をシミュレーション時刻として通知するように設定しておけば、同期制御部２０は、各シミュレーション演算部の同期状態（各シミュレーションの進行度に大きな差があるかどうか）を判定することができる。また、一定周期ごとにシミュレーション時刻を通知するようにしておけば、同期制御部２０は、各シミュレーション演算部から通知されたシミュレーション時刻同士を比較することにより、どのシミュレーション演算部におけるシミュレーションの進行度が大きいのかを判断することができる。
【００３０】
同期制御部２０は、各シミュレーション演算部から受信したシミュレーション時刻に基づいて、各シミュレーション演算部におけるシミュレーションの同期がとれているかどうか、すなわち、他のシミュレーション演算部と比較してシミュレーションの進行度が異なるシミュレーション演算部が存在するかどうかを判定し、判定結果に基づいて、各シミュレーション演算部がそれぞれのシミュレーションをモデル演算部１３が実行するのか、またはデータ検索部１４が結果記録部３０−ｎを検索するのかを決定する。具体的には、シミュレーション速度が遅いシミュレーション演算部は、結果記録部１４の検索による簡易的な処理で結果を得るようにする。同期制御部２０は、このような制御を行うことにより、各シミュレーション演算部におけるシミュレーションの進行度が著しく遅延しないようにする。
【００３１】
具体的に、同期制御部２０が各シミュレーション演算部の同期が取れているかどうかを判定する方法について説明する。まず、各シミュレーション演算部では、シミュレーションを行う際にシナリオに従い、所定の処理が完了した時点および定期的にシミュレーション時刻を、同期制御部２０経由で他のシミュレーション演算部に対して送信する。同期制御部２０は、シミュレーション時刻を受信した場合、このシミュレーション時刻と、その送信元のシミュレーション演算部とは異なる他のシミュレーション演算部から以前に受信して記録しておいたシミュレーション時刻を比較対象時刻として比較する。同期制御部２０は、受信したシミュレーション時刻が比較対象時刻よりも進んでいた場合、同期が維持されていると判定し、一方、比較対象時刻よりも遅れている場合、同期が維持されていないと判定する。
【００３２】
なお、シミュレーション演算部は、シミュレーション時刻を、同期制御部２０経由で他のシミュレーション演算部に対して送信することとしているが、本実施の形態では、同期制御部２０がシミュレーション時刻を受信し記録できればよいので、他のシミュレーション演算部に対して送信しないようにすることも可能である。
【００３３】
つづいて、統合シミュレーションシステムにおける各シミュレーション演算部の同期制御動作について、図１を参照しつつ図２を用いて上記の判定方法を用いた同期制御動作について説明する。なお、説明を簡単化するため、シミュレーション演算部が２つの場合の同期処理について説明する。図２は、実施の形態１の同期制御部２０による各シミュレーション演算部の同期制御動作を示すシーケンス図である。
【００３４】
まず、シミュレーション演算部１０−１では、モデル演算部１３がシミュレーションを行い、シミュレーション時刻ＳＴ１０１で、パラメータ生成部１５が、その時点のモデル演算部１３のシミュレーション結果からパラメータを生成し、シミュレーション時刻ＳＴ１０１の値とその時点での制御情報を付加して、データ出力部１６から制御情報付加後のデータを同期制御部２０へ送信する（ステップＳ１１）。このとき、モデル演算部１３は、シミュレーション結果を結果記録部３０−１に記録する。
【００３５】
同期制御部２０は、ステップＳ１１で受信したデータに含まれるパラメータやシミュレーション時刻ＳＴ１０１の値を、シミュレーション演算部１０−２に送信する（ステップＳ１２）。詳細には、同期制御部２０では、パラメータ情報処理部２２が、ステップＳ１１で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ１１で受信したデータからシミュレーション時刻ＳＴ１０１を抽出し、時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ１０１、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージをシミュレーション演算部１０−２に送信する（ステップＳ１２）。
【００３６】
シミュレーション演算部１０−２は、シミュレーション演算部１０−１と同様に、シミュレーション時刻ＳＴ２０１の値とパラメータを含むデータを同期制御部２０へ送信する（ステップＳ１３）。
【００３７】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ１３で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ１３で受信したデータに含まれるシミュレーション時刻ＳＴ２０１と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ１０１とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、シミュレーション演算部１０−１の処理負荷とシミュレーション演算部１０−２の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。ここでは、シミュレーション時刻ＳＴ１０１とシミュレーション時刻ＳＴ２０１の差が小さく、各シミュレーション演算部の処理負荷に差がないと判定する。このとき、時刻同期部２５は、パラメータ生成方法情報を生成しない。
【００３８】
同期制御部２０では、時刻監視部２３が、シミュレーション時刻ＳＴ２０１および比較結果を時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ２０１、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージをシミュレーション演算部１０−１に送信する（ステップＳ１４）。
【００３９】
以後、シミュレーション演算部１０−１およびシミュレーション演算部１０−２は、自身が管理するシミュレーション時刻を進めながら上述した処理を継続して行う。
【００４０】
さらに、シミュレーション演算部１０−１は、シミュレーション時刻ＳＴ１０２の値を含むデータを送信する（ステップＳ２０）。詳細については、ステップＳ１１のときと同様である。
【００４１】
同期制御部２０は、シミュレーション時刻ＳＴ１０２がシミュレーション時刻ＳＴ２０１よりも進んでいる、すなわち、処理負荷に差がないことを確認し、シミュレーション時刻ＳＴ１０２および比較結果を時刻記録部２４に記録し、シミュレーション時刻ＳＴ１０２を含むデータメッセージをシミュレーション演算部１０−２に送信する（ステップＳ２１）。詳細については、ステップＳ１２のときと同様である。
【００４２】
つぎに、シミュレーション演算部１０−２の処理負荷が大きくなった場合について説明する。シミュレーション演算部１０−２は、シミュレーション時刻ＳＴ２０２を含むデータを送信する（ステップＳ２２）。
【００４３】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ２２で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ２２で受信したデータに含まれるシミュレーション時刻ＳＴ２０２と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ１０２とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、シミュレーション演算部１０−１の処理負荷とシミュレーション演算部１０−２の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。前述のように、シミュレーション時刻ＳＴ２０２とシミュレーション時刻ＳＴ１０２の差が小さく、各シミュレーション演算部の処理負荷に差がないと判定したときは、ステップＳ１４の場合と同様に、データメッセージをシミュレーション演算部１０−１に送信する（ステップＳ２３）。
【００４４】
ここでは、シミュレーション時刻ＳＴ２０２がシミュレーション時刻ＳＴ１０２よりも遅れており、シミュレーション演算部１０−２の処理負荷が大きくなったと判定する。そのため、時刻同期部２５が、シミュレーション演算部１０−２に対して、モデル演算部１３の結果からパラメータデータを生成するのではなく、データ検索部１４が結果記録部３０−２に記録されているこれまでのシミュレーション結果や予め用意しておいた実測データを検索した結果を用いるように指示するパラメータ生成方法情報を生成する。そして、メッセージ生成部２６が、パラメータ生成方法情報を含むデータメッセージを生成し、メッセージ出力部２７から送信する（ステップＳ２４）。
【００４５】
シミュレーション演算部１０−２では、時刻制御部１２が、ステップＳ２４で受信したデータメッセージに含まれるパラメータ生成方法情報を抽出し、データ検索部１４に対して、結果記録部３０−２を検索することを指示する。データ検索部１４は、受信しているパラメータを利用して結果記録部３０−２を検索し、検索結果をパラメータ生成部１５へ出力する。このとき、時刻制御部１２が、シミュレーション時刻ＳＴ２０３を出力する。パラメータ生成部１５が、データ検索部１４による検索結果を用いてパラメータを生成し、データ出力部１６が、パラメータと、シミュレーション時刻ＳＴ２０３と、制御情報を付加して同期制御部２０へデータを送信する（ステップＳ２５）。なお、データ検索部１４で使用するパラメータは、ステップＳ２２の段階で受信したパラメータを使用してもよいし、ステップＳ２５の段階で改めて受信して使用してもよい。
【００４６】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ２５で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ２５で受信したデータに含まれるシミュレーション時刻ＳＴ２０３と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ１０２とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、シミュレーション演算部１０−１の処理負荷とシミュレーション演算部１０−２の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。ここでは、シミュレーション時刻ＳＴ１０２とシミュレーション時刻ＳＴ２０３の差が小さく、各シミュレーション演算部の処理負荷に差がないと判定する。このとき、時刻同期部２５は、パラメータ生成方法情報を生成しない。
【００４７】
同期制御部２０では、時刻監視部２３が、シミュレーション時刻ＳＴ２０３および比較結果を時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ２０３、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージをシミュレーション演算部１０−１に送信する（ステップＳ２６）。
【００４８】
ここで、図２のシーケンス図において、同期制御部２０とシミュレーション演算部１０−２との部分の同期制御動作を抜き出してフローチャートに基づいて説明する。図３は、同期制御部２０とシミュレーション演算部１０−２の同期制御動作を示すフローチャートである。
【００４９】
まず、シミュレーション演算部１０−２が、同期制御部２０経由でパラメータを含むデータメッセージを受信すると（ステップＳ１０１）、この時点で同期制御部２０からパラメータ生成方法情報を受信していないので（ステップＳ１０２：Ｎｏ）、モデル演算部１３がシミュレーション（モデル演算）を行い（ステップＳ１０３）、パラメータ生成部１５がシミュレーション結果を用いてパラメータを生成し（ステップＳ１０４）、データ出力部１６がシミュレーション時刻およびパラメータを含むデータを生成し、送信する（ステップＳ１０５）。
【００５０】
つぎに、同期制御部２０では、データ入力部２１がデータを受信し（ステップＳ１０６）、時刻監視部２３がシミュレーション時刻を抽出し、時刻記録部２４に記録する（ステップＳ１０７）。また、時刻監視部２３が、抽出したシミュレーション時刻と時刻記録部２４に記録されている他のシミュレーション演算部（図２の場合ではシミュレーション演算部１０−１）のシミュレーション時刻とを比較する（ステップＳ１０８）。時刻同期部２５が、比較結果に基づいて、シミュレーション演算部１０−２の処理負荷が大きいと判定した場合は（ステップＳ１０９：Ｙｅｓ）、シミュレーション演算部１０−２がパラメータの生成に、データ検索部１４が結果記録部３０−２を検索した検索結果を使用する旨を決定し（ステップＳ１１０）、メッセージ生成部２６およびメッセージ出力部２７を経由して、その旨のパラメータ生成方法情報をシミュレーション演算部１０−２へ送信する（ステップＳ１１１）。
【００５１】
ステップＳ１０２に戻って、シミュレーション演算部１０−２では、同期制御部２０からパラメータ生成方法情報を受信したので（ステップＳ１０２：Ｙｅｓ）、データ検索部１４が結果記録部３０−２を検索し（ステップＳ１１２）、パラメータ生成部１５が検索結果を用いてパラメータを生成する（ステップＳ１０４）。以降、ステップＳ１０５〜Ｓ１０８の動作は前述のとおりである。
【００５２】
同期制御部２０では、時刻同期部２５が、比較結果に基づいて、シミュレーション演算部１０−２の処理負荷がシミュレーション演算部１０−１と同等と判定した場合は（ステップＳ１０９：Ｎｏ）、シミュレーション演算部１０−２がパラメータの生成にシミュレーションの結果を使用する旨を決定する（ステップＳ１１３）。この場合、同期制御部２０は、パラメータ生成方法情報をシミュレーション演算部１０−２へは送信せず、メッセージ生成部２６およびメッセージ出力部２７を経由して、抽出したパラメータを含むデータメッセージを他のシミュレーション演算部（図２の場合ではシミュレーション演算部１０−１）へ送信する（ステップＳ１１４）。
【００５３】
以上説明したように、本実施の形態では、同期制御部が、シミュレーション演算部から受信したシミュレーション時刻と記録しておいた他のシミュレーション演算部のシミュレーション時刻とを比較し、比較結果に基づいて処理負荷を判定し、処理負荷が大きいと判定したシミュレーション演算部に対して、結果記録部に記録されているデータを使用するように指示するパラメータ生成方法情報を送信することとした。これにより、処理負荷が大きいシミュレーション演算部が、シミュレーションから予め用意しておいたデータを検索し返送することで、統合シミュレーションシステム全体の時間進行の遅延を防ぐことができる。
【００５４】
なお、本実施の形態では、説明を簡単化するために、同期制御対象のシミュレーション演算部が２つの場合について説明したが、これに限定するものではなく、同期制御対象のシミュレーション演算部が３つ以上の場合についても同様の制御が可能である。
【００５５】
また、本実施の形態では、定期的に各シミュレーション時刻を比較することで処理負荷の差を判定したが、各シミュレーション演算部のパラメータの送信間隔によって処理負荷を判定してもよい。
【００５６】
また、本実施の形態では、モデル演算部１３のシミュレーション結果を結果記録部３０−ｎに記録しているが、結果記録部３０−ｎに記載のデータは、前回のシミュレーション結果や実測データなどで全て事前に用意しておいてもよい。
【００５７】
実施の形態２．
実施の形態１では、シミュレーション演算部１０−１〜１０−Ｎが並列の関係の場合について説明した。本実施の形態では、シミュレーション演算部がマスタとスレーブの関係にあり、マスタのシミュレーション要求に応じてスレーブがシミュレーション結果を返答する形態につい説明する。実施の形態１と異なる部分について説明する。
【００５８】
図４は、実施の形態２における統合シミュレーションシステムの構成例を示す図である。統合シミュレーションシステムは、同期制御部２０と、行動シミュレータ（シミュレーション演算部）４０と、無線ネットワークシミュレータ（シミュレーション演算部）５０と、結果記録部６０と、を備える。
【００５９】
行動シミュレータ４０は、車両や人間（ノード）の行動（位置情報、通信パラメータ）を模擬する行動シミュレータである。通信パラメータは、送信元、送信先、送信開始時刻、送信データサイズである。以下、パラメータとする。行動シミュレータ４０は、結果記録部と接続していないためデータ検索部を備えていないが、データ検索部を備えない以外は、実施の形態１におけるシミュレーション演算部１０−１等と同等の構成である。
【００６０】
無線ネットワークシミュレータ５０は、無線アドホックネットワーク通信を模擬する無線ネットワークシミュレータである。行動シミュレータ４０および無線ネットワークシミュレータ５０は、同期制御部２０によって統合シミュレーションを実施することで、無線ネットワークの影響による車両や人間の行動を模擬することができる。無線ネットワークシミュレータ５０の構成は、実施の形態１におけるシミュレーション演算部１０−１等と同等の構成である。
【００６１】
結果記録部６０は、無線ネットワークシミュレータ５０がシミュレーション（モデル演算）した結果を記録しておくための記録部である。結果記録部６０の構成は、実施の形態１における結果記憶部３０−１等と同等の構成である。
【００６２】
本実施の形態では、行動シミュレータ４０がマスタ、無線ネットワークシミュレータ５０がスレーブとなる。この場合、無線ネットワークシミュレータ５０が、行動シミュレータ４０のシミュレーション要求に応じてシミュレーション結果を返答することとなり、処理負荷が大きくなり遅れが生じるのは無線ネットワークシミュレータ５０側となる。
【００６３】
つづいて、統合シミュレーションシステムにおける行動シミュレータ４０および無線ネットワークシミュレータ５０の同期制御動作について、図４を参照しつつ図５を用いて説明する。図５は、実施の形態２の同期制御部２０による行動シミュレータ４０および無線ネットワークシミュレータ５０の同期制御動作を示すシーケンス図である。
【００６４】
まず、行動シミュレータ４０は、予め設定された初期条件に従いシミュレーション演算を行い、シミュレーション時刻ＳＴ４００５で、シミュレーション結果からノード位置、パラメータを生成し、シミュレーション時刻ＳＴ４００５の値を付加したデータを同期送信部２０へ送信する（ステップＳ３１）。
【００６５】
行動シミュレータ４０における、シミュレーション時刻ＳＴ４００５のノード位置を図６に示す。図６は、各シミュレーション時刻におけるノード位置を示す図である。ノード１〜５は、無線機もしくは無線機を搭載した移動体を模擬している。図６（４０−１）において、行動シミュレータ４０によるパラメータは、送信元ノード１、宛先ノード５、送信開始時刻ＳＴ４００７、送信データサイズ５００ＫＢを指定する。
【００６６】
同期制御部２０は、ステップＳ３１で受信したデータに含まれるシミュレーション時刻ＳＴ４００５とパラメータを、無線ネットワークシミュレータ５０へ送信する（ステップＳ３２）。詳細には、同期制御部２０では、パラメータ情報処理部２２が、ステップＳ３１で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ３１で受信したデータからシミュレーション時刻ＳＴ４００５を抽出し、時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ４００５、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージを無線ネットワークシミュレータ５０に送信する（ステップＳ３２）。
【００６７】
無線ネットワークシミュレータ５０は、受信したパラメータを利用して、予め設定された初期条件に従い、モデル演算部１３でシミュレーションを実施し、シミュレーション時刻ＳＴ５００５で、シミュレーションによりネットワークトポロジを作成する。パラメータ生成部１５がシミュレーション結果（ネットワークトポロジ情報）によりパラメータを生成し、データ出力部１６が、シミュレーション時刻ＳＴ５００５の値とパラメータを含むデータを生成し、同期制御部２０へ送信する（ステップＳ３３）。無線ネットワークシミュレータ５０は、このときのネットワークトポロジ情報と通信結果を結果記録部６０に記録する。
【００６８】
無線ネットワークシミュレータ５０における、シミュレーション時刻ＳＴ５００５のネットワークトポロジを図６（５０−１）に示す。ここでは、ノード１がノード２、３と、ノード２がノード１、３、４と、ノード３がノード１、２、５と、ノード４がノード２と、ノード５がノード３と、接続していることを示す。
【００６９】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ３３で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ３３で受信したデータに含まれるシミュレーション時刻ＳＴ５００５と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ４００５とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、行動シミュレータ４０の処理負荷と無線ネットワークシミュレータ５０の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。ここでは、シミュレーション時刻ＳＴ４００５とシミュレーション時刻ＳＴ５００５の差が小さく、行動シミュレータ４０と無線ネットワークシミュレータ５０の処理負荷に差がないと判定する。このとき、時刻同期部２５は、パラメータ生成方法情報を生成しない。
【００７０】
同期制御部２０では、時刻監視部２３が、シミュレーション時刻ＳＴ５００５および比較結果を時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ５００５、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージを行動シミュレータ４０に送信する（ステップＳ３４）。
【００７１】
さらに、行動シミュレータ４０は、シミュレーション時刻ＳＴ４０１０で、シミュレーション結果からノード位置、パラメータを生成し、シミュレーション時刻ＳＴ４０１０の値を付加したデータを同期送信部２０へ送信する（ステップＳ３５）。詳細については、ステップＳ３１のときと同様である。
【００７２】
行動シミュレータ４０におけるシミュレーション時刻ＳＴ４０１０のノード位置を図６（４０−２）に示す。図６（４０−１）と比較して、各ノードの位置に変更はない。
【００７３】
同期制御部２０は、ステップＳ３５で受信したデータに含まれるシミュレーション時刻ＳＴ４０１０とパラメータを、無線ネットワークシミュレータ５０へ送信する（ステップＳ３６）。詳細については、ステップＳ３２のときと同様である。
【００７４】
同様に、無線ネットワークシミュレータ５０は、受信したパラメータを利用して、シミュレーション時刻ＳＴ５０１０で、シミュレーションによりネットワークトポロジを作成し、シミュレーション時刻ＳＴ５０１０の値とパラメータを含むデータを生成し、同期制御部２０へ送信する（ステップＳ３７）。詳細については、ステップＳ３３のときと同様である。
【００７５】
無線ネットワークシミュレータ５０における、シミュレーション時刻ＳＴ５０１０のネットワークトポロジを図６（５０−２）に示す。シミュレーション時刻ＳＴ５０１０では、ステップＳ３２で通知された送信元ノード１、宛先ノード５、送信開始時刻ＳＴ４００７、送信データサイズ５００ＫＢの通信の模擬が実施されている。
【００７６】
このときの無線ネットワークの模擬結果は、図７に示すように、ネットワークトポロジ情報としてノード１からノード５までのトポロジツリー、スループット、送信元から宛先までの伝送遅延時間、パケットロス率を結果記録部６０に記録する。図７は、ネットワークトポロジ情報の構成例を示す図である。シミュレーション時刻：ＳＴ５０１０のときを表している。ネットワークトポロジ情報は、トポロジツリー、スループット、送信元から宛先までの伝送遅延、およびＰＥＲ（パケットロス率：Packet  Error  Rate）、から構成される。ここでは、トポロジツリーが「１−３−５」であり、スループットが「１１０ｋｂｐｓ」であり、伝送遅延が「１．５ｍｓ」であり、ＰＥＲが「１０ｅ−３」であることを示す。
【００７７】
同期制御部２０は、ステップＳ３７で受信したデータに含まれるシミュレーション時刻ＳＴ５０１０と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ４０１０とを比較し、行動シミュレータ４０の処理負荷と無線ネットワークシミュレータ５０の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。ここでは、シミュレーション時刻ＳＴ４０１０とシミュレーション時刻ＳＴ５０１０の差が小さく、行動シミュレータ４０と無線ネットワークシミュレータ５０の処理負荷に差がないと判定する。そして、同期制御部２０では、シミュレーション時刻ＳＴ５０１０、パラメータ、を含むデータメッセージを生成し、行動シミュレータ４０に送信する（ステップＳ３８）。詳細については、ステップＳ３４のときと同様である。
【００７８】
以後、行動シミュレータ４０および無線ネットワークシミュレータ５０は、自身が管理するシミュレーション時刻を進めながら、上述した処理を継続して行う。
【００７９】
つぎに、図６（５０−３）に示すように、模擬する通信の量が増加し、無線ネットワークシミュレータ５０の処理負荷が大きくなった場合について説明する。図６（５０−３）では各ノード間の通信が増えており、シミュレーションの処理負荷が大きくなった状態を示す。
【００８０】
行動シミュレータ４０は、シミュレーション時刻ＳＴ４０６０で、シミュレーション結果からノード位置、パラメータを生成し、シミュレーション時刻ＳＴ４０６０の値を付加したデータを同期送信部２０へ送信する（ステップＳ４０）。詳細については、ステップＳ３１のときと同様である。
【００８１】
行動シミュレータ４０におけるシミュレーション時刻ＳＴ４０６０のノード位置を図６（４０−３）に示す。シミュレーション時刻ＳＴ４００５、ＳＴ４０１０と比較して、ノード４が移動した状態を示す。
【００８２】
同期制御部２０は、ステップＳ４０で受信したデータに含まれるシミュレーション時刻ＳＴ４０６０とパラメータを、無線ネットワークシミュレータ５０へ送信する（ステップＳ４１）。詳細については、ステップＳ３２のときと同様である。
【００８３】
無線ネットワークシミュレータ５０は、受信したパラメータを利用して、シミュレーション時刻ＳＴ５０５０で、シミュレーションによりネットワークトポロジを作成し、シミュレーション時刻ＳＴ５０５０の値とパラメータを含むデータを生成し、同期制御部２０へ送信する（ステップＳ４２）。詳細については、ステップＳ３３のときと同様である。
【００８４】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ４２で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ４２で受信したデータに含まれるシミュレーション時刻ＳＴ５０５０と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ４０６０とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、行動シミュレータ４０の処理負荷と無線ネットワークシミュレータ５０の処理負荷との間に差があるかどうかを判定し、判定結果に基づいてシミュレーション演算部の演算処理を決定する。前述のように、シミュレーション時刻ＳＴ５０５０とシミュレーション時刻ＳＴ４０６０の差が小さく、行動シミュレータ４０と無線ネットワークシミュレータ５０の処理負荷に差がないと判定したときは、ステップＳ３４の場合と同様に、データメッセージを行動シミュレータ４０に送信する（ステップＳ４３）。
【００８５】
ここでは、シミュレーション時刻ＳＴ５０５０がシミュレーション時刻ＳＴ４０６０よりも遅れており、無線ネットワークシミュレータ５０の処理負荷が大きくなったと判定する。そのため、時刻同期部２５が、無線ネットワークシミュレータ５０に対して、モデル演算部１３の結果からパラメータデータを生成するのではなく、データ検索部１４が結果記録部６０に記録されているこれまでのシミュレーション結果や予め用意しておいた実測データを検索した結果を用いるように指示するパラメータ生成方法情報を生成する。そして、メッセージ生成部２６が、パラメータ生成方法情報を含むデータメッセージを生成し、メッセージ出力部２７から送信する（ステップＳ４４）。
【００８６】
無線ネットワークシミュレータ５０では、時刻制御部１２が、ステップＳ４４で受信したデータメッセージに含まれるパラメータ生成情報を抽出し、データ検索部１４に対して、結果記録部６０を検索することを指示する。データ検索部１４は、受信しているパラメータを利用して結果記録部６０を検索し、検索結果をパラメータ生成部１５へ出力する。このとき、時刻制御部１２が、シミュレーション時刻ＳＴ５０６０を出力する。パラメータ生成部１５が、データ検索部１４による検索結果を用いてパラメータを生成し、データ出力部１６が、パラメータと、シミュレーション時刻ＳＴ５０６０と、制御情報を付加して同期制御部２０へデータを送信する（ステップＳ４５）。
【００８７】
このときの結果記録部６０の内容を図８に示す。図８は、ネットワークトポロジ情報の構成例を示す図である。前回のデータ送信時のシミュレーション時刻：ＳＴ５０５０のときを表している。項目は図７と同様であるが、複数のトポロジツリーが構成されている点が異なる。データ検索部１４は、図８に示すトポロジツリー、スループット、送信元から宛先までの伝送遅延、およびパケットロス率を記録してある結果記録部６０から、行動シミュレータ４０が指定する通信パラメータに該当するデータを抽出すればよい。
【００８８】
同期制御部２０では、パラメータ情報処理部２２が、ステップＳ４５で受信したデータからパラメータや宛先ＩＤ等の情報を抽出する。また、時刻監視部２３が、ステップＳ４５で受信したデータに含まれるシミュレーション時刻ＳＴ５０６０と時刻記録部２４に記録しておいたシミュレーション時刻ＳＴ４０６０とを比較し、比較結果を時刻記録部２４に記録する。そして、時刻同期部２５が、時刻記録部２４に記録された比較結果に基づいて、無線ネットワークシミュレータ５０の処理負荷と行動シミュレータ４０の処理負荷との間に差があるかどうかを判定し、判定結果に基づいて無線ネットワークシミュレータ５０の演算処理を決定する。ここでは、シミュレーション時刻ＳＴ５０６０とシミュレーション時刻ＳＴ４０６０の差が小さく、行動シミュレータ４０と無線ネットワークシミュレータ５０の処理負荷に差がないと判定する。このとき、時刻同期部２５は、パラメータ生成方法情報を生成しない。
【００８９】
同期制御部２０では、時刻監視部２３が、シミュレーション時刻ＳＴ５０６０および比較結果を時刻記録部２４に記録するとともにヘッダ情報を生成する。メッセージ生成部２６が、時刻同期部２５経由で読み出した時刻記録部２４に記録されているシミュレーション時刻ＳＴ５０６０、パラメータ情報処理部２２から取得したパラメータ、を含むデータメッセージを生成する。そして、メッセージ出力部２７が、そのデータメッセージを行動シミュレータ４０に送信する（ステップＳ４６）。
【００９０】
以上説明したように、本実施の形態では、同期制御部が、シミュレーション時刻に基づいて無線ネットワークシミュレータの処理負荷を判定し、処理負荷が大きいことを検出した場合には、無線ネットワークシミュレータに対して、結果記録部に記録されているデータを使用するように指示するパラメータ生成情報を通知することとした。これにより、処理負荷が大きい無線ネットワークシミュレータが、モデル演算から予め用意しておいたデータを検索し返送することができ、シミュレーション演算部がマスタおよびスレーブの関係にある場合においても、統合シミュレーションシステム全体の時間進行の遅延を防ぐことができる。
【００９１】
なお、本実施の形態では、行動シミュレータ４０がシミュレーション（モデル演算）により生成したノード位置情報を同期制御部２０を通じて無線ネットワークシミュレータ５０に通知したが、行動シミュレータ４０と無線ネットワークシミュレータ５０から共通に参照できる共有メモリを通じて位置情報を定期的に通知してもよい。
【産業上の利用可能性】
【００９２】
以上のように、本発明にかかる統合シミュレーションシステムは、複数のシミュレーション演算部を備えたシステムに有用であり、特に、シミュレーション演算部間で同期をとる場合に適している。
【符号の説明】
【００９３】
１、２、３、４、５  ノード
１０−１、１０−２、…、１０−Ｎ  シミュレーション演算部
１１  メッセージ入力部
１２  時刻制御部
１３  モデル演算部
１４  データ検索部
１５  パラメータ生成部
１６  データ出力部
２０  同期制御部
２１  データ入力部
２２  パラメータ情報処理部
２３  時刻監視部
２４  時刻記録部
２５  時刻同期部
２６  メッセージ生成部
２７  メッセージ出力部
３０−１、３０−２、…、３０−Ｎ  結果記録部
４０  行動シミュレータ（シミュレーション演算部）
５０  無線ネットワークシミュレータ（シミュレーション演算部）
６０  結果記録部
【図１】
2012128567.tif 000003
【図２】
2012128567.tif 000004
【図３】
2012128567.tif 000005
【図４】
2012128567.tif 000006
【図５】
2012128567.tif 000007
【図６】
2012128567.tif 000008
【図７】
2012128567.tif 000009
【図８】
2012128567.tif 000010