JP2014123272A - Simulation method, program, and information processing method - Google Patents

Simulation method, program, and information processing method Download PDF

Info

Publication number
JP2014123272A
JP2014123272A JP2012279450A JP2012279450A JP2014123272A JP 2014123272 A JP2014123272 A JP 2014123272A JP 2012279450 A JP2012279450 A JP 2012279450A JP 2012279450 A JP2012279450 A JP 2012279450A JP 2014123272 A JP2014123272 A JP 2014123272A
Authority
JP
Japan
Prior art keywords
index value
temporary
values
samples
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012279450A
Other languages
Japanese (ja)
Other versions
JP6031995B2 (en
Inventor
Hirosuke Kameyama
裕亮 亀山
Katsumi Honma
克己 本間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012279450A priority Critical patent/JP6031995B2/en
Publication of JP2014123272A publication Critical patent/JP2014123272A/en
Application granted granted Critical
Publication of JP6031995B2 publication Critical patent/JP6031995B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform a simulation by efficiently using a plurality of processors.SOLUTION: A control part 11 selects an index value of reference, selects temporary index values v1 to v3 on the basis of the index value of reference, and distributes tasks 13-1 to 13-3 corresponding to the temporary index values v1 to v3 to processors 12-1 to 12-3. Each processor generates probability data corresponding to the temporary index values as a task corresponding to any allocated temporary index value by using a model for generating a sample of an index value from random numbers and a distribution of biased random numbers. The control part 11 compares probability data respectively corresponding to the temporary index values v1 to v3 with a predetermined probability condition to select one temporary index value, determines the one temporary index value as an index value satisfying the predetermined probability condition, or uses the one temporary index value as a new index value of reference to perform selection of a plurality of temporary index values and distribution of a plurality of tasks again.

Description

本発明は、シミュレーション方法、プログラム、及び情報処理システムに関する。   The present invention relates to a simulation method, a program, and an information processing system.

シミュレーション手法の1つとして、問題の解を解析的に求める代わりに乱数を用いて近似的に求めるモンテカルロ・シミュレーションがよく利用されている。モンテカルロ・シミュレーションでは、ある乱数の分布に従って大量の乱数を発生させ、乱数から指標値のサンプルを生成するモデルにこれら大量の乱数を代入することで、大量のサンプルを生成する。これにより、指標値の確率分布を推定することができる。指標値の確率分布からは、指標値の期待値や分散などの各種の統計値を得ることができる。モンテカルロ・シミュレーションでは、生成するサンプルの数を増やすことで計算精度が向上する。   As one of the simulation methods, a Monte Carlo simulation which is approximately obtained using random numbers instead of analytically obtaining a solution of a problem is often used. In the Monte Carlo simulation, a large number of samples are generated by generating a large number of random numbers according to a distribution of random numbers and substituting these large numbers of random numbers into a model that generates a sample of index values from the random numbers. Thereby, the probability distribution of the index value can be estimated. Various statistical values such as expected value and variance of the index value can be obtained from the probability distribution of the index value. In the Monte Carlo simulation, the calculation accuracy is improved by increasing the number of samples to be generated.

モンテカルロ・シミュレーションは、解析的に解くことが難しい問題や複雑な問題の解を求めるために有効な数値解析手法の1つである。例えば、ある製造現場における製品の歩留まりを解析したい場合に、モンテカルロ・シミュレーションを用いて不良品の発生確率を計算することが考えられる。また、金融資産のポートフォリオから生じる損益を予測してリスク指標を計算する場合や、複雑な金融派生商品の現在価値を計算する場合などにも、モンテカルロ・シミュレーションが利用され得る。   Monte Carlo simulation is one of the effective numerical analysis techniques for finding solutions to problems that are difficult to solve analytically or complex problems. For example, when it is desired to analyze the yield of a product at a certain manufacturing site, it is conceivable to calculate the occurrence probability of a defective product using Monte Carlo simulation. Monte Carlo simulations can also be used when calculating risk indicators by predicting profits and losses arising from a portfolio of financial assets, or when calculating the present value of complex financial derivatives.

但し、モンテカルロ・シミュレーションでは、サンプル数の増加に対して計算精度は緩やかに向上していく。そのため、単純にサンプル数を増やすことで計算精度を上げようとすると、計算量が膨大になりシミュレーション時間が長くなってしまう。そこで、モンテカルロ・シミュレーションの計算量を抑制する方法として、例えば、重点サンプリング(Importance Sampling)法や層化抽出(Stratified Sampling)法などがある。   However, in the Monte Carlo simulation, the calculation accuracy gradually improves as the number of samples increases. Therefore, if the calculation accuracy is simply increased by increasing the number of samples, the calculation amount becomes enormous and the simulation time becomes longer. Therefore, methods for suppressing the amount of calculation of Monte Carlo simulation include, for example, an importance sampling (Importance Sampling) method and a stratified extraction (Stratified Sampling) method.

重点サンプリング法では、分散の大きいサンプル群を生成する代わりに、乱数の分布にバイアスをかけることで着目する特定の指標値を中心に分散の小さいサンプル群を生成する。重点サンプリング法を用いると、通常のモンテカルロ・シミュレーションと比べて、サンプル数を少なくしても着目する指標値周辺では高い精度の計算結果が得られる。層化抽出法では、指標値の値域を、予想される各区間の確率(確率密度の積分)が概ね均等になるように複数の区間に分割し、各区間から同数のサンプルを採用して指標値の確率分布を推定する。層化抽出法を用いると、値域を適切に分割できれば、通常のモンテカルロ・シミュレーションと比べてサンプル数を少なくしても高い精度の計算結果が得られる。   In the importance sampling method, instead of generating a sample group with a large variance, a sample group with a small variance is generated around a specific index value of interest by biasing the distribution of random numbers. When the importance sampling method is used, a calculation result with higher accuracy can be obtained in the vicinity of the target index value even if the number of samples is reduced as compared with the normal Monte Carlo simulation. In the stratification extraction method, the index value range is divided into multiple sections so that the probabilities (integration of probability density) of each section are almost equal, and the same number of samples are adopted from each section. Estimate the probability distribution of values. When the stratified extraction method is used, if the range can be appropriately divided, a highly accurate calculation result can be obtained even if the number of samples is reduced as compared with a normal Monte Carlo simulation.

なお、リスクに与える影響の大小に応じてリスクファクタを分割し、分割したリスクファクタ毎に異なる方法で損失額を算出するリスク定量化システムが提案されている。このリスク定量化システムは、リスクに与える影響の大きいリスクファクタについてはモンテカルロ・シミュレーションで損失額を算出し、リスクに与える影響の小さいリスクファクタについては計算量の小さい方法で損失額を算出する。また、このリスク定量化システムは、算出した複数の損失額に基づいて損失額分布を生成する。   A risk quantification system has been proposed in which risk factors are divided according to the magnitude of the impact on risk, and the amount of loss is calculated by a different method for each divided risk factor. This risk quantification system calculates a loss amount by a Monte Carlo simulation for a risk factor having a large impact on the risk, and calculates a loss amount by a method having a small calculation amount for a risk factor having a small impact on the risk. Further, the risk quantification system generates a loss distribution based on the calculated plurality of losses.

特開2002−092311号公報JP 2002-092311 A

上記のように、重点サンプリング法や層化抽出法を用いることで、シミュレーションの計算量を抑制することができる。一方で、複数のプロセッサにタスクを分配してシミュレーションを並列処理化し、シミュレーション時間を短縮することも考えられる。上記の重点サンプリング法や層化抽出法に基づくシミュレーションも、解く問題によっては並列処理化してシミュレーション時間を短縮したいことがある。しかし、複数のプロセッサに対し、どのようにタスクを分配すれば並列処理が効率的になるかが問題となる。   As described above, the calculation amount of the simulation can be suppressed by using the importance sampling method or the stratified extraction method. On the other hand, it is conceivable that the simulation time is shortened by distributing the tasks to a plurality of processors to parallelize the simulation. Depending on the problem to be solved, the simulation based on the above-mentioned importance sampling method or stratified extraction method may be parallelized to reduce the simulation time. However, the problem is how to distribute tasks to multiple processors to make parallel processing more efficient.

例えば、重点サンプリング法では、特定の指標値に対応する確率を算出することは容易である一方、その逆に所定の確率条件を満たすような指標値を探すことは容易ではない。後者のような問題を解くとき、どのように並列処理化すればシミュレーション時間をより短縮できるかが問題となる。また、例えば、層化抽出法では、指標値の値域を複数の区間に分割することから、並列処理化する方法としては区間毎にプロセッサを割り当てる方法が考えられる。しかし、各区間に対して他の区間とは独立なタスクを設定すると、各プロセッサは自身が担当する区間に属さないサンプルが生成されたときそのサンプルを破棄することになり、大量のサンプルが破棄されて非効率的となる。   For example, in the importance sampling method, it is easy to calculate a probability corresponding to a specific index value, but conversely, it is not easy to search for an index value that satisfies a predetermined probability condition. When solving the latter type of problem, the question is how parallel processing can reduce the simulation time. In addition, for example, in the stratified extraction method, the index value range is divided into a plurality of sections. Therefore, as a method of parallel processing, a method of assigning processors for each section is conceivable. However, if a task that is independent of other sections is set for each section, each processor discards the sample when a sample that does not belong to the section that it is responsible for is generated, and a large number of samples are discarded. Has become inefficient.

1つの側面では、本発明は、複数のプロセッサを効率的に用いてシミュレーションを行うことが可能なシミュレーション方法、プログラム、及び情報処理システムを提供することを目的とする。   In one aspect, an object of the present invention is to provide a simulation method, a program, and an information processing system capable of performing simulation using a plurality of processors efficiently.

1つの態様では、複数のプロセッサを含む情報処理システムが実行する、指標値の確率分布を推定し所定の確率条件を満たす指標値を決定するシミュレーション方法が提供される。基準の指標値を選択し、基準の指標値に基づいて複数の仮の指標値を選択する。複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振る。各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行する。複数の仮の指標値それぞれに対応する確率データと所定の確率条件とを比較して一の仮の指標値を選択する。選択した一の仮の指標値を所定の確率条件を満たす指標値と決定するか、又は、選択した一の仮の指標値を新たな基準の指標値として用いて複数の仮の指標値の選択と複数のタスクの割り振りとを再度行う。   In one aspect, there is provided a simulation method for estimating an index value probability distribution and determining an index value satisfying a predetermined probability condition, which is executed by an information processing system including a plurality of processors. A reference index value is selected, and a plurality of temporary index values are selected based on the reference index value. A plurality of tasks corresponding to a plurality of temporary index values are allocated to a plurality of processors. As a task corresponding to each temporary index value, a model that generates index value samples from random numbers and a distribution of random numbers biased so that the index value samples are generated around the temporary index value are used. Then, processing for generating probability data corresponding to the temporary index value is executed in the processor to which the task is assigned. One temporary index value is selected by comparing the probability data corresponding to each of the plurality of temporary index values with a predetermined probability condition. The selected temporary index value is determined as an index value that satisfies a predetermined probability condition, or a plurality of temporary index values are selected using the selected temporary index value as a new reference index value. And assigning multiple tasks again.

また、1つの態様では、複数のプロセッサを含む情報処理システムが実行するシミュレーション方法が提供される。指標値の値域を複数の区間に分割し、複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定する。複数のプロセッサにp個のタスク(pは2以上の整数)を割り振る。各タスクとして、複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行する。複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する。   In one aspect, a simulation method executed by an information processing system including a plurality of processors is provided. The index value range is divided into a plurality of sections, and a lower limit number s (s is an integer of 2 or more) of index value samples used in each of the plurality of sections is determined. P tasks (p is an integer of 2 or more) are allocated to a plurality of processors. As each task, a process of generating index value samples from random numbers is executed in a processor to which the task is assigned until at least s / p index value samples belonging to each of a plurality of sections are reached. A sample of s / p index values is collected from each task for each of a plurality of sections, and a probability distribution of the index values is estimated using the collected sample of index values for each section.

また、1つの態様では、コンピュータに実行させるプログラムが提供される。また、1つの態様では、複数のプロセッサと制御部とを有する情報処理システムが提供される。   In one aspect, a program to be executed by a computer is provided. In one aspect, an information processing system having a plurality of processors and a control unit is provided.

一側面では、計算値の分布から算出される解を高速に計算することが可能になる。   In one aspect, a solution calculated from the distribution of calculated values can be calculated at high speed.

第1の実施の形態に係る情報処理システムの例を示した図である。It is the figure which showed the example of the information processing system which concerns on 1st Embodiment. 第2の実施の形態に係る情報処理システムの例を示した図である。It is the figure which showed the example of the information processing system which concerns on 2nd Embodiment. 第3の実施の形態に係る情報処理システムのハードウェアの例を示した第1の図である。It is the 1st figure showing the example of the hardware of the information processing system concerning a 3rd embodiment. 第3の実施の形態に係る情報処理システムのハードウェアの例を示した第2の図である。It is the 2nd figure showing the example of the hardware of the information processing system concerning a 3rd embodiment. 第3の実施の形態に係る情報処理システムのハードウェアの例を示した第3の図である。It is the 3rd figure showing the example of the hardware of the information processing system concerning a 3rd embodiment. 第3の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。It is the figure which showed the example of the functional block of the information processing system which concerns on 3rd Embodiment. VaRの計算方法について説明するための図である。It is a figure for demonstrating the calculation method of VaR. 重点サンプリング法について説明するための図である。It is a figure for demonstrating the importance sampling method. 重点サンプリング法の並列化について説明するための第1の図である。It is a 1st figure for demonstrating parallelization of the importance sampling method. 重点サンプリング法の並列化について説明するための第2の図である。It is a 2nd figure for demonstrating parallelization of the importance sampling method. 第3の実施の形態に係る情報処理システムによる処理の流れを示した図である。It is the figure which showed the flow of the process by the information processing system which concerns on 3rd Embodiment. 同精度のシミュレーション計算を実行して得られる計算値の発生頻度を比較した計算例を示す図である。It is a figure which shows the example of a calculation which compared the generation frequency of the calculated value obtained by performing the simulation calculation of the same precision. 第4の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。It is the figure which showed the example of the functional block of the information processing system which concerns on 4th Embodiment. 層化抽出法について説明するための図である。It is a figure for demonstrating the stratification extraction method. 層化抽出法の並列化について説明するための図である。It is a figure for demonstrating the parallelization of the stratification extraction method. 層化抽出法による分布計算の流れを示した図である。It is the figure which showed the flow of distribution calculation by the stratification extraction method.

以下、図面を参照しながら実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。
Hereinafter, embodiments will be described with reference to the drawings.
[First Embodiment]
A first embodiment will be described.

図1は、第1の実施の形態に係る情報処理システムの例を示した図である。
第1の実施の形態に係る情報処理システム10は、指標値の確率分布を推定し、所定の確率条件を満たす指標値を決定する。情報処理システム10が実行するシミュレーションは、例えば、重点サンプリング法を用いたモンテカルロ・シミュレーションである。
FIG. 1 is a diagram illustrating an example of an information processing system according to the first embodiment.
The information processing system 10 according to the first embodiment estimates a probability distribution of index values and determines an index value that satisfies a predetermined probability condition. The simulation executed by the information processing system 10 is, for example, a Monte Carlo simulation using an importance sampling method.

情報処理システム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)などのメモリに記憶されたプログラムに従ってタスクを実行する。   The information processing system 10 includes a control unit 11 and a plurality of processors including processors 12-1 to 12-3. Examples of the “plurality of processors” include the following. (1) A plurality of processor cores included in one Central Processing Unit (CPU). (2) A plurality of GPUs for a plurality of CPUs and general-purpose computing on graphics processing units (GPGPU) included in one information processing apparatus. (3) A set of GPUs for CPU and GPGPU provided in a plurality of information processing devices connected to the network. However, the “processor” may be a specific purpose electronic circuit such as a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA). Each processor executes a task according to a program stored in a memory such as a random access memory (RAM), for example.

