WO1996018144A1 - DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D'INTEGRATION MULTIPLE DE LA FONCTION f - Google Patents

DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D'INTEGRATION MULTIPLE DE LA FONCTION f Download PDF

Info

Publication number
WO1996018144A1
WO1996018144A1 PCT/JP1995/002439 JP9502439W WO9618144A1 WO 1996018144 A1 WO1996018144 A1 WO 1996018144A1 JP 9502439 W JP9502439 W JP 9502439W WO 9618144 A1 WO9618144 A1 WO 9618144A1
Authority
WO
WIPO (PCT)
Prior art keywords
quasi
random number
processors
storage unit
value
Prior art date
Application number
PCT/JP1995/002439
Other languages
English (en)
French (fr)
Inventor
Shoichi Ninomiya
Shu Tezuka
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Priority to US08/860,336 priority Critical patent/US5872725A/en
Publication of WO1996018144A1 publication Critical patent/WO1996018144A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Definitions

  • This invention is a generalized kneader writer 'sequence
  • V low-discrepancy sequences including quasi-BL (Generalized Niederreiter Sequence) and Faure sequences. ), And a method and system for generating cylinder speed.
  • This quasi-random number is a sequence of points distributed extremely uniformly.
  • the price expectation iH F; I " ⁇ in the pricing of the financial derivative will be ⁇ (X) determined from each probability model in this equation. 15
  • An algorithm that reduces the difference is called a “good algorithm j.
  • the point set that is, small The the error in Sai N) achievable 1 "is a good algorithm j.
  • the algorithm like this, generally written calculation time in proportion to the number of points Runode, gamma good algorithm” namely It is also a “fast algorithm”.
  • the time required to generate one point of the quasi-random number is approximately equal to the time required to generate one point by the linear congruential method in the Monte Carlo method.
  • the benefits of using quasi-random numbers can be greatly discounted if it takes 60 times longer to generate a wool sequence than to generate a linear congruential random number.
  • An object of the present invention is to provide a method and a system for generating quasi-random numbers at high speed. Another object of the present invention is to speed up the calculation of multiple integrals used for pricing financial derivative products using the quasi-random numbers generated in this manner.
  • the number Y can be generated. Using this, multiple processors ⁇
  • ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ is generated by each processor. If ⁇ is generated,
  • the quasi-random number can be generated faster as a whole system.
  • the generation of Y from Y in each processor may be calculated by using a method using multiplication.
  • the components of the quasi-random number Yn stored in the ID 1 storage unit are sequentially extracted, and the component j of the j-th column of the generator matrix ⁇ ⁇ ⁇ extracted in the same order and the component yi of the quasi-random number Yn are added modulo b. And means for storing the addition result in the third storage unit first.
  • to generate k-dimensional quasi-random numbers (a) the individual coordinate values u ) of the n-th (n is an integer of 1 or more) quasi-random numbers (u (1) u (k) )
  • Dl ID—JJ Calculate and store in the second storage section in order, and (c) scan the second storage section in order to detect the minimum order j of n.
  • ⁇ b—l Stets D
  • the j-th column component and the n-th component of the generator matrix T (i ) of the i-th (1 ⁇ i ⁇ k) coordinate of the quasi-random number stored in advance in response to the detection step The components of the i-th coordinate value of the quasi-random number of are extracted in order, and the components of the j-th column of the generator matrix ⁇ ( ⁇ ) extracted in the same order and the ith coordinate value of the n-th quasi-random number And adding the components by modulo b, and sequentially storing the addition results in the third useful unit.
  • the multiplication of the function f using such k-dimensional quasi-random numbers
  • a number ⁇ b is a prime number greater than or equal to k), expanding and sequentially storing the generated m components in the first storage unit for each coordinate value; and (c) b of the number n Calculate the base number expansion ( ⁇ , ⁇ , ⁇ ⁇ > and store it in the second storage
  • the m addition results are A step of storing the generated u +1 u ) in the fourth storage unit by performing b-base inverse expansion each time it is generated, and (g) the step (f) in which the coordinate value u +1 ) (1 ⁇ i ⁇ k) is stored in the fourth storage unit, the step of calculating the value of f (uu n + 1 ( k) ) and (h) Steps (b) to (g) are repeated, and u (1) u (k) )
  • each processor receives (a) the process allocation information, generates a quasi-random number (u (1) u eater (k) ) corresponding to the process start number s, and stores the pseudorandom number in the first storage unit.
  • the elements of the j-th column of the generator matrix T (for the coordinates of (1 ⁇ i ⁇ k) and the elements of the i-th coordinate value of the n-th pseudorandom number are extracted in order, and extracted in the same order.
  • Tor V (n, n n), generator matrix T (i) (1 ⁇ i ⁇ k) and matrix G
  • a generation means for generating the n-th ⁇ random number i-th coordinate ⁇ u using is also conceivable to include a generation means for generating the n-th ⁇ random number i-th coordinate ⁇ u using.
  • the quasi-random number generation system that performs this parallel processing a parallel processing? It can also be applied to a system that counts many 31 ⁇ i of functions 3 ⁇ 4 f that perform J1.
  • a plurality of processors and means for transmitting processing allocation information including a processing number [start number s] to each of the plurality of processors are provided.
  • Each processor has: (a) means for receiving processing allocation information; and (b) b-base extension of the number n ⁇ (n. ⁇ , ⁇ ,)
  • the generation means calculates a quasi-random number S corresponding to the processing end number t in the processor from the ⁇ random number (u (1) u (k) ) corresponding to the processing start number s.
  • the quasi-random number is calculated later than the quasi-random number generation system described above. For example, if the integrand f is complicated in the calculation for the later integration and the evaluation takes time, the processing may be performed in parallel, and a sufficient calculation speed may be obtained. When the same number of quasi-random numbers is calculated by a plurality of processors, it may be possible to omit the transmission of the processing start number s. , L 3 ⁇ 4 f, it can be applied to many 313 ⁇ 4 meter ⁇ systems.
  • FIG. 1 is a flowchart showing the process of generating a one-dimensional random number.
  • FIG. 2 is a block diagram showing a computer which is an apparatus configuration for implementing the present invention.
  • FIG. 3 is an example showing a device configuration for implementing the present invention.
  • FIG. 4 is a flowchart showing a process of generating a k-dimensional quasi-random number.
  • Figure 5 is a c Fig. 6
  • Furochiya an Bok showing processing of multiple integral calculation of the function f is a block diagram showing an example of an apparatus for performing multiple integral calculation of the function f.
  • FIG. 7 is a block diagram showing an example of a system configuration when a plurality of processors perform parallel processing.
  • FIG. 8 is a diagram showing a flow chart when the multiple integral calculation of the number f is performed in parallel. The main symbols used in these drawings will be described.
  • sequence X is a generator matrix
  • sequence Y is Y
  • ADD b represents the addition modulo b at each coordinate, and j is the minimum that satisfies n.
  • ⁇ b ⁇ 1 in vector V ( ⁇ ,, n) And n 1 ra j
  • Y is obtained by simply adding B «j columns of the matrix T to ⁇ , modulo b +1
  • a central processing unit (CPU) 102 having arithmetic and input / output control functions, a program is loaded on a bus 101, and a main memory (RAM) for providing a work area for the CPU 102 is provided.
  • a keyboard 106 for keying in commands and character strings, an operating system for controlling the central processing unit, a file containing contents for initializing the matrix T,
  • the hard disk 108 that stores the pricing calculation program for such financial derivatives, the display device 110 that displays the search results of the database, and an arbitrary position on the screen of the display device 110 Point to convey the location information to the central processing unit.
  • This is a normal configuration in which mouse 1 12 is connected.
  • RISC System / 6 OOO (trademark of IBM) sold by IBM Corporation is used.
  • PS / 2 trademark of IBM
  • PSZ55 trademark of IBM
  • AIX (trademark of IBM) is used as the operating system.
  • Fig. 2 shows the case of implementation using dedicated hardware.
  • the control unit 10 receives Y n, the number n, and the number b as human power.
  • the human power Y n may use the output from the sushi memory 20.
  • the control unit 10 is connected to a quasi-random number expansion storage unit 12, a number n expansion storage unit 14, a generator matrix storage unit 18, and a result storage unit 20, and stores necessary data separately in each storage unit. However, these storage units may be divided, or one storage unit may be divided and used.
  • the final output is stored in the result storage, and the output is connected to a post-processing block 22 for further processing (eg, multiple integration of the function f).
  • the number of storage locations in each storage unit in one dimension is the quasi-random number expansion storage unit 1 2, the number n expansion storage unit 14, the result storage unit 20 is the number m for expanding the number n and the nth quasi-random number Y, and the generator matrix storage unit 18 is m X There are m storage locations.
  • the control unit 22 can perform an arithmetic operation, and performs the following operation. First, it should be mentioned that the generator matrix useful part 18 stores a generator matrix T in advance, so that elements of an arbitrary column can be extracted as needed. First, when the number n and the quasi-random number Y for the number n are input, the control unit 2 2 n
  • Y is expanded as yb m — ' ⁇ ⁇ ⁇ y 9 b + yi, and this y.
  • ⁇ * Y 9 is sequentially stored in the quasi-random number expansion storage unit 12. The order may be from or, but for later processing, the retrieval method corresponds to the order of storage.
  • control unit # 0 scans the number n expansion storage unit 14 from the storage position where is stored.
  • the pointer 16 is used for this scanning, and the counter is incremented by 1 each time the pointer 16 moves, while scanning is performed from.
  • the control unit 10 checks whether n. ⁇ b ⁇ 1 at each storage location and detects the corresponding minimum counter value j.
  • the control unit 1 0 j-th column component from generation matrix storage unit 1 8 (j, ⁇ ⁇ , j 9. J,) taken out. This can be extracted from j 'or j 3 ⁇ 4 , but from j
  • the quasi-random number expansion storage unit 12 and the result storage unit 20 are the same and can be reused.
  • the same processing will be omitted.
  • the b-ary expansion of Y n stored in the quasi-random number expansion storage unit 12 is the j column of the generation matrix T stored in the generation matrix storage unit 18.
  • a buffer may be used. Also, when scanning the number n expansion storage unit 14, scanning was started from and the counter was incremented, but scanning was started from n and the initial value of the counter was read.
  • ⁇ 1 M is decremented one by one. However, it is more time-consuming to decrement since the minimum j that ⁇ ⁇ - ⁇ 1) -1 is obtained.
  • the counter should be held by the control unit 10 and counted up each time one quasi-random number is calculated, and the value should be used. Can also.
  • the above explanation describes the calculation of Y + 1 from Y. In practice, however, is manually input and processing starts from there.
  • FIG. 4 shows processing when the present invention is implemented in a computer program in the apparatus shown in FIG.
  • the n-th point (un (1) u (k) ) in the k-dimensional space is given by
  • any number of points will be generated. Also, it should be noted that in the quasi-random number in the k-dimensional space, the generator matrix T described above is prepared individually for each individual coordinate. Here, the i-th generator matrix is denoted by Tu ). In step 202 of FIG. 4, the n-th point in k-dimensional space
  • step 204 according to a predetermined prime number b (where b is greater than or equal to the number k of dimensions), n is expanded to b-base, and an m-element vector (n ny n) corresponding to the number n Is calculated.
  • step 206 the m-element vector generated in step 204
  • step 208 in accordance with the principle of the present invention, the j-th column vector of the generator matrix T) of the ⁇ -th coordinate and u (1) are added by mo db, whereby
  • i k
  • the quasi-random number expansion storage unit 12 in FIG. 3 has 1 X m number of 1 * positions. On the other hand, this should be m x m.
  • the result storage unit 20 may be expanded to have m ⁇ m storage positions. Then, instead of Y, u (1)
  • the generator matrix controller 18 manages each m ⁇ m block that stores one generator matrix T, and sends a selection signal for selecting that block from the controller 10 to the generator matrix storage 18. It can also be output. However, do not input only u u ) to the control unit 10 at one time.
  • the quasi-random number expansion storage unit 12 may be the same as the one-dimensional case.
  • the generator matrix storage part 18 has the size of the above-mentioned because the generation matrix ⁇ differs depending on ⁇ , and the generator matrix ⁇ is required for every i. Requires storage location.
  • the result storage unit 20 may be the same as the one-dimensional case. However, a feedback loop from the result storage unit 20 to the control unit 10 is performed. Since it is used, it is desirable to have storage positions for k dimensions.
  • FIG. 5 shows a case where the present invention is implemented by a computer program in the computer system shown in FIG. It shows the processing.
  • a function having k arguments of f ( ⁇ ⁇ x 2 , x k ) is multiply integrated in a k-dimensional space spanned by each argument.
  • 0 is stored in a variable S for storing the resulting integral value and a variable n for storing the number of k-dimensional quasi-random points generated for the integral calculation.
  • n is incremented by 1.
  • the n-th point in the k-dimensional space is calculated using the steps shown in FIG.
  • step 308 f (u (1) u (k) ) is calculated.
  • step 306 u (,)
  • u (i) (1 ⁇ i ⁇ k) is treated as a scalar value.
  • n In step 3 1 0, it is determined whether n has reached the predetermined number N, and if not, If so, the process returns to step 304, which divides n by 1 ( note that the value of N is determined according to the required accuracy of the calculation, and the accuracy increases as the value of N increases.
  • the degree of variation in generated points is not so large, and the value of N is reduced. Quasi-random numbers show improved properties in this respect, and the points generated are more significant than those generated by the linear congruential method.
  • step 310 If it is determined in step 310 that n has reached the predetermined number N, the value obtained by dividing the value of S by N and storing it in S is stored in S in step 312. It represents the integral ⁇ .
  • the post-processing block 22 for performing multiple integration will be described. Details of the post-processing block 22 are shown in FIG. In FIG. 6, the result storage unit 20 ′ is expanded to have a storage position for k dimensions.
  • the tie storage unit 20 ' is connected to a reverse expansion unit 30 having the number b as another input.
  • the reverse expansion unit 30 stores the output in the scalar value storage unit 32.
  • the scalar value storage unit 32 has k storage locations so that k coordinates ⁇ of a quasi-random number of 1 can be stored.
  • the operation unit 34 is connected to the scalar value storage unit 32, and receives the function f and the number N of generated quasi-random numbers.
  • the operation unit 34 is connected to the accumulator 36, and the output of the accumulator 36 is returned to the operation unit 34.
  • FIG. 6 the operation of FIG. 6 is shown. Since the part before the result storage unit 20 ′ has been described in FIG. 3, the result storage unit 20 ′ has already been expanded to the respective bases of u n + 1 (1 ) u +] (k) The following operation will be described assuming that is stored.
  • the inverse expansion unit 30 reads out, from the result storage unit 20 ′, each of u n + 1 U ), ..., u ./k) which has been expanded in b-base, and outputs By unrolling, u n + 1 (1 ) u n + 1 ( k ) is generated. In the case of k dimensions, k un + 1 (1 ) have been generated and the operation unit 3
  • the arithmetic unit 34 is set to the integrand f (x r x 2 x k ) are inputted. Calculating unit 34. Therefore, when u n + 1 (1 ) is input to this variable Xi, the function value f (uu n + 1 (k) ) is calculated. This function ⁇ is output to the accumulator 36.
  • the operation unit 34 calculates a function value for the quasi-random numbers generated one after another, and the accumulator 36 adds the function value and accumulates it.
  • the accumulator 36 has a counter. When the accumulator 36 is input N times from the operation unit 34, the accumulator 36 returns the accumulated value to the operation unit 34. Since N is also manually input in the arithmetic unit 34, the human input from the accumulator 36 is divided by N. This allows the function
  • the vector V is the product of the generator matrix ⁇ , the matrix G (shown above), and the number ⁇ in b-base (b is a prime number of 2 or more). Can be calculated by multiplying the matrix. Any number n ⁇
  • Fig. 7 shows multiple processors (42, 44, 46) and system control.
  • the section 40 represents the system connected by the bus 48.
  • the system control unit 40 may be provided separately from the processors such as the first processor 42, or may be included in one of a plurality of processors ⁇ 42, 44, 46). Good. Further, the system control unit 40 may be the same as the first processor or the like, or may be a dedicated one. The operation of this system will be described with reference to FIG.
  • the system control unit 40 recognizes the number of processors that can be used for processing in this system and the ID of the processor, and calculates which processor is assigned which part of all quasi-random numbers. If the jobs in the entire system are not biased, it is sufficient to divide them evenly among the processors. However, generally, a process start number s and a process end number t are given as process allocation information. Processing The S end number t can be replaced with the number of quasi-random numbers generated by the processor. In addition, if processing is always equally assigned to each processor, the number of generated quasi-random numbers or the processing end number t does not need to be notified to each processor, so that transmission of them may be omitted (step 60). ). Each processor receives a different processing start number s,
  • Step 66 This calculated value S. (1 ⁇ i ⁇ h) is transmitted from all processors to the system control unit 40 (step 68).
  • the system control unit 40 adds all the transmitted S. and divides it by the number N of all generated pseudo-random numbers (step 70). This completes the multiple integration calculation of the function f.
  • the addition is performed by each processor. However, the calculation may be transmitted to the system control unit 40 before the addition. However, other processing may be delayed due to the traffic on path 48 and transmission processing in each processor.
  • the quasi-random number is transmitted to the system control unit 40. It is also possible to trust. In this case, there is no need to send the function f to each processor. The problem when doing this is the same as sending before the function value is added.
  • the output from the accumulator 36 in FIG. 6 is not returned to the arithmetic unit 34, and the output of the accumulator 36 is changed to the output of the processor. Need. Further, the accumulator 36 needs to input the number N of quasi-random numbers to be generated, but this N is set to 1 and the system control unit 40 divides it.
  • N may be replaced with the number of quasi-random numbers processed in the processor.
  • Y has been described for simplicity. However, this can be extended to (unun Al (k) ) as described above.
  • the calculation may be performed, and the system control unit 40 may detect the property of the function f and transmit switch information indicating which method should be executed by each processor.
  • the system control unit 40 may detect the property of the function f and transmit switch information indicating which method should be executed by each processor.
  • the system control unit 40 may detect the property of the function f and transmit switch information indicating which method should be executed by each processor.
  • the present invention significantly improves the generation speed of quasi-random numbers by providing a technique of performing modulo sum with one column of a matrix in generation of quasi-random numbers. It has a noticeable effect. This substantially improves the speed of various numerical calculations using quasi-random numbers (typically multiple integration). Furthermore, by performing parallel processing, quasi-random numbers are calculated at a higher speed, and thereby calculation of multiple integrals can be performed at a higher speed. In the case of parallel processing, it was possible to obtain sufficient calculation speed even with matrix multiplication, considering the overall integration calculation time. In the above embodiment, an example of application to the calculation of the price of a financial derivative was described, but the present invention can be applied to a wide range of fields such as computational physics, fluid dynamics, and computer graphics. . For background on computation techniques using such quasi-random numbers, see, for example, ⁇ F. Traub,

