SlideShare a Scribd company logo
64 ビット高性能線形擬似乱数発生法の開発
原瀬 晋
(立命館大学理工学部)
2017 年 9 月 16 日
日本 OR 学会 2017 年度中部支部シンポジウム
「準モンテカルロ法の理論と OR」
本研究は JSPS 科研費・若手研究 (B) 26730015,特別研究員奨励費
12J07985,基盤研究 (B) 26310211, 挑戦的萌芽研究 15K13460,立命館大
学研究推進プログラム(科研費獲得推進型)の助成を受けたものです.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 1 / 35
Outline
1 イントロダクション
2 F2-線形擬似乱数発生法と理論的評価指標
3 メルセンヌツイスタ法とそこで使われる数学
4 本研究の成果:64 ビット最適均等分布 F2-線形擬似乱数発生法
5 まとめ
本研究は,木本貴光氏との共同研究に基づく.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 2 / 35
擬似乱数とは
乱数列とはサイコロを繰り返し振って得られるようなでたらめな数の列
のことである.
乱数の主な用途は,
モンテカルロ法用 (シミュレーション用)
暗号用
に分かれる.
主に漸化式を用いて,計算機により確定的なアルゴリズムで乱数のよう
に「見える」数列を生成して乱数列として用いる方法を擬似乱数という.
本講演では,モンテカルロ法用の擬似乱数発生法について焦点を当てる.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 3 / 35
擬似乱数と準モンテカルロ点集合
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
Random points
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
QMC points
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 4 / 35
研究の背景と目的
目的: 計算機の 64 ビット化の進展に合わせ,モンテカルロ・シミュレー
ション用の高性能な 64 ビット線形擬似乱数発生法を開発する.
モンテカルロ用擬似乱数への要請
高速性
長周期性
一様性 (高次元均等分布性)
メモリ効率の良さ
32 ビットの場合は松本–西村 (1998) のメルセンヌツイスタ法 MT19937
が有名 (google scholar の引用数 5486).高次元均等分布性を完全に最適化
した WELL 法 (Pannton–L’Ecuyer–松本, 2006) も開発されている.
⇝ 64 ビットの場合は西村 (2000) の MT19937-64,斎藤–松本 (2007) の
SIMD を用いた SFMT19937 があるが,高次元均等分布性が完全に最適化
された発生法は未だに開発されていなかった.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 5 / 35
本研究で開発した擬似乱数発生法:MELG19937-64
周期 219937 − 1 ≈ 106000
高次元均等分布性を完全に最適化
発生は極めて高速 (MT19937-64 と同じ速度)
メモリ使用量は 312 ワード
(2607 − 1 から 244497 − 1 までの様々な周期の発生法を実装)
論文:
S. Harase and T. Kimoto,“Implementing 64-bit maximally
equidistributed F2-linear generators with Mersenne prime period”,
ACM Trans. Math. Software 44 (2018), no. 3, Art. 30, 11 pp.
C 言語による実装 https://github.com/sharase/melg-64
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 6 / 35
F2-線形擬似乱数発生法
F2-線形擬似乱数発生法 (無入力有限オートマトンモデル)
F2 := {0, 1} を 2 元体とする.(積は普通に,和は 1 + 1 = 0)
S := Fp
2 : 状態空間 (p = dim(S))
f : S → S : F2-線形状態遷移関数
O := Fw
2 : 出力集合 (w は 32,64 といった計算機のワードサイズ)
o : S → O : F2-線形出力関数
初期状態 s0 ∈ S を与えると,漸化式 si = f(si−1) により,
s0, s1, s2, ... ∈ S と遷移し,出力は o(s0), o(s1), o(s2), ... ∈ O とな
る.この出力列を符号なし w ビット 2 進整数の擬似乱数列とみなす.
このクラスに属する擬似乱数発生法に関しては,周期や均等分布次元な
どの理論的な評価指標が計算可能.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 7 / 35
F2-線形擬似乱数発生法の理論的評価 (その 1)
F2-線形擬似乱数発生法の周期
F2-線形擬似乱数発生法の出力列 o(s0), o(s1), o(s2), ... は最大周期
2p − 1 となる.
p がメルセンヌ指数のとき,最大周期性の判定が容易.
以下,暫く,最大周期性を仮定する.
特性多項式の非零項数 N1
状態遷移関数 f の特性多項式を P (z) とおく (p = deg P (x)).
理論的な指標として P (z) の非零の項数 (weight) を N1 とおく.N1
はなるべく大きいことが望ましいとされる.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 8 / 35
F2-線形擬似乱数発生法の理論的評価 (その 2)
S := Fp
2, O := Fw
2 とした.関数 trv : O → Fv
2 は,w ビットの整数の
上位 v ビットをとるものとする.上位ビットの動きが重要.
Definition (v ビット精度均等分布次元 k(v))
初期状態 s0 ∈ S が S 上で一様ランダムに選択された場合に,k 組
(trv(o(s0)), trv(o(f(s0))), . . . , trv(o(fk−1
(s0)))) ∈ Fkv
2
が Fkv
2 上で一様に分布するとき,擬似乱数発生法は v ビット精度 k 次元
均等分布するという.また,このような k の値で最大のものを v ビット
精度均等分布次元と呼び,k(v) と書くことにする.
最大周期性の仮定の下,一周期見た際に,すべての kv ビットパターンが
同じ数だけ出現していることを意味している (ただし,全部 0 は一回少
ない).
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 9 / 35
2 ビット精度 2 次元均等分布の例
0
0.25
0.5
0.75
1
0 0.25 0.5 0.75 1
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 10 / 35
2 ビット精度 2 次元均等分布の例
0
0.125
0.25
0.375
0.5
0.625
0.75
0.875
1
0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 11 / 35
v ビット精度均等分布次元 k(v)
一様性の規準として,上位 v ビットに関して k(v) 次元までは,数学的な
安全性が保障なされていると思ってよい.各 1 ≤ v ≤ w に対して,
k(v) が大きい方が望ましい.ここで,k(v) の上限は
k(v) ≤ bp/vc
となる.それらの差の和を
∆ :=
w
∑
v=1
(bp/vc − k(v))
とおく.∆ = 0 のとき,最適均等分布性 (maximal equidistribution, ME)
を持つという.本研究では ∆ = 0 を目指す.
(cf., 32 ビットメルセンヌツイスタ MT19937(松本–西村, 1998) の場合
∆ = 6750.)
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 12 / 35
k(v) を効率的に計算するアルゴリズム
原瀬–松本–斎藤 (2011) 及び原瀬 (2011) のアルゴリズム
v = 1, . . . , w に対して k(v) を全て計算するのにかかる計算量を既存の
Couture–L’Ecuyer(2000) の方法よりも減少させた:
O(w2
p2
) −→ O(wp2
).
このアルゴリズムは整数論における Minkowski の数の幾何学 (F2-係数形
式的べき級数体 F2((z−1)) における F2[z]-格子のノルム最短基底を求め
る問題) に基づく.特に,w が大きい場合に有効.
参考文献:
S. Harase, M. Matsumoto, and M. Saito, “Fast lattice reduction for
F2-linear pseudorandom number generators”, Math. Comp. 80(273):
395-407 (2011).
S. Harase, “An efficient lattice reduction method for F2-linear
pseudorandom number generators using Mulders and Storjohann
algorithm”, J. Comp. Appl. Math. 236(2): 141-149 (2011).
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 13 / 35
擬似乱数発生法の設計
長周期を持つようにしたい (出来れば N1 も大きくしたい) ⇝ 良い
状態遷移関数 f : S → S を選ぶ.
高次元均等分布性が成り立つようにしたい (∆ = 0 に近づけたい)
⇝ 良い出力関数 o : S → O を選ぶ.O := Fw
2 .
という問題に帰着される.設計者は,高速に発生できるような形の f や
o のフォーマットを決めて,パラメータを探索していく.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 14 / 35
本研究の成果:MELG19937-64
周期 219937 − 1 の最適均等分布性を持った擬似乱数発生法
MELG19937-64 を開発した.(周期 219937 − 1 は一般的に用いられてい
るメルセンヌツイスタ法と同様のもの)
p = 19937, w = 64 とした場合の比較.
比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒).
発生法 N1 ∆ CPU 時間 1 CPU 時間 2
MELG19937-64 9603 0 4.2123 6.2920
MT19937-64 285 7820 5.1002 6.6490
計算環境 (64 ビット):
CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3
CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler
with -O3
以下,既存のメルセンヌツイスタ法を概説しながら,開発手法を述べる.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 15 / 35
メルセンヌツイスタ法:最大周期性の判定
状態遷移
状態遷移
s0, s1, s2, . . . ∈ S := Fp
2
は F2-線形状態遷移関数 f : S → S を繰り返し施して,si := f(si−1)
により得られる.
ここで,F2-線形擬似乱数発生法の周期は 2p − 1 を超えない.
(∵ S{0} の取りうる値は 2p − 1 しかないから.)
周期 2p − 1 を有するとき,最大周期をもつという.
要請 ⇝ 最大周期 2p − 1 を有する F2-線形擬似乱数発生法が欲しい.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 16 / 35
メルセンヌツイスタ法:最大周期性の判定
P (z) を状態遷移関数 f の特性多項式とする:
P (z) := zp
+ α1zp−1
+ · · · + αp−1z + αp ∈ F2[z].
ここで,Cayley–Hamilton の定理より si−p ∈ S から f を繰り返し施して
fp
(si−p) + α1fp−1
(si−p) + · · · + αp−1f(si−p) + αpsi−p = 0
を得る.整理すると,
si = α1si−1 + · · · + αpsi−p ∈ S.
更に,F2-線形出力関数 o : S → O を施すと,
o(si) = α1o(si−1) + · · · + αpo(si−p) ∈ O := Fw
2
が成り立つ.出力列 o(s0), o(s1), o(s2), . . . の各ビットは F2-線形漸化式
xi = α1xi−1 + · · · + αpxi−p ∈ F2
に従う.特に,上の漸化式を満たす 0-1 列 x0, x1, x2, . . . ∈ F2 が最大周
期 2p − 1 を有するとき,P (z) を特性多項式にもつ M 系列という.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 17 / 35
メルセンヌツイスタ法:最大周期性の判定
Theorem (最大周期条件 (Niederreiter 1992, Knuth 1998, 伏見 1989))
F2-線形漸化式
xi = α1xi−1 + · · · + αpxi−p
に従う 0-1 列 x0, x1, x2, . . . ∈ F2 が最大周期 2p − 1 をもつ
⇐⇒ 特性多項式 P (z) が原始多項式である
⇐⇒ P (z) が既約かつ z の (F2[z]/(P (z))× における乗法位数が
2p − 1.
2p − 1 が合成数の場合,P (z) の原始性の判定は困難 (∵ 因数分解が必
要).しかし,p をメルセンヌ指数 (すなわち,2p − 1 がメルセンヌ素数)
としたとき,P (z) が原始多項式 ⇐⇒ P (z) が既約多項式.
ここで,既約性判定は比較的容易.
P (z) は出力の 0-1 列から Berlekamp–Massey 法を使うと高速に求まる.
(p × p 行列から直接求めようとすると O(p3) かかる (Hessenberg 法).)
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 18 / 35
メルセンヌツイスタ法:最大周期性の判定
P (z) の既約性判定の例:
まず,試し割り算を行う.例えば,F2 上の n 次既約多項式の積を
pn(z) とすると,n の小さいところで,gcd(P (z), pn(z)) = 1 を
確認し,6= 1 となっていれば可約であることが分かる.(あるいは多
項式 z2n
− z は m | n なるすべての m 次既約多項式の積となる性
質を用いても良い.)
次に,べき乗剰余演算 (バイナリ法) を行う.
g0(z) :≡ z mod P (z)
g1(z) :≡ g0(z)2
≡ z2
mod P (z)
g2(z) :≡ g1(z)2
≡ z22
mod P (z)
.
.
.
gp(z) :≡ gp−1(z)2
≡ z2p
mod P (z)
を計算して,g0(z) ≡ gp(z) mod P (z) が成立すれば既約となる.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 19 / 35
メルセンヌツイスタ法 MT19937 (松本–西村, 1998)
メルセンヌツイスタ法のアイデア:
状態空間 S := Fp
2 はスプリットされ,配列としてメモリ上に置か
れる.
従来の F2-線形擬似乱数発生法は p を w の倍数として取っていた.
メルセンヌツイスタでは,p をメルセンヌ指数 (すなわち,2p − 1
がメルセンヌ素数) とし,配列上に r ビット使わない場所を作った.
この結果,既約性判定のみで最大周期性の保障ができ,飛躍的に周
期を伸ばすことが可能となった.
MT19937 では,p = 19937, w = 32 として,S を
N := dp/we = 624 ワードの配列として取り,r = 31 ビット捨てた.
その結果,周期を先行研究の 2800 − 1 から 219937 − 1 に増やせた.
32 ビット精度 623 次元均等分布と大幅に均等分布次元が上がった.
(メルセンヌツイスタ以前の発生法,例えば,TT800 では高々25 次元均
等分布程度だった.)
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 20 / 35
メルセンヌツイスタ法 MT19937 (松本–西村, 1998)
S を配列として置き,欠けた配列を用いる (実際は 31 ビット捨てる)
1 ワードのみ取り出して線形変換を施し出力
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 21 / 35
メルセンヌツイスタ法 MT19937 (松本–西村, 1998)
状態遷移 (ww−r
i , wi+1, wi+2, . . . , wi+N−1) ∈ S 7→
(ww−r
i+1 , wi+2, wi+3, . . . , wi+N ) ∈ S とおくと,
wi+N := wi+M ⊕ (ww−r
i | wr
i+1)A.
但し,w := (w0, . . . , ww−1), a := (a0, . . . , aw−1) ∈ Fw
2 とし,
wA :=
{
(w  1) if ww−1 = 0,
(w  1) ⊕ a if ww−1 = 1.
出力変換 (ww−r
i+1 , wi+2, . . . , wi+N ) ∈ S 7→ wi+N T ∈ O:
z ← wN−1 ⊕ (wN−1  u),
z ← z ⊕ ((z  s)  b),
z ← z ⊕ ((z  t)  c),
wN−1T ← z ⊕ ((z  l).
西村 (2000) は,w = 64 とし (N1 を増やすために 5 項漸化式へ取り換え
るなどして) パラメータ探索を行った.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 22 / 35
本研究の成果:MELG19937-64
周期 219937 − 1 の最適均等分布性を持った F2-線形擬似乱数発生法
MELG19937-64 を開発した.(周期 219937 − 1 は一般的に用いられてい
るメルセンヌツイスタと同様のもの)
p = 19937, w = 64 とした場合の比較.
比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒).
発生法 N1 ∆ CPU 時間 1 CPU 時間 2
MELG19937-64 9603 0 4.2123 6.2920
MT19937-64 285 7820 5.1002 6.6490
計算環境 (64 ビット):
CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3
CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler
with -O3
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 23 / 35
本研究の方法:MELG19937-64
S を配列として置き,欠けた配列を用いる (実際は 31 ビット捨てる)
余分な状態変数 vi を用いて二重のフィードバックを作る (Panneton
et al.(2006))
複数ワードを取り出して線形変換を施し出力 (原瀬 (2009))
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 24 / 35
本研究の方法:MELG19937-64
状態遷移: (ww−r
i , wi+1, wi+2, . . . , wi+N−2, vi) ∈ S 7→
(ww−r
i+1 , wi+2, wi+3, . . . , wi+N−1, vi+1) ∈ S として,
vi+1 := (ww−r
i | wr
i+1)A ⊕ wi+M ⊕ viB,
wi+N−1 := (ww−r
i | wr
i+1) ⊕ vi+1C.
但し,w := (w0, . . . , ww−1), a := (a0, . . . , aw−1) ∈ Fw
2 とし,
wA :=
{
(w  1) if ww−1 = 0,
(w  1) ⊕ a if ww−1 = 1,
wB := w ⊕ (w  b),
wC := w ⊕ (w  c).
出力変換: 適当な 0  L  N − 2 について,
(wr−w
i+1 , wi+2, . . . , wi+N−1, vi+1) ∈ S 7→ wi+N−1T1⊕wi+LT2 ∈ O,
wT1 ← w ⊕ (w  t), wT2 ← (w  b).
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 25 / 35
SFMT19937-64 との速度比較
更に,SFMT19937 の 64 ビット整数出力と比較.
比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒).
発生法 N1 ∆ CPU 時間 1 CPU 時間 2
MELG19937-64 9603 0 4.2123 6.2920
MT19937-64 285 7820 5.1002 6.6490
MT19937-64 (ID3:5 項式) 5795 7940 4.8993 6.7930
SFMT19937-64 (SIMD 無) 6711 14095 4.2654 5.6123
SFMT19937-64 (SIMD 有) 6711 14095 1.8457 2.8806
計算機環境 (64 ビット):
CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3
CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler
with -O3
♠ SFMT 法は非常に高速な一方,∆ は大きい.
♠ 倍精度浮動小数点数に特化した dSFMT 法の開発 (斎藤–松本 (2009)).
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 26 / 35
IEEE754 の倍精度浮動小数点数 (double 型) の生成
[0, 1) 上の一様乱数を発生させる際に有用 ⇝ この機能を実装した.
double to_double01(unsigned long long x)
{
union {
unsigned long long u;
double d;
} conv;
conv.u = (x  12) | 0 x3FF0000000000000ULL ;
return (conv.d - 1.0);
}
(0, 1) 上の一様乱数では 0x3FF0000000000001ULL に置き換えればよい.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 27 / 35
並列計算のための初期状態のジャンプ機能
複数の計算機で並列計算を行う際,出力がオーバーラップしないように
初期状態 s0 ∈ S を選ぶ必要がある.例えば,ジャンプ幅 J = 2256 に対
して,
sJ = fJ
(s0)
を計算して初期状態をジャンプさせたい.状態遷移関数 f : S → S の特
性多項式 P (z) は
P (z) := zp
+ α1zp−1
+ · · · + αp−1z + αp ∈ F2[z]
とおいた.ここで,
zJ
mod P (z) = β1zp−1
+ · · · + βp−1z + βp ∈ F2[z]
と書ける (p.19 の方法で容易に求まる).後は,
fJ
(s0) = β1fp−1
(s0) + · · · + βp−1f(s0) + βps0
= β1sp−1 + · · · + βp−1s1 + βps0
を計算すればよい (原本 et al.(2008)).⇝ この機能を実装した.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 28 / 35
まとめ
64 ビット整数出力の最適均等分布 F2-線形擬似乱数発生法
MELG19937-64(周期 219937 − 1) を開発した.加えて,2607 − 1 か
ら 244497 − 1 までの様々な周期の発生法を実装した.
既存の MT19937-64 と比較して,速度を落さず,均等分布次元 k(v)
を完全に最適化した.IEEE754 の規格に基づく double 型の [0, 1) 上
の浮動小数点出力にも有用.
並列計算のために,初期状態をジャンプさせる機能をつけた (固定幅
2256 ステップ).
倍精度浮動小数点出力については,斎藤–松本 (2010) により dSFMT
法が開発されている.均等分布次元の観点から,SFMT 法からの変
換よりも大幅に改善されている.
論文:
S. Harase and T. Kimoto, “Implementing 64-bit maximally
equidistributed F2-linear generators with Mersenne prime period”,
ACM Trans. Math. Software 44 (2018), no. 3, Art. 30, 11 pp.
C 言語による実装 https://github.com/sharase/melg-64
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 29 / 35
Appendix: F2-線形発生法の格子構造について
均等分布次元 k(v) を計算する方法の一つとして,格子の問題に帰着させ
る方法が知られている.
多項式成分のベクトル a(z) = (a0(z), a1(z), . . . , av−1(z)) ∈ F2[z]v
に対して,ノルム (長さ) を以下のように定義する:
||a(z)|| :=
{
max0≤l≤v−1 deg al(z) if a(z) 6= (0, . . . , 0),
−∞ if a(z) = (0, . . . , 0).
初期状態ベクトル s0 ∈ S から開始した出力列の l ビット目
{y0,l, y1,l, y2,l, . . .} の生成母関数 Gl(z) を次のように決める:
Gl(z) := y0,lz−1 + y1,lz−2 + y2,lz−3 + · · · ∈ F2((z−1)).
このとき,P (z)Gl(z) ∈ F2[z] が成り立つ.gl(z) := P (z)Gl(z) とお
くと,Gl(z) = gl(z)/P (z) と有理型で書ける.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 30 / 35
そこで,次の多項式上線形ディオファントス方程式の解集合を考える:
L∗
v := {(w0(z), . . . , wv−1(z)) ∈ F2[z]v
|
g0(z)w0(z) + · · · + gv−1(z)wv−1(z) ≡ 0 (mod P (z))}.
F2-線形発生法が最大周期をもつと仮定し,非零な初期状態 s0 6= 0 を取
る.このとき,L∗
v は F2[z]-格子となる.
Couture–L’Ecuyer(2000) の双対格子 L∗
v
前述の設定の下,v ビット精度均等分布次元 k(v) は
k(v) = ||w1(z)||
となる.ただし, w1(z) は L∗
v の非零な最短ベクトルである.
多項式格子の場合,整数格子と異なり,最短ベクトルを多項式時間で見
つけるアルゴリズムは知られている (Lenstra(1985),
Mulders–Storjohann(2003) など).原瀬–松本–斎藤 (2011) 及び原瀬
(2011) では,この L∗
v の双対格子にあたる Lv = (L∗
v)∗ ⊂ F2((z−1))v
を考えて,格子点を S の元と同一視するなどして,計算量を減少させた.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 31 / 35
Appendix: 擬似乱数発生法の準モンテカルロ法への応用
上位ビットの均等分布性,または,(t, m, s)-net の t-値により最適化さ
れた短い周期の F2-線形擬似乱数発生法を一周期使い切ることにより,準
モンテカルロ (QMC) 法の点集合として用いることが出来る.
Tausworthe 法 (Tausworthe, 1965)
P (z) を特性多項式にもつ M 系列 xi = α1xi−1 + · · · + αpxi−p ∈ F2
に対して,次式によって定義される系列 {ui} を Tausworthe 列という:
ui :=
p−1
∑
j=0
xiσ+j · 2−j−1
∈ [0, 1).
ここで,σ ≥ p, gcd(σ, 2p − 1) = 1 とする.
状態空間 S := Fp
2,状態遷移関数 f : S → S を
(xi, . . . , xi+p−1) 7→ (xi+σ, . . . , xi+p−1+σ) と取ったものに相当.
QMC では,一般に,p を 8 から 32 程度までの整数とする.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 32 / 35
Appendix: 擬似乱数発生法の準モンテカルロ法への応用
例:P (z) = z4 + z + 1, i.e., xi = xi−3 + xi−4, σ = 7 とすると,
000100110101111000100110101111000100110101111 · · ·
u0 = 0.0001
u1 = 0.1010
u2 = 0.1000
u3 = 0.1101
.
.
.
{ui} をオーバーラップさせて並べた d 次元の点 (n = 2p − 1 個)
u0 = (u0, . . . , ud−1), u1 = (u1, . . . , ud), . . . , un−2 =
(un−2, un−1, u0, . . . , ud−3), un−1 = (un−1, u0, . . . , ud−2) を作る.
これらの点に原点 {0} を加えた 2p 個の点集合
P = {0} ∪ {ui}2p−2
i=0
を準モンテカルロ法に用いる.⇝ Korobov 多項式格子に対応.
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 33 / 35
Appendix: 擬似乱数発生法の準モンテカルロ法への応用
以下,Tausworthe 法の準モンテカルロ法への応用例:
1 S. Tezuka and M. Fushimi, “Calculation of Fibonacci polynomials for
GFSR sequences with low discrepancies”, Math. Comp. 60 (1993),
no. 202, 763-770. ⇝ 正則連分数展開に基づいた 2 次元の t-値が 0 と
なる (P (z), σ) のペアの探索.特に,高速発生可能なパラメータを
選択.
2 C. Lemieux and P. L’Ecuyer, “Randomized polynomial lattice rules for
multivariate integration and simulation”, SIAM J. Sci. Comput. 24
(2003), no. 5, 1768-1789. ⇝ 均等分布性を指標として用いた低次元
プロジェクションの一様性の高い点集合の探索.混合発生法の適用.
3 S. Chen, M. Matsumoto, T. Nishimura, and A. B. Owen, “New
inputs and methods for Markov chain quasi-Monte Carlo”, Monte
Carlo and quasi-Monte Carlo methods 2010, 313–327, Springer Proc.
Math. Stat., 23, Springer, Heidelberg, 2012. ⇝ マルコフ連鎖モンテ
カルロ法のための QMC 点集合.次元に依らない一様性を持った
CUD 列の近似点集合の構成.均等分布性を用いて最適化.(ただし,
オーバーラップせずにとる.)
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 34 / 35
Appendix: Sobol’ 列と Tausworthe 列 (一周期)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Sobol’
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tezuka-Fushimi
原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 35 / 35

More Related Content

What's hot

Deflate
DeflateDeflate
Deflate
7shi
 
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
catupper
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
Ichigaku Takigawa
 
LR parsing
LR parsingLR parsing
LR parsing
ichikaz3
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
 
非ガウス性を利用した 因果構造探索
非ガウス性を利用した因果構造探索非ガウス性を利用した因果構造探索
非ガウス性を利用した 因果構造探索
Shiga University, RIKEN
 
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
Kenshi Abe
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
Masaaki Imaizumi
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
ohken
 
グラフと木
グラフと木グラフと木
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
Takahiro Kubo
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
 
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
Shiga University, RIKEN
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
Yusuke Uchida
 

What's hot (20)

Deflate
DeflateDeflate
Deflate
 
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
LR parsing
LR parsingLR parsing
LR parsing
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
 
非ガウス性を利用した 因果構造探索
非ガウス性を利用した因果構造探索非ガウス性を利用した因果構造探索
非ガウス性を利用した 因果構造探索
 
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
グラフと木
グラフと木グラフと木
グラフと木
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
構造方程式モデルによる因果推論: 因果構造探索に関する最近の発展
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 

Similar to 64ビット高性能線形擬似乱数発生法の開発

ベイズ統計によるデータ解析
ベイズ統計によるデータ解析ベイズ統計によるデータ解析
ベイズ統計によるデータ解析
Kunihiro Hisatsune
 
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
Akira Asano
 
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
Tasuku Soma
 
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
Akira Asano
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
Shogo Muramatsu
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
Deep Learning JP
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
 
ガンマ分布族のなす空間の曲率
ガンマ分布族のなす空間の曲率ガンマ分布族のなす空間の曲率
ガンマ分布族のなす空間の曲率Masaki Asano
 
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2) 2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
Akira Asano
 
代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門
Tatsuki SHIMIZU
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
ShoutoYonekura
 
統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)
Kota Mori
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
Ryo Nakamura
 
Grcosmo 44 slide
Grcosmo 44 slideGrcosmo 44 slide
Grcosmo 44 slide
KENTAROHARA
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
Taiji Suzuki
 
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
Akira Asano
 
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
Akira Asano
 
非同期時系列のLead-lag効果推定のための新しい推定量
非同期時系列のLead-lag効果推定のための新しい推定量非同期時系列のLead-lag効果推定のための新しい推定量
非同期時系列のLead-lag効果推定のための新しい推定量
Katsuya Ito
 
東京都市大学 データ解析入門 2 行列分解 1
東京都市大学 データ解析入門 2 行列分解 1東京都市大学 データ解析入門 2 行列分解 1
東京都市大学 データ解析入門 2 行列分解 1
hirokazutanaka
 

Similar to 64ビット高性能線形擬似乱数発生法の開発 (20)

ベイズ統計によるデータ解析
ベイズ統計によるデータ解析ベイズ統計によるデータ解析
ベイズ統計によるデータ解析
 
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
 
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
 
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
2020年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2020. 11. 27)
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
ガンマ分布族のなす空間の曲率
ガンマ分布族のなす空間の曲率ガンマ分布族のなす空間の曲率
ガンマ分布族のなす空間の曲率
 
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2) 2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
2022年度秋学期 画像情報処理 第10回 Radon変換と投影切断面定理 (2022. 12. 2)
 