制御部11は、プロセッサ12−1〜12−3を利用してシミュレーションを行う。制御部11は、例えば、RAMなどのメモリに記憶されたプログラムを実行するプロセッサを含む。制御部11とプロセッサ12−1〜12−3は、同じ情報処理装置に属していてもよいし、異なる情報処理装置に属していてもよい。制御部11がプロセッサを含む場合には、以下に説明するタスクの少なくとも1つを制御部11に割り当ててもよい。   The control unit 11 performs a simulation using the processors 12-1 to 12-3. The control unit 11 includes a processor that executes a program stored in a memory such as a RAM, for example. The control unit 11 and the processors 12-1 to 12-3 may belong to the same information processing apparatus or may belong to different information processing apparatuses. When the control unit 11 includes a processor, at least one of the tasks described below may be assigned to the control unit 11.

制御部11は、指標値の値域の中から基準の指標値を選択する。基準の指標値は、例えば、次のように選択する。まず、制御部11は、乱数から指標値のサンプルを生成するモデルとバイアスをかけない乱数の分布とを用いて、指標値の確率分布を推定する。この確率分布は精度の低いものでよく、生成するサンプルの数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数(例えば、1/100〜1/1000程度)でよい。そして、制御部11は、推定した確率分布から、所定の確率条件を満たすような指標値を基準の指標値として選択する。所定の確率条件は、例えば、累積確率=1%といった確率に関する条件である。但し、指標値の確率分布を推定せず、過去のシミュレーション結果などを参照して基準の指標値を選択してもよい。   The control unit 11 selects a reference index value from the range of index values. The reference index value is selected as follows, for example. First, the control unit 11 estimates a probability distribution of index values using a model that generates a sample of index values from random numbers and a random number distribution that is not biased. This probability distribution may be low in accuracy, and the number of samples to be generated may be sufficiently small (for example, about 1/100 to 1/1000) compared to a normal Monte Carlo simulation that does not use the importance sampling method. . Then, the control unit 11 selects an index value that satisfies a predetermined probability condition from the estimated probability distribution as a reference index value. The predetermined probability condition is, for example, a condition relating to a probability such that cumulative probability = 1%. However, the reference index value may be selected by referring to the past simulation result or the like without estimating the probability distribution of the index value.

次に、制御部11は、基準の指標値に基づいて複数の仮の指標値を選択する。例えば、制御部11は、基準の指標値と、基準の指標値から前後に所定幅だけずれた2以上の指標値を、仮の指標値として選択する。図1の例では、指標値v2が基準の指標値として選択され、指標値v1〜v3が仮の指標値として選択されている。制御部11は、複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振る。図1の例では、指標値v1に対応するタスク13−1がプロセッサ12−1に割り当てられ、指標値v2に対応するタスク13−2がプロセッサ12−2に割り当てられ、指標値v3に対応するタスク13−3がプロセッサ12−3に割り当てられている。   Next, the control unit 11 selects a plurality of temporary index values based on the reference index value. For example, the control unit 11 selects a reference index value and two or more index values that deviate from the reference index value by a predetermined width back and forth as temporary index values. In the example of FIG. 1, the index value v2 is selected as the reference index value, and the index values v1 to v3 are selected as temporary index values. The control unit 11 allocates a plurality of tasks corresponding to a plurality of temporary index values to a plurality of processors. In the example of FIG. 1, the task 13-1 corresponding to the index value v1 is assigned to the processor 12-1, the task 13-2 corresponding to the index value v2 is assigned to the processor 12-2, and corresponds to the index value v3. Task 13-3 is assigned to processor 12-3.

何れかのタスクが割り当てられたプロセッサは、当該タスクとして次の処理を行う。ここでは、代表してタスク13−1について説明する。プロセッサ12−1は、仮の指標値である指標値v1を中心に指標値のサンプルが生成されるように、乱数の分布にバイアスをかける。そして、プロセッサ12−1は、乱数から指標値のサンプルを生成する上記のモデルとバイアスをかけた乱数の分布とを用いて、仮の指標値である指標値v1に対応する確率データを生成する。確率データは、例えば、指標値v1における累積確率(指標値がv1以下である確率)を示す。ここで生成するサンプルの数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数でよい。   A processor to which any task is assigned performs the following processing as the task. Here, the task 13-1 will be described as a representative. The processor 12-1 biases the distribution of random numbers so that a sample of index values is generated around the index value v1, which is a temporary index value. Then, the processor 12-1 generates probability data corresponding to the index value v1, which is a temporary index value, using the model for generating index value samples from random numbers and the biased distribution of random numbers. . The probability data indicates, for example, a cumulative probability (probability that the index value is v1 or less) in the index value v1. The number of samples generated here may be a sufficiently small number compared to a normal Monte Carlo simulation that does not use the importance sampling method.

他の仮の指標値についても、指標値v1と同様に確率データが生成される。上記の複数のタスクは互いに独立に実行でき、異なるプロセッサに割り振ったタスクは並列に実行できる。例えば、タスク13−1〜13−3が並列に実行される。   For other temporary index values, probability data is generated in the same manner as the index value v1. The plurality of tasks can be executed independently of each other, and tasks assigned to different processors can be executed in parallel. For example, tasks 13-1 to 13-3 are executed in parallel.

複数のプロセッサに割り振った複数のタスクが完了すると、制御部11は、各仮の指標値に対応する確率データと所定の確率条件とを比較することで、複数の仮の指標値の中から1つを選択する。例えば、確率データ及び所定の確率条件が累積確率を示す場合、所定の累積確率に最も近い累積確率が得られた仮の指標値を選択する。このとき、複数の仮の指標値の中に基準の指標値が含まれる場合であっても、基準の指標値ではない仮の指標値が選択される可能性がある。これは、バイアスをかけた乱数の分布を用いることで、基準の指標値を選ぶときよりも高い精度で確率データが計算され得るためである。   When the plurality of tasks allocated to the plurality of processors are completed, the control unit 11 compares the probability data corresponding to each temporary index value with a predetermined probability condition, thereby selecting one of the plurality of temporary index values. Select one. For example, when the probability data and the predetermined probability condition indicate the cumulative probability, the temporary index value that provides the cumulative probability closest to the predetermined cumulative probability is selected. At this time, even if the reference index value is included in the plurality of temporary index values, there is a possibility that a temporary index value that is not the reference index value is selected. This is because probability data can be calculated with higher accuracy than when a reference index value is selected by using a biased distribution of random numbers.

そして、制御部11は、選択した一の仮の指標値を、所定の確率条件を満たす指標値として決定するか、又は、当該一の仮の指標値を新たな基準の指標値として上記の仮の指標値の選択とタスクの実行とを再度行う。仮の指標値の選択とタスクの実行とを繰り返すことで、確率データが所定の確率条件に近付いていくことが期待できる。繰り返しは、所定の停止条件が満たされたときに自動的に終了するようにしてもよい。停止条件は、生成したサンプルの総数、シミュレーション時間、繰り返し回数などを基準に決めてもよい。   Then, the control unit 11 determines the selected one temporary index value as an index value that satisfies a predetermined probability condition, or uses the one temporary index value as a new reference index value. The index value is selected and the task is executed again. By repeating the selection of the temporary index value and the execution of the task, it can be expected that the probability data approaches the predetermined probability condition. The repetition may be automatically terminated when a predetermined stop condition is satisfied. The stop condition may be determined based on the total number of generated samples, the simulation time, the number of repetitions, and the like.

第1の実施の形態に係る情報処理システム10によれば、複数の仮の指標値が選択されて、各仮の指標値を中心に指標値のサンプルを生成するタスクが設定される。このようなタスクにより、仮の指標値に対応する確率データを少ないサンプルによって精度よく算出することができる。また、複数のタスクは互いに独立に実行でき、複数のタスクを複数のプロセッサに振り分けることでシミュレーションを効率的に並列処理化できる。また、複数のタスクそれぞれで算出された確率データに基づいて、複数の仮の指標値の中から一の指標値を選択することで、シミュレーションの精度を上げることができる。特に、上記の処理を繰り返せば、段階的に精度を上げていくことも可能となる。なお、第1の実施の形態に係るシミュレーション方法で生成するサンプルの総数は、重点サンプリング法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数に抑えられる。   According to the information processing system 10 according to the first embodiment, a plurality of temporary index values are selected, and a task for generating a sample of index values around each temporary index value is set. With such a task, the probability data corresponding to the temporary index value can be accurately calculated with a small number of samples. A plurality of tasks can be executed independently of each other, and the simulation can be efficiently processed in parallel by distributing the plurality of tasks to a plurality of processors. In addition, simulation accuracy can be improved by selecting one index value from a plurality of provisional index values based on probability data calculated for each of a plurality of tasks. In particular, if the above process is repeated, the accuracy can be increased step by step. Note that the total number of samples generated by the simulation method according to the first embodiment can be suppressed to a sufficiently small number compared to a normal Monte Carlo simulation that does not use the importance sampling method.

[第2の実施の形態]
次に、第2の実施の形態について説明する。前述の第1の実施の形態との差異を中心に説明し、第1の実施の形態と同様の事項については適宜説明を省略する。
[Second Embodiment]
Next, a second embodiment will be described. Differences from the above-described first embodiment will be mainly described, and description of matters similar to those in the first embodiment will be omitted as appropriate.

図2は、第2の実施の形態に係る情報処理システムの例を示した図である。
第2の実施の形態に係る情報処理システム20は、指標値の値域を複数の区間に分割して指標値の確率分布を推定する。情報処理システム20が実行するシミュレーションは、例えば、層化抽出法を用いたモンテカルロ・シミュレーションである。
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
The information processing system 20 according to the second embodiment divides the index value range into a plurality of sections and estimates the probability distribution of the index value. The simulation executed by the information processing system 20 is, for example, a Monte Carlo simulation using a stratified extraction method.

情報処理システム20は、制御部21とプロセッサ22−1〜22−3を含む複数のプロセッサとを有する。第1の実施の形態で説明したように、「複数のプロセッサ」としては、1つのCPUに含まれる複数のプロセッサコアなど様々なものが考えられ、「プロセッサ」としては、DSPやASICなど様々なものが考えられる。各プロセッサは、例えば、RAMなどのメモリに記憶されたプログラムに従ってタスクを実行する。   The information processing system 20 includes a control unit 21 and a plurality of processors including processors 22-1 to 22-3. As described in the first embodiment, various “processors” such as a plurality of processor cores included in one CPU can be considered, and “processors” include various processors such as DSPs and ASICs. Things can be considered. Each processor executes a task according to a program stored in a memory such as a RAM, for example.

制御部21は、プロセッサ22−1〜22−3を利用してシミュレーションを行う。制御部21は、例えば、RAMなどのメモリに記憶されたプログラムを実行するプロセッサを含む。制御部21とプロセッサ22−1〜22−3は、同じ情報処理装置に属していてもよいし、異なる情報処理装置に属していてもよい。制御部21がプロセッサを含む場合には、以下に説明するタスクの少なくとも1つを制御部21に割り当ててもよい。   The control unit 21 performs simulation using the processors 22-1 to 22-3. For example, the control unit 21 includes a processor that executes a program stored in a memory such as a RAM. The control unit 21 and the processors 22-1 to 22-3 may belong to the same information processing apparatus or may belong to different information processing apparatuses. When the control unit 21 includes a processor, at least one of the tasks described below may be assigned to the control unit 21.

制御部21は、指標値の値域を複数の区間に分割する。値域の分割は、例えば、次のように行う。まず、制御部21は、乱数から指標値のサンプルを生成するモデルと乱数の分布とを用いて、指標値の確率分布を推定する。この確率分布は精度の低いものでよく、生成するサンプルの数は、層化抽出法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数(例えば、1/100〜1/1000程度)でよい。そして、制御部21は、推定した確率分布に従って、各区間の確率(当該区間の確率密度の積分)が同じになるように指標値の値域を複数の区間に分割する。但し、指標値の確率分布を推定せず、過去のシミュレーション結果などを参照して指標値の値域を分割してもよい。   The control unit 21 divides the index value range into a plurality of sections. For example, the range is divided as follows. First, the control unit 21 estimates a probability distribution of index values using a model that generates a sample of index values from random numbers and a random number distribution. This probability distribution may be low in accuracy, and the number of samples to be generated is sufficiently small (for example, about 1/100 to 1/1000) compared to a normal Monte Carlo simulation that does not use a stratified extraction method. Good. And the control part 21 divides | segments the value range of an index value into a some area so that the probability (integration of the probability density of the said area) of each area becomes the same according to the estimated probability distribution. However, the range of index values may be divided by referring to past simulation results or the like without estimating the probability distribution of index values.

区間の数は、例えば、10〜20程度とすることができる。区間数を10とした場合、理想的には全ての区間の確率が等しく0.1(10%)になる。なお、図2の例では、説明を簡単にするために、指標値の値域を3つに分割している。すなわち、図2に示すように、指標値の値域が区間T1、T2、T3に分割される。この場合、理想的には区間T1、T2、T3の確率は等しく0.33(33%)になる。   The number of sections can be about 10 to 20, for example. When the number of sections is 10, ideally, the probability of all sections is equal to 0.1 (10%). In the example of FIG. 2, the index value range is divided into three in order to simplify the description. That is, as shown in FIG. 2, the index value range is divided into sections T1, T2, and T3. In this case, ideally, the probabilities of the sections T1, T2, and T3 are equally 0.33 (33%).

次に、制御部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に割り当てられている。   Next, the control unit 21 determines the lower limit number s of index value samples used in each section. The lower limit number s is an integer of 2 or more determined in consideration of the accuracy of simulation, and may be specified by the user. If the lower limit total number m of samples used in all sections is designated, it may be calculated as s = m / number of sections. However, the lower limit total number m may be a sufficiently small number compared with a normal Monte Carlo simulation in which the stratified extraction method is not performed. In addition, the control unit 21 allocates p tasks to a plurality of processors. The number of tasks p is an integer equal to or greater than 2, and for example, is matched with the number of processors to which tasks are assigned. In the example of FIG. 2, the task 23-1 is assigned to the processor 22-1, the task 23-2 is assigned to the processor 22-2, and the task 23-3 is assigned to the processor 22-3.

何れかのタスクが割り当てられたプロセッサは、当該タスクとして次の処理を行う。ここでは、代表してタスク23−1について説明する。プロセッサ22−1は、乱数から指標値のサンプルを生成するモデルと乱数の分布とを用いて、所定の個数条件が満たされるまで指標値のサンプルを生成する。個数条件は、各区間に属する指標値のサンプルがs/p個に達することである。これは、最もサンプルの少ない区間のサンプル数がs/p個に達したと言うこともできる。上記の個数条件が満たされたとき、1又はそれ以上の区間でs/p個より多くのサンプルが生成されている可能性がある。   A processor to which any task is assigned performs the following processing as the task. Here, the task 23-1 will be described as a representative. The processor 22-1 uses a model for generating index value samples from random numbers and the distribution of random numbers, and generates index value samples until a predetermined number condition is satisfied. The number condition is that the number of index value samples belonging to each section reaches s / p. It can also be said that the number of samples in the section with the fewest samples has reached s / p. When the above number condition is satisfied, more than s / p samples may be generated in one or more intervals.

他のタスクでも、各区間について少なくともs/p個のサンプルが生成される。上記の複数のタスクは互いに独立に実行でき、異なるプロセッサに割り振ったタスクは並列に実行できる。例えば、タスク23−1〜23−3が並列に実行される。   Other tasks also generate at least s / p samples for each interval. The plurality of tasks can be executed independently of each other, and tasks assigned to different processors can be executed in parallel. For example, tasks 23-1 to 23-3 are executed in parallel.

複数のプロセッサに割り振った複数のタスクが完了すると、制御部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個のサンプルが収集される。   When the plurality of tasks allocated to the plurality of processors are completed, the control unit 21 collects s / p index value samples from the processor that executed each task for each of the plurality of sections. Thereby, s samples in each section are collected. Then, the control unit 21 estimates the probability distribution of the index value using the collected samples. If the number of tasks is p = 3 in the example of FIG. 2, s / 3 samples are collected from the processors 22-1 to 22-3 for the section T1, and a total of s samples are collected. Also in the sections T2 and T3, s / 3 samples are collected from the processors 22-1 to 22-3, and a total of s samples are collected.

