分散シミュレーションシステム
【課題】モンテカルロ試行の中で確率の高いシミュレーションについての結果を得ることができる分散シミュレーションシステムを得る。
【解決手段】将来予測模擬部1は、オプティミスティック法によって複数のシミュレーションを実行する。分散シミュレーション基盤2は、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部1における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う。また、分散シミュレーション基盤2は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切る。
【解決手段】将来予測模擬部1は、オプティミスティック法によって複数のシミュレーションを実行する。分散シミュレーション基盤2は、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部1における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う。また、分散シミュレーション基盤2は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切る。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オプティミスティック(Optimistic)法を用いて分散シミュレーションを行う分散シミュレーションシステムに関するものである。
【背景技術】
【0002】
Optimistic法を用いる従来の分散シミュレーションシステムとして、例えば非特許文献1に記載されたものがあった。非特許文献1は、米軍を中心として標準化された分散シミュレーションシステムのアーキテクチャであるHigh Level Architecture(HLA)を示している。
図1は、HLAのアーキテクチャを示したものである。HLAでは、シミュレーションシステム全体をフェデレーション101と呼び、分散実行される模擬処理などのプログラムをフェデレート102と呼ぶ。そして、シミュレーションの実行中に行われる、フェデレーション全体の実行制御や、フェデレート間のデータ交換などの共通機能を、Run−Time Infrastructure(RTI)103という分散シミュレーション基盤が提供する。
【0003】
図2は、HLAにおけるOptimistic法によるフェデレート102のシミュレーション時刻進行の例を示した図である。
フェデレート1及びフェデレート2は、それぞれシミュレーション時刻における模擬処理を実行するが、その際に将来のシミュレーション時刻の模擬を行うことも可能である。ここで、将来のシミュレーション時刻の模擬を、未だ確定しておらず取り消される可能性のある模擬であることから、仮説と呼ぶこととする。例えば図2の例において、フェデレート1は時刻t0においてt0より将来の時刻の仮説を実行し、その結果としてtx時刻のイベントev(tx)をフェデレート2に送信している。Optimistic法では、フェデレートは自分のシミュレーション時刻よりも将来の時刻のイベントを任意のタイミングで受信できることが特徴であり、そのためフェデレート2はt0時刻において将来イベントであるev(tx)を受信し、ev(tx)に基づくtx時刻の仮説を実行することができる。フェデレート2は、tx時刻の仮説の結果としてty時刻のイベントev(ty)をフェデレート1に送信し、フェデレート1はt0時刻においてev(ty)に基づくty時刻の仮説を実行することができる。
【0004】
次に、図3は、図2のフェデレート1、フェデレート2が時刻進行し、tx時刻に進んだ際の処理を示した図である。フェデレート2は、図1に示した通り、t0時刻においてtx時刻の仮説を実行していたため、tx時刻に進んだ際には、図に示したような処理フローに基づき、tx時刻の仮説の評価を行い、誤っていた場合にはその仮説の取消を実行した後にtx時刻の模擬を実行する。図4は、図3の処理フローにおいて、仮説が誤っていたため仮設が取り消された場合のイベント取消の例を示す。フェデレート2のtx時刻において、以前のt0時刻に実行したtx時刻の仮説が誤っていたことが判明したため仮説の取消が行われた結果、その仮説に基づきフェデレート1に送信されていたイベントev(ty)についても取消が行われる。イベントev(ty)の取消は、イベント送信先のフェデレート1に対して通知され、フェデレート1ではev(ty)に基づきt0時刻に実行していた仮説の取消処理が行われる。
なお、図2および図3におけるフェデレートのシミュレーション時刻の進行制御と、イベントの通信処理は、RTI103が管理する。
【0005】
以上のように、Optimistic法では、シミュレーションにおける現在時刻より将来の時刻の模擬を仮説として実行し、さらに仮説によって発生した将来イベントの送信と受信によって仮説の実行を進めていくことが可能である。なお、将来イベントについては誤っていた場合に取消を行うことが可能なため、相反するような複数のイベントを同時に送信することにより、相反するようなシミュレーションを同時に実行することも可能である。この特徴を利用すると、例えば確率的なイベントを複数派生させることによって、モンテカルロシミュレーションにおける複数のモンテカルロ試行を同時に実行させることが可能である。
【0006】
また、従来、Optimistic法によるシミュレーション時刻進行によって多数の仮説を投機的にシミュレーション実行する複数の仮説模擬処理を複数の演算装置に分散し、全体を分散シミュレーション基盤が実行制御する分散シミュレーションシステムの例としては、例えば非特許文献2に示されたものがあった。非特許文献2は、HLAと同様のシステム構成において、実時間における現在時刻より未来の状況をOptimistic法によって予測的にシミュレーション実行するためのシミュレーション実行基盤に関するものである。非特許文献2の5.1節によれば、将来予測された複数のシミュレーションは、多数のデシジョンポイント(Decision Point)によってグラフ構造化されたフューチャーグラフ(Futures Graph)として表され、Decision Pointによって枝分かれした一つのパスが、一回のモンテカルロ試行において実行されるシミュレーションに対応する。図5に、非特許文献2のFutures Graphの例を示す。
【0007】
図5において、各時刻(縦線)において黒丸で示されているのがその時刻におけるイベントを示しており、その時刻においてイベントを処理した結果が次以降の時刻のイベントとして出力されることを矢印線で示している。一つのイベント処理から複数の矢印線が出力されているものは、そのイベント処理において排他的な複数のDecisionが出力されていることを示しており、このイベント処理が枝分かれする分岐点がDecision Pointである。なお、時刻線上におけるイベントの置かれた位置は、そのイベントを正規化した際の相対的なイベント間の違いを示したものである。
図5では、t0からtxまでの論理時間進行において、各時刻において一つ以上のDecision Pointが存在し、時刻が進むにつれシミュレーションが枝分かれしている様子が示されている。最終的に、tx時刻における各シミュレーションの結果であるイベントを正規化し、正規化された結果の分布から将来についての確率的な見積りを行う。
【0008】
続いて図6に、図5のFutures Graphを非特許文献2のシミュレーション実行基盤がOptimistic法によってモンテカルロシミュレーションを実行する例を示す。尚、図6中、白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベント、×は便宜的取消を示している。Optimistic法では、非特許文献1で説明した通り、将来時刻のイベントを受け取ることで仮説として将来時刻のシミュレーションを実行することができ、またイベントの取消によって仮説のシミュレーションを実行し直すことが可能である。非特許文献2のシミュレーション実行基盤は、Optimitsic法の仕組みを利用し、一つのモンテカルロ試行に対応するシミュレーションを一つの仮説として実行し、予測したい将来時刻までのシミュレーションを実行し終えると、便宜的にイベントの取消を実施して別のモンテカルロ試行に対応するシミュレーションを実行できる時刻まで時間を巻き戻し、別のモンテカルロ試行に対応するシミュレーションを実行する。
【0009】
図6の例では、先ずモンテカルロ試行1回目においてt0からシミュレーション1を実行し、時刻を進めるに従いDecision Pointによって別のイベントが枝分かれするが、その枝分かれしたイベントの処理は保留して、txまでシミュレーション1を実行する。次に、モンテカルロ試行2回目においては、シミュレーション1において別のシミュレーションが最初に分岐した時点においてシミュレーション1を実行するために使用したイベントを便宜的に取り消す。なお、このイベントの取消は便宜的なものであり、イベントから派生して実行されたシミュレーション全てが取り消されるわけではなく、シミュレーション結果は全て保存されている。イベントの便宜的な取消に基づき、非特許文献2の分散シミュレーション基盤がシミュレーション1において保留したシミュレーションを実行可能な時刻であるt1まで時刻を巻き戻し、実行可能なイベントに基づいてt1からシミュレーション2をtxまで実行する。モンテカルロ試行3回目では、モンテカルロ試行2回目と同様に、シミュレーション1およびシミュレーション2において保留されたシミュレーションを実行可能な時刻であるt2まで時刻を巻き戻し、t2からシミュレーション3を実行する。なお、シミュレーション実行中に、他のモンテカルロ試行のシミュレーションの結果とイベントが同じになる場合は、シミュレーションをマージすることにより、余分なシミュレーションの分岐を抑制する。
【0010】
以上のように、非特許文献2の方式では、Optimistic法を利用してモンテカルロ試行を実行することにより、各モンテカルロ試行において、巻き戻される時刻までのシミュレーションと、等しいイベントのシミュレーションについて、それぞれ実行回数が1回のみとなり、同じ結果になることが分かっているイベント処理を省略することができるため、モンテカルロ試行を高速に実行することが可能となる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】IEEE 1516.1-2000 - Standard for Modeling and Simulation High Level Architecture(HLA) - Federate Interface Specification
【非特許文献2】Jeffrey S. Steinman, et al., “Simulating Parallel Overlapping Universes in the Fifth Dimension with HyperWarpSpeed Implemented in the WarpIV Kernel”, 2008 Spring Simulation Interoperability Workshop, 08S-SIW-025
【発明の概要】
【発明が解決しようとする課題】
【0012】
非特許文献2の方式は、モンテカルロ試行を高速に実行することが可能であるが、非特許文献2の方式が適用されるシステムは、現在時刻より未来の状況を予測的にシミュレーション実行することを目的にしており、そのためにはシミュレーションが予測したい将来時刻までに終了しなければならないというリアルタイム制約の課題がある。
しかしながら、上記従来の分散シミュレーションシステムでは、このようなリアルタイム制約に対し、十分な解決手段を提供していないという課題があった。例えば、非特許文献2の方式でも、Decision Pointにおけるシミュレーション分岐数が非常に多くなった場合などでリアルタイム制約における制約時間内にモンテカルロ試行が実行終了できないケースが考えられ、そのような場合はシミュレーションを途中で打ち切ることになるが、このような場合は、非特許文献2の方式では次に挙げる二つの問題があった。
【0013】
即ち、第一の問題としては、モンテカルロ試行の実行中に動的にFutures Graphが更新されるため、途中の段階で最終的なモンテカルロ試行回数を求めることができないという問題である。次に、第二の問題は、打ち切られるまでに実行したモンテカルロ試行については、Optimistic法によって巻き戻せる時刻順に実行されており、モンテカルロ試行全体が完了していない途中段階で結果を集計しても、どの様な偏りがあるか分からないという問題である。このような問題のため、非特許文献2の方式では、リアルタイム制約における制約時間内にモンテカルロ試行が実行終了できずシミュレーションを途中で打ち切った場合に、それまで実行されたシミュレーションの結果について確率的な高低を判断することができないといった課題があった。
【0014】
この発明は上記のような課題を解決するためになされたもので、モンテカルロ試行の中で確率の高いシミュレーションについての結果を得ることができる分散シミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【0015】
この発明に係る分散シミュレーションシステムは、現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、オプティミスティック法によって複数のシミュレーションを実行する将来予測模擬部と、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたものである。
【発明の効果】
【0016】
この発明の分散シミュレーションシステムは、シミュレーションの優先順位に基づいて次のシミュレーション時刻のシミュレーション実行を割り当て、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたので、より確率が高くなると予測されるシミュレーションを制約時間内に実行することができる。
【図面の簡単な説明】
【0017】
【図1】HLAのアーキテクチャを示す説明図である。
【図2】HLAにおけるオプティミスティック法によるフェデレートのシミュレーション時刻進行の例を示す説明図である。
【図3】図2におけるフェデレート1,2がtx時刻に進んだ際の処理を示した説明図である。
【図4】イベント取消の例を示す説明図である。
【図5】非特許文献2のFutures Graphの例を示す説明図である。
【図6】オプティミスティック法によってモンテカルロシミュレーションを実行する例を示す説明図である。
【図7】この発明の実施の形態1による分散シミュレーションシステムを示す構成図である。
【図8】この発明の実施の形態1による分散シミュレーションシステムのシミュレーション実行を示す説明図である。
【図9】この発明の実施の形態1による分散シミュレーションシステムのスケジュールリストを示す説明図である。
【図10】この発明の実施の形態1による分散シミュレーションシステムのイベントの実行が制約時間で打ち切られた場合の動作を示す説明図である。
【図11】この発明の実施の形態1による分散シミュレーションシステムのイベントの実行が制約時間で打ち切られた場合のスケジュールリストを示す説明図である。
【発明を実施するための形態】
【0018】
実施の形態1.
図7は、この発明の実施の形態1による分散シミュレーションシステムを示す構成図である。
図7に示す分散シミュレーションシステムは、将来予測模擬部1と分散シミュレーション基盤2を備えている。将来予測模擬部1は、実時間における現在時刻より未来の状況を予測的にシミュレーション実行する機能部であり、Optimistic法による分散並列処理によって仮説を実行する複数の仮説模擬処理部1−1〜1−nを備えている。即ち、将来予測模擬部1は、Optimistic法によって複数のシミュレーションを並列に実行する機能部である。分散シミュレーション基盤2は、将来予測模擬部1の仮説模擬処理部1−1〜1−nに対して、シミュレーション時刻による時刻進行制御とイベントの送受信制御を行う機能部である。
【0019】
尚、図7に示す分散シミュレーションシステムは、コンピュータを用いて実現され、将来予測模擬部1及び分散シミュレーション基盤2は、それぞれの機能に対応したソフトウェアと、これらソフトウェアを実行するためのCPUやメモリといったハードウェアから構成されている。また、それぞれの仮説模擬処理部1−1〜1−nは、並列に処理を行う複数のCPUを用いて構成されている。さらに、将来予測模擬部1や分散シミュレーション基盤2の少なくとも一部を専用のハードウェアで構成してもよい。
【0020】
次に、実施の形態1の分散シミュレーションシステムの動作について説明する。
図8は、図7の何れかの仮説模擬処理部1−1〜1−nにおいて、実時間における現在時刻t0より未来の状況を、Decision Pointによってグラフ構造化されたFutures Graphとしてシミュレーション実行する様子を示している。尚、図中の白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベントを示している。本発明のFutures Graphによるモンテカルロ試行の実行は、非特許文献2のシステムとは異なり、t0からtxまでの各時刻において異なるモンテカルロ試行をできる限り同時に実行する。図8の状況で説明すると、論理時刻t0において異なるモンテカルロ試行1、2に対応するイベントev1_1、ev2_1が論理時刻t1に出力された場合、論理時刻t1におけるシミュレーション実行は、ev1_1とev2_1のイベント処理を同時に実行することにより、モンテカルロ試行1、2を同時に実行する。
【0021】
図9は、図8の状況における分散シミュレーション基盤2の、仮説模擬処理部1−1〜1−nでのイベント処理をスケジューリングするために使用するスケジューリングリストを示したものである。スケジューリングリストは、1行に一つのイベントについての情報を格納したもので、左列に仮説模擬処理部1−1〜1−nで実行する際の実行優先度が格納され、中列にイベントの論理時刻が格納され、右列にイベントが格納されている。スケジューリングリストの各行は、先ず左列の実行優先度の降順でソートされ、同じ実行優先度の複数のイベントについては論理時刻の昇順にソートされている。同じ実行優先度で同じ論理時刻の複数のイベントの順序は任意である。なお、実行優先度は合計が1になるような数値が設定される。スケジューリングリストに登録されたイベントは、リストの上から順に仮説模擬処理部1−1〜1−nに実行が割当られるが、この分散シミュレーションシステムがリアルタイム以上の処理速度でtx時刻までの将来予測シミュレーションを実行するために設定された制約時間まで仮説模擬処理部1−1〜1−nで処理が行われ、制約時間までにスケジューリングリストに登録された全てのイベントが実行できなかった場合にはその時点でイベントの処理が打ち切られる。スケジューリングリストは、スケジューリングリストに登録された全てのイベントが実行されるか、または制約時間で打ち切られるとクリアされ、別のスケジューリングリストが作成される。
【0022】
次に、図8、図9の状況における動作について説明する。図8、図9の状況は本発明による分散シミュレーションシステムにおいて将来予測が開始され始めた段階であり、スケジューリングリストに登録された全てのイベントが制約時間内に処理し終える状況である。
先ず、何れかの仮説模擬処理部1−1〜1−nが、論理時刻t0において現在時刻の状態を基に次時刻であるt1の状況をシミュレーション実行し、その結果として将来時刻t1に対してシミュレーションがモンテカルロ試行1、2に枝分かれするイベントev1_1およびev2_2が論理時刻t1に対して出力される。仮説模擬処理部1−1〜1−nにおける論理時刻t0のシミュレーション実行が終わると、分散シミュレーション基盤2は、論理時刻t1に生成されたev1_1とev2_2を正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算し、スケジューリングリストへの登録を行う。図8におけるt0実行の状況では、マージすることができないため、ev1_1の実行優先度Pev1_1と、ev2_1の実行優先度Pev2_1の夫々に公平になるよう計算{1/(モンテカルロ試行数)}に基づき実行優先度0.5を設定し、スケジューリングリストに登録する。
【0023】
次に、論理時刻t1におけるシミュレーション実行について説明する。論理時刻t1のシミュレーション実行は、先ず、分散シミュレーション基盤2がスケジューリングリストの上から順に実行するイベントを取り出し、仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。図の状況では、ev1_1およびev2_1が同じ実行優先度であったため、ev1_1とev2_1のどちらが先に実行されるかは状況依存である。ev1_1とev2_1の実行が終了すると、論理時刻t2に対してシミュレーションが枝分かれするイベントが出力される。図8の状況では、ev1_1の実行の結果、モンテカルロ試行1におけるev1_2と、枝分かれしたモンテカルロ試行3におけるev3_1が出力され、またev2_1の実行の結果、モンテカルロ試行2におけるev2_2と、枝分かれしたモンテカルロ試行4におけるev4_1が出力されている。
【0024】
論理時刻t1のシミュレーション実行が終わると、分散シミュレーション基盤2は、論理時刻t1の際と同様に、論理時刻t2に生成された各イベントを正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算し、スケジューリングリストへの登録を行う。各イベントに対する実行優先度の計算は、各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.25になるが、図8の状況ではev3_1がev2_2にマージされているため、ev2_2の実行優先度Pev2_2はマージ回数分実行優先度が加算されて0.5となり、スケジューリングリストに登録されるとev2_2がリストの最上位に格納される。
【0025】
次に、論理時刻t2におけるシミュレーション実行について説明する。論理時刻t2のシミュレーション実行は、先ず、分散シミュレーション基盤2がスケジューリングリストの上から順に実行するイベントを取り出し、仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。図の状況では、ev2_2が最も実行優先度が高いため、分散シミュレーション基盤2は、ev2_2から仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。ev2_2、ev1_2、ev4_1の実行が終了すると、論理時刻t3に対してシミュレーションが枝分かれするイベントが出力される。図8の状況では、ev1_2の実行の結果、モンテカルロ試行1におけるev1_3と、枝分かれしたモンテカルロ試行5、6におけるev5_1、ev6_1が出力され、ev2_2の実行の結果、モンテカルロ試行2におけるev2_3と、枝分かれしたモンテカルロ試行7におけるev7_1が出力され、またev3_1の実行の結果、モンテカルロ試行3におけるev4_2と、枝分かれしたモンテカルロ試行8におけるev8_1が出力される。
【0026】
論理時刻t2のシミュレーション実行が終わると、論理時刻t0、t1の際と同様に、分散シミュレーション基盤2は論理時刻t3に生成された各イベントを正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算して、スケジューリングリストへの登録を行う。各イベントに対する実行優先度の計算は、各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.125になるが、図8の状況では、先ずモンテカルロ試行2のev2_3は論理時刻t2においてモンテカルロ試行3がマージされているためマージ回数分実行優先度が加算されて0.25となり、またev4_2は論理時刻t3においてev8_1がev4_2にマージされるためマージ回数分実行優先度が加算されて0.25となりスケジューリングリストに登録される。
【0027】
このように、各時刻のモンテカルロ試行が同時に実行されると、出力される次時刻のイベントの正規化によってモンテカルロ試行間のマージ可能性が判断され、マージされたモンテカルロ試行は実行優先度が高く設定される。以降、同様の処理がtxまで続けられるが、次に図10、図11を用いてスケジューリングリストに登録されたイベントの実行が制約時間で打ち切られた場合の動作について説明する。尚、図10における白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベントを示している。
【0028】
図10のt3実行の状況は、図8のt2実行後の状態から論理時刻t3のイベントをスケジューリングリストを用いて仮説模擬処理部1−1〜1−nで実行した際に、スケジューリングリストの上から順に実行されたev2_3、ev4_2、ev1_3のイベント実行が制約時間内に終了し、ev5_1、ev6_1、ev8_1の実行ができなかった場合を示している。本発明による分散シミュレーションシステムでは、このまま次の論理時刻t4のイベント実行に進むが、その際にt4より前に実行できなかったイベントのモンテカルロ試行を含めて実行優先度を計算する。t4時刻までに派生した各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.1になるが、ここでマージ回数分についての加算が行われ、その結果ev2_4はt2においてマージが行われているため0.2、ev4_3はt3およびt4においてマージが行われているため0.3、他のモンテカルロ試行が0.1となる。実行優先度とイベントをスケジューリングリストに登録すると、図11のt4のように登録される。先ず、実行優先度によって降順にソートされるため、ev4_3に続いてev2_4の順に並び、そのほかのイベントについては実行優先度は同じであるが、これらのイベントは時刻の昇順にソートされるため、ev5_1、ev6_1、ev8_1が上に登録される。論理時刻t4においては、このスケジューリングリストに基づき、リストの上から順に仮説模擬処理部1−1〜1−nに対してイベント実行が割り当てられる。
【0029】
このような動作を行うことにより実施の形態1では次のような効果がある。即ち、現在時刻t0の状況をもとにモンテカルロ試行によって将来時刻txの状況を見積るようなシミュレーションシステムにおいては、txに実時間が進んでしまう前にシミュレーションを実行させる必要があるため、制約時間内でシミュレーションが実行できない場合は途中でシミュレーションを打ち切らなければならない。しかしながら、本実施の形態による分散シミュレーションシステムでは、時刻毎にDecision Pointで派生したモンテカルロ試行のイベントについて同時に実行するためのスケジューリングを行い、その際、マージされたイベントの数によってモンテカルロ試行の優先順位をつけることにより、制約時間内で全てのイベントが実行できなくてもマージ数の多いモンテカルロ試行が優先的にtxまでに実行されるため、モンテカルロ試行の中で確率の高いシミュレーションについてtx時刻の結果を得ることができる。
【0030】
また、マージ数が少なく優先度が低いシミュレーションが多くなった場合には、前時刻のイベントから優先的にスケジューリングが行われるため、優先されるイベントが局所的に偏ることを防ぐことができる。
【0031】
以上説明したように、実施の形態1の分散シミュレーションシステムによれば、現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、オプティミスティック法によって複数のシミュレーションを実行する将来予測模擬部と、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたので、より確率が高くなると予測されるシミュレーションを制約時間内に実行することができる。
【0032】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、任意のシミュレーション時刻におけるシミュレーション結果が同一であった場合は、同一のシミュレーション結果をマージした数だけ確率を加算するようにしたので、制約時間内でのシミュレーションの精度を向上させることができる。
【0033】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、同一のシミュレーション時刻における複数のシミュレーションを同時に実行するようにしたので、制約時間内でのシミュレーションをより確実に実行することができる。
【0034】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、打ち切ったシミュレーションについて、次時刻以降のシミュレーション時刻におけるシミュレーション実行の際に優先度を再計算し、確率が同じと見積られる他のシミュレーションより優先的にスケジューリングを行うようにしたので、優先されるシミュレーションの実行が局所的に偏ることを防ぐことができる。
【0035】
尚、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【0036】
1 将来予測模擬部、1−1〜1−n 仮説模擬処理部、2 分散シミュレーション基盤。
【技術分野】
【0001】
本発明は、オプティミスティック(Optimistic)法を用いて分散シミュレーションを行う分散シミュレーションシステムに関するものである。
【背景技術】
【0002】
Optimistic法を用いる従来の分散シミュレーションシステムとして、例えば非特許文献1に記載されたものがあった。非特許文献1は、米軍を中心として標準化された分散シミュレーションシステムのアーキテクチャであるHigh Level Architecture(HLA)を示している。
図1は、HLAのアーキテクチャを示したものである。HLAでは、シミュレーションシステム全体をフェデレーション101と呼び、分散実行される模擬処理などのプログラムをフェデレート102と呼ぶ。そして、シミュレーションの実行中に行われる、フェデレーション全体の実行制御や、フェデレート間のデータ交換などの共通機能を、Run−Time Infrastructure(RTI)103という分散シミュレーション基盤が提供する。
【0003】
図2は、HLAにおけるOptimistic法によるフェデレート102のシミュレーション時刻進行の例を示した図である。
フェデレート1及びフェデレート2は、それぞれシミュレーション時刻における模擬処理を実行するが、その際に将来のシミュレーション時刻の模擬を行うことも可能である。ここで、将来のシミュレーション時刻の模擬を、未だ確定しておらず取り消される可能性のある模擬であることから、仮説と呼ぶこととする。例えば図2の例において、フェデレート1は時刻t0においてt0より将来の時刻の仮説を実行し、その結果としてtx時刻のイベントev(tx)をフェデレート2に送信している。Optimistic法では、フェデレートは自分のシミュレーション時刻よりも将来の時刻のイベントを任意のタイミングで受信できることが特徴であり、そのためフェデレート2はt0時刻において将来イベントであるev(tx)を受信し、ev(tx)に基づくtx時刻の仮説を実行することができる。フェデレート2は、tx時刻の仮説の結果としてty時刻のイベントev(ty)をフェデレート1に送信し、フェデレート1はt0時刻においてev(ty)に基づくty時刻の仮説を実行することができる。
【0004】
次に、図3は、図2のフェデレート1、フェデレート2が時刻進行し、tx時刻に進んだ際の処理を示した図である。フェデレート2は、図1に示した通り、t0時刻においてtx時刻の仮説を実行していたため、tx時刻に進んだ際には、図に示したような処理フローに基づき、tx時刻の仮説の評価を行い、誤っていた場合にはその仮説の取消を実行した後にtx時刻の模擬を実行する。図4は、図3の処理フローにおいて、仮説が誤っていたため仮設が取り消された場合のイベント取消の例を示す。フェデレート2のtx時刻において、以前のt0時刻に実行したtx時刻の仮説が誤っていたことが判明したため仮説の取消が行われた結果、その仮説に基づきフェデレート1に送信されていたイベントev(ty)についても取消が行われる。イベントev(ty)の取消は、イベント送信先のフェデレート1に対して通知され、フェデレート1ではev(ty)に基づきt0時刻に実行していた仮説の取消処理が行われる。
なお、図2および図3におけるフェデレートのシミュレーション時刻の進行制御と、イベントの通信処理は、RTI103が管理する。
【0005】
以上のように、Optimistic法では、シミュレーションにおける現在時刻より将来の時刻の模擬を仮説として実行し、さらに仮説によって発生した将来イベントの送信と受信によって仮説の実行を進めていくことが可能である。なお、将来イベントについては誤っていた場合に取消を行うことが可能なため、相反するような複数のイベントを同時に送信することにより、相反するようなシミュレーションを同時に実行することも可能である。この特徴を利用すると、例えば確率的なイベントを複数派生させることによって、モンテカルロシミュレーションにおける複数のモンテカルロ試行を同時に実行させることが可能である。
【0006】
また、従来、Optimistic法によるシミュレーション時刻進行によって多数の仮説を投機的にシミュレーション実行する複数の仮説模擬処理を複数の演算装置に分散し、全体を分散シミュレーション基盤が実行制御する分散シミュレーションシステムの例としては、例えば非特許文献2に示されたものがあった。非特許文献2は、HLAと同様のシステム構成において、実時間における現在時刻より未来の状況をOptimistic法によって予測的にシミュレーション実行するためのシミュレーション実行基盤に関するものである。非特許文献2の5.1節によれば、将来予測された複数のシミュレーションは、多数のデシジョンポイント(Decision Point)によってグラフ構造化されたフューチャーグラフ(Futures Graph)として表され、Decision Pointによって枝分かれした一つのパスが、一回のモンテカルロ試行において実行されるシミュレーションに対応する。図5に、非特許文献2のFutures Graphの例を示す。
【0007】
図5において、各時刻(縦線)において黒丸で示されているのがその時刻におけるイベントを示しており、その時刻においてイベントを処理した結果が次以降の時刻のイベントとして出力されることを矢印線で示している。一つのイベント処理から複数の矢印線が出力されているものは、そのイベント処理において排他的な複数のDecisionが出力されていることを示しており、このイベント処理が枝分かれする分岐点がDecision Pointである。なお、時刻線上におけるイベントの置かれた位置は、そのイベントを正規化した際の相対的なイベント間の違いを示したものである。
図5では、t0からtxまでの論理時間進行において、各時刻において一つ以上のDecision Pointが存在し、時刻が進むにつれシミュレーションが枝分かれしている様子が示されている。最終的に、tx時刻における各シミュレーションの結果であるイベントを正規化し、正規化された結果の分布から将来についての確率的な見積りを行う。
【0008】
続いて図6に、図5のFutures Graphを非特許文献2のシミュレーション実行基盤がOptimistic法によってモンテカルロシミュレーションを実行する例を示す。尚、図6中、白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベント、×は便宜的取消を示している。Optimistic法では、非特許文献1で説明した通り、将来時刻のイベントを受け取ることで仮説として将来時刻のシミュレーションを実行することができ、またイベントの取消によって仮説のシミュレーションを実行し直すことが可能である。非特許文献2のシミュレーション実行基盤は、Optimitsic法の仕組みを利用し、一つのモンテカルロ試行に対応するシミュレーションを一つの仮説として実行し、予測したい将来時刻までのシミュレーションを実行し終えると、便宜的にイベントの取消を実施して別のモンテカルロ試行に対応するシミュレーションを実行できる時刻まで時間を巻き戻し、別のモンテカルロ試行に対応するシミュレーションを実行する。
【0009】
図6の例では、先ずモンテカルロ試行1回目においてt0からシミュレーション1を実行し、時刻を進めるに従いDecision Pointによって別のイベントが枝分かれするが、その枝分かれしたイベントの処理は保留して、txまでシミュレーション1を実行する。次に、モンテカルロ試行2回目においては、シミュレーション1において別のシミュレーションが最初に分岐した時点においてシミュレーション1を実行するために使用したイベントを便宜的に取り消す。なお、このイベントの取消は便宜的なものであり、イベントから派生して実行されたシミュレーション全てが取り消されるわけではなく、シミュレーション結果は全て保存されている。イベントの便宜的な取消に基づき、非特許文献2の分散シミュレーション基盤がシミュレーション1において保留したシミュレーションを実行可能な時刻であるt1まで時刻を巻き戻し、実行可能なイベントに基づいてt1からシミュレーション2をtxまで実行する。モンテカルロ試行3回目では、モンテカルロ試行2回目と同様に、シミュレーション1およびシミュレーション2において保留されたシミュレーションを実行可能な時刻であるt2まで時刻を巻き戻し、t2からシミュレーション3を実行する。なお、シミュレーション実行中に、他のモンテカルロ試行のシミュレーションの結果とイベントが同じになる場合は、シミュレーションをマージすることにより、余分なシミュレーションの分岐を抑制する。
【0010】
以上のように、非特許文献2の方式では、Optimistic法を利用してモンテカルロ試行を実行することにより、各モンテカルロ試行において、巻き戻される時刻までのシミュレーションと、等しいイベントのシミュレーションについて、それぞれ実行回数が1回のみとなり、同じ結果になることが分かっているイベント処理を省略することができるため、モンテカルロ試行を高速に実行することが可能となる。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】IEEE 1516.1-2000 - Standard for Modeling and Simulation High Level Architecture(HLA) - Federate Interface Specification
【非特許文献2】Jeffrey S. Steinman, et al., “Simulating Parallel Overlapping Universes in the Fifth Dimension with HyperWarpSpeed Implemented in the WarpIV Kernel”, 2008 Spring Simulation Interoperability Workshop, 08S-SIW-025
【発明の概要】
【発明が解決しようとする課題】
【0012】
非特許文献2の方式は、モンテカルロ試行を高速に実行することが可能であるが、非特許文献2の方式が適用されるシステムは、現在時刻より未来の状況を予測的にシミュレーション実行することを目的にしており、そのためにはシミュレーションが予測したい将来時刻までに終了しなければならないというリアルタイム制約の課題がある。
しかしながら、上記従来の分散シミュレーションシステムでは、このようなリアルタイム制約に対し、十分な解決手段を提供していないという課題があった。例えば、非特許文献2の方式でも、Decision Pointにおけるシミュレーション分岐数が非常に多くなった場合などでリアルタイム制約における制約時間内にモンテカルロ試行が実行終了できないケースが考えられ、そのような場合はシミュレーションを途中で打ち切ることになるが、このような場合は、非特許文献2の方式では次に挙げる二つの問題があった。
【0013】
即ち、第一の問題としては、モンテカルロ試行の実行中に動的にFutures Graphが更新されるため、途中の段階で最終的なモンテカルロ試行回数を求めることができないという問題である。次に、第二の問題は、打ち切られるまでに実行したモンテカルロ試行については、Optimistic法によって巻き戻せる時刻順に実行されており、モンテカルロ試行全体が完了していない途中段階で結果を集計しても、どの様な偏りがあるか分からないという問題である。このような問題のため、非特許文献2の方式では、リアルタイム制約における制約時間内にモンテカルロ試行が実行終了できずシミュレーションを途中で打ち切った場合に、それまで実行されたシミュレーションの結果について確率的な高低を判断することができないといった課題があった。
【0014】
この発明は上記のような課題を解決するためになされたもので、モンテカルロ試行の中で確率の高いシミュレーションについての結果を得ることができる分散シミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【0015】
この発明に係る分散シミュレーションシステムは、現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、オプティミスティック法によって複数のシミュレーションを実行する将来予測模擬部と、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたものである。
【発明の効果】
【0016】
この発明の分散シミュレーションシステムは、シミュレーションの優先順位に基づいて次のシミュレーション時刻のシミュレーション実行を割り当て、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたので、より確率が高くなると予測されるシミュレーションを制約時間内に実行することができる。
【図面の簡単な説明】
【0017】
【図1】HLAのアーキテクチャを示す説明図である。
【図2】HLAにおけるオプティミスティック法によるフェデレートのシミュレーション時刻進行の例を示す説明図である。
【図3】図2におけるフェデレート1,2がtx時刻に進んだ際の処理を示した説明図である。
【図4】イベント取消の例を示す説明図である。
【図5】非特許文献2のFutures Graphの例を示す説明図である。
【図6】オプティミスティック法によってモンテカルロシミュレーションを実行する例を示す説明図である。
【図7】この発明の実施の形態1による分散シミュレーションシステムを示す構成図である。
【図8】この発明の実施の形態1による分散シミュレーションシステムのシミュレーション実行を示す説明図である。
【図9】この発明の実施の形態1による分散シミュレーションシステムのスケジュールリストを示す説明図である。
【図10】この発明の実施の形態1による分散シミュレーションシステムのイベントの実行が制約時間で打ち切られた場合の動作を示す説明図である。
【図11】この発明の実施の形態1による分散シミュレーションシステムのイベントの実行が制約時間で打ち切られた場合のスケジュールリストを示す説明図である。
【発明を実施するための形態】
【0018】
実施の形態1.
図7は、この発明の実施の形態1による分散シミュレーションシステムを示す構成図である。
図7に示す分散シミュレーションシステムは、将来予測模擬部1と分散シミュレーション基盤2を備えている。将来予測模擬部1は、実時間における現在時刻より未来の状況を予測的にシミュレーション実行する機能部であり、Optimistic法による分散並列処理によって仮説を実行する複数の仮説模擬処理部1−1〜1−nを備えている。即ち、将来予測模擬部1は、Optimistic法によって複数のシミュレーションを並列に実行する機能部である。分散シミュレーション基盤2は、将来予測模擬部1の仮説模擬処理部1−1〜1−nに対して、シミュレーション時刻による時刻進行制御とイベントの送受信制御を行う機能部である。
【0019】
尚、図7に示す分散シミュレーションシステムは、コンピュータを用いて実現され、将来予測模擬部1及び分散シミュレーション基盤2は、それぞれの機能に対応したソフトウェアと、これらソフトウェアを実行するためのCPUやメモリといったハードウェアから構成されている。また、それぞれの仮説模擬処理部1−1〜1−nは、並列に処理を行う複数のCPUを用いて構成されている。さらに、将来予測模擬部1や分散シミュレーション基盤2の少なくとも一部を専用のハードウェアで構成してもよい。
【0020】
次に、実施の形態1の分散シミュレーションシステムの動作について説明する。
図8は、図7の何れかの仮説模擬処理部1−1〜1−nにおいて、実時間における現在時刻t0より未来の状況を、Decision Pointによってグラフ構造化されたFutures Graphとしてシミュレーション実行する様子を示している。尚、図中の白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベントを示している。本発明のFutures Graphによるモンテカルロ試行の実行は、非特許文献2のシステムとは異なり、t0からtxまでの各時刻において異なるモンテカルロ試行をできる限り同時に実行する。図8の状況で説明すると、論理時刻t0において異なるモンテカルロ試行1、2に対応するイベントev1_1、ev2_1が論理時刻t1に出力された場合、論理時刻t1におけるシミュレーション実行は、ev1_1とev2_1のイベント処理を同時に実行することにより、モンテカルロ試行1、2を同時に実行する。
【0021】
図9は、図8の状況における分散シミュレーション基盤2の、仮説模擬処理部1−1〜1−nでのイベント処理をスケジューリングするために使用するスケジューリングリストを示したものである。スケジューリングリストは、1行に一つのイベントについての情報を格納したもので、左列に仮説模擬処理部1−1〜1−nで実行する際の実行優先度が格納され、中列にイベントの論理時刻が格納され、右列にイベントが格納されている。スケジューリングリストの各行は、先ず左列の実行優先度の降順でソートされ、同じ実行優先度の複数のイベントについては論理時刻の昇順にソートされている。同じ実行優先度で同じ論理時刻の複数のイベントの順序は任意である。なお、実行優先度は合計が1になるような数値が設定される。スケジューリングリストに登録されたイベントは、リストの上から順に仮説模擬処理部1−1〜1−nに実行が割当られるが、この分散シミュレーションシステムがリアルタイム以上の処理速度でtx時刻までの将来予測シミュレーションを実行するために設定された制約時間まで仮説模擬処理部1−1〜1−nで処理が行われ、制約時間までにスケジューリングリストに登録された全てのイベントが実行できなかった場合にはその時点でイベントの処理が打ち切られる。スケジューリングリストは、スケジューリングリストに登録された全てのイベントが実行されるか、または制約時間で打ち切られるとクリアされ、別のスケジューリングリストが作成される。
【0022】
次に、図8、図9の状況における動作について説明する。図8、図9の状況は本発明による分散シミュレーションシステムにおいて将来予測が開始され始めた段階であり、スケジューリングリストに登録された全てのイベントが制約時間内に処理し終える状況である。
先ず、何れかの仮説模擬処理部1−1〜1−nが、論理時刻t0において現在時刻の状態を基に次時刻であるt1の状況をシミュレーション実行し、その結果として将来時刻t1に対してシミュレーションがモンテカルロ試行1、2に枝分かれするイベントev1_1およびev2_2が論理時刻t1に対して出力される。仮説模擬処理部1−1〜1−nにおける論理時刻t0のシミュレーション実行が終わると、分散シミュレーション基盤2は、論理時刻t1に生成されたev1_1とev2_2を正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算し、スケジューリングリストへの登録を行う。図8におけるt0実行の状況では、マージすることができないため、ev1_1の実行優先度Pev1_1と、ev2_1の実行優先度Pev2_1の夫々に公平になるよう計算{1/(モンテカルロ試行数)}に基づき実行優先度0.5を設定し、スケジューリングリストに登録する。
【0023】
次に、論理時刻t1におけるシミュレーション実行について説明する。論理時刻t1のシミュレーション実行は、先ず、分散シミュレーション基盤2がスケジューリングリストの上から順に実行するイベントを取り出し、仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。図の状況では、ev1_1およびev2_1が同じ実行優先度であったため、ev1_1とev2_1のどちらが先に実行されるかは状況依存である。ev1_1とev2_1の実行が終了すると、論理時刻t2に対してシミュレーションが枝分かれするイベントが出力される。図8の状況では、ev1_1の実行の結果、モンテカルロ試行1におけるev1_2と、枝分かれしたモンテカルロ試行3におけるev3_1が出力され、またev2_1の実行の結果、モンテカルロ試行2におけるev2_2と、枝分かれしたモンテカルロ試行4におけるev4_1が出力されている。
【0024】
論理時刻t1のシミュレーション実行が終わると、分散シミュレーション基盤2は、論理時刻t1の際と同様に、論理時刻t2に生成された各イベントを正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算し、スケジューリングリストへの登録を行う。各イベントに対する実行優先度の計算は、各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.25になるが、図8の状況ではev3_1がev2_2にマージされているため、ev2_2の実行優先度Pev2_2はマージ回数分実行優先度が加算されて0.5となり、スケジューリングリストに登録されるとev2_2がリストの最上位に格納される。
【0025】
次に、論理時刻t2におけるシミュレーション実行について説明する。論理時刻t2のシミュレーション実行は、先ず、分散シミュレーション基盤2がスケジューリングリストの上から順に実行するイベントを取り出し、仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。図の状況では、ev2_2が最も実行優先度が高いため、分散シミュレーション基盤2は、ev2_2から仮説模擬処理部1−1〜1−nにおいて仮説模擬処理を実行させる。ev2_2、ev1_2、ev4_1の実行が終了すると、論理時刻t3に対してシミュレーションが枝分かれするイベントが出力される。図8の状況では、ev1_2の実行の結果、モンテカルロ試行1におけるev1_3と、枝分かれしたモンテカルロ試行5、6におけるev5_1、ev6_1が出力され、ev2_2の実行の結果、モンテカルロ試行2におけるev2_3と、枝分かれしたモンテカルロ試行7におけるev7_1が出力され、またev3_1の実行の結果、モンテカルロ試行3におけるev4_2と、枝分かれしたモンテカルロ試行8におけるev8_1が出力される。
【0026】
論理時刻t2のシミュレーション実行が終わると、論理時刻t0、t1の際と同様に、分散シミュレーション基盤2は論理時刻t3に生成された各イベントを正規化して比較し、マージ可能か否かを判断し、その結果によってイベント実行優先度を計算して、スケジューリングリストへの登録を行う。各イベントに対する実行優先度の計算は、各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.125になるが、図8の状況では、先ずモンテカルロ試行2のev2_3は論理時刻t2においてモンテカルロ試行3がマージされているためマージ回数分実行優先度が加算されて0.25となり、またev4_2は論理時刻t3においてev8_1がev4_2にマージされるためマージ回数分実行優先度が加算されて0.25となりスケジューリングリストに登録される。
【0027】
このように、各時刻のモンテカルロ試行が同時に実行されると、出力される次時刻のイベントの正規化によってモンテカルロ試行間のマージ可能性が判断され、マージされたモンテカルロ試行は実行優先度が高く設定される。以降、同様の処理がtxまで続けられるが、次に図10、図11を用いてスケジューリングリストに登録されたイベントの実行が制約時間で打ち切られた場合の動作について説明する。尚、図10における白丸(○)は保留イベント、大きな黒丸(●)は実行イベント、小さな黒丸(・)は実行済みイベントを示している。
【0028】
図10のt3実行の状況は、図8のt2実行後の状態から論理時刻t3のイベントをスケジューリングリストを用いて仮説模擬処理部1−1〜1−nで実行した際に、スケジューリングリストの上から順に実行されたev2_3、ev4_2、ev1_3のイベント実行が制約時間内に終了し、ev5_1、ev6_1、ev8_1の実行ができなかった場合を示している。本発明による分散シミュレーションシステムでは、このまま次の論理時刻t4のイベント実行に進むが、その際にt4より前に実行できなかったイベントのモンテカルロ試行を含めて実行優先度を計算する。t4時刻までに派生した各モンテカルロ試行に対する実行優先度は{1/(モンテカルロ試行数)}に基づき0.1になるが、ここでマージ回数分についての加算が行われ、その結果ev2_4はt2においてマージが行われているため0.2、ev4_3はt3およびt4においてマージが行われているため0.3、他のモンテカルロ試行が0.1となる。実行優先度とイベントをスケジューリングリストに登録すると、図11のt4のように登録される。先ず、実行優先度によって降順にソートされるため、ev4_3に続いてev2_4の順に並び、そのほかのイベントについては実行優先度は同じであるが、これらのイベントは時刻の昇順にソートされるため、ev5_1、ev6_1、ev8_1が上に登録される。論理時刻t4においては、このスケジューリングリストに基づき、リストの上から順に仮説模擬処理部1−1〜1−nに対してイベント実行が割り当てられる。
【0029】
このような動作を行うことにより実施の形態1では次のような効果がある。即ち、現在時刻t0の状況をもとにモンテカルロ試行によって将来時刻txの状況を見積るようなシミュレーションシステムにおいては、txに実時間が進んでしまう前にシミュレーションを実行させる必要があるため、制約時間内でシミュレーションが実行できない場合は途中でシミュレーションを打ち切らなければならない。しかしながら、本実施の形態による分散シミュレーションシステムでは、時刻毎にDecision Pointで派生したモンテカルロ試行のイベントについて同時に実行するためのスケジューリングを行い、その際、マージされたイベントの数によってモンテカルロ試行の優先順位をつけることにより、制約時間内で全てのイベントが実行できなくてもマージ数の多いモンテカルロ試行が優先的にtxまでに実行されるため、モンテカルロ試行の中で確率の高いシミュレーションについてtx時刻の結果を得ることができる。
【0030】
また、マージ数が少なく優先度が低いシミュレーションが多くなった場合には、前時刻のイベントから優先的にスケジューリングが行われるため、優先されるイベントが局所的に偏ることを防ぐことができる。
【0031】
以上説明したように、実施の形態1の分散シミュレーションシステムによれば、現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、オプティミスティック法によって複数のシミュレーションを実行する将来予測模擬部と、シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切るようにしたので、より確率が高くなると予測されるシミュレーションを制約時間内に実行することができる。
【0032】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、任意のシミュレーション時刻におけるシミュレーション結果が同一であった場合は、同一のシミュレーション結果をマージした数だけ確率を加算するようにしたので、制約時間内でのシミュレーションの精度を向上させることができる。
【0033】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、同一のシミュレーション時刻における複数のシミュレーションを同時に実行するようにしたので、制約時間内でのシミュレーションをより確実に実行することができる。
【0034】
また、実施の形態1の分散シミュレーションシステムによれば、分散シミュレーション基盤は、打ち切ったシミュレーションについて、次時刻以降のシミュレーション時刻におけるシミュレーション実行の際に優先度を再計算し、確率が同じと見積られる他のシミュレーションより優先的にスケジューリングを行うようにしたので、優先されるシミュレーションの実行が局所的に偏ることを防ぐことができる。
【0035】
尚、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【0036】
1 将来予測模擬部、1−1〜1−n 仮説模擬処理部、2 分散シミュレーション基盤。
【特許請求の範囲】
【請求項1】
現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、
オプティミスティック法によって前記複数のシミュレーションを実行する将来予測模擬部と、
シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて前記将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、
前記分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切ることを特徴とする分散シミュレーションシステム。
【請求項2】
分散シミュレーション基盤は、任意のシミュレーション時刻におけるシミュレーション結果が同一であった場合は、当該同一のシミュレーション結果をマージした数だけ確率を加算することを特徴とする請求項1記載の分散シミュレーションシステム。
【請求項3】
分散シミュレーション基盤は、同一のシミュレーション時刻における複数のシミュレーションを同時に実行することを特徴とする請求項1または請求項2記載の分散シミュレーションシステム。
【請求項4】
分散シミュレーション基盤は、打ち切ったシミュレーションについて、次時刻以降のシミュレーション時刻におけるシミュレーション実行の際に優先度を再計算し、確率が同じと見積られる他のシミュレーションより優先的にスケジューリングを行うことを特徴とする請求項1から請求項3のうちのいずれか1項記載の分散シミュレーションシステム。
【請求項1】
現在の状況をシミュレーション初期条件として多数回のモンテカルロ試行によるシミュレーションを実行し、各シミュレーション結果を統計処理して確率的な将来予測を行う場合に、並列に複数のシミュレーションを実行する分散シミュレーションシステムであって、
オプティミスティック法によって前記複数のシミュレーションを実行する将来予測模擬部と、
シミュレーション時刻毎の中間的な各シミュレーション結果を集計して最も確率が高いと予測されるシミュレーションの優先順位に基づいて前記将来予測模擬部における次のシミュレーション時刻のシミュレーション実行を割り当てるスケジューリングを行う分散シミュレーション基盤とを備え、
前記分散シミュレーション基盤は、予め定めた制約時間内に全てのシミュレーションの実行が完了しない場合は確率が低いと予測されるシミュレーションの実行を打ち切ることを特徴とする分散シミュレーションシステム。
【請求項2】
分散シミュレーション基盤は、任意のシミュレーション時刻におけるシミュレーション結果が同一であった場合は、当該同一のシミュレーション結果をマージした数だけ確率を加算することを特徴とする請求項1記載の分散シミュレーションシステム。
【請求項3】
分散シミュレーション基盤は、同一のシミュレーション時刻における複数のシミュレーションを同時に実行することを特徴とする請求項1または請求項2記載の分散シミュレーションシステム。
【請求項4】
分散シミュレーション基盤は、打ち切ったシミュレーションについて、次時刻以降のシミュレーション時刻におけるシミュレーション実行の際に優先度を再計算し、確率が同じと見積られる他のシミュレーションより優先的にスケジューリングを行うことを特徴とする請求項1から請求項3のうちのいずれか1項記載の分散シミュレーションシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−243212(P2012−243212A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−114947(P2011−114947)
【出願日】平成23年5月23日(2011.5.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願日】平成23年5月23日(2011.5.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
[ Back to top ]