Description

明細書
準乱数生成装置及び方法並びに関数 f の多重積分計算装置及び方法 [技術分野]
この発明は、 一般化されたニーダーライタ ' シーケンス
(General ized Niederrei ter Sequence) 及びフォーリレ · ンーケンス (Faure sequences) と含むローデイ スクレノ ンシ · シーケンス V low-discrepancy sequences, 準 BL ともいつ。 ) を筒速 生成する 方法及びシステムに関するものである。 この準乱数とは、 極めて一様に 分布した点列である。
[背景技術]
最近の金利自由化の傾向にともない、 銀行や証券会社などのさまざま な金融機関では、 金融派生商品の価格づけなどの目的で、 高速なコンビ ュ一タを駆使するようになってきている。 高速なコンピュータが使用さ れる理由は、 様々な顧客每のパラメータや経済指標などの極めて多数の 変動する要因があるにも拘わらず、 顧客の要望に迅速に応える必要があ るからである。 このような金融向けの数学的モデルを提供したり、 その数学的モデル における方程式を合理的な手法で解く アルゴリズムを与えるための分野 と して、 金融工学 (Financial Engineering) が提唱され、 近年、 盛ん に研究されるようになってきている。 金融工学、 特に金融派生商品の価格づけで頻繁に必要となる計算に、 多重積分計算がある。 一般的に、 コンピュータを用いて積分計算を行う には、 Si分区問を微小な領域に等分し、 その個々の区 (HJにおける関数の 値と区間の幅の檳を累算する、 という技法が用いられる。 しかし、 多重 檳分計算の場合、 もし k重楱分計算を行うとすると、 1 の区間の分割数 が Nであるとき、 N kもの反復計算が必要になり、 k = 5程度でも、 実用 的な分割数 Nに対して、 通常のコンピュータでは、 実際的な計箅時間で 処理できる範囲を超えてしまう。 このため、 一種の乱数を用いたモンテカルロ (Monte Car l o ) 法と呼 ばれる多重楱分計算のための方法が以前から提案されている。 この方法 は、 多重積分計算の k次元の積分区間の範囲内のー铩乱数の k次元座標 を多数生成し、 生成された座標を積分される関数に頓次代入して、 その 代入した値が所定の条件を満たす確率を求める、 というものである。 れを数式で表すと、 次のとおりである。
Figure imgf000004_0001
この場合、 N個の点柒合 x . ( i =1 N ) を与えることがアルゴリ ズムそのものである。 金融派生商品の価格づけにおける価格の期待 iH F; I" ^には、 この式において、 それぞれの確率モデルから決まる Γ ( X ) が 用いられることになる。 また、 この嵇の問题では、 i分 15差を小さ くするようなアルゴリ ズム が 「良いアルゴリズム j ということになる。 一方、 誤差の方を一定 (例 えば 0. 001 ) にして考えれば、 できるだけ少ない点集合 (すなわち、 小 さい N) でその誤差を達成できるのが 1"良いアルゴリズム j である。 こ のようなアルゴリズムでは、 一般的に点の数に比例して計算時間がかか るので、 Γ良いアルゴリズム」 はすなわち Γ速いアルゴリ ズム」 でもあ る。 線形合同法などの方法によつて発生されたランダムな点が使用される モンテカルロ法では、 誤差は、 ほぼ Νの平方根の逆数に比例することが 知られている。 これに従えば、 簡単に言うと、 0.001の誤差を達成する には、 106個の点が必要である。 一方、 準乱数を Ν個の点集合として用いるアルゴリズムもある。 この 場合は、 理論的には、 誤差がほぽ 1 /Νに比例することが知られている, これだと、 0.001の誤差を達成するには、 Ν =103個の点で十分というこ とになる。 従って、 準乱数を使用すると、 モンテカルロ法よ りも、 計算 がおおよそ 103倍速い、 ということになる。 準乱数と して、 幾つかの方法が提案されているが、 その中でも、 フォ 一ル · シーケンスとよばれる数列が、 この分野の専門家によって、 高い 次元の多重積分計算に対して有望視されている準乱数である。 これの詳 細については、 以下の論文を参照されたい。
P.P. Boyle, New Variance Reduction Methods for efficient Monte Carlo Simulations, Conference on Advanced Mathematics on
Derivatives, RISK Magazine, (September, 1994). また、 この数列のアルゴリズムとして、 下記の論文に記述されている 技法が知られており、 また、 現在使用されている。 P. Brat ley, B. L. Fox, and H. Niederreiter, Implementation and Tests of Low-Discrepancy Sequences, ACM Trans. Modeling and Computer Simulation, 2, (July, 1992), 195-213. しかし、 この論文に記述されている方法でフオール · シーケンスを発 生させると、 本願発明者の実験によれば、 線形合同法の乱数を発生させ るよ りも実に 60倍もの時間がかかってしまう。 特に金融派生商品の価格づけの計算では、 準乱数による多重積分計算 は、 多くの場合、 理論上、 通常のモンテカルロ法を用いた多重積分計算 よ りも 1 00倍程度の高速化を達成するが、 それは、 準乱数の 1 つの点 を発生するのに要する時間が、 モンテカルロ法における線形合同法によ る 1 つ点の発生に要する時間とほぼ等しいと仮定してのことであって、 もしフ ォール · シーケンスを発生させるのに、 線形合同法の乱数を発生 させるよ りも 60倍もの時間がかかってしまうと、 準乱数を使用するこ との利点が大幅に割り引かれてしまう。
[発明の開示]
本発明の目的は、 準乱数を高速で生成するための方法及びシステムを 提供することにある。 本発明の他の目的は、 そのようにして発生される準乱数を用いて、 金 融派生商品の価格づけなどに使用される多重積分の計算を高速化するこ とにある。 本発明によれば、 従来の数列 X = T V が、 Y = TG v で置き換え られる。 但し、 この Gは、 その対角成分が全て 1 であり、 その
j 一 i = l を満たすような 成分が一 1 であり、 その他の成分が全て
0であるような正方行列である。 すると、 本発明の非自明な知見によれば、 π+l番目の準乱数は、 nの b進展開 (n , n n,.... η,) をベク トル成分と した ν = ( η,,....
Di m-1 1 n 1
. n ,, η ) において、 n .≠ b— 1 であるような最小の《i を求め、 生
ID - J Π J
成行列 Tの j列と、 n番目の準乱数を、 mo d bで加算するこ とによ つて、 求められる。 これは、 Y Al = Y ADD. T e .と表すことがで
nTJ n b j
きる。 このとき、 実質的に加算しか必要でないので、 実際の行列どう し の掛け算を要する方法よりは、 はるかに少ない計算量で、 高速に準乱数 を求めることができる。 また、 それらの計算を複数のプロセッサに行わせることによ り、 よ り 高速なシステム及び方法を提供する。 これは、 前述の行列 Gの性質を用 いるものであり、 Y =TG V よ り、 数 nを与えると任意の順番の準乱
n n
数 Y を生成することができる。 このことを用いて、 複数のプロセッサ π
に各プロセッサにて処理するための数 Sを与えれば、 その数 Sに対する
Υ を各々のプロセッサは生成する。 Υ が生成されれば、 上述した掛け
S S
算を行わない加算方式にて Υ +1を生成するこ とができるのでその処理 を繰り返し、 各プロセッサがその処理割り当ての終了の数 tに対する
Ytまで生成する。 そうすれば、 システム全体としてはよ り高速に準乱 数を生成することができるようになる。 但し、 被精分関数によっては準 乱数の計算よ り被積分関数の計算の方が非常に手間がかかる場合もある。 よって、 Y l = Y AD Dk T e .による掛け算を用いない加算方式で
n+] n b j
行っても、 Y = Τ G ν によ り掛け算を用いる方式を用いても、 処理時
n n 間に大差ない場合もあるので、 その場合には各プロセッサにおける Y から Y,の生成は掛け箅を用いる方式を用いて計算してもよい。
S+J t よ り具体的に本発明の構成を示す。
1次元の準乱数を生成するには、 以下のような構成が必要となる。 す なわち、 (a)n番目 (nは、 1以上の整数) の準乱数 Υπの值を b進数
(bは、 2以上の素数) 展開し、 生成された m個の成分
y y ) を順番に第 1記憶部に記憶する手段と、 (b)数 nの b進数展 in- J m
開 (η , η , η,) を計算し、 第 2記憶部に順番に記憶する手段 m m一 1 1
と、 (c)第 2記憶部を順番に走査して、 n .≠ b— 1 となる最小の順番 j を検出する検出手段と、 (d)検出手段に応答し、 予め記饯された、 準乱 数の生成行列 Tの第 j列の成分 ( ·ΐ , 1 j B β~ r 1 j ) 及び第
ID 1記憶部 に記憶された準乱数 Ynの成分を順番に取り出し、 同一の順番で取り出 された生成行列 Τの第 j列の成分 j .及び準乱数 Ynの成分 y iを法 bで 加算し、 加算結果を頫番に第 3記憶部に記憶する手段とを必要とする。 これによ り、 行列の掛け算処理が遅いという技術的問題を解決するとと もに、 コンピュータにおいて用いられる準乱数の生成を高速に行う装置 を提供することができる。 また、 k次元の準乱数を生成するには、 (a) n番目 (nは、 1以上の 整数) の準乱数 (u (1) u (k) ) の個々の座標値 u )
π n n
( 1 i ≤ k ) を、 b進数 ( bは、 kよ り大きいか又は等しい素数) 展 開し、 各座標値につき、 生成された m個の成分を、 順番に第 1記憶部に 記憶するステップと、 (b) 数 nの b進数展開 (η , n η,) を
Dl ID— J J 計算し、 第 2記億部に順番に記憶するステップと、 (c) 第 2記憶部を順 番に走査して、 n.≠ b— l なる最小の順番 jを検出する検出ステツ プと、 (d) 検出ステップに応答して、 予め記憶された、 準乱数の第 i番 目 ( 1≤ i ≤k) の座標の生成行列 T(i)の第 j列の成分及び n番目の 準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の順番で取り 出された生成行列 Τ)の第 j列の成分及び n番目の準乱数の第 i番目 の座標値の成分とを法 bで加算し、 加箅結果を順番に第 3記慷部に記憶 するステップとを含むようにする。 このような k次元の準乱数を用いて、 関数 f の多重楱分を行うには、
(a) k個の要素に関連する関数 f ( xr x„ xk) を規定するステ ップと、 (b) n番目 (nは、 1以上の整数) の準乱数
(u u (k)) の個々の座標値 u "ノ ( 1≤ i ≤k) を、 b進 n n n
数 <bは、 kよ り大きいか又は等しい素数) 展開し、 各座標値につき、 生成された m個の成分を順番に第 1記憶部に記億するステップと、 (c) 数 nの b進数展開 (η , η , η η > を計算し、 第 2記憶部に順番 m m-1 1
に記憶するステップと、 (d) 第 2記憶部を順番に走査して、
n .≠ b— 1 となる最小の順番 jを検出する検出ステップと、 (e) 検出 ステップに応答して、 予め記憶された、 準乱数の第 i番目 ( 1≤ i ≤k) の座標のための生成行列 T ")の第 j列の成分及び n番目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の順番で取り出された生 成行列 Τ )の第《5列の成分及び η番目の準乱数の第 i番目の座標値の 成分とを法 bで加算し、 加算結果を順番に第 3記憶部に記憶する ステツ プと、 (f) m個の加算結果が生成されるごとに b進数逆展開し、 生成さ れた u +1 u)を第 4記憶部に記憶するステップと、 (g) ステップ(f)が 座標値 u +1 ) ( 1≤ i ≤ k ) を第 4記憶部に記憶した場合には、 f (u un+1(k)) の値を計算するステップと、 (h) ステツ プ(b)乃至ステップ(g)を繰り返し、 f ( u (1) u (k)) の値を
n n n = l から n = N (Nは、 1 よ り大きい予定の整数) までアキュムレー タにて累積するステップと、 U) アキュムレータに応答して、 累棲値を Nで除算するステップとを含む。 このようにすると、 積分値が高速に求 められる。 さ らに上述したように、 先の準乱数生成装置を並列処理に応用した場 合には、 複数のプロセッサと、 複数のプロセッサの各々に、 処理開始番 号 sを含む処理割当情報を送信する手段とを有する準乱数生成システム が構成される。
そして、 各プロセッサが、 (a) 処理割当情報を受信し、 処理開始番号 sに対応する準乱数 ( u (1) u„(k)) を生成し、 第 1記憶部に記
s s
悌する手段と、 (b) η番目の準乱数 ( u (1) un (k)) の個々の座 標值 u (i) ( 1 ≤ i ≤k) を、 b進数 < bは、 kよ り大きいか又は等し n
い素数) 展開し、 各座標值にっき、 生成された m個の成分を順番に第 2 記憶部に記憶する手段と、 (c) 数 nの b進数展開 (nm, η , η,) を計算し、 第 3記憶部に順番に記憶する手段と、 (d) 第 3記憶部を頃番 に走査して、 n .≠ b— 1 となる最小の頼番 j を検出する検出手段と、
(e) 検出手段に応答して、 予め記憶された、 準乱数の第 i 番目
( 1 ≤ i ≤ k ) の座標のための生成行列 T( の第 j列の成分及び n番 目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の順番で 取り出された生成行列 T( の第 j列の成分及び n番目の準乱数の第 i 番目の座標値の成分とを法 bで加算し、 加算結果を順番に第 4記憶部に 記憶する手段と、 (Π m個の加算結果が生成されるごとに b進数逆展開 し、 生成された u を第 1記億部に記憶する手段と、 (g) 手段(b) 乃至手段(f)を制御して、 s + 1番目の準乱数
( u n (1) u ^ (k)) から当該プロセッサにおける処理終了番号 s+1 s+1 tに対応する準乱数 ( ut U) ut (k)) までを第 1記憶部に記恡さ せる制御手段とを有する。 これによ り、 個々のプロセッサの計算量は、 当然プロセッサの数だけ减少したことになるため、 よ り高速に計算が行 われること となる。 の場合、 各プロセッサに存在する手段 (a) は、 数 nの b進数展開 n n rij) を計算し、 その計算結果によ り生成されるべク
•r
トル V = ( n, n n ) と生成行列 T (i) ( 1 ≤ i ≤ k ) と行 列 G
Figure imgf000011_0001
(i)
とを用いて、 n番目の举乱数の i番目の座標值 u を生成する生成手 段を含むようにすることも考えられる。 当然、 この並列処 ¾を行う準乱数生成システムは、 並列処? J1を行う関 ¾ f の多 31 ¾i分を計^するシステムにも応用可能である。 さ らに、 並列処¾における準乱数生成システムの他の態搽においては 複数のプロセッサと、 複数のプロセッサの各々に、 処 ¾[¾始番号 sを含 む処理割当情報を送信する手段とを有し、 各プロセッサが、 (a) 処理割 当情報を受信する手段と、 (b) 数 nの b進数展^ ( n . η , η , )
m m_ 1 1 を計算し、 その計算結果によ り生成されるベク トル V ( n (i)
n n ) と生成行列 T ( 1 ≤ i ≤ k ) と行列 G
m一 1 m
Figure imgf000012_0001
とを用いて、 n番目の準乱数の i番目の座標値 u (1)を生成する生成手
n
段と、 (c) 生成手段が処理開始番号 sに対応する举乱数 (u (1) u (k)) から当該プロセッサにおける処理終了番号 t に対応する準乱数 S
( ut (1),..., ut (k)) を生成するように、 数 n ( s≤ n≤ t ) と生成 行列 T(1ノ ( 1≤ i ≤ k) と行列 Gを、 生成手段に入力する制御手段と を有するようにすることも考えられる。 本形態は、 準乱数が前述の準乱 数生成システムにて計算するのよ りも遅く計算されるこ と となるが、 例 えば後の積分のための計算において被積分関数 f が複雑で評価に時間が かかるようであれば、 並列に処理していることもあり、 十分な計算速度 を得ることができる。 なお、 複数のプロセッサにて同一の個数の準乱数 を計箅される場合には、 処¾ ^始番号 sの送信を省略するこ とも可能と なる場合もある。 当然、 この 95の準乱数生成システムも、 l ¾ f の多 31¾分計^シス テムに応用可能である。
[図面の f¾ '単な説明]
第 1図は、 1次元の^乱数を生成する処¾を示すフローチヤ一卜であ る 第 2図は、 本発明を実施するための装置構成であるコンピュータを示 すブロック図である。
第 3図は、 本発頃を実施するための装置構成を示す一例である。
第 4図は、 k次元の準乱数を生成する処理を示すフローチヤ一卜であ る。
第 5図は、 関数 f の多重積分計算の処理を示すフローチヤ一卜である c 第 6図は、 関数 f の多重積分計算を行う装置の一例を示すブロック図 である。
第 7図は、 複数のプロセッサにおいて並列処理する際のシステム構成 の一例を示すブロック図である。
第 8図は、 閧数 f の多重積分計算を並列処理する際のフローチヤ一ト を示す図である。 これらの図面にて用いられる符合の主なものを説明しておく。
1 0 制御部 1 2, 1 6, 1 8, 20, 32 記憧部
1 6 ポインタ 22 後処理ブロック 30 逆展開部
34 演算部 36 アキュムレータ 40 システム制御部
42, 44. 46 プロセッサ
[発明を実施するための最良の形態]
A :本発明の原理
以下では便宜上、 1次元で説明を行う。 しかし、 後で説明するように これは、 容易に k次元に拡張可能である。 数列を、 X ( n = 0. 1 , 2 bm'] ) で表す。 こ こで、 bは、
n
次元 kよ りも大きいかまたは等しい素数、 また、 mは通常、 1 o gb230に近い整数とする。 定 ¾に り、 数列 X は、 生成行列
T = ( c ..) を用いて、 X. T V と書く ことができる。 このような行 列 Tの選び方については、 上記 P. Bratley他の論文を参照されたい。 こ
m-1.
こで、 ベク トル V は、 整数 nの b進表現 n =n b n2b+n】【こ対
n m
して、 n )を対応させたものである
上記 P. Bratley他の論文では、 X = T v という行列の掛け箅をその
n n
まま行ったので、 計算に非常に時間がかかった。
一方、 本発明によれば、 X = T V で直接行列の掛け算を行う代わり
n n
に、 Y = T G V によって数列 Y が発生される。 数列 Y は、 Y
n n n n n
( n = 0 , 1 , 2, ···, bm- 1 ) であり、 bはやはり次元 kよ りも大 きいかまたは等しい素数である。 こ こで、 行列 Gは、 以下に示すように
(法 bで) 対角線上の要素 i i ( i = 1 m) が全て 1 で、 その 1 の要素の右隣の要素 i j ( j - 1 = i . 1 ≤ i ≤m, 1 ≤ j ≤ m ) 力 一 1 で、 他の要素が全て 0であるような疎行列 (sparse matrix) であ る。 このような行列 Gは正則なので、 Y 自体も^乱数となることはす n
ぐ分かる。
Figure imgf000014_0001
本発明者は、 このと き、 極めて非自明にも、 次の うな定 が成立す るこ とに 1到した。 定理
e . ( j = 1 , 2 , m) を、 長さ mの j番目の単位ベク トルとす る。 そこで、 g = G V とおく と、 g = g ADD. e .が成立する
n n n+l n b j ここで、 ADDbは、 座標毎の bを法とする加算を表し、 j は、 べク 卜 レ V = ( η, , n )において、 n .≠ b— 1 を ¾たす最小の添字と n 1 ra j
する。 検証
1 カ +1に変化するとき、 その b進表現がどのように変化するかを調 ベてみる。 例えば、 b = 3と して、 nが 8から 9に変わるとする。
8 = 2::: 3 + 2であるから、 8の 3進表現は、 (022) である。 よ つて、 ベク トル v8は、 以下のように表される。
2
0 また、 9 3ムによ り、 9の 3進表 ¾は、 ( 1 00) である つて ベク トル v9は、 以下のようにあらわされる
0
V = 0
1 よって、 3 X 3の場合の行列 Gを使用すると、 g。と、 g。とはそれぞ れ、 次のよ うに計算される
Figure imgf000016_0001
Figure imgf000016_0002
方、 8の 3進表現 (022) において、 3— 1 =2でない最小の添 字は、 j = 3である。 そこで、 g8 ADD3 e3を計算してみると
^8 ADD3 S3 9 9
Figure imgf000016_0003
となって、 g8 A D D3 e3が、 g9に一致するこ とが分かる。 この一 般的な証明は、 任意の bにおいて、 nについての数学的帰納法を使用す るこ とによって行う こ とができる。 このよ うな式 g n= s ADD, e .が成立すると き、 その両辺に左
惻から行列 Tを掛ける と、 = G 且つ Y = T G であるので、
Y Al = Y ADD, T e .
】 b
が成立する。 と ころ力'、 T e .はま さに、 行列 Tの第 j列なので、
Y ,は、 丫 に、 bを法と して行列 Tの B« j列を加算するだけで求まる +1
このと き の -も決定する必¾があるが、 ベク トル
において、 n ·≠ t>— 1 を ¾たす最小の添字 j を求める こ とは、 単にべ ク トル の成分を走杏するだけでよ く 、 単な処理である。 因みに、 1 00000個の点の生成を、 I BM社の
R i s c S y s t e m/6000上で Cコンパイラを使って作成したプ ログラムによ り、 上記 P. Bratleyの論文に記述されている方法と、 本発 明の方法の両方で行ってみたところ、 前者は 60秒かかったのに対し、 後者では 7秒しかかからず、 約 8. 5倍の計算速度の向上が見て取れた c 以上述べたアルゴリズムをまとめると、 第 1図のようになる。 すなわ ち、 ( 1 ) 第 n番目の準乱数 Y を入力する (ステップ 1 0 1 0 ) 。
n
{ 2 ) nの b進数展開 ( η η ) を求める (ステップ 1 020 ) 。
( 3 ) n .≠ b— 1 となる最小の添字 j を求める (ステップ 1 0 30 ) 。
( 4 ) 生成行列 Tの第 j列ベク トルと Y を m o d bで加算し、 それ を Y +1とする (ステップ 1 040 ) 。 では、 これらの動作を行うハー ドウェアの説明を行う。
上述の動作をコンピュータ · プログラムで行う場合には、 第 2図のよ うになる。 この構成は、 バス 1 0 1 に、 演算及び入出力制御機能をもつ中央処理 装置 (C P U ) 1 02、 プログラムをロー ド し、 また、 C P U 1 02の ための作業領域を与える主記憶 (R AM) 1 04、 コマン ドや文字列な どをキー入力するためのキーボード 1 06と、 中央処理装置を制御する ためのオペレーティング ' システム、 行列 Tを初期化するための内容を 含むファイル、 本発明に係る金融派生商品の価格づけ計算プログラムな どを格納したハードディスク 1 08と、 データベースの検索結果を表示 するためのディ スプレイ装置 1 1 0と、 ディ スプレイ装置 1 1 0の画面 上の任意の位置をポイント してその位置情報を中央処理装置に伝えるた めのマウス 1 12を接統した通常の構成である。 この実施例では、 I B M社から販売されている R I SC S y s t e m/6 OOO ( I BMの 商標) が使用される。 しかし、 やはり I BM社から提供されるている PS/2 ( I BMの商標) 、 P SZ55 ( I BMの商標) などのパーソ ナル · コンピュータのシステムで本発明を実施することも可能であって, コンピュータ · プログラムにおいて実施された本発明は、 特定のハード ゥエア構成に限定されるものではない。 オペレーティング - システムと してこの実施例では、 A I X ( I BM の商標) が使用される。 しかし、 P SZ2または P SZ55などのハー ドゥエア構成を使用する場合は、 W i n d ows (マイクロソフ トの商 標) 、 OSノ 2 ( I BMの商標) 、 PC - DOS、 MS-DOS (マイ クロソフ 卜の登録商標) などのオペレーティング - システムを使用する ことも可能であり、 コンピュータ · プログラムにおいて本発明を実施す るために、 特定のオペレーティング ' システム環境に限定されるもので はない。 では、 専用ハードウエアにて実施をする場合を第 2図に示す。
制御部 1 0は、 Y nと数 nと数 bを人力と して受け取る。 この人力 Y n は、 結采記憶部 20からの出力を用いる場合がある。 制御部 1 0は、 準 乱数展開記憶部 12、 数 n展開記憶部 14、 生成行列記憶部 18、 結果 記憶部 20に接続されており、 各記憶部には必要なデータを分けて記憶 する。 但し、 これらの記憶部は、 分けてあっても、 1つの記憶部を分割 して用いてもよい。 最終の出力は結果記憶部に格納され、 出力は後の処 理 (例えば、 関数 f の多重積分) のための後処理ブロック 22に接続さ れている。 1次元における各記憶部の記憶位置数は、 準乱数展開記憶部 1 2、 数 n展開記憧部 1 4、 結果記憶部 2 0が、 数 n及び n番目の準乱 数 Y が展開されるだけの数 mであり、 生成行列記憶部 1 8は、 m X m 個の記憶位置がある。 制御部 2 2は算術演箅を行うことができ、 次のような動作を行う。 最初に、 生成行列記慷部 1 8には、 予め生成行列 Tが記憶されており、 必要に応じて任意の列の要素を取り出せるようになつていることを述べ ておく。 まず、 数 n及び数 nに対する準乱数 Y が入力されると、 制御部 2 2 n
は n及び Y をそれぞれ b進数展開 (bは 2以上の素数) する。 すなわ
n
ち、 Y は y bm— ' · · y9b+y iと展開され、 この y . · * y9 , が準乱 数展開記憶部 1 2に順番に記憶される。 順番は からでも からでもよ いが、 後の処理のため取り出し方は記憶する順番に対応させる。 同様に 数 nも n=n bB 】+ · · · i^b+rhと展開され、 この η , · '!^,^が数!!展
m 2 J m z 1 開記憶部 1 4に順番に記憶される。 そして制御部〗 0は、 数 n展開記億部 1 4を が格納された記憶位置 から走査する。 この走査にはボインタ 1 6が用いられ、 から走査して いって、 ポインタ 1 6が移動するごとにカウンタが 1 インク リ メン ト さ れる。 制御部 1 0は、 各記憶位置において n .≠ b— 1 であるかを検査 し、 それに該当する最小のカウンタ値 j を検出する。 それに応答して、 制御部 1 0は生成行列記憶部 1 8から第 j列目の成分 (j , · · , j9. j , ) を取り出す。 この取り出し方は、 j' からでも j ¾からでもよいが、 j から
m J m であれば、 Y の成分を取り出す際には y から取り出さなければならな
n m
い。 同様に、 から取り出すのであれば、 から取り出さなければなら ない。 どちらにしても、 準乱数展開記使部 1 2の成分と、 生成行列記 «部 1
8の成分を取り出し、 各々法 bにおいて ^ + , ·
1 1 · · j ra + の計算を m
する。 この計算結果 <y ' , · · y ' . y ' ) を、 結果記馑部
m Δ 1 2 0に順番に 記慷することとなる。 これにて、 γ +1の計算が完了したこととなる。 実際には、 これは b進数展開された Y であるから元に戻す必要もあ るが、 後の計算にも用いるので結果記憶部 2 0では b進数展開された形 式で記慷する。 さらに Y .2を計算したい場合には、 結果記憶部 2 0から今度は Y +1 を Y nと して制御部 1 0に入力することになる。 しかし、 前回は Y nが 進数展開されていないことを前提と していたが、 今回は既に展開されて いるので、 その処理は不要となる。 よって、 最初に制御部 1 0は数 n + 1 を b進数展開するこ とになる。 このこ とを鑑みれば、 準乱数展開 記憶部 1 2と結果記憶部 2 0は同一と し、 使い回すこともできる。 以下, 同様の処理であるから省略する。 この第 2図に示した装置において、 準乱数展開記悌部 1 2に記憶され る Y nの b進数展開されたものは、 生成行列記憶部 1 8に記憶された生 成行列 Tの j列目の成分との加算を行う際に、 適切な成分との加算が必 要であるから、 記憶及び取り出しの順番を整えるため、 F I F 0
( Fi rst I n F i rst Out ) バッファを用いてもよい。 また、 数 n展開記憶部 1 4を走査する際には から走査し、 カウン タをインクリメント していたが、 n から走査して、 カウンタの初期値
Π1 を mとし、 1つづつデクリメントする方法もある。 しかし、 Γ^-≠1)一 1 となる最小の jを求めるわけであるから、 デクリメントする方が時問 がかかる。 さらに、 数 nが人力されるようになっているが、 制御部 10にてカウ ンタを保持し、 1つの準乱数が計算されるごとにカウン卜アップして、 その値を用いるようにすることもできる。 以上の説明は、 Y から Y +1の計算を説明したものであるが、 実際に は が人力され、 そこから処理が開始される。
B :高次元の場合の処理
上記説明をふまえて、 次に k次元の準乱数 (特に、 フ ォール · シーケ ンス) を生成する場合の処理を、 第 4図を参照して説明する。 この第 4 図は、 第 2図に示した装置において、 本発明をコンピュータ · プログラ ムにおいて実施した時の処理を示すものである。 こ こでは、 k次元空間の第 n番目の点 (u n (1) u (k)) が与え
n
られたときに、 第 n + 1番目の点 ( u u +1 (k)) を計算す る処理が説明されるが、 実際的には、 初期的に第 1番目の点
( Uj(1) u k)) の座標値を与え、 その後第 4図の処理を反復的 に適用することによって、 任意の数の点が生成されることになる。 また、 k次元空間での準乱数では、 上述した生成行列 Tが、 個別の座 標毎に個別に用意されるこ とに留意されたい。 こ こでは、 i番目の生成 行列を T u)とあらわすものとする。 第 4図のステップ 202では、 k次元空間の第 n番目の点
( u u (k)) が与えられ、 また、 生成すべき点の座標の番号 n n
をあらわす値 i が 1 にセッ トされる。 ステップ 204では、 所定の素数 b (但し、 bは、 次元の数 kよ りも 大きいかまたは等しい) に従い、 nが b進展開され、 数字 nに対応する m元のベク トル (n ny n )を求める計算が行われる。 ステップ 206では、 ステップ 204で生成された m元のべク 卜ル
(η,,η,, π )の要素を迪つて、 η .≠ b— 1 を満たす最小の j が見出 される。 ステップ 208では、 本発明の原理に従い、 第 ί 座標の生成行列 T ) の第 j列ベク トルと、 u ( 1)を mo d bで加算し、 それによつて
n
u ^(i)が求められる。
n+1 ステップ 2 1 0では、 i = kかどうかが判断される。 もしそうなら、 第 n + 1番目の点の全ての座標が計算されたことになる。 i = kでなければ、 第 n + 1番目の全ての点の座標の計算がまだ完了 していないので、 ステップ 2 1 2で i を 1增分してから、 ステップ 20 8に戻り、 第 n + 1番目の点の次の座標の点の計算を行う。 では、 専用ハー ドウェアにおいて実施する場合には、 どのようにする のかを説明する。 第 3図では 1次元の場合のみを考えたが、 容易に k次元に拡張できる, すなわち、 第 3図における準乱数展開記憶部 1 2が 1 X m個の記 1*位置 を有するものであつたのに対し、 これを m X mにすればよい。 また、 生 成行列記億部 1 8には生成行列丁が 1 つ記億されていたが、 この場合に は k個必要になるので、 m x m x k個の記憶位置を有する記憶部とすれ ぱよい。 また結果記憶部 2 0においても、 生成された準乱数の座標値の 個々の成分を記憶するために、 m X m個の記憶位置を有するように拡張 すればよい。 そして、 制御部 1 0には、 Y の代わりに u ( 1 )
π n
u (k)を入力する。 生成行列制御部 1 8においては、 生成行列 Tを 1 つ 格納する m X mのブロックごとに管理するようにし、 そのブロックを選 択する選択信号を制御部 1 0から生成行列記憶部 1 8に出力するように することもできる。 但し、 制御部 1 0には u u )を 1度に一つだけ入力するようにするな
n
らば、 準乱数展開記憶部 1 2は 1次元の場合と同様であってもよい。 準 乱数展開記悽部 1 2とは異なり、 生成行列記憧部 1 8は、 ί によって生 成行列 Τが異なり、 すべての i に対し生成行列 Τが必要となるので、 前 述の大きさの記憶位置を必要とする。 また、 結果記憶部 2 0は、 結果を 1 つ分のみ記憶する場合には 1次元の場合と同様であってもよいが、 結 果記憶部 2 0から制御部 1 0へのフィードバックのループを用いるので、 k次元分の記憶位置を有することが望ま しい。
C : 多重積分計算への応用
次に、 k次元の準乱数を用して多重積分計算を行う処理について、 第 5図を参照して説明する。 第 5図は、 第 2図に示すコンピュータ · シス テムにおいて、 本発明をコンピュータ · プログラムにて実施した場合の 処理を示したものである。 また、 ここでは f (χΓ x2 ,xk) という k 個の引数をもつ関数を、 その個々の引数が張る k次元空間内で多重積分 するものとする。 第 5図のステップ 302では、 結果の積分値が格納される変数 Sと、 積分計算用に生成された k次元の準乱数の点の数を格納する変数 nとに 0が格納される。 ステップ 304では、 nが 1増分され、 ステップ 306では、 第 4図 に示したステップを利用して、 k次元空間の第 n番目の点
( u u (k)) が生成される。
η π ステップ 308では、 f ( u (1) u (k)) が計算され、 その結
n n
果の値が Sに加算される。 尚、 ステップ 306では、 u (,)
( l ≤i≤ k> の各々は、 b進展開された個々の值を要素とするべク ト ルと して扱われたが、 ステップ 308で f に代人されるとき、
u (i) ( 1 ≤i≤ k) はスカラー値と して扱われることに留意されたい ( n ステップ 3 1 0では、 nが予定の数 Nに達したかどうかが判断され、 もしそうでないなら、 nを 1 だけ增分するステップ 304の処理に戻る ( 尚、 Nの値は、 必要な計算の精度に応じて決定され、 Nの値を大き く と る程精度は向上するが、 その分計算時問が長く かかるこ とになる。 通常 のモンテカルロ法のよ うに、 線形合同法によつて乱数を生成した場合、 生成される点のばらつきの度合があま り大きく なく、 Nの値を相当に大 きく と らないと十分な精度が得られない。 準乱数はこの点で改善された 性質を示し、 生成される点は、 線形合同法によって生成された点よ りも 相当によいばらつきの度合を与え、 結果的に、 よ り少ない数の Nで十分 な精度を達成することを可能ならしめる。 ステップ 3 1 0で nが予定の数 Nに達したと判断されたなら、 ステツ プ 3 1 2で Sの値を Nで割って正規化した値が Sに格納され、 結局、 こ の Sが積分值をあらわすことになる。 では、 第 3図に戻って多重積分を行うための後処理ブロック 22の説 明を行う。 この後処理ブロック 22の詳細を第 6図に示す。 第 6図にお いて、 結果記憶部 20 'は k次元分の記憶位置を有するように拡張され ている。 この結采記憶部 20'は、 数 bを他の入力と して有する逆展開 部 30に接続されている。 この逆展開部 30は、 出力をスカラー値記憶 部 32に記憶するようになっている。 スカラー値記憧部 32には 1の準 乱数の k個の座標值を記億できるよう、 k個の記憶位置を有する。 そし て演算部 34は、 スカラー値記憶部 32に接続され、 関数 f と準乱数の 生成個数 Nも入力とされる。 演算部 34は、 アキュムレータ 36に接続 され、 アキュムレータ 36の出力は演算部 34に戻される。 次に第 6図の動作を示す。 結果記憶部 20 '以前の部分は第 3図にお いて説明したので、 結果記憶部 20 'には、 既に un+1 (1) u +] (k) のそれぞれにっき b進数展開されたものが記億されているものと して以 下の動作を説明する。 逆展開部 30は、 un+1 U),..., u ./k)のそれ ぞれにっき b進数展開されたものを結果記憶部 20 'から読み出し、 そ れぞれ数 bにて逆展開することによ り un+1 (1) un+1(k)を生成す る。 k次元であれば、 k個の un+1 (1)が生成されたと ころで、 演算部 3
4は u u Al (k)を取り出す。
n+1 n+1 その前に、 演算部 34には被積分関数 f (xr x2 xk) が入力され. 演算部 34にセッ トされている。 よって、 この変数 Xiに un+1 (1)を入力 すると、 関数値 f ( u un+1 (k)) が計算される。 この関数 值は、 アキュムレータ 36に出力される。 演算部 34は、 次々に生成さ れる準乱数に対し関数値を計算し、 アキュムレータ 36はその関数値を 加算、 蓄檳されていく。 アキュムレータ 36は、 カウンタを有しており 演算部 34から N回入力されたところで、 蓄積された値を演算部 34に 戻す。 演算部 34でも Nは人力されているので、 この Nによ りアキュム レー夕 36からの人力を除算する。 これによ り、 関数
f (x n (1 ) X n (k)) の k重檳分が行われたこととなる。 上記部分においては説明を省略したか、 アキュムレータ 36のカウン タは、 Nを示したところでリセッ トされ、 また累積していた値について も リセッ トする。
D : 金融派生商品の価格づけ計算への応用
多 稻分計箅を必 ¾とする典型的な応用分野と して、 金融派生商品の 価格づけ計 の例について説明する。 以下に示すのは、 抵当 された 証券の ¾在 E ( P V) の計算式である。
E(P V) = J P V( i , w, a ) f ( i , w, a ) d i dwda ここで、 P Vは次のように与えられる。
ί - v w7 ak Π - w Π— νゥ)
P V = C— ÷ C- ÷ C——— 7— -斗 … 上記式において、 Cは、 抵当上での定期的な支払いであり、 i tは、 月 tでの利子率であり、 w, tは、 月 tでの予納率であり、 a .は、 残り
χ-ι
の年金である。
実際的な計算では、 かなり長期間に渡って計算が行われ、 すると、 i .の数が大きく なるので、 一般的には 360次元程度の多重橫分が必 要となり、 これは、 従来の方法では、 何日もの計算を要するが、 本発明 の技法を用いることによ り、 この計算を数時間以内で完了し得るように なる。 以上説明してきた方法及び装置を用いると、 高速に準乱数が生成でき るので、 関数 f の多重積分の計算も高速になった。 では、 この計算を複 数のプロセッサにおいて実行することを考える。
E :並列処理について
上述では、 Y = Y ADD, T e .と Y = T G v とが等価である
n+1 n b j π π ことを示した。 すなわち、 任意の ηに対して Υ ηを求めるには、 生成行 列 Τと行列 G (先に示した) と数 ηを b進数 (bは 2以上の素数) した ものをベク トルと した V の行列の掛け算にて計算できる。 任意の数 n π
に対応できるのは、 行列 Gの性質による。 そして、 Y がー度生成され れば、 Y は上述した Y =丫 ADD. T e .にて行列の掛け算な
n+1 n+1 n b j
しの高速な方法にて計算される。 任意の nに対して Y を計算できるの で、 Y Al= Y ADD. T e .にて必要な nまで 1から空回し計算を行 n+】 n b j
う必要がない。 このことが重要である。 このこ とを念頭に置きながら第 7図及び第 8図を参照する。
第 7図は、 複数のプロセッサ (42, 44, 46) と、 システム制御 部 4 0がバス 4 8にて接統されているシステムを表すものである。 この システム制御部 4 0は、 第 1 プロセッサ 4 2等のプロセッサとは他に設 けてもよいし、 複数のプロセッサ 《4 2 , 4 4 , 4 6 ) のうち 1 つに含 まれるものでもよい。 また、 システム制御部 4 0は、 第 1 プロセッサ等 と同様のものでも、 専用のものでもよい。 このシステムの動作を第 8図を用いて説明する。
システム制御部 4 0は、 このシステムにおいて処理に用いることので きるプロセッサの数及びそのプロセッサの I Dを認識し、 どのプロセッ ザには全準乱数のどの部分を割り当てるかを計算する。 システム全体の ジョブに偏りがなければ、 各プロセッサに均等に分割すればよい。 但し. 一般的には処理開始番号 s及び処理終了番号 t を処理割当情報と して与 える。 処 S終了番号 tはそのプロセッサにおける準乱数生成個数に Sき 換えることができる。 また、 常に各プロセッサに均等に処理が割り当て られるのであれば、 準乱数生成個数又は処理終了番号 tは各プロセッサ にいちいち知らせることもないので、 それらの送信は省略することもあ る(ステップ 6 0 ) 。 各プロセッサでは、 各々異なる処理開始番号 sを受信し、
Y = T G V から Y をそれぞれ生成する(ステップ 6 2 ) 。 このよ うに
Π Π S
任意の sに対応する Y を生成できるのは、 先ほど述べたように行列 G の性質である。 一旦 Y sが生成できると、 Y n ++11 = Y n A D D . b T e j.に従い、 受信し た処理終了番号 tに対応する Y tまでの準乱数を、 生成する(ステップ 6 4 ) 。 この処理の詳細は、 上述で行っているので省略する。 これは、 第 4図に示した手頤や、 第 3図 (拡張したものも含む) で示した装置にて 実施することができる。 さ らに、 本発明において多重穰分を行う場合に は、 被積分関数 f も評価しなければならないが、 この被積分鬨数 f の評 価に時間がかかる場合には、 Y A1 = Y ADD. T e .にて計箅する方
n+] n b j
法を用いなく とも、 いちいち行列の掛け算を行う Y n = T G V nに従って 計算しても全体の実行時間は実質的に同じである場合もあるので、 ステ ップ 64は、 どちらの方法を用いてもよい。 但し、 準乱数の生成のみの 観点では Y n ++1l = Y n ADD. b T e j .に従って計算する方が高速であるこ とは明らかである。 各プロセッサにて割り当てられた準乱数 Y から Y,までが生成された
s t
のち、 又は各準乱数が生成されるたびに、 システム制御部 40から送ら れてきた関数 f に代入する。 そして、 計算された関数値 f ( Y n )
( s≤ n≤ t ) を全て加算し、 S . ( iはプロセッサの番号、 プロセッ サは h個ある。 ) を計算する (ステップ 66) 。 この計算値 S. ( 1≤ i≤ h ) は、 すべてのプロセッサからシステム 制御部 40に送信される (ステップ 68) 。 システム制御部 40では、 送付された S.を全て加算し、 全準乱数生成個数 Nで除算する (ステツ プ 70) 。 これにて、 関数 f の多重積分計算は完了した。 上述の説明では、 生成した準乱数に対する関数値 f ( Y ) を計算し た後、 その加算を各プロセッサにて行ったが、 加算する前にシステム制 御部 40に送信してもよい。 但し、 パス 48のトラフィ ックや各プロセ ッサにおける送信処理等のため他の処理が遅く なる場合もある。 また、 各プロセッサにて準乱数を生成したと ころで、 システム制御部 40に送 信することも可能である。 この場合には、 関数 f を各プロセッサに送信 する必要は無く なる。 このようにした時の問題は、 関数値の加箅前に送 信するのと同様である。 第 3図及び第 6図で示した装置を各プロセッサに含ませる場合には、 第 6図におけるアキュムレータ 36からの出力を演算部 34に戻さず、 アキュムレータ 36の出力をそのプロセッサの出力とする変更を必要と する。 また、 アキュムレータ 36には準乱数の生成個数 Nの入力を必要 としているが、 この Nは、 1にしておきシステム制御部 40においてま とめて除算する。 各プロセッサにおいて計算する準乱数の数が同じなら ば、 Nをそのプロセッサにおいて処理する準乱数の個数に置き換えても よい。 以上、 並列処理の説明においては簡単のため Y をもって説^したが、 これは (u n u n Al (k)) とするよ うに拡張することは前述の
+1 +1
ようにできるので、 それによ り多重橫分処理を行うとの意味である。 なお、 第 8図のステップ 64においては Y +1 = Y ADD, T e .又 は Y =TG ν に従って計箅すると した力1、 各プロセッサはどちらに従 n n
つても計算できるようにしておき、 システム制御部 40が関数 f の性質 を検知して、 どちらの方法を各プロセッサが実施すべきかを示すスィッ チ情報を送信するようにしてもよい。 また、 LANなどで接続された分散処理環境で複数台の処理装置を接 統し、 各々の処理装置のローカル ' メモリを分散して使用することによ り、 巨大な次元の処理に対処したりすることも上述の簡単な変形にて実 施できる。 以上述べた、 コンピュータ ' プログラムによ り実行する形態をとる場 合には、 各ステップに対応するプログラム · コードにて本発明を実現し, それを含む、 フロッピーディスクや C D— ROM、 MOディスク等の記 憶媒体にて流通させることは、 当業者が容易に実施可能な事項である。
[産業上の利用可能性]
以上説明したように、 この発明は、 準乱数の生成において、 行列の 1 つの列とのモジュロの和を行うという技法を提供することによ り、 準乱 数の生成速度を極めて向上させる、 という顕著な効果を与えるものであ る。 これによつて、 準乱数を利用するさまざまな数値計算 (典型的には 多重積分) の計算速度が実質的に改善される。 さ らに、 並列処理を行うことによ りよ り高速に準乱数が計算され、 そ れによって多重積分の計算等も高速に行えるようになつた。 並列処理の 場合には、 全体の積分計算時間を考えた場合に、 行列の掛け算でも十分 な計算速度を得るようにすることもできた。 尚、 上記実施例では、 金融派生商品の価格づけ計算への応用例につい て説明したが、 計算物理、 流体力学、 コンピュータ · グラフィ ックスな どの広範な分野に本発明を適用することが可能である。 このような準乱 数を使用する計算技法の背景については、 例えば、 丄 F. Traub,
H. ozniakowski, "Breaking Intractabi 1 ity", SCIENTIFIC AMERICAN
January 1994などを参照されたい。