このように、各タスクは何れか1つの指標値の区間を担当するのではなく、全ての指標値の区間を担当する。図2の例では、タスク23−1〜23−3それぞれは、区間T1、T2、T3の何れか1つを担当するのではなく、全ての区間を担当する。但し、タスク数を増やすことで各タスクにおいて生成すべきサンプルの数を減らすことができる。   In this way, each task is not in charge of any one index value section, but is in charge of all index value sections. In the example of FIG. 2, each of the tasks 23-1 to 23-3 is not in charge of any one of the sections T1, T2, and T3, but is in charge of all the sections. However, the number of samples to be generated in each task can be reduced by increasing the number of tasks.

なお、指標値の値域を複数の区間に分割するシミュレーション方法では、各区間のサンプル数を同じにすればよく、各区間のサンプル数が下限値sよりも多くなってもよい。むしろ、各区間のサンプル数が多い方が推定の精度が向上する。そこで、制御部21は、各タスクで生成されたs/p個を超える余分なサンプルを収集し、各区間のサンプル数が同じになるように、余分なサンプルの一部又は全部を確率分布の推定に用いてもよい。   In the simulation method of dividing the index value range into a plurality of sections, the number of samples in each section may be the same, and the number of samples in each section may be larger than the lower limit value s. Rather, the accuracy of estimation improves as the number of samples in each section increases. Therefore, the control unit 21 collects extra samples exceeding s / p generated by each task, and part or all of the extra samples are subjected to probability distribution so that the number of samples in each section is the same. It may be used for estimation.

例えば、プロセッサ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が破棄すればよい。   For example, it is assumed that the processor 22-1 generates s / 3 samples in the section T1, s / 3 + α samples in the section T2, and s / 3 + α samples in the section T3. Further, it is assumed that the processor 22-2 generates s / 3 + α samples in the section T1, s / 3 samples in the section T2, and s / 3 + α samples in the section T3. Further, it is assumed that the processor 22-3 generates s / 3 + α samples in the section T1, s / 3 samples in the section T2, and s / 3 samples in the section T3. Then, 2α extra samples are collected in the interval T1, α extra samples are collected in the interval T2, and 2α extra samples are collected in the interval T3. In this case, since α in the interval T2 is the minimum value of the number of extra samples, a maximum of each interval s + α can be used for estimation of the probability distribution. At this time, the control part 21 should just discard the excess sample which was not used.

第2の実施の形態に係る情報処理システム20によれば、指標値の値域が複数の区間に分割されると共に、各タスクが全ての区間を担当するように複数のタスクが設定される。これら複数のタスクは互いに独立に実行でき、複数のタスクを複数のプロセッサに振り分けることでシミュレーション時間を短縮することができる。また、分割された区間毎にタスクを設定する場合と比べて、確率分布の推定に使用しない無駄なサンプルの発生を抑制することができ、シミュレーションを効率的に並列処理化することができる。   According to the information processing system 20 according to the second embodiment, the range of index values is divided into a plurality of sections, and a plurality of tasks are set so that each task is responsible for all sections. These multiple tasks can be executed independently of each other, and the simulation time can be shortened by distributing the multiple tasks to multiple processors. Further, compared to the case where a task is set for each divided section, it is possible to suppress the generation of useless samples that are not used for estimation of the probability distribution, and the simulation can be efficiently processed in parallel.

また、各タスクに割り当てたサンプル数を超える余分なサンプルも収集して確率分布の推定に利用すれば、さらにシミュレーションの精度を上げることができる。なお、第2の実施の形態に係るシミュレーション方法で生成するサンプルの総数は、層化抽出法を用いない通常のモンテカルロ・シミュレーションと比べて十分に少ない数に抑えられる。   Also, if extra samples exceeding the number of samples assigned to each task are collected and used for estimating the probability distribution, the accuracy of the simulation can be further improved. Note that the total number of samples generated by the simulation method according to the second embodiment can be suppressed to a sufficiently small number compared to a normal Monte Carlo simulation that does not use the stratified extraction method.

[第3の実施の形態]
次に、第3の実施の形態について説明する。
図3は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第1の図である。第3の実施の形態に係る情報処理システム100の機能は、例えば、図3に示すようなコンピュータのハードウェアを利用して実現することができる。
[Third Embodiment]
Next, a third embodiment will be described.
FIG. 3 is a first diagram illustrating an example of hardware of the information processing system according to the third embodiment. The functions of the information processing system 100 according to the third embodiment can be realized using, for example, computer hardware as shown in FIG.

図3に示すコンピュータは、CPU901、RAM902、HDD903、画像信号処理部904、入力信号処理部905、ディスクドライブ906、及び通信インターフェース907を有する。また、CPU901は、複数のコアC1、…、Cnを有する。   The computer shown in FIG. 3 includes a CPU 901, a RAM 902, an HDD 903, an image signal processing unit 904, an input signal processing unit 905, a disk drive 906, and a communication interface 907. Further, the CPU 901 has a plurality of cores C1, ..., Cn.

なお、CPU901は、第1の実施の形態の制御部11及びプロセッサ12−1、12−2、12−3の一例である。また、CPU901は、第2の実施の形態の制御部21及びプロセッサ22−1、22−2、22−3の一例である。   The CPU 901 is an example of the control unit 11 and the processors 12-1, 12-2, and 12-3 according to the first embodiment. The CPU 901 is an example of the control unit 21 and the processors 22-1, 22-2, and 22-3 according to the second embodiment.

CPU901は、プログラムに記述された命令を実行する演算器を含むプロセッサである。CPU901は、HDD903に記憶されているプログラムやデータの少なくとも一部をRAM902にロードし、プログラムに記述された命令を実行する。なお、情報処理システム100は、複数のCPU901を搭載していてもよい。   The CPU 901 is a processor including an arithmetic unit that executes instructions described in a program. The CPU 901 loads at least a part of the program and data stored in the HDD 903 into the RAM 902 and executes instructions described in the program. Note that the information processing system 100 may include a plurality of CPUs 901.

RAM902は、CPU901が実行するプログラムや、処理に用いられるデータを一時的に記憶するための揮発性メモリである。なお、情報処理システム100は、RAM902とは異なる種類のメモリを有していてもよい。また、情報処理システム100は、複数のメモリを備えていてもよい。   The RAM 902 is a volatile memory for temporarily storing programs executed by the CPU 901 and data used for processing. Note that the information processing system 100 may have a different type of memory from the RAM 902. Further, the information processing system 100 may include a plurality of memories.

HDD903は、Operating System(OS)、ファームウェア、或いは、アプリケーションソフトウェアなどのプログラムや、処理に用いられるデータなどを記憶する不揮発性記憶装置の一例である。なお、情報処理システム100は、フラッシュメモリやSolid State Drive(SSD)など、HDD903とは異なる種類の記憶装置を有していてもよい。また、情報処理システム100は、複数の記憶装置を有していてもよい。   The HDD 903 is an example of a nonvolatile storage device that stores programs such as an operating system (OS), firmware, or application software, data used for processing, and the like. Note that the information processing system 100 may include a different type of storage device from the HDD 903, such as a flash memory or a solid state drive (SSD). The information processing system 100 may have a plurality of storage devices.

画像信号処理部904は、CPU901による制御を受け、コンピュータに接続された表示装置91に画像を出力する。表示装置91は、例えば、Cathode Ray Tube(CRT)ディスプレイ、Liquid Crystal Display(LCD)、Plasma Display Panel(PDP)、Organic Electro-Luminescence Display(OELD)などの表示デバイスである。   The image signal processing unit 904 is controlled by the CPU 901 and outputs an image to the display device 91 connected to the computer. The display device 91 is a display device such as a Cathode Ray Tube (CRT) display, a Liquid Crystal Display (LCD), a Plasma Display Panel (PDP), or an Organic Electro-Luminescence Display (OELD).

入力信号処理部905は、コンピュータに接続された入力デバイス92から入力信号を取得し、CPU901に通知する。入力デバイス92としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、トラックボール、リモートコントローラ、ボタンスイッチなどを用いることができる。   The input signal processing unit 905 acquires an input signal from the input device 92 connected to the computer and notifies the CPU 901 of the input signal. As the input device 92, for example, a mouse, a keyboard, a touch panel, a touch pad, a trackball, a remote controller, a button switch, or the like can be used.

ディスクドライブ906は、記録媒体93に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体93としては、例えば、Flexible Disk(FD)、HDDなどの磁気ディスク、Compact Disc(CD)やDigital Versatile Disc(DVD)などの光ディスク、Magneto-Optical disk(MO)などの光磁気ディスクを用いることができる。ディスクドライブ906は、例えば、CPU901による制御を受け、記録媒体93から読み取ったプログラムやデータをRAM902又はHDD903に格納する。   The disk drive 906 is a reading device that reads programs and data recorded on the recording medium 93. As the recording medium 93, for example, a magnetic disk such as a Flexible Disk (FD) or HDD, an optical disk such as a Compact Disc (CD) or a Digital Versatile Disc (DVD), or a magneto-optical disk such as a Magneto-Optical disk (MO) is used. be able to. For example, the disk drive 906 is controlled by the CPU 901 and stores a program and data read from the recording medium 93 in the RAM 902 or the HDD 903.

通信インターフェース907は、ネットワーク94を介して他のコンピュータと通信を行うためのインターフェースである。通信インターフェース907は、有線インターフェースであってもよいし、無線インターフェースであってもよい。   The communication interface 907 is an interface for communicating with other computers via the network 94. The communication interface 907 may be a wired interface or a wireless interface.

また、第3の実施の形態に係る情報処理システム100の機能は、例えば、図4に示すようなコンピュータのハードウェアを利用しても実現することができる。図4は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第2の図である。   Further, the functions of the information processing system 100 according to the third embodiment can be realized by using, for example, computer hardware as shown in FIG. FIG. 4 is a second diagram illustrating an example of hardware of the information processing system according to the third embodiment.

図4に示すコンピュータは、CPU901、RAM902、HDD903、画像信号処理部904、入力信号処理部905、ディスクドライブ906、及び通信インターフェース907に加え、複数のGPU911、912、913を有する。なお、GPU911、912、913は、例えば、General-purpose Computing on Graphics Processing Units(GPGPU)用のGPUである。   4 includes a plurality of GPUs 911, 912, and 913 in addition to a CPU 901, a RAM 902, an HDD 903, an image signal processing unit 904, an input signal processing unit 905, a disk drive 906, and a communication interface 907. The GPUs 911, 912, and 913 are, for example, GPUs for general-purpose computing on graphics processing units (GPGPU).

なお、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の一例である。   The CPU 901 is an example of the control unit 11 according to the first embodiment. The GPUs 911, 912, and 913 are examples of the processors 12-1, 12-2, and 12-3 according to the first embodiment. The CPU 901 is an example of the control unit 21 according to the second embodiment. The GPUs 911, 912, and 913 are examples of the processors 22-1, 22-2, and 22-3 according to the second embodiment.

また、第3の実施の形態に係る情報処理システム100の機能は、例えば、図5に示すような複数のコンピュータのハードウェアを利用しても実現することができる。図5は、第3の実施の形態に係る情報処理システムのハードウェアの例を示した第3の図である。   Further, the functions of the information processing system 100 according to the third embodiment can be realized by using a plurality of computer hardwares as shown in FIG. 5, for example. FIG. 5 is a third diagram illustrating an example of hardware of the information processing system according to the third embodiment.

図5に示すように、複数のコンピュータ90−1、90−2、90−3は、ネットワーク94を介して接続されている。また、コンピュータ90−1は、CPU921、RAM922、HDD923、及び通信インターフェース924を有する。また、コンピュータ90−2は、CPU931、RAM932、及び通信インターフェース933を有する。また、コンピュータ90−3は、CPU941、RAM942、及び通信インターフェース943を有する。   As shown in FIG. 5, the plurality of computers 90-1, 90-2 and 90-3 are connected via a network 94. In addition, the computer 90-1 includes a CPU 921, a RAM 922, an HDD 923, and a communication interface 924. Further, the computer 90-2 includes a CPU 931, a RAM 932, and a communication interface 933. The computer 90-3 includes a CPU 941, a RAM 942, and a communication interface 943.

なお、CPU921、931は、上述したCPU901と実質的に同じである。但し、CPU931は、例えば、GPGPUであってもよい。また、RAM922、932は、上述したRAM902と実質的に同じである。また、HDD923は、上述したHDD903と実質的に同じである。また、通信インターフェース924、933は、上述した通信インターフェース907と実質的に同じである。また、コンピュータ90−1、90−2、90−3は、上述した画像信号処理部904、入力信号処理部905、ディスクドライブ906を有していてもよい。   The CPUs 921 and 931 are substantially the same as the CPU 901 described above. However, the CPU 931 may be a GPGPU, for example. The RAMs 922 and 932 are substantially the same as the RAM 902 described above. The HDD 923 is substantially the same as the HDD 903 described above. The communication interfaces 924 and 933 are substantially the same as the communication interface 907 described above. The computers 90-1, 90-2, 90-3 may include the image signal processing unit 904, the input signal processing unit 905, and the disk drive 906 described above.

なお、CPU921は、第1の実施の形態の制御部11の一例である。また、CPU931は、第1の実施の形態のプロセッサ12−1、12−2、12−3の一例である。また、CPU921は、第2の実施の形態の制御部21の一例である。また、CPU931は、第2の実施の形態のプロセッサ22−1、22−2、22−3の一例である。   The CPU 921 is an example of the control unit 11 according to the first embodiment. The CPU 931 is an example of the processors 12-1, 12-2, and 12-3 according to the first embodiment. The CPU 921 is an example of the control unit 21 according to the second embodiment. The CPU 931 is an example of the processors 22-1, 22-2, and 22-3 according to the second embodiment.

図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と表記して説明を行う。
FIG. 6 is a diagram illustrating an example of functional blocks of the information processing system according to the third embodiment.
As illustrated in FIG. 6, the information processing system 100 includes a first processor 110, a plurality of second processors 120-1, 120-2,..., 120 -N, and a storage device 130. The plurality of second processors 120-1, 120-2,..., 120-N have the same function. Therefore, the second processor 120-1 is taken as a representative example, and in the following, this will be described as the second processor 120.

なお、第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に接続されたファイルサーバなどの外部記憶装置である。   Note that the functions of the first processor 110 can be realized by the CPUs 901 and 921. The functions of the second processors 120-1,..., 120-N can be realized by the CPU 901, the GPUs 911, 912, 913, or the CPU 931. In addition, some or all of the functions of the first processor 110 and the second processor 120 can be realized as a module of a program executed by the CPUs 901 and 921. Also, some or all of the functions of the first processor 110 and the second processor 120 can be realized as an electronic circuit instead of software. The storage device 130 is a storage area secured in the RAMs 902, 922, 932 and HDDs 903, 923 or an external storage device such as a file server connected to the network 94.

第1プロセッサ110は、確率変数を含む計算式の値がとる確率分布を近似的に計算し、その確率分布から得られる指標値を算出する。なお、第1プロセッサ110は、乱数生成部111、分布計算部112、指標計算部113、指標選択部114、及び指標出力部115の機能を有する。   The first processor 110 approximately calculates a probability distribution taken by a value of a calculation formula including a random variable, and calculates an index value obtained from the probability distribution. The first processor 110 has functions of a random number generation unit 111, a distribution calculation unit 112, an index calculation unit 113, an index selection unit 114, and an index output unit 115.

乱数生成部111は、上記の計算式に含まれる確率変数が従う密度関数pに基づいて乱数群を発生させる。なお、密度関数pの情報は、記憶装置130に格納されている。乱数生成部111が発生させた乱数群は、分布計算部112に入力される。   The random number generation unit 111 generates a random number group based on the density function p followed by the random variable included in the above calculation formula. Information on the density function p is stored in the storage device 130. The random number group generated by the random number generation unit 111 is input to the distribution calculation unit 112.

分布計算部112は、乱数生成部111が発生させた乱数群を利用して上記の計算式の値がとる確率分布を近似的に計算する。分布計算部112は、乱数群に含まれる各乱数を上記の計算式に含まれる確率変数の値として代入し、計算式の値(以下、第1計算値)を計算する。また、分布計算部112は、第1計算値の密度分布を生成する。分布計算部112が生成した密度分布は、指標計算部113に入力される。   The distribution calculation unit 112 approximately calculates the probability distribution that the value of the above calculation formula takes, using the random number group generated by the random number generation unit 111. The distribution calculation unit 112 substitutes each random number included in the random number group as the value of the random variable included in the above calculation formula, and calculates the value of the calculation formula (hereinafter, the first calculation value). In addition, the distribution calculation unit 112 generates a density distribution of the first calculation value. The density distribution generated by the distribution calculation unit 112 is input to the index calculation unit 113.

