特許第6031995号(P6031995)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許6031995シミュレーション方法、プログラム、及び情報処理システム
<>
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000010
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000011
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000012
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000013
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000014
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000015
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000016
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000017
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000018
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000019
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000020
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000021
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000022
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000023
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000024
  • 特許6031995-シミュレーション方法、プログラム、及び情報処理システム 図000025
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6031995
(24)【登録日】2016年11月4日
(45)【発行日】2016年11月24日
(54)【発明の名称】シミュレーション方法、プログラム、及び情報処理システム
(51)【国際特許分類】
   G06F 19/00 20110101AFI20161114BHJP
【FI】
   G06F19/00 110
【請求項の数】9
【全頁数】28
(21)【出願番号】特願2012-279450(P2012-279450)
(22)【出願日】2012年12月21日
(65)【公開番号】特開2014-123272(P2014-123272A)
(43)【公開日】2014年7月3日
【審査請求日】2015年8月4日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖
(72)【発明者】
【氏名】亀山 裕亮
(72)【発明者】
【氏名】本間 克己
【審査官】 宮地 匡人
(56)【参考文献】
【文献】 特開2005−078516(JP,A)
【文献】 特開2012−014591(JP,A)
【文献】 YOKOZAWA, Makoto,Development of Vectorized Monte Carlo Calculation and Application of Stratified Sampling,Journal of NUCLEAR SCIENCE and TECHNOLOGY,1987年,Vol.24 No.7,pp.507-515
【文献】 杉山 将,統計的機械学習,株式会社オーム社,2009年 9月25日,初版,pp.136-140
【文献】 湯前 祥二,モンテカルロ法の金融工学への応用,株式会社朝倉書店,2000年 6月10日,初版,pp.85-87
(58)【調査した分野】(Int.Cl.,DB名)
G06F 19/00
JSTPlus(JDreamIII)
JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
複数のプロセッサを含む情報処理システムが実行する、指標値の確率分布を推定し所定の確率条件を満たす指標値を決定するシミュレーション方法であって、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、
前記複数の仮の指標値に対応する複数のタスクを前記複数のプロセッサに割り振り、
各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行し、
前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、
前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
シミュレーション方法。
【請求項2】
前記モデルとバイアスをかけない乱数の分布とを用いて指標値の確率分布を推定し、当該確率分布と前記所定の確率条件とに基づいて最初の前記基準の指標値を選択する
請求項1に記載のシミュレーション方法。
【請求項3】
各仮の指標値に対応する前記確率データは当該仮の指標値における累積確率を示し、
前記複数の仮の指標値のうち、前記確率データが示す累積確率が前記所定の確率条件が示す所定の累積確率に最も近い仮の指標値を、前記一の仮の指標値として選択する
請求項1又は2に記載のシミュレーション方法。
【請求項4】
複数のプロセッサを含む情報処理システムが実行するシミュレーション方法であって、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、
前記複数のプロセッサにp個のタスク(pは2以上の整数)を割り振り、
各タスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行し、
前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
シミュレーション方法。
【請求項5】
各タスクでは、前記複数の区間それぞれについてs/p個の指標値のサンプルとs/p個を超えて生成された他の指標値のサンプルとを区別し、
複数のタスクから他の指標値のサンプルを収集し、前記収集した他の指標値のサンプルの中から前記複数の区間それぞれに属する他の指標値のサンプルの数が同じになるように一部又は全部の他の指標値のサンプルを選択し、
前記収集された各区間s個の指標値のサンプルに加えて前記選択した一部又は全部の他の指標値のサンプルを用いて、前記指標値の確率分布を推定する
請求項4に記載のシミュレーション方法。
【請求項6】
指標値の確率分布を推定し所定の確率条件を満たす指標値を決定する情報処理システムに用いられるコンピュータに、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、
前記複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振り、
各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクを割り振ったプロセッサに実行させ、
前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、
前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
処理を実行させるプログラム。
【請求項7】
コンピュータに、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、
複数のプロセッサにp個のタスク(pは2以上の整数)を割り振り、
各タスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクを割り振ったプロセッサに実行させ、
前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
処理を実行させるプログラム。
【請求項8】
指標値の確率分布を推定し所定の確率条件を満たす指標値を決定する情報処理システムであって、
複数のプロセッサと、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、前記複数の仮の指標値に対応する複数のタスクを前記複数のプロセッサに割り振る制御部と
を有し、
前記複数のプロセッサそれぞれは、割り振られた何れかの仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて、当該仮の指標値に対応する確率データを生成する処理を行い、
前記制御部は、前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
情報処理システム。
【請求項9】
複数のプロセッサと、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、前記複数のプロセッサにp個のタスク(pは2以上の整数)を割り振る制御部と
を有し、
前記複数のプロセッサそれぞれは、割り振られたタスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を行い、
前記制御部は、前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション方法、プログラム、及び情報処理システムに関する。
【背景技術】
【0002】
シミュレーション手法の1つとして、問題の解を解析的に求める代わりに乱数を用いて近似的に求めるモンテカルロ・シミュレーションがよく利用されている。モンテカルロ・シミュレーションでは、ある乱数の分布に従って大量の乱数を発生させ、乱数から指標値のサンプルを生成するモデルにこれら大量の乱数を代入することで、大量のサンプルを生成する。これにより、指標値の確率分布を推定することができる。指標値の確率分布からは、指標値の期待値や分散などの各種の統計値を得ることができる。モンテカルロ・シミュレーションでは、生成するサンプルの数を増やすことで計算精度が向上する。
【0003】
モンテカルロ・シミュレーションは、解析的に解くことが難しい問題や複雑な問題の解を求めるために有効な数値解析手法の1つである。例えば、ある製造現場における製品の歩留まりを解析したい場合に、モンテカルロ・シミュレーションを用いて不良品の発生確率を計算することが考えられる。また、金融資産のポートフォリオから生じる損益を予測してリスク指標を計算する場合や、複雑な金融派生商品の現在価値を計算する場合などにも、モンテカルロ・シミュレーションが利用され得る。
【0004】
但し、モンテカルロ・シミュレーションでは、サンプル数の増加に対して計算精度は緩やかに向上していく。そのため、単純にサンプル数を増やすことで計算精度を上げようとすると、計算量が膨大になりシミュレーション時間が長くなってしまう。そこで、モンテカルロ・シミュレーションの計算量を抑制する方法として、例えば、重点サンプリング(Importance Sampling)法や層化抽出(Stratified Sampling)法などがある。
【0005】
重点サンプリング法では、分散の大きいサンプル群を生成する代わりに、乱数の分布にバイアスをかけることで着目する特定の指標値を中心に分散の小さいサンプル群を生成する。重点サンプリング法を用いると、通常のモンテカルロ・シミュレーションと比べて、サンプル数を少なくしても着目する指標値周辺では高い精度の計算結果が得られる。層化抽出法では、指標値の値域を、予想される各区間の確率(確率密度の積分)が概ね均等になるように複数の区間に分割し、各区間から同数のサンプルを採用して指標値の確率分布を推定する。層化抽出法を用いると、値域を適切に分割できれば、通常のモンテカルロ・シミュレーションと比べてサンプル数を少なくしても高い精度の計算結果が得られる。
【0006】
なお、リスクに与える影響の大小に応じてリスクファクタを分割し、分割したリスクファクタ毎に異なる方法で損失額を算出するリスク定量化システムが提案されている。このリスク定量化システムは、リスクに与える影響の大きいリスクファクタについてはモンテカルロ・シミュレーションで損失額を算出し、リスクに与える影響の小さいリスクファクタについては計算量の小さい方法で損失額を算出する。また、このリスク定量化システムは、算出した複数の損失額に基づいて損失額分布を生成する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−092311号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記のように、重点サンプリング法や層化抽出法を用いることで、シミュレーションの計算量を抑制することができる。一方で、複数のプロセッサにタスクを分配してシミュレーションを並列処理化し、シミュレーション時間を短縮することも考えられる。上記の重点サンプリング法や層化抽出法に基づくシミュレーションも、解く問題によっては並列処理化してシミュレーション時間を短縮したいことがある。しかし、複数のプロセッサに対し、どのようにタスクを分配すれば並列処理が効率的になるかが問題となる。
【0009】
例えば、重点サンプリング法では、特定の指標値に対応する確率を算出することは容易である一方、その逆に所定の確率条件を満たすような指標値を探すことは容易ではない。後者のような問題を解くとき、どのように並列処理化すればシミュレーション時間をより短縮できるかが問題となる。また、例えば、層化抽出法では、指標値の値域を複数の区間に分割することから、並列処理化する方法としては区間毎にプロセッサを割り当てる方法が考えられる。しかし、各区間に対して他の区間とは独立なタスクを設定すると、各プロセッサは自身が担当する区間に属さないサンプルが生成されたときそのサンプルを破棄することになり、大量のサンプルが破棄されて非効率的となる。
【0010】
1つの側面では、本発明は、複数のプロセッサを効率的に用いてシミュレーションを行うことが可能なシミュレーション方法、プログラム、及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0011】
1つの態様では、複数のプロセッサを含む情報処理システムが実行する、指標値の確率分布を推定し所定の確率条件を満たす指標値を決定するシミュレーション方法が提供される。基準の指標値を選択し、基準の指標値に基づいて複数の仮の指標値を選択する。複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振る。各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行する。複数の仮の指標値それぞれに対応する確率データと所定の確率条件とを比較して一の仮の指標値を選択する。選択した一の仮の指標値を所定の確率条件を満たす指標値と決定するか、又は、選択した一の仮の指標値を新たな基準の指標値として用いて複数の仮の指標値の選択と複数のタスクの割り振りとを再度行う。
【0012】
また、1つの態様では、複数のプロセッサを含む情報処理システムが実行するシミュレーション方法が提供される。指標値の値域を複数の区間に分割し、複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定する。複数のプロセッサにp個のタスク(pは2以上の整数)を割り振る。各タスクとして、複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行する。複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する。
【0013】
また、1つの態様では、コンピュータに実行させるプログラムが提供される。また、1つの態様では、複数のプロセッサと制御部とを有する情報処理システムが提供される。
【発明の効果】
【0014】
一側面では、計算値の分布から算出される解を高速に計算することが可能になる。
【図面の簡単な説明】
【0015】
図1】第1の実施の形態に係る情報処理システムの例を示した図である。
図2】第2の実施の形態に係る情報処理システムの例を示した図である。
図3】第3の実施の形態に係る情報処理システムのハードウェアの例を示した第1の図である。
図4】第3の実施の形態に係る情報処理システムのハードウェアの例を示した第2の図である。
図5】第3の実施の形態に係る情報処理システムのハードウェアの例を示した第3の図である。
図6】第3の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。
図7】VaRの計算方法について説明するための図である。
図8】重点サンプリング法について説明するための図である。
図9】重点サンプリング法の並列化について説明するための第1の図である。
図10】重点サンプリング法の並列化について説明するための第2の図である。
図11】第3の実施の形態に係る情報処理システムによる処理の流れを示した図である。
図12】同精度のシミュレーション計算を実行して得られる計算値の発生頻度を比較した計算例を示す図である。
図13】第4の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。
図14】層化抽出法について説明するための図である。
図15】層化抽出法の並列化について説明するための図である。
図16】層化抽出法による分布計算の流れを示した図である。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。
【0017】
図1は、第1の実施の形態に係る情報処理システムの例を示した図である。
第1の実施の形態に係る情報処理システム10は、指標値の確率分布を推定し、所定の確率条件を満たす指標値を決定する。情報処理システム10が実行するシミュレーションは、例えば、重点サンプリング法を用いたモンテカルロ・シミュレーションである。
【0018】
情報処理システム10は、制御部11とプロセッサ12−1〜12−3を含む複数のプロセッサとを有する。「複数のプロセッサ」としては、例えば、次のようなものが挙げられる。(1)1つのCentral Processing Unit(CPU)に含まれる複数のプロセッサコア。(2)1つの情報処理装置が備える複数のCPUやGeneral-purpose Computing on Graphics Processing Units(GPGPU)用の複数のGPU。(3)ネットワークに接続された複数の情報処理装置が備えるCPUやGPGPU用のGPUの集合。但し、「プロセッサ」は、Digital Signal Processor(DSP)、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)などの特定用途の電子回路であってもよい。各プロセッサは、例えば、Random Access Memory(RAM)などのメモリに記憶されたプログラムに従ってタスクを実行する。
【0019】
制御部11は、プロセッサ12−1〜12−3を利用してシミュレーションを行う。制御部11は、例えば、RAMなどのメモリに記憶されたプログラムを実行するプロセッサを含む。制御部11とプロセッサ12−1〜12−3は、同じ情報処理装置に属していてもよいし、異なる情報処理装置に属していてもよい。制御部11がプロセッサを含む場合には、以下に説明するタスクの少なくとも1つを制御部11に割り当ててもよい。
【0020】
制御部11は、指標値の値域の中から基準の指標値を選択する。基準の指標値は、例えば、次のように選択する。まず、制御部11は、乱数から指標値のサンプルを生成するモデルとバイアスをかけない乱数の分布とを用いて、指標値の確率分布を推定する。この確率分布は精度の低いものでよく、生成するサンプルの数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数(例えば、1/100〜1/1000程度)でよい。そして、制御部11は、推定した確率分布から、所定の確率条件を満たすような指標値を基準の指標値として選択する。所定の確率条件は、例えば、累積確率=1%といった確率に関する条件である。但し、指標値の確率分布を推定せず、過去のシミュレーション結果などを参照して基準の指標値を選択してもよい。
【0021】
次に、制御部11は、基準の指標値に基づいて複数の仮の指標値を選択する。例えば、制御部11は、基準の指標値と、基準の指標値から前後に所定幅だけずれた2以上の指標値を、仮の指標値として選択する。図1の例では、指標値v2が基準の指標値として選択され、指標値v1〜v3が仮の指標値として選択されている。制御部11は、複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振る。図1の例では、指標値v1に対応するタスク13−1がプロセッサ12−1に割り当てられ、指標値v2に対応するタスク13−2がプロセッサ12−2に割り当てられ、指標値v3に対応するタスク13−3がプロセッサ12−3に割り当てられている。
【0022】
何れかのタスクが割り当てられたプロセッサは、当該タスクとして次の処理を行う。ここでは、代表してタスク13−1について説明する。プロセッサ12−1は、仮の指標値である指標値v1を中心に指標値のサンプルが生成されるように、乱数の分布にバイアスをかける。そして、プロセッサ12−1は、乱数から指標値のサンプルを生成する上記のモデルとバイアスをかけた乱数の分布とを用いて、仮の指標値である指標値v1に対応する確率データを生成する。確率データは、例えば、指標値v1における累積確率(指標値がv1以下である確率)を示す。ここで生成するサンプルの数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数でよい。
【0023】
他の仮の指標値についても、指標値v1と同様に確率データが生成される。上記の複数のタスクは互いに独立に実行でき、異なるプロセッサに割り振ったタスクは並列に実行できる。例えば、タスク13−1〜13−3が並列に実行される。
【0024】
複数のプロセッサに割り振った複数のタスクが完了すると、制御部11は、各仮の指標値に対応する確率データと所定の確率条件とを比較することで、複数の仮の指標値の中から1つを選択する。例えば、確率データ及び所定の確率条件が累積確率を示す場合、所定の累積確率に最も近い累積確率が得られた仮の指標値を選択する。このとき、複数の仮の指標値の中に基準の指標値が含まれる場合であっても、基準の指標値ではない仮の指標値が選択される可能性がある。これは、バイアスをかけた乱数の分布を用いることで、基準の指標値を選ぶときよりも高い精度で確率データが計算され得るためである。
【0025】
そして、制御部11は、選択した一の仮の指標値を、所定の確率条件を満たす指標値として決定するか、又は、当該一の仮の指標値を新たな基準の指標値として上記の仮の指標値の選択とタスクの実行とを再度行う。仮の指標値の選択とタスクの実行とを繰り返すことで、確率データが所定の確率条件に近付いていくことが期待できる。繰り返しは、所定の停止条件が満たされたときに自動的に終了するようにしてもよい。停止条件は、生成したサンプルの総数、シミュレーション時間、繰り返し回数などを基準に決めてもよい。
【0026】
第1の実施の形態に係る情報処理システム10によれば、複数の仮の指標値が選択されて、各仮の指標値を中心に指標値のサンプルを生成するタスクが設定される。このようなタスクにより、仮の指標値に対応する確率データを少ないサンプルによって精度よく算出することができる。また、複数のタスクは互いに独立に実行でき、複数のタスクを複数のプロセッサに振り分けることでシミュレーションを効率的に並列処理化できる。また、複数のタスクそれぞれで算出された確率データに基づいて、複数の仮の指標値の中から一の指標値を選択することで、シミュレーションの精度を上げることができる。特に、上記の処理を繰り返せば、段階的に精度を上げていくことも可能となる。なお、第1の実施の形態に係るシミュレーション方法で生成するサンプルの総数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数に抑えられる。
【0027】
[第2の実施の形態]
次に、第2の実施の形態について説明する。前述の第1の実施の形態との差異を中心に説明し、第1の実施の形態と同様の事項については適宜説明を省略する。
【0028】
図2は、第2の実施の形態に係る情報処理システムの例を示した図である。
第2の実施の形態に係る情報処理システム20は、指標値の値域を複数の区間に分割して指標値の確率分布を推定する。情報処理システム20が実行するシミュレーションは、例えば、層化抽出法を用いたモンテカルロ・シミュレーションである。
【0029】
情報処理システム20は、制御部21とプロセッサ22−1〜22−3を含む複数のプロセッサとを有する。第1の実施の形態で説明したように、「複数のプロセッサ」としては、1つのCPUに含まれる複数のプロセッサコアなど様々なものが考えられ、「プロセッサ」としては、DSPやASICなど様々なものが考えられる。各プロセッサは、例えば、RAMなどのメモリに記憶されたプログラムに従ってタスクを実行する。
【0030】
制御部21は、プロセッサ22−1〜22−3を利用してシミュレーションを行う。制御部21は、例えば、RAMなどのメモリに記憶されたプログラムを実行するプロセッサを含む。制御部21とプロセッサ22−1〜22−3は、同じ情報処理装置に属していてもよいし、異なる情報処理装置に属していてもよい。制御部21がプロセッサを含む場合には、以下に説明するタスクの少なくとも1つを制御部21に割り当ててもよい。
【0031】
制御部21は、指標値の値域を複数の区間に分割する。値域の分割は、例えば、次のように行う。まず、制御部21は、乱数から指標値のサンプルを生成するモデルと乱数の分布とを用いて、指標値の確率分布を推定する。この確率分布は精度の低いものでよく、生成するサンプルの数は、層化抽出法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数(例えば、1/100〜1/1000程度)でよい。そして、制御部21は、推定した確率分布に従って、各区間の確率(当該区間の確率密度の積分)が同じになるように指標値の値域を複数の区間に分割する。但し、指標値の確率分布を推定せず、過去のシミュレーション結果などを参照して指標値の値域を分割してもよい。
【0032】
区間の数は、例えば、10〜20程度とすることができる。区間数を10とした場合、理想的には全ての区間の確率が等しく0.1(10%)になる。なお、図2の例では、説明を簡単にするために、指標値の値域を3つに分割している。すなわち、図2に示すように、指標値の値域が区間T1、T2、T3に分割される。この場合、理想的には区間T1、T2、T3の確率は等しく0.33(33%)になる。
【0033】
次に、制御部21は、各区間で使用する指標値のサンプルの下限数sを決定する。下限数sは、シミュレーションの精度を考慮して決定される2以上の整数であり、ユーザにより指定されたものでもよい。全区間で使用するサンプルの下限総数mが指定されている場合、s=m/区間数と計算してもよい。但し、下限総数mは、層化抽出法を行わない通常のモンテカルロ・シミュレーションと比べて十分に少ない数でよい。また、制御部21は、複数のプロセッサにp個のタスクを割り振る。タスク数pは2以上の整数であり、例えば、タスクを割り当てるプロセッサの数に一致させる。図2の例では、タスク23−1がプロセッサ22−1に割り当てられ、タスク23−2がプロセッサ22−2に割り当てられ、タスク23−3がプロセッサ22−3に割り当てられている。
【0034】
何れかのタスクが割り当てられたプロセッサは、当該タスクとして次の処理を行う。ここでは、代表してタスク23−1について説明する。プロセッサ22−1は、乱数から指標値のサンプルを生成するモデルと乱数の分布とを用いて、所定の個数条件が満たされるまで指標値のサンプルを生成する。個数条件は、各区間に属する指標値のサンプルがs/p個に達することである。これは、最もサンプルの少ない区間のサンプル数がs/p個に達したと言うこともできる。上記の個数条件が満たされたとき、1又はそれ以上の区間でs/p個より多くのサンプルが生成されている可能性がある。
【0035】
他のタスクでも、各区間について少なくともs/p個のサンプルが生成される。上記の複数のタスクは互いに独立に実行でき、異なるプロセッサに割り振ったタスクは並列に実行できる。例えば、タスク23−1〜23−3が並列に実行される。
【0036】
複数のプロセッサに割り振った複数のタスクが完了すると、制御部21は、複数の区間それぞれについて各タスクを実行したプロセッサからs/p個の指標値のサンプルを収集する。これにより、各区間s個のサンプルが収集される。そして、制御部21は、収集したサンプルを用いて指標値の確率分布を推定する。図2の例でタスク数p=3とすると、区間T1について、プロセッサ22−1〜22−3からs/3個ずつサンプルが収集されて合計s個のサンプルが収集される。区間T2、T3についても、プロセッサ22−1〜22−3からs/3個ずつサンプルが収集されて合計s個のサンプルが収集される。
【0037】
このように、各タスクは何れか1つの指標値の区間を担当するのではなく、全ての指標値の区間を担当する。図2の例では、タスク23−1〜23−3それぞれは、区間T1、T2、T3の何れか1つを担当するのではなく、全ての区間を担当する。但し、タスク数を増やすことで各タスクにおいて生成すべきサンプルの数を減らすことができる。
【0038】
なお、指標値の値域を複数の区間に分割するシミュレーション方法では、各区間のサンプル数を同じにすればよく、各区間のサンプル数が下限値sよりも多くなってもよい。むしろ、各区間のサンプル数が多い方が推定の精度が向上する。そこで、制御部21は、各タスクで生成されたs/p個を超える余分なサンプルを収集し、各区間のサンプル数が同じになるように、余分なサンプルの一部又は全部を確率分布の推定に用いてもよい。
【0039】
例えば、プロセッサ22−1が、区間T1でs/3個、区間T2でs/3+α個、区間T3でs/3+α個のサンプルを生成したとする。また、プロセッサ22−2が、区間T1でs/3+α個、区間T2でs/3個、区間T3でs/3+α個のサンプルを生成したとする。また、プロセッサ22−3が、区間T1でs/3+α個、区間T2でs/3個、区間T3でs/3個のサンプルを生成したとする。すると、区間T1では2α個の余分なサンプルが収集され、区間T2ではα個の余分なサンプルが収集され、区間T3では2α個の余分なサンプルが収集される。この場合、区間T2のα個が余分なサンプル数の最小値であるため、確率分布の推定には最大で各区間s+α個のサンプルを使用できる。このとき、使用されなかった余分なサンプルは、制御部21が破棄すればよい。
【0040】
第2の実施の形態に係る情報処理システム20によれば、指標値の値域が複数の区間に分割されると共に、各タスクが全ての区間を担当するように複数のタスクが設定される。これら複数のタスクは互いに独立に実行でき、複数のタスクを複数のプロセッサに振り分けることでシミュレーション時間を短縮することができる。また、分割された区間毎にタスクを設定する場合と比べて、確率分布の推定に使用しない無駄なサンプルの発生を抑制することができ、シミュレーションを効率的に並列処理化することができる。
【0041】
また、各タスクに割り当てたサンプル数を超える余分なサンプルも収集して確率分布の推定に利用すれば、さらにシミュレーションの精度を上げることができる。なお、第2の実施の形態に係るシミュレーション方法で生成するサンプルの総数は、層化抽出法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数に抑えられる。
【0042】
[第3の実施の形態]
次に、第3の実施の形態について説明する。
図3は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第1の図である。第3の実施の形態に係る情報処理システム100の機能は、例えば、図3に示すようなコンピュータのハードウェアを利用して実現することができる。
【0043】
図3に示すコンピュータは、CPU901、RAM902、HDD903、画像信号処理部904、入力信号処理部905、ディスクドライブ906、及び通信インターフェース907を有する。また、CPU901は、複数のコアC1、…、Cnを有する。
【0044】
なお、CPU901は、第1の実施の形態の制御部11及びプロセッサ12−1、12−2、12−3の一例である。また、CPU901は、第2の実施の形態の制御部21及びプロセッサ22−1、22−2、22−3の一例である。
【0045】
CPU901は、プログラムに記述された命令を実行する演算器を含むプロセッサである。CPU901は、HDD903に記憶されているプログラムやデータの少なくとも一部をRAM902にロードし、プログラムに記述された命令を実行する。なお、情報処理システム100は、複数のCPU901を搭載していてもよい。
【0046】
RAM902は、CPU901が実行するプログラムや、処理に用いられるデータを一時的に記憶するための揮発性メモリである。なお、情報処理システム100は、RAM902とは異なる種類のメモリを有していてもよい。また、情報処理システム100は、複数のメモリを備えていてもよい。
【0047】
HDD903は、Operating System(OS)、ファームウェア、或いは、アプリケーションソフトウェアなどのプログラムや、処理に用いられるデータなどを記憶する不揮発性記憶装置の一例である。なお、情報処理システム100は、フラッシュメモリやSolid State Drive(SSD)など、HDD903とは異なる種類の記憶装置を有していてもよい。また、情報処理システム100は、複数の記憶装置を有していてもよい。
【0048】
画像信号処理部904は、CPU901による制御を受け、コンピュータに接続された表示装置91に画像を出力する。表示装置91は、例えば、Cathode Ray Tube(CRT)ディスプレイ、Liquid Crystal Display(LCD)、Plasma Display Panel(PDP)、Organic Electro-Luminescence Display(OELD)などの表示デバイスである。
【0049】
入力信号処理部905は、コンピュータに接続された入力デバイス92から入力信号を取得し、CPU901に通知する。入力デバイス92としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、トラックボール、リモートコントローラ、ボタンスイッチなどを用いることができる。
【0050】
ディスクドライブ906は、記録媒体93に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体93としては、例えば、Flexible Disk(FD)、HDDなどの磁気ディスク、Compact Disc(CD)やDigital Versatile Disc(DVD)などの光ディスク、Magneto-Optical disk(MO)などの光磁気ディスクを用いることができる。ディスクドライブ906は、例えば、CPU901による制御を受け、記録媒体93から読み取ったプログラムやデータをRAM902又はHDD903に格納する。
【0051】
通信インターフェース907は、ネットワーク94を介して他のコンピュータと通信を行うためのインターフェースである。通信インターフェース907は、有線インターフェースであってもよいし、無線インターフェースであってもよい。
【0052】
また、第3の実施の形態に係る情報処理システム100の機能は、例えば、図4に示すようなコンピュータのハードウェアを利用しても実現することができる。図4は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第2の図である。
【0053】
図4に示すコンピュータは、CPU901、RAM902、HDD903、画像信号処理部904、入力信号処理部905、ディスクドライブ906、及び通信インターフェース907に加え、複数のGPU911、912、913を有する。なお、GPU911、912、913は、例えば、General-purpose Computing on Graphics Processing Units(GPGPU)用のGPUである。
【0054】
なお、CPU901は、第1の実施の形態の制御部11の一例である。また、GPU911、912、913は、第1の実施の形態のプロセッサ12−1、12−2、12−3の一例である。また、CPU901は、第2の実施の形態の制御部21の一例である。また、GPU911、912、913は、第2の実施の形態のプロセッサ22−1、22−2、22−3の一例である。
【0055】
また、第3の実施の形態に係る情報処理システム100の機能は、例えば、図5に示すような複数のコンピュータのハードウェアを利用しても実現することができる。図5は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第3の図である。
【0056】
図5に示すように、複数のコンピュータ90−1、90−2、90−3は、ネットワーク94を介して接続されている。また、コンピュータ90−1は、CPU921、RAM922、HDD923、及び通信インターフェース924を有する。また、コンピュータ90−2は、CPU931、RAM932、及び通信インターフェース933を有する。また、コンピュータ90−3は、CPU941、RAM942、及び通信インターフェース943を有する。
【0057】
なお、CPU921、931は、上述したCPU901と実質的に同じである。但し、CPU931は、例えば、GPGPUであってもよい。また、RAM922、932は、上述したRAM902と実質的に同じである。また、HDD923は、上述したHDD903と実質的に同じである。また、通信インターフェース924、933は、上述した通信インターフェース907と実質的に同じである。また、コンピュータ90−1、90−2、90−3は、上述した画像信号処理部904、入力信号処理部905、ディスクドライブ906を有していてもよい。
【0058】
なお、CPU921は、第1の実施の形態の制御部11の一例である。また、CPU931は、第1の実施の形態のプロセッサ12−1、12−2、12−3の一例である。また、CPU921は、第2の実施の形態の制御部21の一例である。また、CPU931は、第2の実施の形態のプロセッサ22−1、22−2、22−3の一例である。
【0059】
図6は、第3の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。
図6に示すように、情報処理システム100は、第1プロセッサ110、複数の第2プロセッサ120−1、120−2、…、120−N、及び記憶装置130を有する。なお、複数の第2プロセッサ120−1、120−2、…、120−Nは同じ機能を有する。そこで、第2プロセッサ120−1を代表例とし、以下では、これを第2プロセッサ120と表記して説明を行う。
【0060】
なお、第1プロセッサ110の機能は、CPU901、921により実現できる。また、第2プロセッサ120−1、…、120−Nの機能は、CPU901、GPU911、912、913、又はCPU931により実現できる。また、第1プロセッサ110、及び第2プロセッサ120が有する機能の一部又は全部は、CPU901、921が実行するプログラムのモジュールとして実現できる。また、第1プロセッサ110、及び第2プロセッサ120が有する機能の一部又は全部をソフトウェアではなく電子回路として実現することも可能である。また、記憶装置130は、RAM902、922、932やHDD903、923に確保された記憶領域、或いは、ネットワーク94に接続されたファイルサーバなどの外部記憶装置である。
【0061】
第1プロセッサ110は、確率変数を含む計算式の値がとる確率分布を近似的に計算し、その確率分布から得られる指標値を算出する。なお、第1プロセッサ110は、乱数生成部111、分布計算部112、指標計算部113、指標選択部114、及び指標出力部115の機能を有する。
【0062】
乱数生成部111は、上記の計算式に含まれる確率変数が従う密度関数pに基づいて乱数群を発生させる。なお、密度関数pの情報は、記憶装置130に格納されている。乱数生成部111が発生させた乱数群は、分布計算部112に入力される。
【0063】
分布計算部112は、乱数生成部111が発生させた乱数群を利用して上記の計算式の値がとる確率分布を近似的に計算する。分布計算部112は、乱数群に含まれる各乱数を上記の計算式に含まれる確率変数の値として代入し、計算式の値(以下、第1計算値)を計算する。また、分布計算部112は、第1計算値の密度分布を生成する。分布計算部112が生成した密度分布は、指標計算部113に入力される。
【0064】
指標計算部113は、分布計算部112が生成した密度分布に基づいて、ある条件を満たす指標値を計算する。指標値としては、例えば、密度分布の下方1パーセンタイル点、下方5パーセンタイル点、期待値、分散値、半値幅など、様々な統計値が考えられる。以下では、一例としてP0パーセンタイル点を指標値とする計算について考える。
【0065】
指標計算部113は、計算した指標値を基準に複数の仮指標値を設定する。仮指標値は、例えば、指標値よりも5%、10%大きな値、指標値よりも5%、10%小さな値など、予め設定された条件を満たすように設定される。指標計算部113により設定された複数の仮指標値は、記憶装置130に格納される。
【0066】
第2プロセッサ120は、仮指標値の1つを記憶装置130から読み出し、その仮指標値を利用して上記の計算式の値がとる確率分布を近似的に計算し、その確率分布から得られる累積密度と、指標値の算出基準とした確率P0との差分値を計算する。なお、第2プロセッサ120は、乱数生成部121、分布計算部122、及び累積密度計算部123の機能を有する。
【0067】
乱数生成部121は、仮指標値の近辺に計算値が集中するような乱数群を発生させる密度関数を密度関数qに設定する。また、乱数生成部121は、密度関数qに基づいて乱数群を発生させる。乱数生成部121が発生させた乱数群は、分布計算部122に入力される。また、密度関数qの情報は、分布計算部122に入力される。
【0068】
分布計算部122は、乱数生成部121が発生させた乱数群を利用して上記の計算式の値がとる確率分布を近似的に計算する。分布計算部122は、記憶装置130から密度関数pの情報を取得し、密度関数p及びqの情報を利用して上記の計算式の値を計算するための変換式を設定する。例えば、確率変数Xが密度関数pに従う場合、計算式F(X)の期待値Ep(F(X))は、下記の式(1)のように表現される。但し、Ep(・)は、密度関数pに従う確率変数Xに関する期待値を表す。
【0069】
【数1】
【0070】
さらに、上記の式(1)は、下記の式(2)に示すように、密度関数qに従う確率変数Yに関する期待値Eq(・)へと変形することができる。このことは、変換式p(Y)/q(Y)を利用することで、密度関数pに従う確率変数Xに関する期待値を密度関数qに従う確率変数Yに関する期待値に置き換え可能であることを意味する。ちなみに、モンテカルロ・シミュレーションによる積分Iの解IMCは、y1,…,yNを密度関数qに従う互いに独立な乱数として下記の式(3)により得られる。なお、ここでは期待値を例に挙げたが、他の統計値についても同様に変換式による確率変数の置き換えが可能である。
【0071】
【数2】
【0072】
【数3】
【0073】
分布計算部122は、乱数群に含まれる各乱数を上記の計算式及び変換式の積に含まれる確率変数の値として代入し、当該積の値(以下、第2計算値)を計算する。また、分布計算部122は、第2計算値の密度分布を生成する。分布計算部122が生成した密度分布は、累積密度計算部123に入力される。累積密度計算部123は、分布計算部122が生成した密度分布について仮指標値までの累積密度を計算する。また、累積密度計算部123は、計算した累積密度と、指標値の算出基準とした確率P0との差分値を計算する。累積密度計算部123により計算された差分値は、記憶装置130に格納される。
【0074】
記憶装置130には、複数の第2プロセッサ120−1、…、120−Nにより計算された複数の差分値が格納される。指標選択部114は、記憶装置130に格納された複数の差分値の中から最小の差分値を抽出し、抽出した差分値に対応する仮指標値を選択する。また、指標選択部114は、選択した仮指標値を基準に新たな複数の仮指標値を設定する。仮指標値は、例えば、指標値よりも4%、8%大きな値、指標値よりも4%、8%小さな値など、予め設定された条件を満たすように設定される。指標選択部114により新たに設定された複数の仮指標値は、記憶装置130に格納される。
【0075】
また、複数の第2プロセッサ120−1、…、120−Nは、新たに設定された複数の仮指標値について上記の差分値を計算し、記憶装置130に格納する。指標選択部114は、記憶装置130に格納された複数の差分値の中から最小の差分値を抽出し、抽出した差分値に対応する仮指標値を選択する。複数の第2プロセッサ120−1、…、120−Nによる差分値の計算、及び指標選択部114による仮指標値の選択は、終了条件を満たすまで繰り返し行われる。終了条件としては、例えば、ユーザによる停止操作、予め設定された繰り返し回数、最小の差分値の閾値判定、或いは、差分値の収束判定などが考えられる。
【0076】
終了条件を満たした場合、指標選択部114は、選択した仮指標値を計算結果として指標出力部115に入力する。指標出力部115は、指標選択部114が入力した仮指標値を指標値の計算結果として出力する。例えば、指標出力部115は、計算結果の情報を表示装置91に表示させる。また、指標出力部115は、ネットワーク94を介して計算結果の情報を他の機器に提供してもよい。また、指標出力部115は、終了条件を満たしていない場合でも、指標選択部114が選択した仮指標値を逐次出力してもよい。
【0077】
以上説明したように、第3の実施の形態に係る情報処理システム100によれば、第1プロセッサ110により計算対象の指標値が計算される。また、その指標値周辺に複数の仮指標値を設定し、各仮指標値の近辺に計算値が集中するような乱数群を発生させることで、より精度の高い密度分布が計算される。さらに、複数の仮指標値の中から、求めたい指標値に近い仮指標値が選択され、その仮指標値が計算結果として出力される。
【0078】
このように、第1プロセッサ110による計算結果を利用して、より高精度の計算が実行されるため、第1プロセッサ110による計算は少ない乱数を用いて実行されてもよい。また、第2プロセッサ120による計算は仮指標値の近辺に計算値が集中するような乱数群を用いて実行されるため、この計算に用いる乱数の数も少なくてよい。さらに、複数の第2プロセッサ120−1、…、120−Nによる計算は互いに独立しているため、並列に実行される。
【0079】
従って、第3の実施の形態に係る情報処理システム100によれば、通常のモンテカルロ・シミュレーションによって指標値を計算する場合に比べ、指標値の計算に用いる乱数の数を低減することができ、シミュレーション計算の実行回数を削減できる。また、シミュレーション計算の一部が並列実行されることから、計算資源を効率的に活用して高速な演算が可能になる。
【0080】
以下、Value at Risk(VaR)の計算方法を例に挙げ、第3の実施の形態に係る情報処理システム100による処理について説明する。
図7は、VaRの計算方法について説明するための図である。
【0081】
VaRは、市場リスク管理のためのリスク指標として利用される。例えば、図7に示すように、複数の金融資産を組み合わせたポートフォリオから将来発生する損益額の密度分布における下方P0パーセンタイルを与える点がVaRとして用いられる。なお、確率P0は、1%や5%に設定されることが多い。VaRは、モンテカルロ・シミュレーションを利用して計算することができる。
【0082】
一例として、1つの株式及びそのヨーロピアンコールオプション(以下、オプション)から成るポートフォリオのVaRをモンテカルロ・シミュレーションにより計算する方法を紹介する。なお、オプションの満期をT、オプションの権利行使価格をK、時点tにおける株価をSt、金利をrd、株価投資収益率のボラティリティをσと表記する。また、リスク中立な株価の確率過程を考える。この場合、ウィナー過程に従うランダム項をdWtと表記すると、株価の確率過程は、下記の式(4)のように表現される。また、オプションにより生じるキャッシュフローCは、下記の式(5)のように表現される。
【0083】
【数4】
【0084】
【数5】
【0085】
モンテカルロ・シミュレーションを適用するため、上記の式(4)に示した確率微分方程式を差分方程式で近似する。満期Tまでの期間をN等分し、N等分した時間刻みをΔtと表現する。また、平均0、分散1の標準正規分布に従う乱数εを用いてウィナー過程に従うランダム項dWtを表現する。このような近似により、上記の式(4)に示した確率微分方程式は、下記の式(6)に示すような差分方程式で表現することができる。
【0086】
【数6】
【0087】
現在の株価S0が与えられた場合、上記の式(6)に従ってSΔt、S2Δt、…、SNΔtを順に計算することで株価のパスが得られる。また、上記の式(5)に基づいてオプションにより生じるキャッシュフローC(ST)が得られる。また、満期Tにおける株式及びオプションから成るポートフォリオの価値が下記の式(7)により得られる。また、株価のパスを十分な数だけ発生させることで、ポートフォリオの価値の分布を計算することができる。
【0088】
【数7】
【0089】
ポートフォリオの価値の分布が得られると、その分布の下方P0パーセンタイル点に対応するポートフォリオの価値が計算できる。確率P0が5%である場合、発生させた多数のパスについて計算したポートフォリオの価値の中から、価値の低い順に数えて全体の5%にあたるポートフォリオの価値がVaRに相当する。例えば、株価のパスを1万通り発生させた場合、価値の小さい順に数えて500番目にあたるポートフォリオの価値が、このポートフォリオにおけるVaRとなる。
【0090】
上記のような方法により、モンテカルロ・シミュレーションを用いてVaRを計算することができる。しかし、上記のような単純なモンテカルロ・シミュレーションの場合、大量のパスを発生させなければ十分な計算精度が得られない。
【0091】
そこで、少ないパスで精度良くVaRを計算できるようにする方法について考える。上記の式(5)から、満期株価STが権利行使価格Kを下回るパスは、オプションの価値に寄与しないことが分かる。また、ポートフォリオの価値がVaRを大きく上回るパスはVaRの計算にほとんど寄与しないことが分かる。これらの状況を考慮すると、重点サンプリング法を適用して、VaRの付近に計算結果が集中するようなパスを生成する方法が効果的である。
【0092】
図8は、重点サンプリング法について説明するための図である。
重点サンプリング法は、乱数が従う密度関数を変形し、特定の範囲に乱数の発生を集中させることで求めたい解を効率的に計算する方法である。例えば、適切な密度関数qを選べば、図8に示すように、VaR付近に計算結果が集中するような乱数を発生させることができ、求めたい解であるVaRを効率的に計算することができる。
【0093】
ここで、密度関数qの選び方について考える。例えば、上記の式(2)に示した積分値Iを計算する場合、モンテカルロ・シミュレーションにおける解IMCの誤差分散を減らすように密度関数qを選ぶことができれば重点サンプリング法が実現する。解IMCの誤差分散を最小化するような密度関数qは、近似的に下記の式(8)により与えられる。なお、VaRを計算する場合、計算式Fを上記の式(7)とし、解IをVaRの値とすれば、同様にして誤差分散を最小化する密度関数qを得ることができる。
【0094】
【数8】
【0095】
ここで、上記のようなシミュレーション計算の並列実行を効率化する方法について考える。なお、ここでもVaRの計算を例に説明を進める。
図9は、重点サンプリング法の並列化について説明するための第1の図である。
【0096】
図9に示すように、第3の実施の形態に係る並列化されたシミュレーション計算は段階的に実行される。
第1段階(#1)では、通常のモンテカルロ・シミュレーション(MC計算)が実行され、下方P0パーセンタイル点を示すVaR1が算出される。但し、第1段階(#1)では、高い精度のVaRを計算しなくてもよいため、少ない数の乱数(パス)でVaR1が計算される。例えば、通常のモンテカルロ・シミュレーションだけでVaRを計算する際に10万パスを要する場合、第1段階(#1)の計算では、100〜1000パス程度でVaR1が算出される。第1段階(#1)で計算されたVaR1は、第2段階(#2)で利用する仮指標値(VaR11、VaR12、…、VaR1M)の設定に利用される。
【0097】
なお、第1段階(#1)で実行されるシミュレーション計算は、第1プロセッサ110により実行される。また、仮指標値の数Mは任意に設定することができる。
第2段階(#2)で利用する仮指標値は、VaR1を基準に上下数%ずれた値が設定される。例えば、VaR11は0.9*VaR1、…、VaR1Mは1.1*VaR1などと設定される。なお、仮指標値の設定方法は、この例に限定されず任意に決めてよい。仮指標値が設定されると、第2段階(#2)の計算が実行される。
【0098】
第2段階(#2)では、複数の仮指標値VaR11、…、VaR1Mを用いて重点サンプリング法(IS)に基づくモンテカルロ・シミュレーションが実行される。なお、第2段階(#2)で仮指標値毎に実行されるシミュレーション計算は互いに独立しているため、複数のシミュレーション計算を並列実行することが可能である。例えば、VaR11を用いたシミュレーション計算を第2プロセッサ120−1で実行し、VaR12を用いたシミュレーション計算を第2プロセッサ120−2で実行するといった並列処理を実現することができる。
【0099】
なお、第2段階(#2)で実行する複数のシミュレーション計算は、利用する仮指標値が異なる以外は実質的に同じ計算内容となる。そこで、VaR11を用いたシミュレーション計算を例に説明を行う。
【0100】
VaR11が設定されると、VaR11を基準として重点サンプリング法を実現するための密度関数qが設定される。密度関数qは、モンテカルロ・シミュレーションによる近似解IMCをVaR11として上記の式(8)により与えられる。
【0101】
また、設定した密度関数qに基づいて重点サンプリング法によるモンテカルロ・シミュレーションが実行され、ポートフォリオの価値の密度分布が計算される。また、計算された密度分布の下方VaR11までの面積(累積密度P11)が算出される。同様にして、他の仮指標値VaR12、…、VaR1Mについても、それぞれ密度分布が計算され、累積密度P12、…、P1Mが算出される。なお、第2段階(#2)で実行されるシミュレーション計算は、重点サンプリング法が適用されるため、第1段階(#1)のシミュレーション計算と同程度又はそれよりも少ないパスで実行されてもよい。
【0102】
第2段階(#2)で算出された複数の累積密度P11、…、P1Mは、第3段階(#3)でVaRの選択処理に利用される。第3段階(#3)では、複数の累積密度P11、…、P1MのそれぞれとP0との差分値が計算され、差分値が最小となる累積密度に対応する仮指標値が選択される。例えば、差分値が最小となる累積密度がP1kであった場合、第3段階(#3)では仮指標値VaR1kが選択される。選択された仮指標値VaR1kは、第4段階(#4)で利用する仮指標値(VaR21、VaR22、…、VaR2M)の設定に利用される指標値VaR2となる。
【0103】
なお、第4段階(#4)で利用する仮指標値の数はMでなくてもよい。また、第4段階(#4)で利用する仮指標値は、例えば、VaR2を基準に上下数%ずれた値が設定される。例えば、VaR21は0.95*VaR2、…、VaR2Mは1.05*VaR2などと設定される。但し、仮指標値の設定方法は、この例に限定されず任意に決めてよい。また、第4段階(#4)で利用する仮指標値の設定に用いるずれ量は、第2段階(#2)で利用する仮指標値の設定に用いたずれ量よりも小さく(例えば、半分程度に)設定してもよい。
【0104】
仮指標値が設定されると、第4段階(#4)の計算が実行される。第4段階(#4)で実行されるシミュレーション計算は、仮指標値が異なる点を除いて第2段階(#2)で実行されたシミュレーション計算と実質的に同じ内容である。第4段階(#4)では、仮指標値VaR21、…、VaR2Mについて、それぞれ密度分布が計算され、累積密度P21、…、P2Mが算出される。なお、第4段階(#4)で実行されるシミュレーション計算は、第1段階(#1)又は第2段階(#2)のシミュレーション計算と同程度又はそれよりも少ないパスで実行されてもよい。
【0105】
その後、第3段階(#3)の処理と同様に、累積密度P21、…、P2Mに基づいて仮指標値が選択され、次の段階で利用する複数の仮指標値が設定される。そして、第4段階(#4)と同様に、複数の仮指標値に基づいて累積密度が計算される。このように、第3段階(#3)及び第4段階(#4)と同様の処理が繰り返し実行される。この繰り返し処理は、終了条件を満たすまで実行される。終了条件を満たした場合、第3段階(#3)と同様の処理により選択された仮指標値が計算結果として出力される。
【0106】
なお、上記の終了条件としては、例えば、ユーザによる停止操作や予め設定した繰り返し回数の満了などが考えられる。また、シミュレーション計算に利用したパス数が、通常のモンテカルロ・シミュレーションだけを用いる場合に要するパス数の10分の1程度に達した場合に繰り返し処理を終了するといった方法なども考えられる。また、複数の差分値の差が閾値を下回った場合に繰り返し処理を終了する方法なども考えられる。
【0107】
ところで、図9の例では、VaR1を計算するために第1段階(#1)で通常のモンテカルロ・シミュレーションを実行したが、例えば、デルタ・ガンマ法などを利用してVaR1を計算する方法もある。デルタ・ガンマ法は、ポートフォリオから生じる損益を原資産価格の関数とみなし、その関数をテーラー展開の2次の項までで近似したモデルを用いてVaRなどのリスク指標を計算する方法である。デルタ・ガンマ法はモンテカルロ・シミュレーションに比べて精度が低いが、図9に例示した方法のように、重点サンプリング法を実施するための仮指標値を決める基準として用いることは可能である。
【0108】
図10は、重点サンプリング法の並列化について説明するための第2の図である。
図10(A)に示すように、通常のモンテカルロ・シミュレーションにより密度分布が得られる。この密度分布から、下方P0パーセンタイル点であるVaR1が得られる。また、VaR1が得られると、VaR1を基準に複数の仮指標値VaR11、…、VaR1Mを設定することができる。また、図10(B)に示すように、例えば、仮指標値VaR1kに基づいて重点サンプリング法に基づくシミュレーション計算を実行することで密度分布が得られ、その密度分布における下方VaR1kまでの面積である累積密度P1kが計算できる。また、累積密度P1kとP0との差分値が計算できる。
【0109】
同様にして、複数の仮指標値VaR11、…、VaR1Mについて差分値を計算し、差分値が最小になる仮指標値が選択される。また、選択された仮指標値に基づいて新たな複数の仮指標値が設定され、上記と同様にして新たな複数の仮指標値のそれぞれについて差分値が計算される。また、差分値が最小となる仮指標値が選択される。このように、仮指標値の設定及び差分値の計算が繰り返し行われ、終了条件を満たした場合に、選択された仮指標値が計算結果として出力される。なお、仮指標値が選択される度に、選択された仮指標値が計算結果の途中経過として出力されるようにしてもよい。
【0110】
図11は、第3の実施の形態に係る情報処理システムによる処理の流れを示した図である。なお、ポートフォリオ価値のVaRの計算方法を例に挙げて処理の流れを説明する。
(S101)乱数生成部111は、ある密度関数に従う乱数群を発生させる。
【0111】
(S102)分布計算部112は、乱数生成部111が発生させた乱数群を用いてポートフォリオ価値の密度分布を計算する。指標計算部113は、分布計算部112が計算した密度分布の下方P0パーセンタイル点であるVaRを計算する。
【0112】
(S103)指標計算部113は、S102の処理で計算したVaRを基準に複数の仮VaRを設定する。例えば、指標計算部113は、S102の処理で計算したVaRを上下5%ずつずらした値を仮VaRに設定する。
【0113】
(S104)乱数生成部121は、仮VaRを基準に密度関数を設定する。例えば、乱数生成部121は、仮VaRの近辺に計算値が集中するような乱数群を発生させる密度関数を設定する。
【0114】
(S105)乱数生成部121は、S104で設定した密度関数に従う乱数群を発生させる。
(S106)分布計算部122は、S105で発生させた乱数群を利用し、重点サンプリング法に基づくモンテカルロ・シミュレーションによりポートフォリオ価値の密度分布を計算する。累積密度計算部123は、分布計算部122が計算した密度分布における仮VaRまでの面積(累積密度)を計算する。
【0115】
なお、S104〜S106の処理は、複数の仮VaRのそれぞれについて複数の第2プロセッサ120−1、…、120−Nにより実行される。また、各仮VaRに対応する累積密度の値は、記憶装置130に格納される。
【0116】
(S107)指標選択部114は、各仮VaRに対応する累積密度の値とP0との差分値を計算する。
(S108)指標選択部114は、S107で計算した差分値のうち、最小となる差分値に対応する仮VaRを選択する。
【0117】
(S109)終了条件に達した場合、処理はS110に進む。一方、終了条件に達していない場合、処理はS103に進む。終了条件としては、例えば、ユーザによる停止操作や予め設定した繰り返し回数の満了などが考えられる。
【0118】
(S110)指標出力部115は、指標選択部114が選択した仮VaRを計算結果として出力する。
S110の処理が終了すると、一連の処理が完了する。なお、図11に示した処理の流れにおいてはS109で終了条件を満たした場合に計算結果が出力されるものとしたが、S108の処理で選択された仮VaRが選択の都度出力されるようにしてもよい。
【0119】
図12は、同精度のシミュレーション計算を実行して得られる計算値の発生頻度を比較した計算例を示す図である。
図12に示すように、通常のモンテカルロ・シミュレーション(通常のMC計算)を実行する場合、計算値の分布は、損益額がVaRから離れた位置にまで広がっている。一方、重点サンプリング法に基づくシミュレーション計算(ISに基づくMC計算)を実行する場合、計算値の分布は、VaR付近に集中する。また、同じ精度の計算結果を得るために用いる計算値の発生頻度は、通常のモンテカルロ・シミュレーションに比べ、重点サンプリング法に基づくシミュレーション計算の方が格段に少ない。すなわち、重点サンプリング法を適用することにより、シミュレーション計算の実行回数が少なくて済む。上記の情報処理システム100によれば、図15に示すのと同様の効果が得られ、シミュレーション計算の高速化及び効率化が実現される。
【0120】
以上、第3の実施の形態について説明した。
[第4の実施の形態]
次に、第4の実施の形態について説明する。
【0121】
図13は、第4の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。なお、第4の実施の形態に係る情報処理システム200は、第3の実施の形態に係る情報処理システム100と同じハードウェアを用いて実現できる。
【0122】
図13に示すように、情報処理システム200は、第1プロセッサ210、複数の第2プロセッサ220−1、220−2、…、220−N、及び記憶装置230を有する。なお、複数の第2プロセッサ220−1、220−2、…、220−Nは同じ機能を有する。そこで、第2プロセッサ220−1を代表例とし、以下では、これを第2プロセッサ220と表記して説明を行う。
【0123】
なお、第1プロセッサ210の機能は、CPU901、921により実現できる。また、第2プロセッサ220−1、…、220−Nの機能は、CPU901、GPU911、912、913、又はCPU931により実現できる。また、第1プロセッサ210、及び第2プロセッサ220が有する機能の一部又は全部は、CPU901、921が実行するプログラムのモジュールとして実現できる。また、第1プロセッサ210、及び第2プロセッサ220が有する機能の一部又は全部をソフトウェアではなく電子回路として実現することも可能である。また、記憶装置230は、RAM902、922、932やHDD903、923に確保された記憶領域、或いは、ネットワーク94に接続されたファイルサーバなどの外部記憶装置である。
【0124】
第1プロセッサ210は、確率変数を含む計算式の値がとる確率分布を近似的に計算し、その確率分布を複数の区間に分割する。なお、第1プロセッサ210は、乱数生成部211、分布計算部212、区間分割部213、分布合成部214、及び結果出力部215の機能を有する。また、乱数生成部211及び分布計算部212の機能は、それぞれ第3の実施の形態に係る乱数生成部111及び分布計算部112の機能と同じである。従って、乱数生成部211及び分布計算部212の機能に関する説明は省略する。
【0125】
区間分割部213は、分布計算部212により生成された密度分布を複数の区間に分割する。例えば、区間分割部213は、各区間に対応する密度分布の各領域が有する面積が等しくなるように密度分布を複数の区間に分割する。区間分割部213により分割された複数の区間を示す情報は、記憶装置230に格納される。
【0126】
また、区間分割部213は、複数の第2プロセッサ220−1、…、220−Nにより計算したい計算値の数を設定する。まず、区間分割部213は、密度分布の計算に用いる計算値の総数の下限値M1を設定する。なお、この下限値は、予め設定されていてもよい。また、区間分割部213は、複数の第2プロセッサ220−1、…、220−Nのそれぞれが計算する各区間の計算値の数の下限値M2を設定する。例えば、密度分布がL個の区間に分割された場合、下限値M2は、M1/N/Lに設定される。
【0127】
第2プロセッサ220は、上記の区間を示す情報を記憶装置230から読み出し、各区間に属する計算値の数が下限値M2に達するまで乱数の発生及び計算値の計算を実行する。なお、第2プロセッサ220は、乱数生成部221、分布計算部222、及び結果保持部223の機能を有する。
【0128】
乱数生成部221は、所定の密度関数に基づいて乱数群を発生させる。乱数生成部211が発生させた乱数群は、分布計算部222に入力される。分布計算部222は、入力された乱数群を用いて計算値を算出する。また、分布計算部222は、記憶装置230から区間を示す情報を読み出し、算出した計算値が属する区間を判別する。分布計算部222は、各区間に属する計算値の数が下限値M2に達するまで計算値の算出を繰り返す。
【0129】
なお、分布計算部222は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余分な計算値として結果保持部223に保持させる。一方、分布計算部222は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を計算結果として結果保持部223に保持させる。全ての区間について計算値の数が下限値M2に達した場合、分布計算部222は、結果保持部223に保持された計算値を記憶装置230に格納する。
【0130】
同様に、複数の第2プロセッサ220−2、…、220−Nにより計算値が計算され、計算値が記憶装置230に格納される。分布合成部214は、記憶装置230に格納された計算値を読み出し、複数の第2プロセッサ220−1、…、220−Nにより計算された計算値の集合について密度分布を生成する。
【0131】
まず、分布合成部214は、余分な計算値の集合から、各区間に属する計算値の数が等しくなるように計算値を抽出し、残りの計算値を破棄する。例えば、各区間に属する余分な計算値の数の最小数がb個である場合、分布合成部214は、各区間に属する余分な計算値をb個ずつ抽出する。また、分布合成部214は、余分な計算値の集合から抽出した計算値の集合と、複数の第2プロセッサ220−1、…、220−Nにより計算結果として得られた計算値の集合とを用いて密度分布を生成する。分布合成部214により生成された密度分布の情報は、結果出力部215に入力される。結果出力部215は、密度分布の情報を出力する。例えば、結果出力部215は、計算結果の情報を表示装置91に表示させる。また、結果出力部215は、ネットワーク94を介して計算結果の情報を他の機器に提供してもよい。
【0132】
以上説明したように、第4の実施の形態に係る情報処理システム200によれば、第1プロセッサ210により区間の分割に用いる密度分布が計算される。そのため、密度分布が予め与えられていない場合でも、各区間に属する計算値の数が均等になるように密度分布の計算に用いる計算値を抽出することが可能になる。また、複数の第2プロセッサ220−1、…、220−Nにより各区間に属する計算値の数が所定数となるように計算値の計算を実行することで、計算の並列化による高速計算が実現される。
【0133】
また、複数の第2プロセッサ220−1、…、220−Nにおいて、各区間の計算値が所定数となるまで繰り返し計算値の算出を行う際、所定数を超えて算出される余分な計算値も保持しておき、分布合成部214により密度分布の計算に利用する。その結果、有効利用される余分な計算値の分だけ多くの計算値を密度分布の計算に利用できるようになり、精度を向上させることが可能になる。なお、全体の1割以下くらいの余分な計算値が発生するものと期待される。例えば、M1/Lが50なら、複数の第2プロセッサ220−1、…、220−Nのそれぞれで5個以下くらいの余分な計算値が算出される。
【0134】
なお、複数の第2プロセッサ220−1、…、220−Nがそれぞれ層化抽出法により計算値を算出し、余分な計算値を破棄するように構成すると、多くの計算値が破棄されることになる。しかしながら、情報処理システム200によれば、余分な計算値の一部を破棄せずに有効利用することで、破棄される計算値の数を減らし、より多くの計算値を利用できるようになる。結果として、計算の効率化及び高精度化が実現される。
【0135】
なお、第1プロセッサ210による計算結果は区間の分割に利用されるものであるため、第1プロセッサ210による計算は少ない乱数を用いて実行されてもよい。また、層化抽出法による精度の向上が見込めるため、第2プロセッサ220による計算に用いる乱数の数も通常のモンテカルロ・シミュレーションを実行する場合に比べて少なくてよい。
【0136】
以下、第4の実施の形態に係る情報処理システム200による処理について説明する。
図14は、層化抽出法について説明するための図である。
層化抽出法は、密度分布を均等な面積を持つ複数の領域に分割し、発生させた乱数が各領域に等しく分配されるように調整する方法である。例えば、図14に示すように、密度分布が与えられ、面積が等しい6つの領域(A1、…、A6)に分割されているとする。また、100個の乱数を発生させ、各乱数について計算値を算出した結果、A1に18個、A2に16個、A3に12個、A4に12個、A5に20個、A6に22個の計算値が含まれるものとなったとする。この場合、層化抽出法では、A1から12個、A2から12個、A3から12個、A4から12個、A5から12個、A6から12個の計算値を抽出し、抽出した計算値が後の計算に利用され、その他の計算値は捨てられる。そして、選択された計算値を利用して求めたい解が計算される。
【0137】
層化抽出法によれば、密度分布に近い計算値の集合が求めたい解の計算に利用されるため、より少ない乱数で十分な計算精度を得ることができる。但し、層化抽出法を適用するには、密度分布の知識が前提となる。また、無駄になる乱数の数が多い。そこで、こうした問題を解決すべく次のような方法を提案する。
【0138】
図15は、層化抽出法の並列化について説明するための図である。
図15に示すように、ここで提案する層化抽出法(SS)は3つの段階を含む。第1段階(#1)では、通常のモンテカルロ・シミュレーションにより仮の密度分布D0が計算される。なお、第1段階(#1)で実行されるシミュレーション計算は、通常のモンテカルロ・シミュレーションだけを利用して最終的な密度分布を計算する場合に比べ、少ない数の乱数を利用して実行される。
【0139】
第2段階(#2)では、仮の密度分布D0を面積が均等になるように複数の領域に分割し、各領域に属する計算値の数が等しくなるように計算値をサンプリングする。なお、第2段階(#2)の処理は、図15に示すように並列に実行される。また、分割数Lや密度分布の計算に利用する計算値の総数の下限値M1、並列に実行される各処理で算出される領域毎の計算値の数の下限値M2などは予め設定されているものとする。
【0140】
例えば、第1番目の処理では、第2プロセッサ220−1が、分割した各領域に属する計算値の数が下限値M2になるまで計算値の算出を繰り返し実行する。このとき、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余りE1として保持する。また、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を計算結果D1として保持する。全ての区間について計算値の数が下限値M2に達した場合、第2プロセッサ220−1は、結果D1及び余りE1を出力する。
【0141】
同様に、第2番目の処理では結果D2及び余りE2が出力され、第3番目の処理では結果D3及び余りE3が出力される。このようにして第2段階(#2)では、結果D2、…、DL及び余りE1、…、ENが得られる。なお、第1番目〜第N番目の処理は互いに独立している。そのため、第1番目〜第N番目の処理は、それぞれ独立に第2プロセッサ220−1、…、220−Nにより実行される。
【0142】
第3段階(#3)では、結果D1、…、DNから第1の密度分布が計算される。また、余りE1、…、ENの集合から、各領域に等しく計算結果が含まれるように一部の計算結果がサンプリングされて第2の密度分布が計算される。例えば、各領域に属する余分な計算値の数の最小数がb個である場合、各領域に属する余分な計算値がb個ずつ抽出され、第2の密度分布が計算される。そして、第1及び第2の密度分布が合成され、最終的な密度分布が計算される。つまり、結果D1、…、DN、及び余りE1、…、ENからサンプリングされた計算値の集合を用いて最終的な密度分布が作成される。
【0143】
上記のように、仮の密度分布D0を求めることで複数の分割領域を計算できるため、層化抽出法を実現することが可能になる。また、層化抽出法に基づくシミュレーション計算を並列実行することでシミュレーション計算が高速化される。また、第3段階(#3)で余りを再利用することにより、計算値が有効に利用され、シミュレーション計算の効率化及び精度の向上が図れる。例えば、並列して実行される各処理で余分な計算値を破棄する場合に比べて、計算の効率化及び精度の向上を図ることが可能になる。
【0144】
なお、図15に示した層化抽出法は、第3の実施の形態に係る重点サンプリング法に基づくシミュレーション計算に組み合わせることが可能である。例えば、図9の第2段階(#2)で実行される各シミュレーション計算において、図15に示した方法を適用することができる。この場合、図9の第1段階(#1)で密度分布が得られているため、図15の第1段階(#1)を省略することが可能である。また、図9の第2段階(#2)と実質的に同じ内容の計算を行う第4段階(#4)及びそれ以降の段階におけるシミュレーション計算にも上記の層化抽出法を適用することができる。
【0145】
図16は、層化抽出法による分布計算の流れを示した図である。
(S201)第1プロセッサ210は、少ない乱数群を用いて、層化抽出法を適用しない通常のモンテカルロ・シミュレーションを実行して密度分布を計算する。
【0146】
(S202)第1プロセッサ210は、分割数Lに基づき、S201の処理で算出した密度分布を面積の等しい複数の領域に分割する。
(S203)第1プロセッサ210は、密度分布の計算に利用する計算値の総数の下限値M1に基づき、複数の第2プロセッサ220−1、…、220−Nがそれぞれ計算する領域毎の計算値の数の下限値M2を設定する。例えば、下限値M2は、M1/N/Lに設定される。
【0147】
(S204)複数の第2プロセッサ220−1、…、220−Nは、それぞれ各領域に属する計算値の数が下限値M2に達するまで計算値を算出する。例えば、第2プロセッサ220−1は、各領域に属する計算値の数が下限値M2になるまで計算値の算出を繰り返し実行する。このとき、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余りとして保持する。また、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を結果として保持する。第2プロセッサ220−2、…、220−Nについても同様である。
【0148】
(S205)第1プロセッサ210は、複数の第2プロセッサ220−1、…、220−Nが余りとして保持した計算値の集合から、各領域に属する計算値の数が等しくなるように計算値をサンプリングする。例えば、各領域に属する余りの計算値の数の最小数がb個である場合、各領域に属する余りの計算値がb個ずつサンプリングされる。
【0149】
(S206)第1プロセッサ210は、複数の第2プロセッサ220−1、…、220−Nが結果として保持した計算値の集合及びS205の処理でサンプリングした計算値を用いて密度分布を生成する。S206の処理を終了すると、層化抽出法による分布計算を完了する。
【0150】
以上説明したように、第4の実施の形態によれば、シミュレーション計算の一部を並列化することにより計算を高速化することができる。また、層化抽出法の適用によりシミュレーション計算を効率化することができる。また、破棄される計算値の数を減らすことで、より多くの計算値を利用可能になり計算精度を向上させることができる。
【0151】
以上、第4の実施の形態について説明した。
【符号の説明】
【0152】
10、20、100、200 情報処理システム
11、21 制御部
12−1〜12−3、22−1〜22−3 プロセッサ
13−1〜13−3、23−1〜23−3 タスク
v1〜v3 指標値
T1〜T3 区間
110、210 第1プロセッサ
111、211、121 乱数生成部
112、122、212、222 分布計算部
113 指標計算部
114 指標選択部
115 指標出力部
130、230 記憶装置
120、120−1、120−2、120−N、220、220−1、220−2、220−N 第2プロセッサ
123 累積密度計算部
213 区間分割部
214 分布合成部
215 結果出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16