Claims

請求の範囲
1 . (a) n番目 (nは、 1以上の整数) の準乱数 Ynの値を b進数 ( bは,
2以上の素数) 展開し、 生成された m個の成分 ( V l y r y ) を順番に第 1記悚部に記億する手段と、
(b)数 nの b進数展開 (η , η , η,) を計算し、 第 2記饯部に頃 m m~ 1 I
番に記 isする手段と、
(c)前記第 2記慷部を から順番に走査して、 b— 1 となる最小 の順番 j を検出する検出手段と、
( 前記検出手段に応答し、 予め記憶された、 前記準乱数の生成行列 T の第 j列の成分 j t. j ) 及び前記第 1記慷部に記憶され た準乱数 Υηの成分を順番に取り出し、 同一の順番で取り出された前記 生成行列 Τの第 j列の成分 j ·及び準乱数 Yr«の成分 y;を法 bで加算し、 加算結果を順番に第 3記憧部に記憶する手段と
を有する準乱数生成装置。
2. (a) n番目 (nは、 1以上の整数) の準乱数 Ynの値を b進数 ( bは,
2以上の素数) 展開し、 生成された m個の成分 ( y i y y )
J m一 I in を順番に第 1記憶部に記憶するステップと、
(b)数 nの b進数展開 ( η , η ... . . . η , ) を計算し、 第 2記憶部に順 番に記憶するステップと、
(c)前記第 2記億部を から順番に走査して、 b— 1 となる最小 の順番 j を検出する検出ステップと、
( 前記検出ステップに応答して、 予め記憶された、 前記準乱数の生成 行列 Tの第 j列の成分 ( j, J j ) 及び前記第 1記憶部に記
1 m一 1 m
悽された準乱数 Υηの成分を順番に取り出し、 同一の順番で取り出され た前記生成行列 Tの第 j列の成分 j i及び準乱数 Ynの成分 y;を法 bで 加算し、 加算結果を順番に第 3記憶部に記憶するステップと
を含む準乱数生成方法。
3. (a) n番目 (nは、 1以上の整数) の準乱数 (u (1) u (k) ) n n の個々の座標値 ιιη (ί) ( 1≤ i ≤k) を、 b進数 (bは、 kよ り大きい か又は等しい素数) 展開し、 各前記座標值にっき、 生成された m個の成 分を、 頫番に第 1記憶部に記憶する手段と、
(b) 数 nの b進数展開 (n . n η,) を計算し、 第 2記憶部に 順番に記憶する手段と、
(c) 前記第 2記憶部を から順番に走査して、 n .≠ b— 1 となる最小 の順番 j を検出する検出手段と、
(d) 前記検出手段に応答して、 予め記憶された、 前記準乱数の第 i番目 ( 1≤ i ≤ k) の座標のための生成行列 Tu)の第 j列の成分及び前記 n番目の準乱数の第 ί番目の座標値の成分を順番に取り出し、 同一の順 番で取り出された前記生成行列 Τ )の第 j列の成分及び前記 n番目の 準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を順番に 第 3記憶部に記憶する手段と
を有する準乱数生成装置。
4. (a) n番目 (nは、 1以上の整数) の準乱数 (u (1) u (k) ) η π の個々の座標値 u ) { 1 ≤ i ≤ k ) を、 b進数 ( bは、 kよ り大きい
π
か又は等しい素数) 展開し、 各前記座標値につき、 生成された m個の成 分を、 順番に第 1記憶部に記憶するステップと、
(b) 数 nの b進数展開 ( η , n η,) を計算し、 第 2記憶部に m m - 1 1
順番に記憶するステップと、 (c) 前記第 2記憶部を から順番に走査して、 rij≠b— 1 となる最小 の頃番 j を検出する検出ステップと、
(d) 前記検出ステップに応答して、 予め記憶された、 前記準乱数の第 ί 番目 ( 1 ≤ i ≤k) の座標の生成行列 T(uの第 j列の成分及び前記 n 番目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の頗番 で取り出された前記生成行列 T )の第 j列の成分及び前記 n番目の準 乱数の第 i番目の座標值の成分とを法 bで加算し、 加算結果を順番に第 3記慷部に記悽するステップと
を含む準乱数生成方法。
5. (a) k個の要素に関連する関数 f ( xr x2 xk) を規定する 手段と、
(b) n番目 (nは、 1以上の整数) の準乱数 (u (1) u (k)) の
n n
個々の座標值 u (i) { 1 ≤ i ≤k) を、 b進数 <bは、 kよ り大きいか
n
又は等しい素数) 展開し、 各前記座標値につき、 生成された m個の成分 を顚番に第 1記憶部に記憶する手段と、
(c) 数 nの b進数展開 (η , η , η,) を計算し、 第 2記憶部に
m m一 1 1
順番に記憶する手段と、
(d) 前記第 2記憶部を から頫番に走査して、 b— 1 となる最小 の順番 j を検出する検出手段と、
(e) 前記検出手段に応答して、 予め記憶された、 前記準乱数の第 i番目 { 1 ≤ i ≤k) の座標のための生成行列 T )の第 j列の成分及び前記 η番目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の順 番で取り出された前記生成行列 T u)の第 j列の成分及び前記 n番目の 準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を順番に 第 3記憶部に記憶する手段と (f) m個の前記加算結果が生成されるごとに b進数逆展開し、 生成され た un+1 u)を第 4記慷部に記悽する手段と、
(g) 前記手段(f)が座標値 u ( 1 ≤ i ≤ k ) を前記第 4記慷部に 記慊した場合には、 f (u un+1(k)) の値を計算する手段 と、
(h) 前記手段(b)乃至(g)を制御して、 f ( u (1) u (k)) の值を
n n
n= lから n = N (Nは、 1 よ り大きい所定の整数) まで累積する手段 と、
(i) 前記累積手段に応答して、 前記累積値を Nで除算する手段と を有する関数 f の多重積分計算装置。
6. (a) k個の要素に閧連する関数 f ( xr x2,..., xk) を規定する ステップと、
(b) n番目 (nは、 1以上の整数) の準乱数 (u (1) u (k)) の
n n
個々の座標値 u (i) ( 1≤ i ≤k) を、 b進数 (bは、 kよ り大きいか 又は等しい素数) 展開し、 各前記座標値につき、 生成された m個の成分 を順番に第 1記憶部に記憶するステップと、
(c) 数 nの b進数展開 (η , n ,, .... 11 , ) を計算し、 第 2記憶部に
m m - 1 1
順番に記憶するステップと、
(d) 前記第 2記憶部を から順番に走査して、 n .≠ b— 1 となる最小 の順番 jを検出する検出ステップと、
(e) 前記検出ステップに応答して、 予め記憶された、 前記準乱数の第 ί 番目 ( 1 ≤ ί ≤k) の座標のための生成行列 T )の第 j列の成分及び 前記 n番目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一 の順番で取り出された前記生成行列 T U)の第 j列の成分及び前記 n番 目の準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を順 番に第 3記使部に記使するステップと、
(f) m個の前記加算桔采が生成されるごとに b進数逆展開し、 生成され た un+1 )を第 4記慷部に記億するステップと、
(g) 前記ステップ(Πが座標値 u ( 1 ≤ i ≤k) を前記第 4記憶 部に記憶した場合には、 f ( u u .^1 ) の値を計算する ステップと、
(h) 前記ステップ(b)乃至ステップ(g)を繰り返し、
f ( u (1) u (k)) の値を n= lから n = N (Nは、 1 よ り大き n n
い予定の整数) までアキュムレータにて累横するステップと、
(i) 前記アキュムレータに応答して、 前記累積値を Nで除算するステツ プと
を含む関数 f の多重積分計算方法。
7. 複数のプロセッサと、
前記複数のプロセッサの各々に、 処理開始番号 sを含む処理割当情報 を送信する手段とを有し、
各前記プロセッサが、
(a) 前記処理割当情報を受信し、 前記処理開始番号 sに対応する準乱数 (u (1) u (k)) を生成し、 第 1記憶部に記憶する手段と、
S S
(b) n番目の準乱数 (u (1) u (k)) の個々の座標値 u (i) n n n
( 1 ≤ i ≤ k ) を、 b進数 (bは、 kよ り大きいか又は等しい素数) 展 開し、 各前記座標値につき、 生成された m個の成分を順番に第 2記憶部 に記憶する手段と、
(c) 数 nの b進数展開 (n . n η,) を計算し、 第 3記憶部に
m DI~ i 1
順番に記憶する手段と、
(d) 前記第 3記憶部を n】から順番に走査して、 nj≠ b— 1 となる最小 -35- の順番 j を検出する検出手段と、
(c) 前記検出手段に応答して、 予め記憶された、 前記準乱数の第〖 番目 ( 1 ≤ i ≤ k ) の座標のための生成行列 Τ)の第 j列の成分及び前記 n番目の^乱数の第 i 番目の座標値の成分を順番に取り出し、 同一の順 番で取り出された前記生成行列 T (uの第 j列の成分及び前記 n番目の 準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を順番に 第 4記憶部に記憶する手段と、
(Γ) m個の前記加箅結果が生成されるごとに b進数逆展開し、 生成され た un+] (i)を前記第 1記億部に記憶する手段と、
(g) 前記手段(b)乃至手段(Γ)を制御して、 s + 1番目の準乱数
( u (1) u . } k) ) から当該プロセッサにおける処理終了番号 s+1
tに対応する準乱数 ( ut (1) u. (k)) までを前記第 1記憶部に記 憶させる制御手段と
を有する準乱数生成システム。
8. 前記手段 ) が、
数 nの b進数展開 ( n . n n } ) を計算し
m-1' の計算結果に よ り生成されるベク トル V = ( η,, (i) η η ) と生成行列 Τ n 1
( 1 ≤ k ) と行列 G
Figure imgf000037_0001
とを用いて、 n番目の準乱数の i 番目の座標値 u ( 1)を生成する生成手 段を含む請求項 7記載の準乱数生成システム。
9. システム制御手段と複数のプロセッサとを有するコンピュータ · シ ステムにおいて、
5 (a) 前記複数のプロセッサの各々に、 処理開始番号 sを含む処理割当情 報を前記システム制御手段から送信するステップと、
(b) 各前記プロセッサにおいて前記処理割当情報を受信し、 前記処理開 始番号 sに対応する準乱数 ( u ug (k)) を生成し、 第 1記憶 部に記憶するステップと、
】0 (c) 各前記プロセッサにおいて、 n番目の準乱数 ( u (1) u (k)) π n の個々の座標値 u (i) ( 1 ≤ i ≤ k) を、 b進数 (bは、 k J: り大きい
π
か又は等しい素数) 展開し、 各前記座標値につき、 生成された m個の成 分を順番に第 2記憶部に記憧するステップと、
(d) 各前記プロセッサにおいて、 数 nの b進数展開 ( η , n ......
m m - 1
15 nj) を計算し、 第 3記憶部に順番に記憶するステップと、
(e) 各前記プロセッサにおいて、 前記第 3記憶部を 11〗から順番に走査 して、 n .≠ b— 1 となる最小の順番 j を検出する検出ステップと、
(f) 各前記プロセッサにおいて、 前記検出ステップに応答し、 予め記憶 された、 前記準乱数の第 i 番目 ( 1 ≤ i ≤ k ) の座標のための生成行列
20 !^ の第」列の成分及び前記 n番目の準乱数の第 i 番目の座標値の成 分を順番に取り出し、 同一の順番で取り出された前記生成行列 T (1)の 第 j列の成分及び前記 n番目の準乱数の第 i 番目の座標値の成分とを法 bで加算し、 加算結果を順番に第 4記憶部に記憶するステップと、
(g) 各前記プロセッサにおいて、 m個の前記加算結果が生成されるごと 25 に b進数逆展開し、 生成された u を前記第 1記憶部に記憶するス
テツプと、 (h) 各前記プロセッサにおいて、 前記ステップ(c)乃至(g)を *Sり返し、
(1) . (k)
s + 1番目の準乱数 ( u U ) から当該プロセッサに
s+1 s+1
(1) -- (k)
おける処理終了番号 t に対応する準乱数 ( u u ) までを 前記第 1記憶部に記憶するステップと
を含む準乱数生成方法。
1 0. 前記ステップ(b)が、
数 nの b進数展開 ぐ η , n nj) を計算し、 その計算結果に
m-r ..
(i) よ り生成されるベク トル V = ( n, n n ) と生成行列 T η 1 m-1 m
( 1 ≤ i ≤ k ) と行列 G
Figure imgf000039_0001
(i)
とを用いて、 n番目の準乱数の i 番目の座標値 u を生成するステツ プを含むこ とを特徴とする請求項 9記載の準乱数生成方法 (
1 1 . 衩数のプロセッサを有するコ ンピュータ ' システムにおいて、 (a) 各前記プロセッサにおいて、 予め定められた処 始岙 · s に対応 する準乱数 ( u (1) u (k) ) を生成し、 31 記 ^部に記^するス テツプと、
(1) (k)
(b) 各前記プロセッサにおいて、 n番目の準乱数 ( υ
(i)
の個々の应樑値 u ( 1 ≤ i ≤ k ) を、 b進数 ( bは、 kよ り大きい か又は等しい素数) 展開し、 各前記座標 ffiにっき、 生成された m個の成 分を順番に第 2記憶部に記慷するステップと、
(c) 各前記プロセッサにおいて、 数 nの b進数展開 (n ,
m n
Β-Γ' nj) を計算し、 第 3記憶部に順番に記悌するステップと、
(d) 各前記プロセッサにおいて、 前記第 3記悽部を rijから順番に走査 して、 n.≠ b— 1 となる最小の頫番 jを検出する検出ステップと、
(e) 各前記プロセッサにおいて、 前記検出ステップに応答し、 予め記憧 された、 前記準乱数の第 i番目 ( 1 ≤ i ≤k) の座標のための生成行列 T、uの第 j列の成分及び前記 n番目の準乱数の第 i番目の座標値の成 分を順番に取り出し、 同一の順番で取り出された前記生成行列 T )の 第 ·)列の成分及び前記 n番目の準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を順番に第 4記億部に記憶するステップと、
(f) 各前記プロセッサにおいて、 m個の前記加算結果が生成されるごと に b進数逆展開し、 生成された u +1 )を前記第 1記憶部に記憶するス テツプと、
(g) 各前記プロセッサにおいて、 前記ステップ(b)乃至(Πを繰り返し、 s + 1番目の準乱数 (us+1 (1) us+1(k)) から当該プロセッサに おける処理終了番号 tに対応する準乱数 (u.(1) ut (k)) までを 前記第 1記憶部に記憶するステップと
を含む準乱数生成方法。
1 2. 複数のプロセッサと、
前記複数のプロセッサの各々に、 k個の要素に関連する関数
f ( xr x9 xk) 及び処理開始番号 sを含む処理割当情報を送信 するシステム制御手段とを有し、
各前記プロセッサが、
(a) 前記処理割当情報を受信し、 前記処理開始番号 sに対応する準乱数 (uo (1) u。(k)) を生成し、 第 1記憶部に記憶する手段と、
(b) n番目の準乱数 (u u (k)) の個々の座標値 u ) n n n
( 1≤ i ≤k) を、 b進数 (bは、 kよ り大きいか又は等しい素数) 展 開し、 各前記座標値につき、 生成された m個の成分を順番に第 2記憶部 に記慷する手段と、
(c) 数 nの b進数展開 (n . η , η,) を計算し、 第 3記憶部に
m m* 1 I
順番に記憶する手段と、
(d) 前記第 3記憶部を Π ιから順番に走査して、 η .≠ b— 1 となる最小 の順番 j を検出する検出手段と、
(e) 前記検出手段に応答し、 予め記憶された、 前記準乱数の第 ί番目
( 1 ≤ i ≤ k ) の座標のための生成行列 T )の第 j列の成分及び前記 n番目の準乱数の第 i番目の座標値の成分を順番に取り出し、 同一の順 番で取り出された前記生成行列 Τ)の第 j列の成分及び前記 n番目の 準乱数の第 i番目の座標値の成分とを法 bで加算し、 加算結果を頫番に 第 4記憶部に記憶する手段と、
(f) m個の前記加算結果が生成されるごとに b進数逆展開し、 生成され た un+1 (i)を前記第 1記憶部に記憶する手段と、
(g) 前記手段(b)乃至(f)を制御して、 s + 1番目の準乱数 (u .} {}),.
... u ^ ik) ) から当該プロセッサにおける処理終了番号 tに対応する s+】
準乱数 (ut (1) ut (k)) までを前記第 1記憶部に記憶させる制御 手段と、
(h) 前記関数 f を受信して、 前記第 1記憶部に格納された準乱数
( u (1) u (k)) ( s≤n≤ t ) を取り出し、
n n
f ( u (1) u (k)) の値を計算する手段と、
n n
(i) 生成された関数值 f (u (1) u (k)) ( s≤ n≤ t ) を累積
n n
する累積手段と、 (j) 前記累秸手段によ り計算された値を、 前記システム制御手段に送信 する手段と
を有し、
前記システム制御手段が、 前記各プロセッサから送信された値を累積 し、 すべての前記プロセッザの準乱数生成個数で累積値を除算する、 関数 f の多重積分を行うコンピュータ · システム。
1 3. 前記手段(a)が、
数 nの b進数展開 ( η を計算し、 その計算結果に
Figure imgf000042_0001
よ り生成されるべク トル V : ( n r ... n v n ) と生成行列 Τ Π) m一 J m
( 1 ≤ i ≤ k ) と行列 G
Figure imgf000042_0002
とを用いて、 n番目の準乱数の i 番目の座標値 un ( l)を生成する生成手 段を含むことを特徴とする誚求 ¾ 1 2記載の f !数 f の多 分を行うコ ンピュータ · システム。
1 4. システム制御手段と祓数のプロセッサとを ¾するコンピュータ - システムにおいて、
(a) 前記複数のプロセッサの各々に、 kiWの要素に! ¾迚する ί¾数 f ( X ]> x0 xk) 及び処¾'1¾始岙号 sを含む処 ¾¾ 当情報を前記 システム制御手段から送信するステップと、 (b) 各前記プロセッサにおいて、 前記処理割当情報を受信し、 前記処理 開始番号 sに対応する準乱数 ( u u (k)) を生成し、 第 1記
S S
僮部に記悌するステップと、
(c) 各前記プロセッサにおいて、 n番目の準乱数 ( u u (k) ) n n の個々の座標値 un ( l) U ≤ i ≤ k ) を、 b進数 ( bは、 kよ り大きい かまたは等しい素数) 展開し、 各前記座標値につき、 生成された m個の 成分を順番に第 2記億部に記憶するステップと、
(d) 各前記プロセッサにおいて、 数 nの b進数展開 (η , η
を計算し、 第 3記憶部に順番に記憶するステップと
(e) 各前記プロセッサにおいて、 前記第 3記憶部を から順番に走査 して、 n .≠ b— 1 となる最小の順番《5 を検出する検出ステップと、
(f) 各前記プロセッサにおいて、 前記検出ステップに応答して、 予め記 憶された、 準乱数の第 i番目 ( l ≤ i ≤ k ) の座標の生成行列 T u)の 第 j列の成分を順番に取り出し且つ前記準乱数の第 i 番目の座標値の成 分を順番に取り出し、 同一の順番で取り出された前記生成行列 T V 1)の 成分及び前記準乱数の成分を法 bで加算し、 加算結果を順番に第 4記憶 部に記憶するステップと、
(g) 各前記プロセッサにおいて、 m個の前記加算結果が生成されるごと に b進数逆展開し、 生成された u ^(^)を前記第 1記憶部に記憶するス テツプと、
(h) 各前記プロセッサにおいて、 前記ステップ(c)乃至(g)を繰り返し、 s + 1番目の準乱数 ( us+1 (1) u +1 (k) ) から当該プロセッサに おける処理終了番号 tに対応する準乱数 ( u . (1) ut (k) ) までを 前記第 1記憶部に記憶するステップと、
(i) 各前記プロセッサにおいて、 前記第 1記憶部に格納された準乱数
( (1) u (k) ) ( s ≤ n≤ t ) を取り出し、
π n f ( u (1) u (k)) の ffiを計算するステップと
(j) 各前記プロセッサにおいて、 生成された関数値
f { u (1) u (k)) ( s≤ n≤ t ) をアキュムレータによ り累稻 n n
するステップと、
(k) 各前記プロセッサにおいて、 前記アキュムレータによ り累橫された 值を、 前記システム制御手段に送信するステップと、
(1) 前記システム制御手段において、 前記各プロセッサから送信された 値を累積し、 すべての前記プロセッサの準乱数生成個数で累積値を除算 するステップと
を含む関数 f の多重橫分計算方法。
1 5. 前記ステップ(b)が、
数 nの b進数展開 (η , η , η,) を計算し、 その計算結果に
m Hi- 1 i
よ り生成されるベク トル v = ( n, n n ) と生成行列 T(1)
( 1≤ i ≤ k ) と行列 G
Figure imgf000044_0001
(Ϊ)
とを用いて、 n番目の準乱数の i番目の座^値 u を生成するステツ プを含む請求 ¾ 1 4記^の [¾¾ f の多 311¾分方法。
1 6. 衩数のプロセッサと、
前記複数のプロセッサの各々に、 処 S開始番号 sを含む処¾!割当情報 -Ί3- を送信する手段とを有し、
各前記プロセッサが、
(a) 前記処理割当情報を受信する手段と、
(b) 数 nの b進数展開 ( η , η .... η,) を計算し、 その計箅桔采 によ り生成されるべク 卜ル V (i)
( n n ,. η ) と生成行列 Τ { 1 ≤ i ≤ k ) と行列 G
Figure imgf000045_0001
とを用いて、 n番目の準乱数の i 番目の座標値 u )を生成する生成手
η
段と、
(c) 前記生成手段が前記処理開始番号 S に対応する 乱数
( u (1) u (k) ) から当該プロセッサにおける処理終了番号 tに
S S
(1)
対応する準乱数 ( U ., ut (k)) を生成するように、 数 n
(i)
( s≤ n≤ t ) と前記生成行列 T 1/ ( 1 ≤ i ≤ k ) と前記行列 Gを、 前記生成手段に入力する制御手段と
を有する
準乱数生成システム。
1 7. システム制御手段と衩数のブ口セッサとをおするコンピュータ - システムにおいて、
(a) 前記システム制御手段が、 処理開始番号 s を含む処¾割当佶報を前 記複 のプロセッサに送信するステップと、 -^^ -
(b) 各前記プロセッサにおいて、 前記処 s割当惜報を受信するステップ と、
(c) 各前記プロセッサにおいて、 数 nの b進数展開 ( η m, η ID~ , i n ]) を計算し、 その計箅結采によ り生成されるベク トル vn= ( nr -.
.. n n ) と生成行列 T"〉 ( 1 ≤ i ≤ k) と行列 G
m- 1 m
Figure imgf000046_0001
とを用いて、 n番目の準乱数の i番目の座標値 un( を生成する生成ス テツプと、
(d) 各前記プロセッサにおいて、 前記生成ステップによ り前記処理開始
(1) (k)
番号 sに対応する準乱数 ( u U ) から当該プロセッサ おける処 S終了番号 tに対応する準乱数 ( u (1) .-.. uL (k)) を生成 するように、 数 n ( s≤ n≤ t ) を順に供給して、 前記生成ステップを ^り返させるステップと
を含む準乱数生成方法。
1 8. 祓数のプロセッサと、
前記複数のプロセッサの各々に、 k個の ¾素に ί¾迚する I 数 f ( xr x2 xk) と処理^始^号 sを含む処¾别当恬報を送信す るシステム制御手段とを有し、
各前記プロセッサが、
(a) 前記処¾割当情報を受信する手段と、 (b) 数 nの b進数展開 ( n . n ... nj) を計算し、 その計^結果 によ り生成されるベク トル vn= ( nr n n ) と生成行列 T (i)
( 1≤ i ≤ k ) と行列 G
Figure imgf000047_0001
とを用いて、 n番目の準乱数の i番目の座標値 u )を生成し、 記憶手
η
段に記憶する生成手段と、
(c) 前記生成手段が前記処理開始番号 sに対応する準乱数 (u
s
, u (k) ) から当該プロセッサにおける処理終了番号 tに対応する準乱
(1) (k)
数 ( U ut ' ) を生成するように、 数 n ( s≤ n≤ t ) と前
(i)
記生成行列丁、" ( 1 ≤ i ≤ k ) と前記行列 Gを、 前記生成手段に人力 する制御手段と、
(d) 前記関数 f を受信し、 前記記傥手段に準乱数 ( u (1) u (k)) ti n が記愤されたと こ ろで、 各座標 i£iu (|ノを取り出し、
n
f ( u u (k)) の値を計 ίや:する手段と、
η η
(c) (1) (k)
生成された | ¾俯 f ( u , υ ) < s ≤ η≤ L ) を する ¾ 手段と、
(1) 前記 手段によ り ¾¾ された ffiを、 前記システム制御手段に送信 する手段と
を有し、
前記システム制御手段は、 前記各プロセッサから送信された «iを累 し、 すべての前記プロセッサの準乱数生成個¾で累^値を除箅する -Ί6-
関数 f の多重 ίδ·分計算システム,
1 9. システム制御手段と祓数のプロセッサとを有するコンピュ一タ - システムにおいて、
(a) 前記システム制御手段が、 前記複数のプロセッサの各々に、 k個の 要素に関連する関数 f ( xr x9 xk) と処理開始番号 sを含む処 理割当情報を送信するステップと、
(b) 各前記プロセッサにおいて、 前記処 S割当情報を受信するステップ と、
(c) 各前記プロセッサにおいて、 数 nの b進数展開 ( n . η , nj) を計算し、 その計算結果によ り生成されるベク トル vn= ( nr ..
.. n ,, η ) と生成行列 T (i) ( 1 ≤ i ≤ k ) と行列 G
m— 1 m
Figure imgf000048_0001
とを用いて、 n番目の準乱数の i 番目の座楞 fiun(')を生成し、 記 IS手 段に記 する生成ステップと、
(d) 各前記プロセッサにおいて、 前記生成ステップによ り前記処¾1 始
(1) (k)
¾号 sに対応する準乱数 ( u ) から当該プロセッサ
(1) (k
おける処 ¾終了番号 tに対応する準乱 ¾ ( u L ■ ... , u t ) l 成 するように、 数 n ( s≤ n≤ t ) を顺に供給して、 前記生成ステップを -り返させるステップと、
(e) 各前記プロセッサにおいて、 前記 f を受信し、 前記記 tS手段に 準乱数 ( u (1),..., u (k)) が記億されたところで、 各座標値 u (ί) η η η を取り出し、 f (u u (k)) の値を計算するステップと、
n n
(f) 各前記プロセッサにおいて、 生成された関数値
f ( u (1) u (k)) ( s≤ n≤ t ) を累橫するステップと、
π n
(g) 各前記プロセッサにおいて、 前記ステップ(Πによ り累積された値 を、 前記システム制御手段に送信するステップと、
(h) 前記システム制御手段が、 前記各プロセッサから送信された値を累 積し、 すべての前記プロセッサの準乱数生成個数で累穑値を除算するス テツプと
を含む関数 f の多重積分計算方法。
20. コンピュータの処理によって、 準乱数を生成するシステムであつ
(a) n番目 (nは、 1以上の整数) の準乱数 Y の値を、 b進数 (bは、
n
1 よ り大きいか又は等しい素数) 展開された m個の成分をもつベク トル と して保持する手段と、
(b) 数 nの b進数展開 (n , n η,) を計算し、 数 ηベク トル
m in' i 1
(n, n n ) として保持する手段と、
1 m - 1 m
(c) 前記数 nべク トルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出する手段と、
(d) 上記検出された要素番号 jに基づき、 準乱数の生成行列 Tの第 j列 ベク トルと、 Y の値をあらわすベク トルとを法 bで加算し、 その結果
n
を n + 1番目の準乱数 Y +1と して保持する手段と
を有する準乱数生成システム。
21. コンピュータの処理によって、 準乱数を生成する方法であって、 (a) n番目 ( nは、 1以上の整数) の準乱数 Ynの值を、 b進数 ( bは、 1 よ り大きいか又は等しい素数) 展開された m個の成分をもつべク トル と して保持するステップと、
(b) 数 nの b進数展開 ( n . η , n を計算し、 数 nベク トル
m ID- J 1
( n, n n ) として保持するステップと、
1 n-1 a
(c) 前記数 nべク 卜ルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出するステップと、
(d) 上記検出された要素番号 j に基づき、 準乱数の生成行列 Tの第 j列 ベク トルと、 Y の値をあらわすベク トルとを法 bで加算し、 その結果
n
を n + 1番目の準乱数 Y +1と して保持するステップと
を含む準乱数生成方法。
22. コンピュー夕の処理によって、 k次元 ( kは 1 よ り大きい整数) 準乱数を生成するシステムであって、
(1)
(a) n番目 ( nは、 1以上の整数) の準乱数 ( u u (k)) の
n
値を、 その個々の要素 u ( i) ( 1 ≤ i ≤ k ) が、 b進数 ( bは、 kよ り
n
大きいか又は等しい素数) 展開された m個の成分をもつベク トルである ように保持する手段と、
(b) 数 nの b進数展開 ( η , η , η, ) を計算し、 数 ηベク トル
m m~ 1 i
( n, n n ) と して保持する手段と、
1 m-J m
(c) 前記数 nべク トルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出する手段と、
(d) 上記検出された要素番号 j に基づき、 準乱数の第 ί 番目
( 1 ≤ i ≤ k ) の座標のための生成行列 Τ)の第 j列ベク トルと、 u (1)の値をあらわすベク トルとを法 bで加算し、 その結果を n + 1番 n
目の準乱数の i 番目の座標値 u . ^)と して保持する手段と を有する準乱数生成システム。
23. コンピュータの処理によって、 k次元 ( kは 1 よ り大きい整数) 準乱数を生成する方法であって、
5 (a) n番目 (nは、 1以上の整数) の準乱数 ( u (1) u (k) ) の
n n
値を、 その個々の要素 u (,) ( 1 ≤ i ≤ k ) 、 b進数 ( bは、 ょ り 大きいか又は等しい素数) 展開された m個の成分をもつべク 卜ルである よ うに保持するステップと、
(b) 数 nの b進数展開 (η , n η,) を計算し、 数 ηベク トル
ID ID" 1 1
】0 ( n, n ,, n ) と して保持するステップと、
(c) 前記数 nべクトルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出するステップと、
(d) 上記検出された要素番号 j に基づき、 準乱数 第 i番目
( 1 ≤ i ≤ k) の座標の生成行列 Tu)の第 j列ベク トルと、 u )の
π
15 値をあらわすベク トルとを法 bで加算し、 その結果を n + 1番目の準乱 数の i 番目の座標値 un+I u)と して保持するステップと
を含む準乱数生成方法。
24. コンピュータの処理によって、 閧数 f ( xr x2 xk) の k 0 重 ( kは 1 よ り大きい整数) 積分を計算するためのシステムであって、
(a) n番目 ( nは、 1以上の整数) の準乱数 ( u u (k) ) の
n n
値を、 その個々の要素 ii ( i) ( 1 ≤ i ≤ k ) 力 <、 b進数 ( bは、 よ り
n
大きいか又は等しい素数) 展開された m個の成分をもつべク トルである ように保持する手段と、
5 (b) 数 nの b進数展開 (η , η , η,) を計算し、 数 ηベク トル
( η,,.... η Λ, n ) と して保持する手段と、
I m" i m (c) 前記数 nべク 卜ルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 jを検出する手段と、
(d) 上記検出された要素番号 jに基づき、 準乱数の第 i番目
( 1 ≤ i ≤k) の座標の生成行列 T( の第 j列ベク トルと、 u u)
n 値をあらわすベク トルとを法 bで加算し、 その結果を n + 1番目の準乱 数の i番目の座標値 u . ^)と して保持する手段と、
(e) i を 1から順次増分させながら、 上記手段(d)によつて、 座標値
(i)
u を、 1 i ≤ kに亘つて計算する手段と、
n+1
(f) 上記手段(e)の計算の完了に応答して、 f (u u i+1 (k)) の値を、 橫分値を格納するための変数 Sに加算する手段と、
(g) 上記手段(a)から上記手段(f)までを制御して、 n = lから n = N (Nは、 1 よ り大きい予定の整数) まで Sの値を計算し、 結果の値 Sを
Nで割るこ とによって関数 f ( xr x„ xR) の k重積分値を計算 する手段と
を有する多重積分計算システム。
25. コンピュータの処理によ って、 鬨数 f ( X j. Xo xk) の k 重 ( kは 1 よ り大きい整数) 積分を計算するための方法であって、
(a) n番目 (nは、 1以上の整数) の準乱数 (u (1) u (k) ) の
η π
値を、 その個々の要素 u (ί) ( 1≤ i ≤ k ) が、 b進数 (bは、 よ り
n
大きいか又は等しい素数) 展開された m個の成分をもつべク 卜ルである ように保持するステップと、
(b) 数 nの b進数展開 <η , η , η,) を計算し、 数 ηベク トル
ID Dl~ I i
( n. n n ) と して保持するステップと、
1 in -】 m
(c) 前記数 nべク トルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出するステップと、 (d) 上記検出された要素番号 jに基づき、 準乱数の第 ί番目
( 1 ≤ i ≤ k ) の座標の生成行列 Tu)の第 j列ベク トルと、 u ( ί)
π 値をあらわすべク トルとを法 bで加算し、 その結果を n + 1番目の準乱 数の i番目の座標値 u +1 )と して保持するステップと、
(e) 座標値 un+1 (1)を、 1≤ i ≤ kに亘つて計算するように、 iの值を 増分しながら上記ステップ(d)の計算を反復するステップと、
(f) 上記ステップ(e)の計算の完了に応答して、
f (un+1 (1) un+1 (k)) の値を、 積分値を格納するための変数 S に加算するステップと、
(g) 上記ステップ(a)から上記ステップ(f)によ つて、 n = lから n = N
(Nは、 1 よ り大きい予定の整数) まで Sの値を計算し、 結果の値 Sを
Nで割ることによって関数 f ( xr x„ xk) の k重積分值を計算 するステップと
を含む多重積分計算方法。
26. 複数のプロセッサと、
前記複数のプロセッザの各々に、 処理開始番号 sを含む処理割当情報 を送信する手段とを有し、
各前記プロセッサが、
(a) 前記処理割当情報を受信し、 前記処理開始番号 sに対応する準乱数 ( u (1) u (k)) を生成し且つ保持する手段と、
S S
(b) n番目 (nは、 1以上の整数) の準乱数 (u u (k)) の π n
値を、 その個々の要素 u (ί) ( 1 ≤ i ≤ k ) が、 b進数 (bは、 よ り n
大きいか又は等しい素数) 展開された m個の成分をもつベク トルである ように保持する手段と、
(c) 数 nの b進数展開 ( η , η , η,) を計算し、 数 ηベク トル m m~ 1 J ( n, n n ) と して保持する手段と、
1 m-J m
(d) 前記数 nべク トルの要素を順番に走査し、 n .≠ b— 1 となる最小 の要素番号 j を検出する手段と、
(e) 上記検出された要素番号 j に基づき、 準乱数の第 〖 番目
( 1 ≤ i ≤ k ) の座標のための生成行列 T ( 1)の第 j列ベク トルと、 u の値をあらわすベク トルとを法 bで加算し、 その結果を n + 1番 n
目の準乱数の i番目の座標値 u と して保持する手段と、
(Γ) 前記手段(b)乃至手段(e)を制御して、 s + 1 番目の準乱数
( u (1) u (k) ) から当該プロセッサにおける処理終了番号 s+1 s+】
tに対応する準乱数 < u, (1) ut (k)) までを記憶手段に記憶させ る制御手段と、
を有する準乱数生成システム。
27. 前記手段(a) が、
(i)
前記! ¾nベク トル V と生成行列 T ' ( 1 ≤ i ≤ k ) と行列 G
n
Figure imgf000054_0001
とを用いて、 n番目の準乱数の i 番目の座標 tf u ( 1)を生成する生成手 段を含む ^求^ 26記載の準乱数生成システム。
28. システム制御手段と祓数のプロセッサとを有するコンピュータ システムにおいて、 (a) 前記複数のプロセッサの各々に、 k個の要素に関連する関数 f ( χΓ χ2 xk) 及び処理開始番号 sを含む処理割当情報を前記 システム制御手段から送信するステップと、
(b) 各前記プロセッサにおいて、 前記処理割当情報を受信し、 前記処理 開始番号 sに対応する準乱数 <u (1) u (k)) を生成し、 記 1S部
s s
に記億するステップと、
(c) 各前記プロセッサにおいて、 n番目 (nは、 1以上の整数) の準乱 数 (υη(υ,..·, un (k)) の値を、 その個々の要素 u ; ( 1 < i <k) n n n
が、 b進数 (bは、 kよ り大きいか又は等しい素数) 展開された m個の 成分をもつベク トルであるように保持するステップと、
(d) 各前記プロセッサにおいて、 数 nの b進数展開 (η , η
m in— l n, ) を計算し、 数 nベク トル (n, n „ n ) と して保持するス
1 1 IB— 1 B)
テツプと、
(e) 各前記プロセッサにおいて、 前記数 nベク トルの要素を順番に走査 し、 n .≠b— 1 となる最小の要素番号 j を検出するステップと、
(f) 各前記プロセッサにおいて、 上記求められた要素番号 jに基づき、 準乱数の第 i番目 ( 1≤ i ≤k) の座標の生成行列 T の第 j列べク トルと、 u u)の値をあらわすベク トルとを法 bで加算し、 その結果を n + 1番目の準乱数の i番目の座標値 u と して保持するステップ と、
(g) 座標値 u を、 1≤ i ≤ kに亘つて計算するように、 iの値を 増分しながら上記ステップ(Πの計算を反復するステップと、
(h) 各前記プロセッサにおいて、 前記ステップ(c)乃至(g)を繰り返し、 s + 1番目の準乱数 (u us+] (k)) から当該プロセッサに おける処理終了番号 tに対応する準乱数 ( ut U) ut (k)) までを 前記記憶部に記憶するステップと、 (i) 各前記プロセッサにおいて、 前記記傥部に格納された ^乱数
(1) (k)
( u u ) ( s n . ) を取り出し、
f (u (1) u (k)) の値を計算するステップと
n n
(j) 各前記プロセッサにおいて、 生成された関数値 f ( u (1)
n
u (k)) { s≤ n≤ t ) をアキュムレータによ り累横するステップと、 π
(k) 各前記プロセッサにおいて、 前記アキュムレータによ り累橫された 値を、 前記システム制御手段に送信するステップと、
(1) 前記システム制御手段において、 前記各プロセッサから送信された 値を累穰し、 すべての前記プロセッサの準乱数生成個数で累橫値を除算 するステップと
を含む関数 f の多重積分計箅方法。
29. 前記ステップ( が、
前記数 nベク トル V と生成行列 T ("i)' ( 1 ≤ i ≤ k ) と行列 G
n
Figure imgf000056_0001
(i)
とを用いて、 η番目の準乱数の i番目の座標 u を生成するステツ プを含む誧求项 28記載の (¾!数 f の多 Ulii'i分計^方法 c
PCT/JP1995/002439 1994-12-05 1995-11-28 DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D'INTEGRATION MULTIPLE DE LA FONCTION f WO1996018144A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/860,336 US5872725A (en) 1994-12-05 1995-11-28 Quasi-random number generation apparatus and method, and multiple integration apparatus and method of function f

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP30111294 1994-12-05
JP6/301112 1994-12-05
JP7/54143 1995-03-14
JP5414395 1995-03-14

Publications (1)

Publication Number Publication Date
WO1996018144A1 true WO1996018144A1 (fr) 1996-06-13

Family

ID=26394879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1995/002439 WO1996018144A1 (fr) 1994-12-05 1995-11-28 DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D'INTEGRATION MULTIPLE DE LA FONCTION f

Country Status (3)

Country Link
US (1) US5872725A (ja)
KR (1) KR100264633B1 (ja)
WO (1) WO1996018144A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083644A1 (fr) * 2002-03-28 2003-10-09 Yuichi Nagahara Procede de generation de nombre aleatoire fonde sur une distribution non normale a plusieurs variables, procede d'estimation de parametre associe, et application a une simulation d'un champ financier et a une implantation ionique pour semi-conducteur
WO2022124010A1 (ja) * 2020-12-07 2022-06-16 日本電気株式会社 演算制御装置、演算制御方法、および記録媒体

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058377A (en) * 1994-08-04 2000-05-02 The Trustees Of Columbia University In The City Of New York Portfolio structuring using low-discrepancy deterministic sequences
US6529193B1 (en) * 1996-06-25 2003-03-04 Mental Images Gmbh & Co. Kg System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points
KR100250466B1 (ko) * 1997-12-27 2000-04-01 정선종 난수기의 효율적 구현방법
JP3539870B2 (ja) * 1998-07-14 2004-07-07 株式会社日立製作所 乱数生成システム及び乱数生成方法
US6668265B1 (en) * 1999-03-29 2003-12-23 Communications Research Laboratory, Ministry Of Posts And Telecommunications Apparatus and method for outputting sequence of vectors, data recording medium, and carrier wave signal
US7187379B2 (en) * 2000-06-19 2007-03-06 Mental Images Gmbh Generating an image using sample points determined on a sub-pixel grid offset using elements of a low-discrepancy sequence
US20050275652A1 (en) * 2000-06-19 2005-12-15 Alexander Keller Computer graphics system and computer-implemented method for simulating participating media using sample points determined using elements of a low-discrepancy sequence
US6917710B2 (en) * 2001-02-05 2005-07-12 National Instruments Corporation System and method for scanning a region using a low discrepancy curve
US6959104B2 (en) * 2001-02-05 2005-10-25 National Instruments Corporation System and method for scanning a region using a low discrepancy sequence
US7034831B2 (en) * 2001-02-05 2006-04-25 National Instruments Corporation System and method for generating a low discrepancy curve in a region
US6950552B2 (en) * 2001-02-05 2005-09-27 National Instruments Corporation System and method for precise location of a point of interest
TWI224698B (en) * 2001-04-19 2004-12-01 Ibm Discrete pattern, optical member, light guide plate, side light device and light transmitting liquid crystal display device using the discrete pattern, method and program for generating the discrete pattern, computer-readable storage medium on which
JP4043018B2 (ja) * 2001-04-19 2008-02-06 エーユー オプトロニクス コーポレイション 離散パターン、該離散パターンを用いた光学部材、導光板、サイドライト装置および透過型液晶表示装置
US7698208B2 (en) * 2002-12-09 2010-04-13 Creditex Group, Inc. Systems and methods for an online credit derivative trading system
US7970693B2 (en) * 2004-09-29 2011-06-28 Creditex Group, Inc. Systems and methods for market order volume clearing in online trading of credit derivatives
US20080033867A1 (en) * 2002-12-09 2008-02-07 Creditex Group, Inc. Centralized process for determining deltas for index tranches
US8645258B2 (en) * 2002-12-09 2014-02-04 Creditex Group, Inc. Systems and methods for an online credit derivative trading system
US7716114B2 (en) * 2002-12-09 2010-05-11 Creditex Group, Inc. Systems and methods for an online credit derivative trading system
US7587355B2 (en) * 2002-12-09 2009-09-08 Creditex Group, Inc. Systems and methods for an online credit derivative trading system
US20040111355A1 (en) * 2002-12-09 2004-06-10 Creditex, Inc. Systems and methods for tracking price information in an online credit derivative trading system
US8332449B2 (en) * 2003-09-23 2012-12-11 The Directv Group, Inc. Sample generation method and system for digital simulation processes
US7467170B1 (en) 2003-09-23 2008-12-16 The Directv Group, Inc. Sample generation method and system for digital simulation processes
CN100424654C (zh) * 2005-11-25 2008-10-08 杭州中天微系统有限公司 一种矩阵数据存取方法及其矩阵数据存储装置
US8571965B2 (en) * 2007-11-14 2013-10-29 Creditex Group, Inc. Techniques for reducing delta values of credit risk positions in online trading of credit derivatives
US20110191129A1 (en) * 2010-02-04 2011-08-04 Netzer Moriya Random Number Generator Generating Random Numbers According to an Arbitrary Probability Density Function

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5939072B2 (ja) * 1977-10-31 1984-09-20 富士通株式会社 端点検出方式
JPS57113185A (en) * 1980-12-29 1982-07-14 Comput Basic Mach Technol Res Assoc Character recognition system
JPS615383A (ja) * 1984-06-19 1986-01-11 Fujitsu Ltd 文字パタ−ン分離装置
JPH03156589A (ja) * 1989-08-23 1991-07-04 Fuji Facom Corp 誤読文字の検出,修正方法
JPH03225578A (ja) * 1990-01-31 1991-10-04 Toshiba Corp 文字の検切り方法
JPH0444187A (ja) * 1990-06-11 1992-02-13 Fuji Facom Corp 文字認識装置
JP3469941B2 (ja) * 1994-07-15 2003-11-25 三菱電機株式会社 プログラム実行制御装置および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ACM TRANS. MODELING AND COMPUTER SIMULATION, 2 July 1992, P. BRATLEY, B.L. FOX and H. NIEDERREITER, "Implementation and Tests of Low-Discrepancy Sequences", p. 195-213. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083644A1 (fr) * 2002-03-28 2003-10-09 Yuichi Nagahara Procede de generation de nombre aleatoire fonde sur une distribution non normale a plusieurs variables, procede d'estimation de parametre associe, et application a une simulation d'un champ financier et a une implantation ionique pour semi-conducteur
US7475102B2 (en) 2002-03-28 2009-01-06 Yuichi Nagahara Random number generation method based on multivariate non-normal distribution, parameter estimation method thereof, and application to simulation of financial field and semiconductor ion implantation
WO2022124010A1 (ja) * 2020-12-07 2022-06-16 日本電気株式会社 演算制御装置、演算制御方法、および記録媒体

Also Published As

Publication number Publication date
US5872725A (en) 1999-02-16
KR100264633B1 (ko) 2000-09-01
KR980700604A (ko) 1998-03-30

Similar Documents

Publication Publication Date Title
WO1996018144A1 (fr) DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D&#39;INTEGRATION MULTIPLE DE LA FONCTION f
Drusvyatskiy et al. Efficiency of minimizing compositions of convex functions and smooth maps
Cococcioni et al. Lexicographic multi-objective linear programming using grossone methodology: Theory and algorithm
Izmaylov et al. Efficient evaluation of short-range Hartree-Fock exchange in large molecules and periodic systems
Kroese et al. Handbook of monte carlo methods
US5790442A (en) Method and apparatus for generating low-discrepancy sequence, as well as apparatus and method for calculating multiple integral of function f
Baaquie Quantum field theory for economics and finance
Shi et al. The novel cubic B-spline method for fractional Painleve and Bagley-Trovik equations in the Caputo, Caputo-Fabrizio, and conformable fractional sense
Kumar et al. Computational approach based on wavelets for financial mathematical model governed by distributed order fractional differential equation
Mezzadri et al. Projected splitting methods for vertical linear complementarity problems
Gao et al. Nondeterministic dynamic stability assessment of Euler–Bernoulli beams using Chebyshev surrogate model
Eisenmann et al. On a randomized backward Euler method for nonlinear evolution equations with time-irregular coefficients
JP4443619B2 (ja) ポートフォリオの信用リスクの計算方法および装置
Kaneko et al. Quantum pricing with a smile: implementation of local volatility model on quantum computer
Kastian et al. A two-stage surrogate model for Neo-Hookean problems based on adaptive proper orthogonal decomposition and hierarchical tensor approximation
Hurd et al. Illiquidity and insolvency: a double cascade model of financial crises
Antil et al. ALESQP: An augmented Lagrangian equality-constrained SQP method for optimization with general constraints
Gilli et al. Krylov methods for solving models with forward-looking variables
Soleymani et al. Computing simple roots by an optimal sixteenth-order class
dos Reis et al. Stochastic quantization of a self-interacting nonminimal scalar field in semiclassical gravity
CN114266414A (zh) 贷款数额的预测方法、装置、电子设备和介质
JP2856554B2 (ja) 準乱数生成装置及び方法並びに関数fの多重積分計算置及び方法
Nguyen et al. Analysis of free vibration in thin-walled plates using an enhanced polygonal plate element with selective interpolation approach
Austing Practical Solution of Partial Differential Equations in Finance With Numerical Examples and Python Code
Kunovac Estimating credit migration matrices with aggregate data–Bayesian approach

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1019970703607

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 08860336

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1019970703607

Country of ref document: KR

122 Ep: pct application non-entry in european phase
WWG Wipo information: grant in national office

Ref document number: 1019970703607

Country of ref document: KR