指標計算部113は、分布計算部112が生成した密度分布に基づいて、ある条件を満たす指標値を計算する。指標値としては、例えば、密度分布の下方1パーセンタイル点、下方5パーセンタイル点、期待値、分散値、半値幅など、様々な統計値が考えられる。以下では、一例としてP0パーセンタイル点を指標値とする計算について考える。 The index calculation unit 113 calculates an index value that satisfies a certain condition based on the density distribution generated by the distribution calculation unit 112. As the index value, for example, various statistical values such as the lower 1 percentile point, the lower 5 percentile point of the density distribution, the expected value, the variance value, and the half value width can be considered. In the following, a calculation using the P 0 percentile point as an index value will be considered as an example.

指標計算部113は、計算した指標値を基準に複数の仮指標値を設定する。仮指標値は、例えば、指標値よりも5%、10%大きな値、指標値よりも5%、10%小さな値など、予め設定された条件を満たすように設定される。指標計算部113により設定された複数の仮指標値は、記憶装置130に格納される。   The index calculation unit 113 sets a plurality of temporary index values based on the calculated index value. The temporary index value is set so as to satisfy a preset condition such as a value 5% or 10% larger than the index value or a value 5% or 10% smaller than the index value. A plurality of temporary index values set by the index calculation unit 113 are stored in the storage device 130.

第2プロセッサ120は、仮指標値の1つを記憶装置130から読み出し、その仮指標値を利用して上記の計算式の値がとる確率分布を近似的に計算し、その確率分布から得られる累積密度と、指標値の算出基準とした確率P0との差分値を計算する。なお、第2プロセッサ120は、乱数生成部121、分布計算部122、及び累積密度計算部123の機能を有する。 The second processor 120 reads one of the temporary index values from the storage device 130, uses the temporary index value to approximately calculate the probability distribution represented by the value of the above formula, and is obtained from the probability distribution. A difference value between the cumulative density and the probability P 0 as the index value calculation reference is calculated. The second processor 120 has functions of a random number generation unit 121, a distribution calculation unit 122, and a cumulative density calculation unit 123.

乱数生成部121は、仮指標値の近辺に計算値が集中するような乱数群を発生させる密度関数を密度関数qに設定する。また、乱数生成部121は、密度関数qに基づいて乱数群を発生させる。乱数生成部121が発生させた乱数群は、分布計算部122に入力される。また、密度関数qの情報は、分布計算部122に入力される。   The random number generation unit 121 sets a density function q that generates a random number group in which calculated values are concentrated in the vicinity of the temporary index value. Further, the random number generation unit 121 generates a random number group based on the density function q. The random number group generated by the random number generation unit 121 is input to the distribution calculation unit 122. Information about the density function q is input to the distribution calculation unit 122.

分布計算部122は、乱数生成部121が発生させた乱数群を利用して上記の計算式の値がとる確率分布を近似的に計算する。分布計算部122は、記憶装置130から密度関数pの情報を取得し、密度関数p及びqの情報を利用して上記の計算式の値を計算するための変換式を設定する。例えば、確率変数Xが密度関数pに従う場合、計算式F(X)の期待値Ep(F(X))は、下記の式(1)のように表現される。但し、Ep(・)は、密度関数pに従う確率変数Xに関する期待値を表す。 The distribution calculation unit 122 approximately calculates the probability distribution that the value of the above calculation formula takes, using the random number group generated by the random number generation unit 121. The distribution calculation unit 122 acquires information on the density function p from the storage device 130, and sets a conversion formula for calculating the value of the above formula using the information on the density functions p and q. For example, when the random variable X follows the density function p, the expected value E p (F (X)) of the calculation formula F (X) is expressed as the following formula (1). However, E p (·) represents an expected value related to the random variable X according to the density function p.

Figure 2014123272
Figure 2014123272

さらに、上記の式(1)は、下記の式(2)に示すように、密度関数qに従う確率変数Yに関する期待値Eq(・)へと変形することができる。このことは、変換式p(Y)/q(Y)を利用することで、密度関数pに従う確率変数Xに関する期待値を密度関数qに従う確率変数Yに関する期待値に置き換え可能であることを意味する。ちなみに、モンテカルロ・シミュレーションによる積分Iの解IMCは、y1,…,yNを密度関数qに従う互いに独立な乱数として下記の式(3)により得られる。なお、ここでは期待値を例に挙げたが、他の統計値についても同様に変換式による確率変数の置き換えが可能である。 Furthermore, the above equation (1) can be transformed into an expected value E q (•) related to the random variable Y according to the density function q, as shown in the following equation (2). This means that the expected value for the random variable X according to the density function p can be replaced with the expected value for the random variable Y according to the density function q by using the conversion formula p (Y) / q (Y). To do. Incidentally, the solution I MC of the integral I by the Monte Carlo simulation is obtained by the following equation (3), where y 1 ,..., Y N are independent random numbers according to the density function q. In addition, although the expected value was mentioned here as an example, the random variable can be replaced by the conversion formula in the same manner for other statistical values.

Figure 2014123272
Figure 2014123272

Figure 2014123272
Figure 2014123272

分布計算部122は、乱数群に含まれる各乱数を上記の計算式及び変換式の積に含まれる確率変数の値として代入し、当該積の値(以下、第2計算値)を計算する。また、分布計算部122は、第2計算値の密度分布を生成する。分布計算部122が生成した密度分布は、累積密度計算部123に入力される。累積密度計算部123は、分布計算部122が生成した密度分布について仮指標値までの累積密度を計算する。また、累積密度計算部123は、計算した累積密度と、指標値の算出基準とした確率P0との差分値を計算する。累積密度計算部123により計算された差分値は、記憶装置130に格納される。 The distribution calculation unit 122 substitutes each random number included in the random number group as the value of the random variable included in the product of the above calculation formula and conversion formula, and calculates the value of the product (hereinafter, the second calculation value). In addition, the distribution calculation unit 122 generates a density distribution of the second calculation value. The density distribution generated by the distribution calculation unit 122 is input to the cumulative density calculation unit 123. The cumulative density calculation unit 123 calculates the cumulative density up to the temporary index value for the density distribution generated by the distribution calculation unit 122. Further, the cumulative density calculation unit 123 calculates a difference value between the calculated cumulative density and the probability P 0 as the index value calculation reference. The difference value calculated by the cumulative density calculation unit 123 is stored in the storage device 130.

記憶装置130には、複数の第2プロセッサ120−1、…、120−Nにより計算された複数の差分値が格納される。指標選択部114は、記憶装置130に格納された複数の差分値の中から最小の差分値を抽出し、抽出した差分値に対応する仮指標値を選択する。また、指標選択部114は、選択した仮指標値を基準に新たな複数の仮指標値を設定する。仮指標値は、例えば、指標値よりも4%、8%大きな値、指標値よりも4%、8%小さな値など、予め設定された条件を満たすように設定される。指標選択部114により新たに設定された複数の仮指標値は、記憶装置130に格納される。   The storage device 130 stores a plurality of difference values calculated by the plurality of second processors 120-1,..., 120-N. The index selection unit 114 extracts the minimum difference value from the plurality of difference values stored in the storage device 130, and selects a temporary index value corresponding to the extracted difference value. In addition, the index selection unit 114 sets a plurality of new temporary index values based on the selected temporary index value. The temporary index value is set so as to satisfy a preset condition such as a value 4% or 8% larger than the index value or a value 4% or 8% smaller than the index value. A plurality of temporary index values newly set by the index selection unit 114 are stored in the storage device 130.

また、複数の第2プロセッサ120−1、…、120−Nは、新たに設定された複数の仮指標値について上記の差分値を計算し、記憶装置130に格納する。指標選択部114は、記憶装置130に格納された複数の差分値の中から最小の差分値を抽出し、抽出した差分値に対応する仮指標値を選択する。複数の第2プロセッサ120−1、…、120−Nによる差分値の計算、及び指標選択部114による仮指標値の選択は、終了条件を満たすまで繰り返し行われる。終了条件としては、例えば、ユーザによる停止操作、予め設定された繰り返し回数、最小の差分値の閾値判定、或いは、差分値の収束判定などが考えられる。   In addition, the plurality of second processors 120-1,..., 120-N calculate the above difference values for the plurality of newly set temporary index values, and store them in the storage device 130. The index selection unit 114 extracts the minimum difference value from the plurality of difference values stored in the storage device 130, and selects a temporary index value corresponding to the extracted difference value. The calculation of the difference value by the plurality of second processors 120-1,..., 120-N and the selection of the temporary index value by the index selection unit 114 are repeatedly performed until the end condition is satisfied. As the termination condition, for example, a stop operation by the user, a preset number of repetitions, a threshold determination of the minimum difference value, or a convergence determination of the difference value can be considered.

終了条件を満たした場合、指標選択部114は、選択した仮指標値を計算結果として指標出力部115に入力する。指標出力部115は、指標選択部114が入力した仮指標値を指標値の計算結果として出力する。例えば、指標出力部115は、計算結果の情報を表示装置91に表示させる。また、指標出力部115は、ネットワーク94を介して計算結果の情報を他の機器に提供してもよい。また、指標出力部115は、終了条件を満たしていない場合でも、指標選択部114が選択した仮指標値を逐次出力してもよい。   When the end condition is satisfied, the index selection unit 114 inputs the selected temporary index value to the index output unit 115 as a calculation result. The index output unit 115 outputs the temporary index value input by the index selection unit 114 as a calculation result of the index value. For example, the index output unit 115 causes the display device 91 to display calculation result information. Further, the index output unit 115 may provide information on the calculation result to other devices via the network 94. Further, the index output unit 115 may sequentially output the temporary index values selected by the index selection unit 114 even when the end condition is not satisfied.

以上説明したように、第3の実施の形態に係る情報処理システム100によれば、第1プロセッサ110により計算対象の指標値が計算される。また、その指標値周辺に複数の仮指標値を設定し、各仮指標値の近辺に計算値が集中するような乱数群を発生させることで、より精度の高い密度分布が計算される。さらに、複数の仮指標値の中から、求めたい指標値に近い仮指標値が選択され、その仮指標値が計算結果として出力される。   As described above, according to the information processing system 100 according to the third embodiment, the first processor 110 calculates the index value to be calculated. Further, by setting a plurality of temporary index values around the index value and generating a random number group in which the calculated values are concentrated in the vicinity of each temporary index value, a more accurate density distribution is calculated. Further, a temporary index value close to the desired index value is selected from a plurality of temporary index values, and the temporary index value is output as a calculation result.

このように、第1プロセッサ110による計算結果を利用して、より高精度の計算が実行されるため、第1プロセッサ110による計算は少ない乱数を用いて実行されてもよい。また、第2プロセッサ120による計算は仮指標値の近辺に計算値が集中するような乱数群を用いて実行されるため、この計算に用いる乱数の数も少なくてよい。さらに、複数の第2プロセッサ120−1、…、120−Nによる計算は互いに独立しているため、並列に実行される。   Thus, since the calculation with higher accuracy is executed using the calculation result of the first processor 110, the calculation by the first processor 110 may be executed using a small random number. Further, since the calculation by the second processor 120 is executed using a random number group in which the calculated values are concentrated in the vicinity of the temporary index value, the number of random numbers used for this calculation may be small. Furthermore, since the calculations by the plurality of second processors 120-1,..., 120-N are independent of each other, they are executed in parallel.

従って、第3の実施の形態に係る情報処理システム100によれば、通常のモンテカルロ・シミュレーションによって指標値を計算する場合に比べ、指標値の計算に用いる乱数の数を低減することができ、シミュレーション計算の実行回数を削減できる。また、シミュレーション計算の一部が並列実行されることから、計算資源を効率的に活用して高速な演算が可能になる。   Therefore, according to the information processing system 100 according to the third embodiment, the number of random numbers used for calculating the index value can be reduced as compared with the case where the index value is calculated by a normal Monte Carlo simulation. The number of calculations can be reduced. In addition, since a part of the simulation calculation is executed in parallel, it is possible to perform a high-speed calculation by efficiently using the calculation resources.

以下、Value at Risk(VaR)の計算方法を例に挙げ、第3の実施の形態に係る情報処理システム100による処理について説明する。
図7は、VaRの計算方法について説明するための図である。
Hereinafter, the processing by the information processing system 100 according to the third embodiment will be described by taking the calculation method of Value at Risk (VaR) as an example.
FIG. 7 is a diagram for explaining a method of calculating VaR.

VaRは、市場リスク管理のためのリスク指標として利用される。例えば、図7に示すように、複数の金融資産を組み合わせたポートフォリオから将来発生する損益額の密度分布における下方P0パーセンタイルを与える点がVaRとして用いられる。なお、確率P0は、1%や5%に設定されることが多い。VaRは、モンテカルロ・シミュレーションを利用して計算することができる。 VaR is used as a risk index for market risk management. For example, as shown in FIG. 7, a point giving a lower P 0 percentile in the density distribution of future profits and losses from a portfolio in which a plurality of financial assets are combined is used as VaR. The probability P 0 is often set to 1% or 5%. VaR can be calculated using Monte Carlo simulation.

一例として、1つの株式及びそのヨーロピアンコールオプション(以下、オプション)から成るポートフォリオのVaRをモンテカルロ・シミュレーションにより計算する方法を紹介する。なお、オプションの満期をT、オプションの権利行使価格をK、時点tにおける株価をSt、金利をrd、株価投資収益率のボラティリティをσと表記する。また、リスク中立な株価の確率過程を考える。この場合、ウィナー過程に従うランダム項をdWtと表記すると、株価の確率過程は、下記の式(4)のように表現される。また、オプションにより生じるキャッシュフローCは、下記の式(5)のように表現される。 As an example, a method for calculating VaR of a portfolio composed of one stock and its European call option (hereinafter referred to as option) by Monte Carlo simulation is introduced. It should be noted, is referred to as the maturity of the option T, K the exercise price of the option, the stock price S t at the time t, the interest rate r d, the volatility of the stock return on investment σ. Also consider the risk-neutral stock price stochastic process. In this case, if a random term following the Wiener process is expressed as dW t , the probability process of the stock price is expressed as the following equation (4). The cash flow C generated by the option is expressed as in the following equation (5).

Figure 2014123272
Figure 2014123272

Figure 2014123272
Figure 2014123272

モンテカルロ・シミュレーションを適用するため、上記の式(4)に示した確率微分方程式を差分方程式で近似する。満期Tまでの期間をN等分し、N等分した時間刻みをΔtと表現する。また、平均0、分散1の標準正規分布に従う乱数εを用いてウィナー過程に従うランダム項dWtを表現する。このような近似により、上記の式(4)に示した確率微分方程式は、下記の式(6)に示すような差分方程式で表現することができる。 In order to apply the Monte Carlo simulation, the stochastic differential equation shown in the above equation (4) is approximated by a difference equation. The period up to the maturity T is divided into N equal parts, and the time increment divided into N parts is expressed as Δt. Also, a random term dW t following the Wiener process is expressed using a random number ε according to a standard normal distribution with an average of 0 and a variance of 1. By such approximation, the stochastic differential equation shown in the above equation (4) can be expressed by a differential equation as shown in the following equation (6).

Figure 2014123272
Figure 2014123272

現在の株価S0が与えられた場合、上記の式(6)に従ってSΔt、S2Δt、…、SNΔtを順に計算することで株価のパスが得られる。また、上記の式(5)に基づいてオプションにより生じるキャッシュフローC(ST)が得られる。また、満期Tにおける株式及びオプションから成るポートフォリオの価値が下記の式(7)により得られる。また、株価のパスを十分な数だけ発生させることで、ポートフォリオの価値の分布を計算することができる。 If the current stock price S 0 given, SΔ t according to the above equation (6), S 2 Δ t , ..., path stock is obtained by calculating the S N delta t in order. In addition, cash flow C (S T ) generated by the option is obtained based on the above equation (5). Also, the value of the portfolio consisting of stocks and options at maturity T is obtained by the following equation (7). In addition, the distribution of portfolio values can be calculated by generating a sufficient number of stock price paths.

Figure 2014123272
Figure 2014123272