代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
Grcosmo 44 slide
Grcosmo 44 slideGrcosmo 44 slide
Grcosmo 44 slide
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
 
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
2016年度秋学期 応用数学(解析) 第11回 振動と微分方程式 (2016. 12. 8)
 
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
2016年度秋学期 画像情報処理 第13回 Radon変換と投影定理 (2017. 1. 12))
 
非同期時系列のLead-lag効果推定のための新しい推定量
非同期時系列のLead-lag効果推定のための新しい推定量非同期時系列のLead-lag効果推定のための新しい推定量
非同期時系列のLead-lag効果推定のための新しい推定量
 
東京都市大学 データ解析入門 2 行列分解 1
東京都市大学 データ解析入門 2 行列分解 1東京都市大学 データ解析入門 2 行列分解 1
東京都市大学 データ解析入門 2 行列分解 1
 

64ビット高性能線形擬似乱数発生法の開発

  • 1. 64 ビット高性能線形擬似乱数発生法の開発 原瀬 晋 (立命館大学理工学部) 2017 年 9 月 16 日 日本 OR 学会 2017 年度中部支部シンポジウム 「準モンテカルロ法の理論と OR」 本研究は JSPS 科研費・若手研究 (B) 26730015,特別研究員奨励費 12J07985,基盤研究 (B) 26310211, 挑戦的萌芽研究 15K13460,立命館大 学研究推進プログラム(科研費獲得推進型)の助成を受けたものです. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 1 / 35
  • 2. Outline 1 イントロダクション 2 F2-線形擬似乱数発生法と理論的評価指標 3 メルセンヌツイスタ法とそこで使われる数学 4 本研究の成果:64 ビット最適均等分布 F2-線形擬似乱数発生法 5 まとめ 本研究は,木本貴光氏との共同研究に基づく. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 2 / 35
  • 4. 擬似乱数と準モンテカルロ点集合 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Random points 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 QMC points 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 4 / 35
  • 5. 研究の背景と目的 目的: 計算機の 64 ビット化の進展に合わせ,モンテカルロ・シミュレー ション用の高性能な 64 ビット線形擬似乱数発生法を開発する. モンテカルロ用擬似乱数への要請 高速性 長周期性 一様性 (高次元均等分布性) メモリ効率の良さ 32 ビットの場合は松本–西村 (1998) のメルセンヌツイスタ法 MT19937 が有名 (google scholar の引用数 5486).高次元均等分布性を完全に最適化 した WELL 法 (Pannton–L’Ecuyer–松本, 2006) も開発されている. ⇝ 64 ビットの場合は西村 (2000) の MT19937-64,斎藤–松本 (2007) の SIMD を用いた SFMT19937 があるが,高次元均等分布性が完全に最適化 された発生法は未だに開発されていなかった. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 5 / 35
  • 6. 本研究で開発した擬似乱数発生法:MELG19937-64 周期 219937 − 1 ≈ 106000 高次元均等分布性を完全に最適化 発生は極めて高速 (MT19937-64 と同じ速度) メモリ使用量は 312 ワード (2607 − 1 から 244497 − 1 までの様々な周期の発生法を実装) 論文: S. Harase and T. Kimoto,“Implementing 64-bit maximally equidistributed F2-linear generators with Mersenne prime period”, ACM Trans. Math. Software 44 (2018), no. 3, Art. 30, 11 pp. C 言語による実装 https://github.com/sharase/melg-64 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 6 / 35
  • 7. F2-線形擬似乱数発生法 F2-線形擬似乱数発生法 (無入力有限オートマトンモデル) F2 := {0, 1} を 2 元体とする.(積は普通に,和は 1 + 1 = 0) S := Fp 2 : 状態空間 (p = dim(S)) f : S → S : F2-線形状態遷移関数 O := Fw 2 : 出力集合 (w は 32,64 といった計算機のワードサイズ) o : S → O : F2-線形出力関数 初期状態 s0 ∈ S を与えると,漸化式 si = f(si−1) により, s0, s1, s2, ... ∈ S と遷移し,出力は o(s0), o(s1), o(s2), ... ∈ O とな る.この出力列を符号なし w ビット 2 進整数の擬似乱数列とみなす. このクラスに属する擬似乱数発生法に関しては,周期や均等分布次元な どの理論的な評価指標が計算可能. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 7 / 35
  • 8. F2-線形擬似乱数発生法の理論的評価 (その 1) F2-線形擬似乱数発生法の周期 F2-線形擬似乱数発生法の出力列 o(s0), o(s1), o(s2), ... は最大周期 2p − 1 となる. p がメルセンヌ指数のとき,最大周期性の判定が容易. 以下,暫く,最大周期性を仮定する. 特性多項式の非零項数 N1 状態遷移関数 f の特性多項式を P (z) とおく (p = deg P (x)). 理論的な指標として P (z) の非零の項数 (weight) を N1 とおく.N1 はなるべく大きいことが望ましいとされる. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 8 / 35
  • 9. F2-線形擬似乱数発生法の理論的評価 (その 2) S := Fp 2, O := Fw 2 とした.関数 trv : O → Fv 2 は,w ビットの整数の 上位 v ビットをとるものとする.上位ビットの動きが重要. Definition (v ビット精度均等分布次元 k(v)) 初期状態 s0 ∈ S が S 上で一様ランダムに選択された場合に,k 組 (trv(o(s0)), trv(o(f(s0))), . . . , trv(o(fk−1 (s0)))) ∈ Fkv 2 が Fkv 2 上で一様に分布するとき,擬似乱数発生法は v ビット精度 k 次元 均等分布するという.また,このような k の値で最大のものを v ビット 精度均等分布次元と呼び,k(v) と書くことにする. 最大周期性の仮定の下,一周期見た際に,すべての kv ビットパターンが 同じ数だけ出現していることを意味している (ただし,全部 0 は一回少 ない). 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 9 / 35
  • 10. 2 ビット精度 2 次元均等分布の例 0 0.25 0.5 0.75 1 0 0.25 0.5 0.75 1 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 10 / 35
  • 11. 2 ビット精度 2 次元均等分布の例 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 11 / 35
  • 12. v ビット精度均等分布次元 k(v) 一様性の規準として,上位 v ビットに関して k(v) 次元までは,数学的な 安全性が保障なされていると思ってよい.各 1 ≤ v ≤ w に対して, k(v) が大きい方が望ましい.ここで,k(v) の上限は k(v) ≤ bp/vc となる.それらの差の和を ∆ := w ∑ v=1 (bp/vc − k(v)) とおく.∆ = 0 のとき,最適均等分布性 (maximal equidistribution, ME) を持つという.本研究では ∆ = 0 を目指す. (cf., 32 ビットメルセンヌツイスタ MT19937(松本–西村, 1998) の場合 ∆ = 6750.) 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 12 / 35
  • 13. k(v) を効率的に計算するアルゴリズム 原瀬–松本–斎藤 (2011) 及び原瀬 (2011) のアルゴリズム v = 1, . . . , w に対して k(v) を全て計算するのにかかる計算量を既存の Couture–L’Ecuyer(2000) の方法よりも減少させた: O(w2 p2 ) −→ O(wp2 ). このアルゴリズムは整数論における Minkowski の数の幾何学 (F2-係数形 式的べき級数体 F2((z−1)) における F2[z]-格子のノルム最短基底を求め る問題) に基づく.特に,w が大きい場合に有効. 参考文献: S. Harase, M. Matsumoto, and M. Saito, “Fast lattice reduction for F2-linear pseudorandom number generators”, Math. Comp. 80(273): 395-407 (2011). S. Harase, “An efficient lattice reduction method for F2-linear pseudorandom number generators using Mulders and Storjohann algorithm”, J. Comp. Appl. Math. 236(2): 141-149 (2011). 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 13 / 35
  • 14. 擬似乱数発生法の設計 長周期を持つようにしたい (出来れば N1 も大きくしたい) ⇝ 良い 状態遷移関数 f : S → S を選ぶ. 高次元均等分布性が成り立つようにしたい (∆ = 0 に近づけたい) ⇝ 良い出力関数 o : S → O を選ぶ.O := Fw 2 . という問題に帰着される.設計者は,高速に発生できるような形の f や o のフォーマットを決めて,パラメータを探索していく. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 14 / 35
  • 15. 本研究の成果:MELG19937-64 周期 219937 − 1 の最適均等分布性を持った擬似乱数発生法 MELG19937-64 を開発した.(周期 219937 − 1 は一般的に用いられてい るメルセンヌツイスタ法と同様のもの) p = 19937, w = 64 とした場合の比較. 比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒). 発生法 N1 ∆ CPU 時間 1 CPU 時間 2 MELG19937-64 9603 0 4.2123 6.2920 MT19937-64 285 7820 5.1002 6.6490 計算環境 (64 ビット): CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3 CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler with -O3 以下,既存のメルセンヌツイスタ法を概説しながら,開発手法を述べる. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 15 / 35
  • 16. メルセンヌツイスタ法:最大周期性の判定 状態遷移 状態遷移 s0, s1, s2, . . . ∈ S := Fp 2 は F2-線形状態遷移関数 f : S → S を繰り返し施して,si := f(si−1) により得られる. ここで,F2-線形擬似乱数発生法の周期は 2p − 1 を超えない. (∵ S{0} の取りうる値は 2p − 1 しかないから.) 周期 2p − 1 を有するとき,最大周期をもつという. 要請 ⇝ 最大周期 2p − 1 を有する F2-線形擬似乱数発生法が欲しい. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 16 / 35
  • 17. メルセンヌツイスタ法:最大周期性の判定 P (z) を状態遷移関数 f の特性多項式とする: P (z) := zp + α1zp−1 + · · · + αp−1z + αp ∈ F2[z]. ここで,Cayley–Hamilton の定理より si−p ∈ S から f を繰り返し施して fp (si−p) + α1fp−1 (si−p) + · · · + αp−1f(si−p) + αpsi−p = 0 を得る.整理すると, si = α1si−1 + · · · + αpsi−p ∈ S. 更に,F2-線形出力関数 o : S → O を施すと, o(si) = α1o(si−1) + · · · + αpo(si−p) ∈ O := Fw 2 が成り立つ.出力列 o(s0), o(s1), o(s2), . . . の各ビットは F2-線形漸化式 xi = α1xi−1 + · · · + αpxi−p ∈ F2 に従う.特に,上の漸化式を満たす 0-1 列 x0, x1, x2, . . . ∈ F2 が最大周 期 2p − 1 を有するとき,P (z) を特性多項式にもつ M 系列という. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 17 / 35
  • 18. メルセンヌツイスタ法:最大周期性の判定 Theorem (最大周期条件 (Niederreiter 1992, Knuth 1998, 伏見 1989)) F2-線形漸化式 xi = α1xi−1 + · · · + αpxi−p に従う 0-1 列 x0, x1, x2, . . . ∈ F2 が最大周期 2p − 1 をもつ ⇐⇒ 特性多項式 P (z) が原始多項式である ⇐⇒ P (z) が既約かつ z の (F2[z]/(P (z))× における乗法位数が 2p − 1. 2p − 1 が合成数の場合,P (z) の原始性の判定は困難 (∵ 因数分解が必 要).しかし,p をメルセンヌ指数 (すなわち,2p − 1 がメルセンヌ素数) としたとき,P (z) が原始多項式 ⇐⇒ P (z) が既約多項式. ここで,既約性判定は比較的容易. P (z) は出力の 0-1 列から Berlekamp–Massey 法を使うと高速に求まる. (p × p 行列から直接求めようとすると O(p3) かかる (Hessenberg 法).) 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 18 / 35
  • 19. メルセンヌツイスタ法:最大周期性の判定 P (z) の既約性判定の例: まず,試し割り算を行う.例えば,F2 上の n 次既約多項式の積を pn(z) とすると,n の小さいところで,gcd(P (z), pn(z)) = 1 を 確認し,6= 1 となっていれば可約であることが分かる.(あるいは多 項式 z2n − z は m | n なるすべての m 次既約多項式の積となる性 質を用いても良い.) 次に,べき乗剰余演算 (バイナリ法) を行う. g0(z) :≡ z mod P (z) g1(z) :≡ g0(z)2 ≡ z2 mod P (z) g2(z) :≡ g1(z)2 ≡ z22 mod P (z) . . . gp(z) :≡ gp−1(z)2 ≡ z2p mod P (z) を計算して,g0(z) ≡ gp(z) mod P (z) が成立すれば既約となる. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 19 / 35
  • 20. メルセンヌツイスタ法 MT19937 (松本–西村, 1998) メルセンヌツイスタ法のアイデア: 状態空間 S := Fp 2 はスプリットされ,配列としてメモリ上に置か れる. 従来の F2-線形擬似乱数発生法は p を w の倍数として取っていた. メルセンヌツイスタでは,p をメルセンヌ指数 (すなわち,2p − 1 がメルセンヌ素数) とし,配列上に r ビット使わない場所を作った. この結果,既約性判定のみで最大周期性の保障ができ,飛躍的に周 期を伸ばすことが可能となった. MT19937 では,p = 19937, w = 32 として,S を N := dp/we = 624 ワードの配列として取り,r = 31 ビット捨てた. その結果,周期を先行研究の 2800 − 1 から 219937 − 1 に増やせた. 32 ビット精度 623 次元均等分布と大幅に均等分布次元が上がった. (メルセンヌツイスタ以前の発生法,例えば,TT800 では高々25 次元均 等分布程度だった.) 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 20 / 35
  • 21. メルセンヌツイスタ法 MT19937 (松本–西村, 1998) S を配列として置き,欠けた配列を用いる (実際は 31 ビット捨てる) 1 ワードのみ取り出して線形変換を施し出力 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 21 / 35
  • 22. メルセンヌツイスタ法 MT19937 (松本–西村, 1998) 状態遷移 (ww−r i , wi+1, wi+2, . . . , wi+N−1) ∈ S 7→ (ww−r i+1 , wi+2, wi+3, . . . , wi+N ) ∈ S とおくと, wi+N := wi+M ⊕ (ww−r i | wr i+1)A. 但し,w := (w0, . . . , ww−1), a := (a0, . . . , aw−1) ∈ Fw 2 とし, wA := { (w 1) if ww−1 = 0, (w 1) ⊕ a if ww−1 = 1. 出力変換 (ww−r i+1 , wi+2, . . . , wi+N ) ∈ S 7→ wi+N T ∈ O: z ← wN−1 ⊕ (wN−1 u), z ← z ⊕ ((z s) b), z ← z ⊕ ((z t) c), wN−1T ← z ⊕ ((z l). 西村 (2000) は,w = 64 とし (N1 を増やすために 5 項漸化式へ取り換え るなどして) パラメータ探索を行った. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 22 / 35
  • 23. 本研究の成果:MELG19937-64 周期 219937 − 1 の最適均等分布性を持った F2-線形擬似乱数発生法 MELG19937-64 を開発した.(周期 219937 − 1 は一般的に用いられてい るメルセンヌツイスタと同様のもの) p = 19937, w = 64 とした場合の比較. 比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒). 発生法 N1 ∆ CPU 時間 1 CPU 時間 2 MELG19937-64 9603 0 4.2123 6.2920 MT19937-64 285 7820 5.1002 6.6490 計算環境 (64 ビット): CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3 CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler with -O3 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 23 / 35
  • 24. 本研究の方法:MELG19937-64 S を配列として置き,欠けた配列を用いる (実際は 31 ビット捨てる) 余分な状態変数 vi を用いて二重のフィードバックを作る (Panneton et al.(2006)) 複数ワードを取り出して線形変換を施し出力 (原瀬 (2009)) 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 24 / 35
  • 25. 本研究の方法:MELG19937-64 状態遷移: (ww−r i , wi+1, wi+2, . . . , wi+N−2, vi) ∈ S 7→ (ww−r i+1 , wi+2, wi+3, . . . , wi+N−1, vi+1) ∈ S として, vi+1 := (ww−r i | wr i+1)A ⊕ wi+M ⊕ viB, wi+N−1 := (ww−r i | wr i+1) ⊕ vi+1C. 但し,w := (w0, . . . , ww−1), a := (a0, . . . , aw−1) ∈ Fw 2 とし, wA := { (w 1) if ww−1 = 0, (w 1) ⊕ a if ww−1 = 1, wB := w ⊕ (w b), wC := w ⊕ (w c). 出力変換: 適当な 0 L N − 2 について, (wr−w i+1 , wi+2, . . . , wi+N−1, vi+1) ∈ S 7→ wi+N−1T1⊕wi+LT2 ∈ O, wT1 ← w ⊕ (w t), wT2 ← (w b). 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 25 / 35
  • 26. SFMT19937-64 との速度比較 更に,SFMT19937 の 64 ビット整数出力と比較. 比較: C 言語で 109 個を発生するのに要する CPU 時間を測定 (単位:秒). 発生法 N1 ∆ CPU 時間 1 CPU 時間 2 MELG19937-64 9603 0 4.2123 6.2920 MT19937-64 285 7820 5.1002 6.6490 MT19937-64 (ID3:5 項式) 5795 7940 4.8993 6.7930 SFMT19937-64 (SIMD 無) 6711 14095 4.2654 5.6123 SFMT19937-64 (SIMD 有) 6711 14095 1.8457 2.8806 計算機環境 (64 ビット): CPU 時間 1: Intel Core i7-3770 3.40GHz Linux gcc compiler with -O3 CPU 時間 2: AMD Phenom II X6 1045T 2.70 GHz Linux gcc compiler with -O3 ♠ SFMT 法は非常に高速な一方,∆ は大きい. ♠ 倍精度浮動小数点数に特化した dSFMT 法の開発 (斎藤–松本 (2009)). 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 26 / 35
  • 27. IEEE754 の倍精度浮動小数点数 (double 型) の生成 [0, 1) 上の一様乱数を発生させる際に有用 ⇝ この機能を実装した. double to_double01(unsigned long long x) { union { unsigned long long u; double d; } conv; conv.u = (x 12) | 0 x3FF0000000000000ULL ; return (conv.d - 1.0); } (0, 1) 上の一様乱数では 0x3FF0000000000001ULL に置き換えればよい. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 27 / 35
  • 28. 並列計算のための初期状態のジャンプ機能 複数の計算機で並列計算を行う際,出力がオーバーラップしないように 初期状態 s0 ∈ S を選ぶ必要がある.例えば,ジャンプ幅 J = 2256 に対 して, sJ = fJ (s0) を計算して初期状態をジャンプさせたい.状態遷移関数 f : S → S の特 性多項式 P (z) は P (z) := zp + α1zp−1 + · · · + αp−1z + αp ∈ F2[z] とおいた.ここで, zJ mod P (z) = β1zp−1 + · · · + βp−1z + βp ∈ F2[z] と書ける (p.19 の方法で容易に求まる).後は, fJ (s0) = β1fp−1 (s0) + · · · + βp−1f(s0) + βps0 = β1sp−1 + · · · + βp−1s1 + βps0 を計算すればよい (原本 et al.(2008)).⇝ この機能を実装した. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 28 / 35
  • 29. まとめ 64 ビット整数出力の最適均等分布 F2-線形擬似乱数発生法 MELG19937-64(周期 219937 − 1) を開発した.加えて,2607 − 1 か ら 244497 − 1 までの様々な周期の発生法を実装した. 既存の MT19937-64 と比較して,速度を落さず,均等分布次元 k(v) を完全に最適化した.IEEE754 の規格に基づく double 型の [0, 1) 上 の浮動小数点出力にも有用. 並列計算のために,初期状態をジャンプさせる機能をつけた (固定幅 2256 ステップ). 倍精度浮動小数点出力については,斎藤–松本 (2010) により dSFMT 法が開発されている.均等分布次元の観点から,SFMT 法からの変 換よりも大幅に改善されている. 論文: S. Harase and T. Kimoto, “Implementing 64-bit maximally equidistributed F2-linear generators with Mersenne prime period”, ACM Trans. Math. Software 44 (2018), no. 3, Art. 30, 11 pp. C 言語による実装 https://github.com/sharase/melg-64 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 29 / 35
  • 30. Appendix: F2-線形発生法の格子構造について 均等分布次元 k(v) を計算する方法の一つとして,格子の問題に帰着させ る方法が知られている. 多項式成分のベクトル a(z) = (a0(z), a1(z), . . . , av−1(z)) ∈ F2[z]v に対して,ノルム (長さ) を以下のように定義する: ||a(z)|| := { max0≤l≤v−1 deg al(z) if a(z) 6= (0, . . . , 0), −∞ if a(z) = (0, . . . , 0). 初期状態ベクトル s0 ∈ S から開始した出力列の l ビット目 {y0,l, y1,l, y2,l, . . .} の生成母関数 Gl(z) を次のように決める: Gl(z) := y0,lz−1 + y1,lz−2 + y2,lz−3 + · · · ∈ F2((z−1)). このとき,P (z)Gl(z) ∈ F2[z] が成り立つ.gl(z) := P (z)Gl(z) とお くと,Gl(z) = gl(z)/P (z) と有理型で書ける. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 30 / 35
  • 31. そこで,次の多項式上線形ディオファントス方程式の解集合を考える: L∗ v := {(w0(z), . . . , wv−1(z)) ∈ F2[z]v | g0(z)w0(z) + · · · + gv−1(z)wv−1(z) ≡ 0 (mod P (z))}. F2-線形発生法が最大周期をもつと仮定し,非零な初期状態 s0 6= 0 を取 る.このとき,L∗ v は F2[z]-格子となる. Couture–L’Ecuyer(2000) の双対格子 L∗ v 前述の設定の下,v ビット精度均等分布次元 k(v) は k(v) = ||w1(z)|| となる.ただし, w1(z) は L∗ v の非零な最短ベクトルである. 多項式格子の場合,整数格子と異なり,最短ベクトルを多項式時間で見 つけるアルゴリズムは知られている (Lenstra(1985), Mulders–Storjohann(2003) など).原瀬–松本–斎藤 (2011) 及び原瀬 (2011) では,この L∗ v の双対格子にあたる Lv = (L∗ v)∗ ⊂ F2((z−1))v を考えて,格子点を S の元と同一視するなどして,計算量を減少させた. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 31 / 35
  • 32. Appendix: 擬似乱数発生法の準モンテカルロ法への応用 上位ビットの均等分布性,または,(t, m, s)-net の t-値により最適化さ れた短い周期の F2-線形擬似乱数発生法を一周期使い切ることにより,準 モンテカルロ (QMC) 法の点集合として用いることが出来る. Tausworthe 法 (Tausworthe, 1965) P (z) を特性多項式にもつ M 系列 xi = α1xi−1 + · · · + αpxi−p ∈ F2 に対して,次式によって定義される系列 {ui} を Tausworthe 列という: ui := p−1 ∑ j=0 xiσ+j · 2−j−1 ∈ [0, 1). ここで,σ ≥ p, gcd(σ, 2p − 1) = 1 とする. 状態空間 S := Fp 2,状態遷移関数 f : S → S を (xi, . . . , xi+p−1) 7→ (xi+σ, . . . , xi+p−1+σ) と取ったものに相当. QMC では,一般に,p を 8 から 32 程度までの整数とする. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 32 / 35
  • 33. Appendix: 擬似乱数発生法の準モンテカルロ法への応用 例:P (z) = z4 + z + 1, i.e., xi = xi−3 + xi−4, σ = 7 とすると, 000100110101111000100110101111000100110101111 · · · u0 = 0.0001 u1 = 0.1010 u2 = 0.1000 u3 = 0.1101 . . . {ui} をオーバーラップさせて並べた d 次元の点 (n = 2p − 1 個) u0 = (u0, . . . , ud−1), u1 = (u1, . . . , ud), . . . , un−2 = (un−2, un−1, u0, . . . , ud−3), un−1 = (un−1, u0, . . . , ud−2) を作る. これらの点に原点 {0} を加えた 2p 個の点集合 P = {0} ∪ {ui}2p−2 i=0 を準モンテカルロ法に用いる.⇝ Korobov 多項式格子に対応. 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 33 / 35
  • 34. Appendix: 擬似乱数発生法の準モンテカルロ法への応用 以下,Tausworthe 法の準モンテカルロ法への応用例: 1 S. Tezuka and M. Fushimi, “Calculation of Fibonacci polynomials for GFSR sequences with low discrepancies”, Math. Comp. 60 (1993), no. 202, 763-770. ⇝ 正則連分数展開に基づいた 2 次元の t-値が 0 と なる (P (z), σ) のペアの探索.特に,高速発生可能なパラメータを 選択. 2 C. Lemieux and P. L’Ecuyer, “Randomized polynomial lattice rules for multivariate integration and simulation”, SIAM J. Sci. Comput. 24 (2003), no. 5, 1768-1789. ⇝ 均等分布性を指標として用いた低次元 プロジェクションの一様性の高い点集合の探索.混合発生法の適用. 3 S. Chen, M. Matsumoto, T. Nishimura, and A. B. Owen, “New inputs and methods for Markov chain quasi-Monte Carlo”, Monte Carlo and quasi-Monte Carlo methods 2010, 313–327, Springer Proc. Math. Stat., 23, Springer, Heidelberg, 2012. ⇝ マルコフ連鎖モンテ カルロ法のための QMC 点集合.次元に依らない一様性を持った CUD 列の近似点集合の構成.均等分布性を用いて最適化.(ただし, オーバーラップせずにとる.) 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 34 / 35
  • 35. Appendix: Sobol’ 列と Tausworthe 列 (一周期) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Sobol’ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Tezuka-Fushimi 原瀬 晋 (立命館大学) 64 ビット擬似乱数発生法 2017 年 9 月 16 日 35 / 35