ポートフォリオの価値の分布が得られると、その分布の下方P0パーセンタイル点に対応するポートフォリオの価値が計算できる。確率P0が5%である場合、発生させた多数のパスについて計算したポートフォリオの価値の中から、価値の低い順に数えて全体の5%にあたるポートフォリオの価値がVaRに相当する。例えば、株価のパスを1万通り発生させた場合、価値の小さい順に数えて500番目にあたるポートフォリオの価値が、このポートフォリオにおけるVaRとなる。 Once the portfolio value distribution is obtained, the portfolio value corresponding to the lower P 0 percentile point of the distribution can be calculated. In the case where the probability P 0 is 5%, the value of the portfolio corresponding to 5% of the total value counted in descending order from the value of the portfolio calculated for the generated many paths corresponds to VaR. For example, when 10,000 stock price paths are generated, the value of the portfolio corresponding to the 500th counted from the smallest value is VaR in this portfolio.

上記のような方法により、モンテカルロ・シミュレーションを用いてVaRを計算することができる。しかし、上記のような単純なモンテカルロ・シミュレーションの場合、大量のパスを発生させなければ十分な計算精度が得られない。   With the above method, VaR can be calculated using Monte Carlo simulation. However, in the case of the simple Monte Carlo simulation as described above, sufficient calculation accuracy cannot be obtained unless a large number of paths are generated.

そこで、少ないパスで精度良くVaRを計算できるようにする方法について考える。上記の式(5)から、満期株価STが権利行使価格Kを下回るパスは、オプションの価値に寄与しないことが分かる。また、ポートフォリオの価値がVaRを大きく上回るパスはVaRの計算にほとんど寄与しないことが分かる。これらの状況を考慮すると、重点サンプリング法を適用して、VaRの付近に計算結果が集中するようなパスを生成する方法が効果的である。 Therefore, a method for allowing VaR to be calculated accurately with a small number of paths will be considered. From the above equation (5), the path to maturity stock S T is less than the exercise price K is, it can be seen that does not contribute to the value of the options. It can also be seen that a path whose portfolio value greatly exceeds VaR contributes little to the calculation of VaR. In consideration of these situations, it is effective to apply an importance sampling method and generate a path in which calculation results are concentrated in the vicinity of VaR.

図8は、重点サンプリング法について説明するための図である。
重点サンプリング法は、乱数が従う密度関数を変形し、特定の範囲に乱数の発生を集中させることで求めたい解を効率的に計算する方法である。例えば、適切な密度関数qを選べば、図8に示すように、VaR付近に計算結果が集中するような乱数を発生させることができ、求めたい解であるVaRを効率的に計算することができる。
FIG. 8 is a diagram for explaining the importance sampling method.
The importance sampling method is a method for efficiently calculating a desired solution by transforming a density function followed by random numbers and concentrating the generation of random numbers in a specific range. For example, if an appropriate density function q is selected, as shown in FIG. 8, it is possible to generate a random number such that calculation results are concentrated in the vicinity of VaR, and to efficiently calculate VaR that is a desired solution. it can.

ここで、密度関数qの選び方について考える。例えば、上記の式(2)に示した積分値Iを計算する場合、モンテカルロ・シミュレーションにおける解IMCの誤差分散を減らすように密度関数qを選ぶことができれば重点サンプリング法が実現する。解IMCの誤差分散を最小化するような密度関数qは、近似的に下記の式(8)により与えられる。なお、VaRを計算する場合、計算式Fを上記の式(7)とし、解IをVaRの値とすれば、同様にして誤差分散を最小化する密度関数qを得ることができる。 Here, how to select the density function q will be considered. For example, when calculating the integral value I shown in the above equation (2), if the density function q can be selected so as to reduce the error variance of the solution I MC in the Monte Carlo simulation, the weighted sampling method is realized. Density function q that minimizes the error variance of the solution I MC is given by approximately the following equation (8). When calculating VaR, the density function q that minimizes the error variance can be obtained in the same manner by setting the calculation formula F to the above formula (7) and the solution I as the value of VaR.

Figure 2014123272
Figure 2014123272

ここで、上記のようなシミュレーション計算の並列実行を効率化する方法について考える。なお、ここでもVaRの計算を例に説明を進める。
図9は、重点サンプリング法の並列化について説明するための第1の図である。
Here, a method for improving the efficiency of parallel execution of the above simulation calculation will be considered. Here, the explanation will be made taking VaR calculation as an example.
FIG. 9 is a first diagram for explaining parallelization of the importance sampling method.

図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)の設定に利用される。
As shown in FIG. 9, the parallel simulation calculation according to the third embodiment is executed in stages.
In the first stage (# 1), a normal Monte Carlo simulation (MC calculation) is executed, and VaR 1 indicating the lower P 0 percentile point is calculated. However, in the first stage (# 1), VaR 1 with a small number of random numbers (passes) is calculated because it is not necessary to calculate VaR with high accuracy. For example, in the case where 100,000 paths are required to calculate VaR only by normal Monte Carlo simulation, VaR 1 is calculated in about 100 to 1000 paths in the first stage (# 1) calculation. VaR 1 calculated in the first stage (# 1) is used for setting temporary index values (VaR 11 , VaR 12 ,..., VaR 1M ) used in the second stage (# 2).

なお、第1段階(#1)で実行されるシミュレーション計算は、第1プロセッサ110により実行される。また、仮指標値の数Mは任意に設定することができる。
第2段階(#2)で利用する仮指標値は、VaR1を基準に上下数%ずれた値が設定される。例えば、VaR11は0.9*VaR1、…、VaR1Mは1.1*VaR1などと設定される。なお、仮指標値の設定方法は、この例に限定されず任意に決めてよい。仮指標値が設定されると、第2段階(#2)の計算が実行される。
The simulation calculation executed in the first stage (# 1) is executed by the first processor 110. Further, the number M of temporary index values can be set arbitrarily.
The temporary index value used in the second stage (# 2) is set to a value shifted by several percent in the vertical direction with respect to VaR 1 . For example, VaR 11 is set to 0.9 * VaR 1 ,..., And VaR 1M is set to 1.1 * VaR 1 . The setting method of the temporary index value is not limited to this example, and may be arbitrarily determined. When the temporary index value is set, the calculation of the second stage (# 2) is executed.

第2段階(#2)では、複数の仮指標値VaR11、…、VaR1Mを用いて重点サンプリング法(IS)に基づくモンテカルロ・シミュレーションが実行される。なお、第2段階(#2)で仮指標値毎に実行されるシミュレーション計算は互いに独立しているため、複数のシミュレーション計算を並列実行することが可能である。例えば、VaR11を用いたシミュレーション計算を第2プロセッサ120−1で実行し、VaR12を用いたシミュレーション計算を第2プロセッサ120−2で実行するといった並列処理を実現することができる。 In the second stage (# 2), a Monte Carlo simulation based on the importance sampling method (IS) is executed using a plurality of temporary index values VaR 11 ,..., VaR 1M . Since the simulation calculations executed for each temporary index value in the second stage (# 2) are independent from each other, a plurality of simulation calculations can be executed in parallel. For example, it is possible to realize parallel processing in which simulation calculation using VaR 11 is executed by the second processor 120-1 and simulation calculation using VaR 12 is executed by the second processor 120-2.

なお、第2段階(#2)で実行する複数のシミュレーション計算は、利用する仮指標値が異なる以外は実質的に同じ計算内容となる。そこで、VaR11を用いたシミュレーション計算を例に説明を行う。 The plurality of simulation calculations executed in the second stage (# 2) have substantially the same calculation contents except that the temporary index values to be used are different. Therefore, description will be made by taking an example of simulation calculation using VaR 11 .

VaR11が設定されると、VaR11を基準として重点サンプリング法を実現するための密度関数qが設定される。密度関数qは、モンテカルロ・シミュレーションによる近似解IMCをVaR11として上記の式(8)により与えられる。 When VaR 11 is set, a density function q for realizing the importance sampling method is set based on VaR 11 . The density function q is given by the above equation (8) using VaR 11 as an approximate solution I MC by Monte Carlo simulation.

また、設定した密度関数qに基づいて重点サンプリング法によるモンテカルロ・シミュレーションが実行され、ポートフォリオの価値の密度分布が計算される。また、計算された密度分布の下方VaR11までの面積(累積密度P11)が算出される。同様にして、他の仮指標値VaR12、…、VaR1Mについても、それぞれ密度分布が計算され、累積密度P12、…、P1Mが算出される。なお、第2段階(#2)で実行されるシミュレーション計算は、重点サンプリング法が適用されるため、第1段階(#1)のシミュレーション計算と同程度又はそれよりも少ないパスで実行されてもよい。 Further, based on the set density function q, a Monte Carlo simulation by the importance sampling method is executed, and the density distribution of the portfolio value is calculated. In addition, the area (cumulative density P 11 ) up to the lower VaR 11 of the calculated density distribution is calculated. Similarly, density distributions are calculated for the other temporary index values VaR 12 ,..., VaR 1M , and cumulative densities P 12 ,. The simulation calculation executed in the second stage (# 2) is performed using the same sampling method as the simulation calculation in the first stage (# 1) because the importance sampling method is applied. Good.

第2段階(#2)で算出された複数の累積密度P11、…、P1Mは、第3段階(#3)でVaRの選択処理に利用される。第3段階(#3)では、複数の累積密度P11、…、P1MのそれぞれとP0との差分値が計算され、差分値が最小となる累積密度に対応する仮指標値が選択される。例えば、差分値が最小となる累積密度がP1kであった場合、第3段階(#3)では仮指標値VaR1kが選択される。選択された仮指標値VaR1kは、第4段階(#4)で利用する仮指標値(VaR21、VaR22、…、VaR2M)の設定に利用される指標値VaR2となる。 The plurality of cumulative densities P 11 ,..., P 1M calculated in the second stage (# 2) are used for the VaR selection process in the third stage (# 3). In the third stage (# 3), a difference value between each of the plurality of cumulative densities P 11 ,..., P 1M and P 0 is calculated, and a temporary index value corresponding to the cumulative density that minimizes the difference value is selected. The For example, when the cumulative density that minimizes the difference value is P 1k , the temporary index value VaR 1k is selected in the third stage (# 3). The selected temporary index value VaR 1k becomes the index value VaR 2 used for setting the temporary index values (VaR 21 , VaR 22 ,..., VaR 2M ) used in the fourth stage (# 4).

なお、第4段階(#4)で利用する仮指標値の数はMでなくてもよい。また、第4段階(#4)で利用する仮指標値は、例えば、VaR2を基準に上下数%ずれた値が設定される。例えば、VaR21は0.95*VaR2、…、VaR2Mは1.05*VaR2などと設定される。但し、仮指標値の設定方法は、この例に限定されず任意に決めてよい。また、第4段階(#4)で利用する仮指標値の設定に用いるずれ量は、第2段階(#2)で利用する仮指標値の設定に用いたずれ量よりも小さく(例えば、半分程度に)設定してもよい。 Note that the number of temporary index values used in the fourth stage (# 4) may not be M. In addition, as the temporary index value used in the fourth stage (# 4), for example, a value shifted by several percent in the vertical direction with respect to VaR 2 is set. For example, VaR 21 is set to 0.95 * VaR 2 ,..., VaR 2M is set to 1.05 * VaR 2, etc. However, the setting method of the temporary index value is not limited to this example and may be arbitrarily determined. Further, the deviation amount used for setting the temporary index value used in the fourth stage (# 4) is smaller than the deviation amount used for setting the temporary index value used in the second stage (# 2) (for example, half). May be set).

仮指標値が設定されると、第4段階(#4)の計算が実行される。第4段階(#4)で実行されるシミュレーション計算は、仮指標値が異なる点を除いて第2段階(#2)で実行されたシミュレーション計算と実質的に同じ内容である。第4段階(#4)では、仮指標値VaR21、…、VaR2Mについて、それぞれ密度分布が計算され、累積密度P21、…、P2Mが算出される。なお、第4段階(#4)で実行されるシミュレーション計算は、第1段階(#1)又は第2段階(#2)のシミュレーション計算と同程度又はそれよりも少ないパスで実行されてもよい。 When the temporary index value is set, the calculation in the fourth stage (# 4) is executed. The simulation calculation executed in the fourth stage (# 4) has substantially the same contents as the simulation calculation executed in the second stage (# 2) except that the temporary index values are different. In the fourth stage (# 4), density distributions are calculated for the temporary index values VaR 21 ,..., VaR 2M , and cumulative densities P 21 ,. Note that the simulation calculation executed in the fourth stage (# 4) may be executed in the same or fewer paths as the simulation calculation in the first stage (# 1) or the second stage (# 2). .

その後、第3段階(#3)の処理と同様に、累積密度P21、…、P2Mに基づいて仮指標値が選択され、次の段階で利用する複数の仮指標値が設定される。そして、第4段階(#4)と同様に、複数の仮指標値に基づいて累積密度が計算される。このように、第3段階(#3)及び第4段階(#4)と同様の処理が繰り返し実行される。この繰り返し処理は、終了条件を満たすまで実行される。終了条件を満たした場合、第3段階(#3)と同様の処理により選択された仮指標値が計算結果として出力される。 After that, as in the third stage (# 3), a temporary index value is selected based on the accumulated density P 21 ,..., P 2M, and a plurality of temporary index values used in the next stage are set. Then, as in the fourth stage (# 4), the cumulative density is calculated based on a plurality of temporary index values. In this way, the same processing as in the third stage (# 3) and the fourth stage (# 4) is repeatedly executed. This iterative process is executed until the end condition is satisfied. When the end condition is satisfied, the temporary index value selected by the same process as in the third stage (# 3) is output as the calculation result.

なお、上記の終了条件としては、例えば、ユーザによる停止操作や予め設定した繰り返し回数の満了などが考えられる。また、シミュレーション計算に利用したパス数が、通常のモンテカルロ・シミュレーションだけを用いる場合に要するパス数の10分の1程度に達した場合に繰り返し処理を終了するといった方法なども考えられる。また、複数の差分値の差が閾値を下回った場合に繰り返し処理を終了する方法なども考えられる。   In addition, as said completion | finish conditions, the stop operation by a user, expiration of the preset repeat count etc. can be considered, for example. Another possible method is to end the iterative process when the number of paths used for the simulation calculation reaches about one-tenth of the number of paths required when using only a normal Monte Carlo simulation. Further, a method of ending the iterative process when the difference between a plurality of difference values falls below a threshold value may be considered.

ところで、図9の例では、VaR1を計算するために第1段階(#1)で通常のモンテカルロ・シミュレーションを実行したが、例えば、デルタ・ガンマ法などを利用してVaR1を計算する方法もある。デルタ・ガンマ法は、ポートフォリオから生じる損益を原資産価格の関数とみなし、その関数をテーラー展開の2次の項までで近似したモデルを用いてVaRなどのリスク指標を計算する方法である。デルタ・ガンマ法はモンテカルロ・シミュレーションに比べて精度が低いが、図9に例示した方法のように、重点サンプリング法を実施するための仮指標値を決める基準として用いることは可能である。 In the example of FIG. 9, a normal Monte Carlo simulation is executed in the first stage (# 1) to calculate VaR 1. For example, a method of calculating VaR 1 using the delta gamma method or the like. There is also. The delta-gamma method is a method of calculating a risk index such as VaR using a model in which profit / loss generated from a portfolio is regarded as a function of the underlying asset price and the function is approximated up to the second-order term of the Taylor expansion. Although the accuracy of the delta-gamma method is lower than that of the Monte Carlo simulation, it can be used as a reference for determining a temporary index value for performing the priority sampling method, as in the method illustrated in FIG.

図10は、重点サンプリング法の並列化について説明するための第2の図である。
図10(A)に示すように、通常のモンテカルロ・シミュレーションにより密度分布が得られる。この密度分布から、下方P0パーセンタイル点であるVaR1が得られる。また、VaR1が得られると、VaR1を基準に複数の仮指標値VaR11、…、VaR1Mを設定することができる。また、図10(B)に示すように、例えば、仮指標値VaR1kに基づいて重点サンプリング法に基づくシミュレーション計算を実行することで密度分布が得られ、その密度分布における下方VaR1kまでの面積である累積密度P1kが計算できる。また、累積密度P1kとP0との差分値が計算できる。
FIG. 10 is a second diagram for explaining parallelization of the importance sampling method.
As shown in FIG. 10A, a density distribution is obtained by a normal Monte Carlo simulation. From this density distribution, VaR 1 which is the lower P 0 percentile point is obtained. Further, when the VaR 1 is obtained, a plurality of temporary index values VaR 11 based on VaR 1, ..., it is possible to set the VaR 1M. Further, as shown in FIG. 10B, for example, a density distribution is obtained by executing a simulation calculation based on the priority sampling method based on the temporary index value VaR 1k , and the area up to the lower VaR 1k in the density distribution The cumulative density P 1k can be calculated. Further, a difference value between the cumulative densities P 1k and P 0 can be calculated.

同様にして、複数の仮指標値VaR11、…、VaR1Mについて差分値を計算し、差分値が最小になる仮指標値が選択される。また、選択された仮指標値に基づいて新たな複数の仮指標値が設定され、上記と同様にして新たな複数の仮指標値のそれぞれについて差分値が計算される。また、差分値が最小となる仮指標値が選択される。このように、仮指標値の設定及び差分値の計算が繰り返し行われ、終了条件を満たした場合に、選択された仮指標値が計算結果として出力される。なお、仮指標値が選択される度に、選択された仮指標値が計算結果の途中経過として出力されるようにしてもよい。 Similarly, a difference value is calculated for a plurality of temporary index values VaR 11 ,..., VaR 1M , and a temporary index value that minimizes the difference value is selected. A plurality of new temporary index values are set based on the selected temporary index value, and a difference value is calculated for each of the new plurality of temporary index values in the same manner as described above. Also, a temporary index value that minimizes the difference value is selected. As described above, the setting of the temporary index value and the calculation of the difference value are repeatedly performed, and when the end condition is satisfied, the selected temporary index value is output as the calculation result. Note that each time a temporary index value is selected, the selected temporary index value may be output as the progress of the calculation result.

図11は、第3の実施の形態に係る情報処理システムによる処理の流れを示した図である。なお、ポートフォリオ価値のVaRの計算方法を例に挙げて処理の流れを説明する。
(S101)乱数生成部111は、ある密度関数に従う乱数群を発生させる。
FIG. 11 is a diagram showing a flow of processing by the information processing system according to the third embodiment. The flow of processing will be described by taking the calculation method of VaR of portfolio value as an example.
(S101) The random number generation unit 111 generates a random number group according to a certain density function.

(S102)分布計算部112は、乱数生成部111が発生させた乱数群を用いてポートフォリオ価値の密度分布を計算する。指標計算部113は、分布計算部112が計算した密度分布の下方P0パーセンタイル点であるVaRを計算する。 (S102) The distribution calculation unit 112 calculates the density distribution of the portfolio value using the random number group generated by the random number generation unit 111. The index calculation unit 113 calculates VaR that is the lower P 0 percentile point of the density distribution calculated by the distribution calculation unit 112.

(S103)指標計算部113は、S102の処理で計算したVaRを基準に複数の仮VaRを設定する。例えば、指標計算部113は、S102の処理で計算したVaRを上下5%ずつずらした値を仮VaRに設定する。   (S103) The index calculation unit 113 sets a plurality of temporary VaRs based on the VaR calculated in the process of S102. For example, the index calculation unit 113 sets a value obtained by shifting the VaR calculated in the process of S102 by 5% up and down as the temporary VaR.

(S104)乱数生成部121は、仮VaRを基準に密度関数を設定する。例えば、乱数生成部121は、仮VaRの近辺に計算値が集中するような乱数群を発生させる密度関数を設定する。   (S104) The random number generation unit 121 sets a density function based on the temporary VaR. For example, the random number generation unit 121 sets a density function that generates a random number group in which calculated values are concentrated in the vicinity of the temporary VaR.

(S105)乱数生成部121は、S104で設定した密度関数に従う乱数群を発生させる。
(S106)分布計算部122は、S105で発生させた乱数群を利用し、重点サンプリング法に基づくモンテカルロ・シミュレーションによりポートフォリオ価値の密度分布を計算する。累積密度計算部123は、分布計算部122が計算した密度分布における仮VaRまでの面積(累積密度)を計算する。
(S105) The random number generation unit 121 generates a random number group according to the density function set in S104.
(S106) The distribution calculation unit 122 uses the random number group generated in S105 to calculate a portfolio value density distribution by Monte Carlo simulation based on the priority sampling method. The cumulative density calculation unit 123 calculates an area (cumulative density) up to the provisional VaR in the density distribution calculated by the distribution calculation unit 122.

なお、S104〜S106の処理は、複数の仮VaRのそれぞれについて複数の第2プロセッサ120−1、…、120−Nにより実行される。また、各仮VaRに対応する累積密度の値は、記憶装置130に格納される。   In addition, the process of S104-S106 is performed by several 2nd processor 120-1, ..., 120-N about each of several temporary VaR. The cumulative density value corresponding to each provisional VaR is stored in the storage device 130.

(S107)指標選択部114は、各仮VaRに対応する累積密度の値とP0との差分値を計算する。
(S108)指標選択部114は、S107で計算した差分値のうち、最小となる差分値に対応する仮VaRを選択する。
(S107) the index selection unit 114 calculates a difference value between the value and P 0 of the cumulative density corresponding to each formal VaR.
(S108) The index selection unit 114 selects the temporary VaR corresponding to the minimum difference value among the difference values calculated in S107.

(S109)終了条件に達した場合、処理はS110に進む。一方、終了条件に達していない場合、処理はS103に進む。終了条件としては、例えば、ユーザによる停止操作や予め設定した繰り返し回数の満了などが考えられる。   (S109) If the end condition is reached, the process proceeds to S110. On the other hand, if the end condition has not been reached, the process proceeds to S103. As the termination condition, for example, a stop operation by the user or expiration of a preset number of repetitions can be considered.

(S110)指標出力部115は、指標選択部114が選択した仮VaRを計算結果として出力する。
S110の処理が終了すると、一連の処理が完了する。なお、図11に示した処理の流れにおいてはS109で終了条件を満たした場合に計算結果が出力されるものとしたが、S108の処理で選択された仮VaRが選択の都度出力されるようにしてもよい。
(S110) The index output unit 115 outputs the temporary VaR selected by the index selection unit 114 as a calculation result.
When the processing of S110 ends, a series of processing is completed. In the processing flow shown in FIG. 11, the calculation result is output when the end condition is satisfied in S109. However, the temporary VaR selected in the processing of S108 is output every time it is selected. May be.

図12は、同精度のシミュレーション計算を実行して得られる計算値の発生頻度を比較した計算例を示す図である。
図12に示すように、通常のモンテカルロ・シミュレーション(通常のMC計算)を実行する場合、計算値の分布は、損益額がVaRから離れた位置にまで広がっている。一方、重点サンプリング法に基づくシミュレーション計算(ISに基づくMC計算)を実行する場合、計算値の分布は、VaR付近に集中する。また、同じ精度の計算結果を得るために用いる計算値の発生頻度は、通常のモンテカルロ・シミュレーションに比べ、重点サンプリング法に基づくシミュレーション計算の方が格段に少ない。すなわち、重点サンプリング法を適用することにより、シミュレーション計算の実行回数が少なくて済む。上記の情報処理システム100によれば、図15に示すのと同様の効果が得られ、シミュレーション計算の高速化及び効率化が実現される。
FIG. 12 is a diagram showing a calculation example in which the occurrence frequency of the calculated value obtained by executing the simulation calculation with the same accuracy is compared.
As shown in FIG. 12, when a normal Monte Carlo simulation (normal MC calculation) is executed, the distribution of calculated values spreads to a position where the amount of profit / loss is far from VaR. On the other hand, when the simulation calculation based on the importance sampling method (MC calculation based on IS) is executed, the distribution of the calculated values is concentrated in the vicinity of VaR. In addition, the frequency of calculation values used to obtain calculation results with the same accuracy is much lower in simulation calculations based on the priority sampling method than in normal Monte Carlo simulations. That is, by applying the importance sampling method, the number of simulation calculations can be reduced. According to the information processing system 100 described above, the same effect as shown in FIG. 15 is obtained, and the speeding up and efficiency of the simulation calculation are realized.

以上、第3の実施の形態について説明した。
[第4の実施の形態]
次に、第4の実施の形態について説明する。
The third embodiment has been described above.
[Fourth Embodiment]
Next, a fourth embodiment will be described.

図13は、第4の実施の形態に係る情報処理システムの機能ブロックの例を示した図である。なお、第4の実施の形態に係る情報処理システム200は、第3の実施の形態に係る情報処理システム100と同じハードウェアを用いて実現できる。   FIG. 13 is a diagram illustrating an example of functional blocks of the information processing system according to the fourth embodiment. Note that the information processing system 200 according to the fourth embodiment can be realized by using the same hardware as the information processing system 100 according to the third embodiment.

図13に示すように、情報処理システム200は、第1プロセッサ210、複数の第2プロセッサ220−1、220−2、…、220−N、及び記憶装置230を有する。なお、複数の第2プロセッサ220−1、220−2、…、220−Nは同じ機能を有する。そこで、第2プロセッサ220−1を代表例とし、以下では、これを第2プロセッサ220と表記して説明を行う。   As illustrated in FIG. 13, the information processing system 200 includes a first processor 210, a plurality of second processors 220-1, 220-2, ..., 220-N, and a storage device 230. The plurality of second processors 220-1, 220-2,..., 220-N have the same function. Therefore, the second processor 220-1 is taken as a representative example, and hereinafter, this will be described as the second processor 220.

なお、第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に接続されたファイルサーバなどの外部記憶装置である。   Note that the functions of the first processor 210 can be realized by the CPUs 901 and 921. The functions of the second processors 220-1,..., 220-N can be realized by the CPU 901, the GPUs 911, 912, 913, or the CPU 931. Further, part or all of the functions of the first processor 210 and the second processor 220 can be realized as a module of a program executed by the CPUs 901 and 921. Also, some or all of the functions of the first processor 210 and the second processor 220 can be realized as an electronic circuit instead of software. The storage device 230 is a storage area secured in the RAMs 902, 922, 932 and HDDs 903, 923, or an external storage device such as a file server connected to the network 94.

第1プロセッサ210は、確率変数を含む計算式の値がとる確率分布を近似的に計算し、その確率分布を複数の区間に分割する。なお、第1プロセッサ210は、乱数生成部211、分布計算部212、区間分割部213、分布合成部214、及び結果出力部215の機能を有する。また、乱数生成部211及び分布計算部212の機能は、それぞれ第3の実施の形態に係る乱数生成部111及び分布計算部112の機能と同じである。従って、乱数生成部211及び分布計算部212の機能に関する説明は省略する。   The first processor 210 approximately calculates a probability distribution represented by a value of a calculation formula including a random variable, and divides the probability distribution into a plurality of sections. The first processor 210 has functions of a random number generation unit 211, a distribution calculation unit 212, an interval division unit 213, a distribution synthesis unit 214, and a result output unit 215. The functions of the random number generation unit 211 and the distribution calculation unit 212 are the same as the functions of the random number generation unit 111 and the distribution calculation unit 112 according to the third embodiment, respectively. Therefore, the description regarding the functions of the random number generation unit 211 and the distribution calculation unit 212 is omitted.

区間分割部213は、分布計算部212により生成された密度分布を複数の区間に分割する。例えば、区間分割部213は、各区間に対応する密度分布の各領域が有する面積が等しくなるように密度分布を複数の区間に分割する。区間分割部213により分割された複数の区間を示す情報は、記憶装置230に格納される。   The section dividing unit 213 divides the density distribution generated by the distribution calculating unit 212 into a plurality of sections. For example, the section dividing unit 213 divides the density distribution into a plurality of sections so that the areas of the density distribution regions corresponding to the sections have the same area. Information indicating a plurality of sections divided by the section dividing unit 213 is stored in the storage device 230.

また、区間分割部213は、複数の第2プロセッサ220−1、…、220−Nにより計算したい計算値の数を設定する。まず、区間分割部213は、密度分布の計算に用いる計算値の総数の下限値M1を設定する。なお、この下限値は、予め設定されていてもよい。また、区間分割部213は、複数の第2プロセッサ220−1、…、220−Nのそれぞれが計算する各区間の計算値の数の下限値M2を設定する。例えば、密度分布がL個の区間に分割された場合、下限値M2は、M1/N/Lに設定される。 In addition, the section dividing unit 213 sets the number of calculation values to be calculated by the plurality of second processors 220-1, ..., 220-N. First, the section dividing unit 213 sets a lower limit value M 1 of the total number of calculation values used for calculating the density distribution. Note that this lower limit value may be set in advance. Further, the section dividing unit 213 sets a lower limit value M 2 of the number of calculated values of each section calculated by each of the plurality of second processors 220-1,..., 220-N. For example, when the density distribution is divided into L sections, the lower limit value M 2 is set to M 1 / N / L.

第2プロセッサ220は、上記の区間を示す情報を記憶装置230から読み出し、各区間に属する計算値の数が下限値M2に達するまで乱数の発生及び計算値の計算を実行する。なお、第2プロセッサ220は、乱数生成部221、分布計算部222、及び結果保持部223の機能を有する。 The second processor 220 reads the information indicating the interval from the storage unit 230, executes the computation of the generator and the calculated value of the random number to the number of calculated values belonging to each section reaches the lower limit value M 2. The second processor 220 has functions of a random number generation unit 221, a distribution calculation unit 222, and a result holding unit 223.

乱数生成部221は、所定の密度関数に基づいて乱数群を発生させる。乱数生成部211が発生させた乱数群は、分布計算部222に入力される。分布計算部222は、入力された乱数群を用いて計算値を算出する。また、分布計算部222は、記憶装置230から区間を示す情報を読み出し、算出した計算値が属する区間を判別する。分布計算部222は、各区間に属する計算値の数が下限値M2に達するまで計算値の算出を繰り返す。 The random number generation unit 221 generates a random number group based on a predetermined density function. The random number group generated by the random number generation unit 211 is input to the distribution calculation unit 222. The distribution calculation unit 222 calculates a calculated value using the input random number group. In addition, the distribution calculation unit 222 reads information indicating a section from the storage device 230 and determines a section to which the calculated value belongs. Distribution calculation unit 222 repeats the calculation of the calculated value to the number of calculated values belonging to each section reaches the lower limit value M 2.

なお、分布計算部222は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余分な計算値として結果保持部223に保持させる。一方、分布計算部222は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を計算結果として結果保持部223に保持させる。全ての区間について計算値の数が下限値M2に達した場合、分布計算部222は、結果保持部223に保持された計算値を記憶装置230に格納する。 Incidentally, the distribution calculator 222, a result the calculated value as an extra calculation value when the number of calculated values belonging to a certain interval after reaching the lower limit value M 2, calculated values are further calculated that belong to the section The holding unit 223 holds it. On the other hand, the distribution calculation unit 222 causes the result holding unit 223 to hold the calculation values calculated until the number of calculation values belonging to a certain section reaches the lower limit M 2 . When the number of calculated values reaches the lower limit M 2 for all the sections, the distribution calculation unit 222 stores the calculated values held in the result holding unit 223 in the storage device 230.

同様に、複数の第2プロセッサ220−2、…、220−Nにより計算値が計算され、計算値が記憶装置230に格納される。分布合成部214は、記憶装置230に格納された計算値を読み出し、複数の第2プロセッサ220−1、…、220−Nにより計算された計算値の集合について密度分布を生成する。   Similarly, the calculated values are calculated by the plurality of second processors 220-2,..., 220 -N, and the calculated values are stored in the storage device 230. The distribution synthesis unit 214 reads the calculated values stored in the storage device 230, and generates a density distribution for the set of calculated values calculated by the plurality of second processors 220-1, ..., 220-N.

まず、分布合成部214は、余分な計算値の集合から、各区間に属する計算値の数が等しくなるように計算値を抽出し、残りの計算値を破棄する。例えば、各区間に属する余分な計算値の数の最小数がb個である場合、分布合成部214は、各区間に属する余分な計算値をb個ずつ抽出する。また、分布合成部214は、余分な計算値の集合から抽出した計算値の集合と、複数の第2プロセッサ220−1、…、220−Nにより計算結果として得られた計算値の集合とを用いて密度分布を生成する。分布合成部214により生成された密度分布の情報は、結果出力部215に入力される。結果出力部215は、密度分布の情報を出力する。例えば、結果出力部215は、計算結果の情報を表示装置91に表示させる。また、結果出力部215は、ネットワーク94を介して計算結果の情報を他の機器に提供してもよい。   First, the distribution synthesis unit 214 extracts calculated values from the set of extra calculated values so that the number of calculated values belonging to each section is equal, and discards the remaining calculated values. For example, when the minimum number of extra calculated values belonging to each section is b, the distribution synthesis unit 214 extracts b extra calculated values belonging to each section. Further, the distribution synthesis unit 214 calculates a set of calculated values extracted from the set of extra calculated values and a set of calculated values obtained as a calculation result by the plurality of second processors 220-1,. To create a density distribution. Information on the density distribution generated by the distribution synthesis unit 214 is input to the result output unit 215. The result output unit 215 outputs density distribution information. For example, the result output unit 215 causes the display device 91 to display calculation result information. Further, the result output unit 215 may provide calculation result information to other devices via the network 94.

以上説明したように、第4の実施の形態に係る情報処理システム200によれば、第1プロセッサ210により区間の分割に用いる密度分布が計算される。そのため、密度分布が予め与えられていない場合でも、各区間に属する計算値の数が均等になるように密度分布の計算に用いる計算値を抽出することが可能になる。また、複数の第2プロセッサ220−1、…、220−Nにより各区間に属する計算値の数が所定数となるように計算値の計算を実行することで、計算の並列化による高速計算が実現される。   As described above, according to the information processing system 200 according to the fourth embodiment, the first processor 210 calculates the density distribution used for segment division. Therefore, even when the density distribution is not given in advance, it is possible to extract the calculated values used for calculating the density distribution so that the number of calculated values belonging to each section is equal. Further, by performing calculation value calculation so that the number of calculation values belonging to each section becomes a predetermined number by the plurality of second processors 220-1,. Realized.

また、複数の第2プロセッサ220−1、…、220−Nにおいて、各区間の計算値が所定数となるまで繰り返し計算値の算出を行う際、所定数を超えて算出される余分な計算値も保持しておき、分布合成部214により密度分布の計算に利用する。その結果、有効利用される余分な計算値の分だけ多くの計算値を密度分布の計算に利用できるようになり、精度を向上させることが可能になる。なお、全体の1割以下くらいの余分な計算値が発生するものと期待される。例えば、M1/Lが50なら、複数の第2プロセッサ220−1、…、220−Nのそれぞれで5個以下くらいの余分な計算値が算出される。 Further, in the plurality of second processors 220-1,..., 220-N, when the calculation value is repeatedly calculated until the calculation value of each section reaches a predetermined number, an extra calculation value calculated exceeding the predetermined number Is also stored and used by the distribution synthesis unit 214 for calculating the density distribution. As a result, it becomes possible to use as many calculation values as possible for the extra calculation values that are effectively used for calculating the density distribution, and it is possible to improve the accuracy. In addition, it is expected that an extra calculated value of about 10% or less of the whole will be generated. For example, if M 1 / L is 50, about 5 or less extra calculation values are calculated for each of the plurality of second processors 220-1,..., 220-N.

なお、複数の第2プロセッサ220−1、…、220−Nがそれぞれ層化抽出法により計算値を算出し、余分な計算値を破棄するように構成すると、多くの計算値が破棄されることになる。しかしながら、情報処理システム200によれば、余分な計算値の一部を破棄せずに有効利用することで、破棄される計算値の数を減らし、より多くの計算値を利用できるようになる。結果として、計算の効率化及び高精度化が実現される。   If the plurality of second processors 220-1,..., 220-N calculate the calculated values by the stratified extraction method and discard the extra calculated values, many calculated values are discarded. become. However, according to the information processing system 200, it is possible to reduce the number of calculated values to be discarded and use more calculated values by effectively using a part of the extra calculated values without discarding them. As a result, calculation efficiency and high accuracy are realized.

なお、第1プロセッサ210による計算結果は区間の分割に利用されるものであるため、第1プロセッサ210による計算は少ない乱数を用いて実行されてもよい。また、層化抽出法による精度の向上が見込めるため、第2プロセッサ220による計算に用いる乱数の数も通常のモンテカルロ・シミュレーションを実行する場合に比べて少なくてよい。   Since the calculation result by the first processor 210 is used for dividing the section, the calculation by the first processor 210 may be executed using a small random number. In addition, since the accuracy can be improved by the stratified extraction method, the number of random numbers used for the calculation by the second processor 220 may be smaller than that in the case of executing a normal Monte Carlo simulation.

以下、第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個の計算値を抽出し、抽出した計算値が後の計算に利用され、その他の計算値は捨てられる。そして、選択された計算値を利用して求めたい解が計算される。
Hereinafter, processing by the information processing system 200 according to the fourth embodiment will be described.
FIG. 14 is a diagram for explaining the stratified extraction method.
The stratified extraction method is a method in which the density distribution is divided into a plurality of regions having an equal area, and the generated random numbers are adjusted to be equally distributed to each region. For example, as shown in FIG. 14, it is assumed that a density distribution is given and the area is divided into six areas (A 1 ,..., A 6 ) having the same area. Moreover, as a result of generating 100 random numbers and calculating the calculated value for each random number, 18 for A 1 , 16 for A 2 , 12 for A 3 , 12 for A 4 , 20 for A 5 , Assume that A 6 includes 22 calculated values. In this case, the stratified extraction method extracts the calculated values of 12 from A 1 , 12 from A 2 , 12 from A 3 , 12 from A 4 , 12 from A 5, and 12 from A 6. The extracted calculated values are used for later calculations, and other calculated values are discarded. Then, a solution to be obtained is calculated using the selected calculated value.

層化抽出法によれば、密度分布に近い計算値の集合が求めたい解の計算に利用されるため、より少ない乱数で十分な計算精度を得ることができる。但し、層化抽出法を適用するには、密度分布の知識が前提となる。また、無駄になる乱数の数が多い。そこで、こうした問題を解決すべく次のような方法を提案する。   According to the stratified extraction method, since a set of calculated values close to the density distribution is used for calculating a desired solution, sufficient calculation accuracy can be obtained with fewer random numbers. However, knowledge of density distribution is a prerequisite for applying the stratified extraction method. In addition, there are many random numbers that are wasted. Therefore, the following method is proposed to solve these problems.

図15は、層化抽出法の並列化について説明するための図である。
図15に示すように、ここで提案する層化抽出法(SS)は3つの段階を含む。第1段階(#1)では、通常のモンテカルロ・シミュレーションにより仮の密度分布D0が計算される。なお、第1段階(#1)で実行されるシミュレーション計算は、通常のモンテカルロ・シミュレーションだけを利用して最終的な密度分布を計算する場合に比べ、少ない数の乱数を利用して実行される。
FIG. 15 is a diagram for explaining parallelization of the stratified extraction method.
As shown in FIG. 15, the stratified extraction method (SS) proposed here includes three stages. In the first stage (# 1), a temporary density distribution D 0 is calculated by a normal Monte Carlo simulation. Note that the simulation calculation executed in the first stage (# 1) is executed using a smaller number of random numbers than in the case where the final density distribution is calculated using only the normal Monte Carlo simulation. .

第2段階(#2)では、仮の密度分布D0を面積が均等になるように複数の領域に分割し、各領域に属する計算値の数が等しくなるように計算値をサンプリングする。なお、第2段階(#2)の処理は、図15に示すように並列に実行される。また、分割数Lや密度分布の計算に利用する計算値の総数の下限値M1、並列に実行される各処理で算出される領域毎の計算値の数の下限値M2などは予め設定されているものとする。 In the second step (# 2), dividing the density distribution D 0 provisional into a plurality of regions such that the area becomes equal to sample the calculated value so that the number of computed values belonging to each area are equal. Note that the processing of the second stage (# 2) is executed in parallel as shown in FIG. In addition, the lower limit value M 1 of the total number of calculation values used for calculation of the division number L and the density distribution, the lower limit value M 2 of the number of calculation values for each area calculated in each process executed in parallel, and the like are set in advance. It is assumed that

例えば、第1番目の処理では、第2プロセッサ220−1が、分割した各領域に属する計算値の数が下限値M2になるまで計算値の算出を繰り返し実行する。このとき、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余りE1として保持する。また、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を計算結果D1として保持する。全ての区間について計算値の数が下限値M2に達した場合、第2プロセッサ220−1は、結果D1及び余りE1を出力する。 For example, in the first process, the second processor 220-1, the number of calculated values belonging to each area obtained by dividing repeatedly executes the calculation of the calculated value to a lower limit value M 2. At this time, after the number of calculated values belonging to a certain section reaches the lower limit M 2 , the second processor 220-1 uses the calculated value as the remainder E 1 when the calculated value belonging to that section is further calculated. Hold as. In addition, the second processor 220-1 holds the calculation value calculated until the number of calculation values belonging to a certain section reaches the lower limit M 2 as the calculation result D 1 . When the number of calculated values reaches the lower limit M 2 for all the intervals, the second processor 220-1 outputs the result D 1 and the remainder E 1 .

同様に、第2番目の処理では結果D2及び余りE2が出力され、第3番目の処理では結果D3及び余りE3が出力される。このようにして第2段階(#2)では、結果D2、…、DL及び余りE1、…、ENが得られる。なお、第1番目〜第N番目の処理は互いに独立している。そのため、第1番目〜第N番目の処理は、それぞれ独立に第2プロセッサ220−1、…、220−Nにより実行される。 Similarly, the result D 2 and the remainder E 2 are output in the second process, and the result D 3 and the remainder E 3 are output in the third process. In this way, the second step (# 2), the result D 2, ..., D L and remainder E 1, ..., E N is obtained. Note that the first to Nth processes are independent of each other. Therefore, the first to Nth processes are executed independently by the second processors 220-1,..., 220-N.

第3段階(#3)では、結果D1、…、DNから第1の密度分布が計算される。また、余りE1、…、ENの集合から、各領域に等しく計算結果が含まれるように一部の計算結果がサンプリングされて第2の密度分布が計算される。例えば、各領域に属する余分な計算値の数の最小数がb個である場合、各領域に属する余分な計算値がb個ずつ抽出され、第2の密度分布が計算される。そして、第1及び第2の密度分布が合成され、最終的な密度分布が計算される。つまり、結果D1、…、DN、及び余りE1、…、ENからサンプリングされた計算値の集合を用いて最終的な密度分布が作成される。 In the third step (# 3), the result D 1, ..., a first density distribution is calculated from D N. Further, from the set of remainders E 1 ,..., E N , a part of the calculation results is sampled so that the calculation results are equally included in each region, and the second density distribution is calculated. For example, when the minimum number of extra calculated values belonging to each region is b, b extra calculated values belonging to each region are extracted, and the second density distribution is calculated. Then, the first and second density distributions are combined and a final density distribution is calculated. That is, the result D 1, ..., D N, and the remainder E 1, ..., a final density distribution is created using a set of sampled calculated values from E N.

上記のように、仮の密度分布D0を求めることで複数の分割領域を計算できるため、層化抽出法を実現することが可能になる。また、層化抽出法に基づくシミュレーション計算を並列実行することでシミュレーション計算が高速化される。また、第3段階(#3)で余りを再利用することにより、計算値が有効に利用され、シミュレーション計算の効率化及び精度の向上が図れる。例えば、並列して実行される各処理で余分な計算値を破棄する場合に比べて、計算の効率化及び精度の向上を図ることが可能になる。 As described above, since a plurality of divided regions can be calculated by obtaining the provisional density distribution D 0 , it becomes possible to realize a stratified extraction method. In addition, the simulation calculation based on the stratified extraction method is executed in parallel to speed up the simulation calculation. Further, by reusing the remainder in the third stage (# 3), the calculated value is effectively used, and the efficiency and accuracy of the simulation calculation can be improved. For example, it is possible to improve calculation efficiency and accuracy compared to the case of discarding an extra calculation value in each process executed in parallel.

なお、図15に示した層化抽出法は、第3の実施の形態に係る重点サンプリング法に基づくシミュレーション計算に組み合わせることが可能である。例えば、図9の第2段階(#2)で実行される各シミュレーション計算において、図15に示した方法を適用することができる。この場合、図9の第1段階(#1)で密度分布が得られているため、図15の第1段階(#1)を省略することが可能である。また、図9の第2段階(#2)と実質的に同じ内容の計算を行う第4段階(#4)及びそれ以降の段階におけるシミュレーション計算にも上記の層化抽出法を適用することができる。   Note that the stratified extraction method shown in FIG. 15 can be combined with a simulation calculation based on the priority sampling method according to the third embodiment. For example, the method shown in FIG. 15 can be applied to each simulation calculation executed in the second stage (# 2) of FIG. In this case, since the density distribution is obtained in the first stage (# 1) of FIG. 9, the first stage (# 1) of FIG. 15 can be omitted. In addition, the above stratified extraction method may be applied to the simulation calculation in the fourth stage (# 4) in which the calculation is substantially the same as the second stage (# 2) in FIG. 9 and subsequent stages. it can.

図16は、層化抽出法による分布計算の流れを示した図である。
(S201)第1プロセッサ210は、少ない乱数群を用いて、層化抽出法を適用しない通常のモンテカルロ・シミュレーションを実行して密度分布を計算する。
FIG. 16 is a diagram showing the flow of distribution calculation by the stratified extraction method.
(S201) The first processor 210 calculates a density distribution by executing a normal Monte Carlo simulation to which the stratified extraction method is not applied, using a small number of random numbers.

(S202)第1プロセッサ210は、分割数Lに基づき、S201の処理で算出した密度分布を面積の等しい複数の領域に分割する。
(S203)第1プロセッサ210は、密度分布の計算に利用する計算値の総数の下限値M1に基づき、複数の第2プロセッサ220−1、…、220−Nがそれぞれ計算する領域毎の計算値の数の下限値M2を設定する。例えば、下限値M2は、M1/N/Lに設定される。
(S202) Based on the division number L, the first processor 210 divides the density distribution calculated in the process of S201 into a plurality of regions having the same area.
(S203) the first processor 210, based on the lower limit value M 1 of the total number of calculated values utilized in the calculation of the density distribution, the plurality of second processors 220-1, ..., the calculation of each area 220-N are respectively calculated Set the lower limit M 2 of the number of values. For example, the lower limit value M 2 is set to M 1 / N / L.

(S204)複数の第2プロセッサ220−1、…、220−Nは、それぞれ各領域に属する計算値の数が下限値M2に達するまで計算値を算出する。例えば、第2プロセッサ220−1は、各領域に属する計算値の数が下限値M2になるまで計算値の算出を繰り返し実行する。このとき、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達した後、その区間に属する計算値がさらに算出された場合には当該計算値を余りとして保持する。また、第2プロセッサ220−1は、ある区間に属する計算値の数が下限値M2に達するまでに計算された計算値を結果として保持する。第2プロセッサ220−2、…、220−Nについても同様である。 (S204) a plurality of second processors 220-1, ..., 220-N calculates the calculated value until the number of calculated values belonging to each area, respectively reaches the lower limit value M 2. For example, the second processor 220-1 executes repeatedly the calculation of the calculated value to the number of calculated values belonging to each region is the lower limit value M 2. At this time, after the number of calculated values belonging to a certain section reaches the lower limit M 2 , the second processor 220-1 holds the calculated value as a remainder when the calculated value belonging to that section is further calculated. To do. In addition, the second processor 220-1 holds the calculated value calculated until the number of calculated values belonging to a certain section reaches the lower limit M 2 as a result. The same applies to the second processors 220-2, ..., 220-N.

(S205)第1プロセッサ210は、複数の第2プロセッサ220−1、…、220−Nが余りとして保持した計算値の集合から、各領域に属する計算値の数が等しくなるように計算値をサンプリングする。例えば、各領域に属する余りの計算値の数の最小数がb個である場合、各領域に属する余りの計算値がb個ずつサンプリングされる。   (S205) The first processor 210 sets the calculated values so that the number of calculated values belonging to each region is equal from the set of calculated values held by the plurality of second processors 220-1,. Sampling. For example, when the minimum number of the remaining calculated values belonging to each area is b, the remaining calculated values belonging to each area are sampled b times.

(S206)第1プロセッサ210は、複数の第2プロセッサ220−1、…、220−Nが結果として保持した計算値の集合及びS205の処理でサンプリングした計算値を用いて密度分布を生成する。S206の処理を終了すると、層化抽出法による分布計算を完了する。   (S206) The first processor 210 generates a density distribution using the set of calculated values held as a result by the plurality of second processors 220-1, ..., 220-N and the calculated values sampled in the processing of S205. When the process of S206 is completed, the distribution calculation by the stratified extraction method is completed.

以上説明したように、第4の実施の形態によれば、シミュレーション計算の一部を並列化することにより計算を高速化することができる。また、層化抽出法の適用によりシミュレーション計算を効率化することができる。また、破棄される計算値の数を減らすことで、より多くの計算値を利用可能になり計算精度を向上させることができる。   As described above, according to the fourth embodiment, it is possible to speed up the calculation by parallelizing a part of the simulation calculation. In addition, the simulation calculation can be made more efficient by applying the stratified extraction method. Further, by reducing the number of calculation values to be discarded, more calculation values can be used and calculation accuracy can be improved.

以上、第4の実施の形態について説明した。   The fourth embodiment has been described above.

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 結果出力部
10, 20, 100, 200 Information processing system 11, 21 Control unit 12-1 to 12-3, 222-1 to 22-3 Processor 13-1 to 13-3, 233-1 to 23-3 Task v1 to v3 Index values T1 to T3 Intervals 110, 210 First processors 111, 211, 121 Random number generation units 112, 122, 212, 222 Distribution calculation units 113 Index calculation units 114 Index selection units 115 Index output units 130, 230 Storage devices 120, 120 -1, 120-2, 120-N, 220, 220-1, 220-2, 220-N Second processor 123 Cumulative density calculation unit 213 Section division unit 214 Distribution composition unit 215 Result output unit

Claims (9)

複数のプロセッサを含む情報処理システムが実行する、指標値の確率分布を推定し所定の確率条件を満たす指標値を決定するシミュレーション方法であって、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、
前記複数の仮の指標値に対応する複数のタスクを前記複数のプロセッサに割り振り、
各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行し、
前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、
前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
シミュレーション方法。
A simulation method for estimating an index value probability distribution and determining an index value satisfying a predetermined probability condition, executed by an information processing system including a plurality of processors,
Select a reference index value, select a plurality of temporary index values based on the reference index value,
Assigning a plurality of tasks corresponding to the plurality of provisional index values to the plurality of processors;
As a task corresponding to each temporary index value, a model for generating index value samples from random numbers and a distribution of random numbers biased so that the index value samples are generated around the temporary index value Processing to generate probability data corresponding to the temporary index value using the processor to which the task is assigned,
Comparing the probability data corresponding to each of the plurality of provisional index values with the predetermined probability condition to select one provisional index value;
The selected temporary index value is determined as an index value that satisfies the predetermined probability condition, or the selected temporary index value is used as a new reference index value, A simulation method for selecting an index value and allocating the plurality of tasks again.
前記モデルとバイアスをかけない乱数の分布とを用いて指標値の確率分布を推定し、当該確率分布と前記所定の確率条件とに基づいて最初の前記基準の指標値を選択する
請求項1に記載のシミュレーション方法。
The index value probability distribution is estimated using the model and a random number distribution without bias, and the first index value of the reference is selected based on the probability distribution and the predetermined probability condition. The simulation method described.
各仮の指標値に対応する前記確率データは当該仮の指標値における累積確率を示し、
前記複数の仮の指標値のうち、前記確率データが示す累積確率が前記所定の確率条件が示す所定の累積確率に最も近い仮の指標値を、前記一の仮の指標値として選択する
請求項1又は2に記載のシミュレーション方法。
The probability data corresponding to each temporary index value indicates a cumulative probability in the temporary index value,
The temporary index value closest to the predetermined cumulative probability indicated by the predetermined probability condition among the plurality of temporary index values is selected as the temporary index value. 3. The simulation method according to 1 or 2.
複数のプロセッサを含む情報処理システムが実行するシミュレーション方法であって、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、
前記複数のプロセッサにp個のタスク(pは2以上の整数)を割り振り、
各タスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクが割り振られたプロセッサにおいて実行し、
前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
シミュレーション方法。
A simulation method executed by an information processing system including a plurality of processors,
The index value range is divided into a plurality of sections, and a lower limit number s (s is an integer of 2 or more) of index value samples used in each of the plurality of sections is determined.
P tasks (p is an integer of 2 or more) are allocated to the plurality of processors,
As each task, a process of generating index value samples from random numbers until at least s / p index value samples belonging to each of the plurality of sections is executed in the processor to which the task is allocated,
A simulation method of collecting s / p index value samples from each task for each of the plurality of sections and estimating an index value probability distribution using the collected index value samples of each section.
各タスクでは、前記複数の区間それぞれについてs/p個の指標値のサンプルとs/p個を超えて生成された他の指標値のサンプルとを区別し、
複数のタスクから他の指標値のサンプルを収集し、前記収集した他の指標値のサンプルの中から前記複数の区間それぞれに属する他の指標値のサンプルの数が同じになるように一部又は全部の他の指標値のサンプルを選択し、
前記収集された各区間s個の指標値のサンプルに加えて前記選択した一部又は全部の他の指標値のサンプルを用いて、前記指標値の確率分布を推定する
請求項4に記載のシミュレーション方法。
In each task, for each of the plurality of sections, s / p index value samples are distinguished from other index value samples generated in excess of s / p,
Collect other index value samples from a plurality of tasks, and part or all of the collected other index value samples so that the number of other index value samples belonging to each of the plurality of sections is the same. Select all other index value samples,
The simulation according to claim 4, wherein a probability distribution of the index value is estimated using a sample of the index values of each section s in addition to the sample of some or all of the selected other index values. Method.
指標値の確率分布を推定し所定の確率条件を満たす指標値を決定する情報処理システムに用いられるコンピュータに、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、
前記複数の仮の指標値に対応する複数のタスクを複数のプロセッサに割り振り、
各仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて当該仮の指標値に対応する確率データを生成する処理を、当該タスクを割り振ったプロセッサに実行させ、
前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、
前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
処理を実行させるプログラム。
A computer used in an information processing system for estimating an index value probability distribution and determining an index value satisfying a predetermined probability condition,
Select a reference index value, select a plurality of temporary index values based on the reference index value,
Allocating a plurality of tasks corresponding to the plurality of provisional index values to a plurality of processors;
As a task corresponding to each temporary index value, a model for generating index value samples from random numbers and a distribution of random numbers biased so that the index value samples are generated around the temporary index value Processing to generate probability data corresponding to the temporary index value using the processor that allocated the task,
Comparing the probability data corresponding to each of the plurality of provisional index values with the predetermined probability condition to select one provisional index value;
The selected temporary index value is determined as an index value that satisfies the predetermined probability condition, or the selected temporary index value is used as a new reference index value, A program for executing a process of selecting an index value and allocating the plurality of tasks again.
コンピュータに、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、
複数のプロセッサにp個のタスク(pは2以上の整数)を割り振り、
各タスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を、当該タスクを割り振ったプロセッサに実行させ、
前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
処理を実行させるプログラム。
On the computer,
The index value range is divided into a plurality of sections, and a lower limit number s (s is an integer of 2 or more) of index value samples used in each of the plurality of sections is determined.
Allocate p tasks (p is an integer of 2 or more) to multiple processors,
As each task, the processor to which the task is allocated executes processing for generating index value samples from random numbers until at least s / p index value samples belonging to each of the plurality of sections are reached.
A program for collecting a sample of s / p index values from each task for each of the plurality of sections and estimating a probability distribution of the index values using the collected sample of index values for each section s .
指標値の確率分布を推定し所定の確率条件を満たす指標値を決定する情報処理システムであって、
複数のプロセッサと、
基準の指標値を選択し、前記基準の指標値に基づいて複数の仮の指標値を選択し、前記複数の仮の指標値に対応する複数のタスクを前記複数のプロセッサに割り振る制御部と
を有し、
前記複数のプロセッサそれぞれは、割り振られた何れかの仮の指標値に対応するタスクとして、乱数から指標値のサンプルを生成するモデルと前記指標値のサンプルが当該仮の指標値を中心に生成されるようにバイアスをかけた乱数の分布とを用いて、当該仮の指標値に対応する確率データを生成する処理を行い、
前記制御部は、前記複数の仮の指標値それぞれに対応する前記確率データと前記所定の確率条件とを比較して一の仮の指標値を選択し、前記選択した一の仮の指標値を前記所定の確率条件を満たす指標値と決定するか、又は、前記選択した一の仮の指標値を新たな基準の指標値として用いて前記複数の仮の指標値の選択と前記複数のタスクの割り振りとを再度行う
情報処理システム。
An information processing system that estimates a probability distribution of index values and determines an index value that satisfies a predetermined probability condition,
Multiple processors,
A control unit that selects a reference index value, selects a plurality of temporary index values based on the reference index value, and allocates a plurality of tasks corresponding to the plurality of temporary index values to the plurality of processors; Have
Each of the plurality of processors, as a task corresponding to any assigned temporary index value, generates a model of an index value from a random number and the index value sample is generated around the temporary index value. Using the distribution of random numbers biased so as to generate probability data corresponding to the temporary index value,
The control unit compares the probability data corresponding to each of the plurality of temporary index values with the predetermined probability condition to select one temporary index value, and selects the selected temporary index value. The index value is determined as an index value that satisfies the predetermined probability condition, or the selection of the plurality of temporary index values and the plurality of tasks are performed using the selected temporary index value as a new reference index value. Information processing system that performs allocation again.
複数のプロセッサと、
指標値の値域を複数の区間に分割し、前記複数の区間それぞれで使用する指標値のサンプルの下限数s(sは2以上の整数)を決定し、前記複数のプロセッサにp個のタスク(pは2以上の整数)を割り振る制御部と
を有し、
前記複数のプロセッサそれぞれは、割り振られたタスクとして、前記複数の区間それぞれに属する指標値のサンプルが少なくともs/p個に達するまで乱数から指標値のサンプルを生成する処理を行い、
前記制御部は、前記複数の区間それぞれについて各タスクからs/p個の指標値のサンプルを収集し、収集された各区間s個の指標値のサンプルを用いて指標値の確率分布を推定する
情報処理システム。
Multiple processors,
The index value range is divided into a plurality of sections, a lower limit number s (s is an integer of 2 or more) of index value samples used in each of the plurality of sections is determined, and p tasks ( p is an integer greater than or equal to 2), and
Each of the plurality of processors performs, as an assigned task, a process of generating index value samples from random numbers until at least s / p index value samples belonging to each of the plurality of sections are reached,
The control unit collects s / p index value samples from each task for each of the plurality of sections, and estimates a probability distribution of the index values using the collected index value samples of each section. Information processing system.
JP2012279450A 2012-12-21 2012-12-21 Simulation method, program, and information processing system Expired - Fee Related JP6031995B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012279450A JP6031995B2 (en) 2012-12-21 2012-12-21 Simulation method, program, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012279450A JP6031995B2 (en) 2012-12-21 2012-12-21 Simulation method, program, and information processing system

Publications (2)

Publication Number Publication Date
JP2014123272A true JP2014123272A (en) 2014-07-03
JP6031995B2 JP6031995B2 (en) 2016-11-24

Family

ID=51403695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012279450A Expired - Fee Related JP6031995B2 (en) 2012-12-21 2012-12-21 Simulation method, program, and information processing system

Country Status (1)

Country Link
JP (1) JP6031995B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095752A (en) * 2014-11-17 2016-05-26 富士通株式会社 Delivery planning program, delivery planning method, and delivery planning device
JP2019516155A (en) * 2016-03-10 2019-06-13 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft Method and apparatus for assigning configuration groups to implementation lines
JP2019175279A (en) * 2018-03-29 2019-10-10 株式会社東京精密 Measuring machine management device and method
US20220261457A1 (en) * 2021-02-16 2022-08-18 King Abdullah University Of Science And Technology Fast probability measure module for engineering systems and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078516A (en) * 2003-09-02 2005-03-24 Advanced Telecommunication Research Institute International Device, method and program for parallel learning
JP2012014591A (en) * 2010-07-02 2012-01-19 Mizuho Dl Financial Technology Co Ltd Efficient parallel processing method of monte carlo method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078516A (en) * 2003-09-02 2005-03-24 Advanced Telecommunication Research Institute International Device, method and program for parallel learning
JP2012014591A (en) * 2010-07-02 2012-01-19 Mizuho Dl Financial Technology Co Ltd Efficient parallel processing method of monte carlo method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6016036597; YOKOZAWA, Makoto: 'Development of Vectorized Monte Carlo Calculation and Application of Stratified Sampling' Journal of NUCLEAR SCIENCE and TECHNOLOGY Vol.24 No.7, 1987, pp.507-515 *
JPN6016036598; 杉山 将: 統計的機械学習 初版, 20090925, pp.136-140, 株式会社オーム社 *
JPN6016036599; 湯前 祥二: モンテカルロ法の金融工学への応用 初版, 20000610, pp.85-87, 株式会社朝倉書店 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095752A (en) * 2014-11-17 2016-05-26 富士通株式会社 Delivery planning program, delivery planning method, and delivery planning device
JP2019516155A (en) * 2016-03-10 2019-06-13 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft Method and apparatus for assigning configuration groups to implementation lines
US10750650B2 (en) 2016-03-10 2020-08-18 Siemens Aktiengesellschaft Method and apparatus for assigning assemblies to component fitting lines
JP2019175279A (en) * 2018-03-29 2019-10-10 株式会社東京精密 Measuring machine management device and method
JP7187759B2 (en) 2018-03-29 2022-12-13 株式会社東京精密 Measuring machine management device and method
US20220261457A1 (en) * 2021-02-16 2022-08-18 King Abdullah University Of Science And Technology Fast probability measure module for engineering systems and method
US11886537B2 (en) * 2021-02-16 2024-01-30 King Abdullah University Of Science And Technology Fast probability measure module for engineering systems and method

Also Published As

Publication number Publication date
JP6031995B2 (en) 2016-11-24

Similar Documents

Publication Publication Date Title
US10942763B2 (en) Operation management apparatus, migration destination recommendation method, and storage medium
JP5871193B2 (en) Monitoring data analysis apparatus, monitoring data analysis method, and monitoring data analysis program
Bastani et al. A radial basis collocation method for pricing American options under regime-switching jump-diffusion models
JP6031995B2 (en) Simulation method, program, and information processing system
CN112633511B (en) Method for calculating a quantum partitioning function, related apparatus and program product
US20120317040A1 (en) Patent Value Prediction
JP5871192B2 (en) Monitoring data analysis apparatus, monitoring data analysis method, and monitoring data analysis program
Chen et al. Simulating Lévy processes from their characteristic functions and financial applications
EP4123987A1 (en) Enhanced selection of cloud architecture profiles
US20160371408A1 (en) Population projection method and population projection apparatus
Bubnov et al. Software reliability model with coxian distribution of length of intervals between errors detection and fixing moments
Tramm et al. ARRC: A random ray neutron transport code for nuclear reactor simulation
CN112132440A (en) Multi-dimensional benefit index analysis method based on DEA theory
Erpenbeck et al. Revealing strong correlations in higher-order transport statistics: A noncrossing approximation approach
CN111881058A (en) Software engineering quality prediction method
Khomonenko et al. Stochastic models for cloud computing performance evaluation
Kee et al. Fractional modeling of urban growth with memory effects
CN113793057A (en) Building bidding and tendering data generation method based on regression analysis model
Thomas et al. Credit risk modelling using hardware accelerated monte-carlo simulation
JP6340987B2 (en) Disk exhaustion prediction program, information processing apparatus, and disk exhaustion prediction method
Pastore et al. The ATLAS trigger system: past, present and future
Shu et al. In-situ workflow auto-tuning through combining component models
CN114266414A (en) Loan amount prediction method, loan amount prediction device, loan amount prediction electronic device, and loan amount prediction medium
CN112801415A (en) Ultra-short-term load prediction method and system based on Markov chain distribution model
CN107730121A (en) The technological transformation overhaul state monitoring method and system of power equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161010

R150 Certificate of patent or registration of utility model

Ref document number: 6031995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees