IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 中澤 直也の特許一覧

特開2023-8720空間格子への乗算合同法独立乱数の一様無相関配置方法
<>
  • 特開-空間格子への乗算合同法独立乱数の一様無相関配置方法 図1
  • 特開-空間格子への乗算合同法独立乱数の一様無相関配置方法 図2
  • 特開-空間格子への乗算合同法独立乱数の一様無相関配置方法 図3
  • 特開-空間格子への乗算合同法独立乱数の一様無相関配置方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023008720
(43)【公開日】2023-01-19
(54)【発明の名称】空間格子への乗算合同法独立乱数の一様無相関配置方法
(51)【国際特許分類】
   G06F 7/58 20060101AFI20230112BHJP
   G09C 1/00 20060101ALI20230112BHJP
【FI】
G06F7/58 660
G09C1/00 650B
【審査請求】未請求
【請求項の数】2
【出願形態】書面
(21)【出願番号】P 2021131813
(22)【出願日】2021-07-01
(71)【出願人】
【識別番号】508260898
【氏名又は名称】中澤 直也
(72)【発明者】
【氏名】中澤 直也
(72)【発明者】
【氏名】中澤 宏
(57)【要約】      (修正有)
【課題】優れた乱数生成を行う。
【解決手段】正の整数dを法、dとは素な整数zを乗数、dとは素な任意の整数nの種seed、の3つ組(d、z、n)が作る乗算合同(MULTIPLICATIVE CONGRUENTIAL、MC)法乱数生成機構が与える乱数列が相続く6個までの独立性の外観を保障されていると前提し、シミュレーションを行う2以上の次元sの空間格子G(j)=J1×J2×…×Jsの各格子点j=(j1、j2、…、js)に6以内の個数rの独立MC乱数を配置して、G(j)の任意の格子点jに置かれたr個のMC乱数達とjの最隣接格子点に置かれたr個のMC乱数達のすべての対が無相関と看做せる配置を実現する。
【選択図】図1
【特許請求の範囲】
【請求項1】
請求する発明は、正の整数dを法、dとは素な整数zを乗数、dとは素な任意の整数nの種seed、の3つ組(d、z、n)が作る乗算合同(MULTIPLICATIVE CONGRUENTIAL、MC)法乱数生成機構が与える乱数列が相続く6個までの独立性の外観を保障されていると前提し、シミュレーションを行う2以上の次元sの空間格子G(j)=J×J×…×Jの各格子点j=(j、j、…、j)に6以内の個数rの独立MC乱数を配置して、G(j)の任意の格子点jに置かれたr個のMC乱数達とjの最隣接格子点に置かれたr個のMC乱数達のすべての対が無相関と看做せる配置を実現する方法で、r以上のずらしの整数Jと格子のサイズのそれぞれ2以上の整数J、J、…、Jとが定める2r-1組のMC生成機構のs組、(I)、(I)、…、(I)、即ち
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、(d、z^{J±(r-1)})
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、(d、z^{J±(r-1)})
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、
(d、z^{J±(r-1)})
………………………………………………………………
(I):(d、z^{J…Js-1})、
(d、z^{J…Js-1±1})、
(d、z^{J…Js-1±2})、…、
(d、z^{J…Js-1±(r-1)})
の(一般化)2次スペクトル検定を順次行い、評価値が1.25以上の不合格がある場合Jはr以上の範囲で増大させ或いは大きい値から減少させJ’とし、整数J,J、…、Jは出発の設計値から増大させながらJ’、J’、…、J’に変えて調整を続け、すべてが合格値1.25未満となるJ’と新しい格子
G’(j)=J’×J’×…×J
と発見して、その上のMCランダム根関数g‘(j)、即ちで格子点j=(j、j、…、j)で
nz^(j’+j’J’+j’J’J’+…
+j’J’…Js-1’)
と合同になるもの、を特定し、r成分のベクトル(1、z、z、…、zr-1)と法dで合同なv(r)を各格子点jで根関数g‘(j)に掛けてMCベクトル関数、即ち
mod(g‘(j)v(r),d)
と定めて、そのr個の成分をG’(j)の格子点jに与えられた独立なr個のMC乱数とし、最隣接格子点に与えられるr成分どうしは無相関と見る事ができる格子G’(j)上一様homogeneousなMC乱数配置とする方法であって、シミュレーションで望まれるならG’(j)の部分格子である初期設計のG(j)の上でシミュレーションを行う、或はG’(j)に欠損を導入した格子上でシミュレーションを行う、そのために空間格子上で一様homogeneousで各格子点には6以下のr個置かれ、最隣接格子点間では無相関と看做せるMC乱数の配置方法。
【請求項2】
正の整数dを法、dとは素な整数zを乗数、dとは素な任意の整数nの種seed、の3つ組(d、z、n)が作る乗算合同(MULTIPLICATIVE CONGRUENTIAL、MC)法乱数生成機構が与える乱数列は相続く6個までの独立性の外観を保障されていると前提し、シミュレーションを行う2以上の次元sのトーラス空間格子G(j)=J×J×…×Jの各格子点j=(j、j、…、j)に6以下のr個の独立MC乱数を配置して、G(j)の任意格子点とその最隣接格子点に置かれたr個のMC乱数とはすべての対が無相関と看做せる配置を、r以上のずらしの整数Jと格子のサイズの各2以上の整数J、J、…、Jとから定まる次の2r-1組のMC生成機構の2s組(I)、(B)、(I)、(B)、…、(I)(B)、即ち
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、(d、z^{J±(r-1)})
(B):(d、z^{(J-1)J})、
(d、z^{(J-1)J±1})、
(d、z^{(J-1)J±2})、…、
(d、z^{(J-1)J±(r-1)})
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、
(d、z^{J±(r-1)})
(B):(d、z^{(J-1)J})、
(d、z^{(J-1)J±1})、
(d、z^{(J-1)J±2})、…、
d、z^{(J-1)J±(r-1)})
(I):(d、z^{J})、(d、z^{J±1})、
(d、z^{J±2})、…、
(d、z^{J±(r-1)})
(B):(d、z^{(J-1)J})、
(d、z^{(J-1)J±1})、
(d、z^{(J-1)J±2})、…、
(d、z^{(J-1)J±(r-1)})
………………………………………………………
(I):(d、z^{J…Js-1})、
(d、z^{J…Js-1±1})、
(d、z^{J…Js-1±2})、…、
(d、z^{J…Js-1±(r-1)})
(B):(d、z^{(J-1)J…Js-1})、
(d、z^{(J-1)J…Js-1±1})、
(d、z^{(J-1)J…Js-1±2}))…、
(d、z^{(J-1)J…Js-1±(r-1)})
の(一般化)2次スペクトル検定を繰り返して、評価値が1.25以上の不合格がある場合Jはr以上の範囲で増大させ或いは大きい値から減少させJ とし、格子サイズの整数は出発の設計値J,J、…、Jから増大させながらJ 、J 、…、J に変えて、すべて合格値1.25未満となるJ と新しい格子
(j)=J ×J ×…×J
と発見して、その上のMCランダム根関数g(j)、即ちで格子点j=(j、j、…、j)で
nz^(j +j +j +…
+j …Js-1
と合同になるもの、を特定し、r成分のベクトル(1、z、z、…、zr-1
と法dで合同なv(r)を各格子点jで根関数g(j)に掛けてMCベクトル関数を
mod(g(j)v(r),d)
と定めて、そのr個の成分をG(j)の格子点jに与えられた独立なr個のMC乱数とし、最隣接格子点に与えられるr成分どうしは無相関と見る事ができる格子G(j)上一様homogeneousなMC乱数配置とする方法であって、シミュレーションで望まれるなら格子の周期性は放棄して例えばG(j)の部分格子である初期設計のG(j)の上でシミュレーションを行う、或はG(j)に欠損を導入した格子上でシミュレーションを行う、そのために空間格子上で一様homogeneousで各格子点には6以下のr個置かれ、最隣接格子点間では無相関と看做せるMC乱数の配置方法。
【発明の詳細な説明】
【技術分野】
【0001】
整数の3つ組(d、z、n)、d>0、dとは素で乗数と呼ばれるz>0、dとは素で初期値あるいは種seedと呼ばれるn、が与えるmultiplicative congruential(MC)法、即ち乗算合同法乱数生成機構は、dを法とする再帰的合同関係で開区間(0、d)の整数の列{z,z,z, …}を
=mod(n,d), zk+1=mod(zz,d)
k=1,2, …
まとめてz=mod(nz,d)、k=0、1、2、…と生成し、開区間(0、1)に一様に分布した有理数列
{x:=z/d| k=0,1,2, …}
が一様独立乱数の見本列に見える様にd、zを様々に検定し選んで(文献A)用いる。この最も古い乱数生成方法は、しかし最も広範強力な生成機構であり、コンピュータ上の有限長さの任意一様乱数列を1/zの精度で近似する。(文献A)20世紀からMC法については生成された乱数の相続くk連がk次元の格子を作る事が知られていた。その性質は6以下のk個の相続く連が独立な統計を持つ列の見本である条件、6次までのスペクトル検定としても利用された。
(文献A)中澤 宏/中澤 直也:“コンピュータ上の優れた乱数とは何か”、東京図書、2021年9月出版予定。
【0002】
2012年までのスペクトル検定理論は、遺憾ながら、乱数の相次ぐ3連から6連までに関する検定基準に認識の過誤があった。これは(文献A)が指摘し、正しいものとして、MC乱数の3以上のkを個数とする相続く連の作るk次元格子が、正格子の場合の最大格子間隔に基づくスペクトル検定と、より精密に格子ベクトルそのものが正単体を最小単位細胞とする正格子からの変化に基づく最大最小稜検定とで構成しなければならない事が結論された。これら新しい検定の合格者は大変少なく、発見は膨大な検定時間を要する。それでも何年にも亙る困難な検定計算を越えて、2018年以降素数の法と原始根乗数の生成機構の1組#M001と、2つの奇素数の積を法とする2組の生成機構#001と#003、が発見された。後2者は252-251程度の大きな周期、倍精度実数に十分な桁数の一様乱数出力、そして検定の結果で保証される優れた独立性、統計精度を持ち、倍精度計算を要する現代の大規模シミュレーションに相応しいものである。2つの奇素数の積を法とする構造は、孫子(中国春秋戦国時代400-500AD)の定理から倍精度整数計算での生成技法を可能として実際的にも(文献A)きわめて優れている。この、3年以上に亙る検定時間経緯でも漸く3個という状況からも明らかな様に、すべての検定に合格するMC乱数生成法は真に希少であるが、素数の法と原始根乗数の生成機構は孫子の定理が適用できないため4倍精度整数計算か、あるいは何等かの多倍長整数計算の工夫が必要となるにも関わらず、得られる周期は230を少し越える程度で、パソコン上でもごく短い時間で周期を使い切られ、乱数出力は実数単精度にとどまり、現在のシミュレーション研究に不適である事は全般状況として認識されなければならない。
【0003】
これら理解された構造や以下述べる発明では、“法の整数dに関する整数達の合同関係”が重要な構成要素、推論要素である。それは2つの整数xとyの差x-yがdの倍数、dの整数倍であるとき“xとyは法dで合同”と定義し、“法dで同じものだ”とする考え方である。一見煩わしいが、これは極めて有利な考え方である。詳細は添付の文献Aに詳しいので参照して頂きたい。残念ながら特許文書では“合同記号”さえも許されない。そこで妥協として上の合同関係を“x¥d¥y”と記す。この明細書限りの記法だが記述のため納得して頂きたい。合同関係は等式同様
(1)x¥d¥y、 y¥d¥zならx¥d¥z、
(2)x¥d¥x‘、 y¥d¥y’、z¥d¥z‘、…なら
xyz¥d¥x‘yz¥d¥x’y‘z¥d¥…、
等を成り立たせる。特に極めて有用な理解を次の補題1に述べる。
(補題1)整数x、y、z、…はそれぞれ法dでx‘、y’、z‘…と合同とすると、整数成分と整数係数の加減乗法だけで構成される任意の関数f(x、y、z、…)に関して
f(x、y、z、…)¥d¥f(x‘、y、z、…)
¥d¥f(x‘、y、z’、…)¥d¥…、
が成り立つ。言葉で述べれば、整数値の変数と整数係数の加減乗法だけで構成される関数f(x、y、z、…)では任意の整数変数をそれと法dで合同なもので置き換えても全体が法dで合同に留まる性質は変わらない。(補題1終)
証明はx‘=x+pd、y’=y+qd、z‘=z+rdなどと整数p、q、rで置いて見れば明らかである。計算言語での関数mod(x,d)即ち整数xを法dで割った余り、も使う事はできるが、例えば整数関数f(x、y)のdで割った余りを取るとf(x、y)の構造が見えなくなり、推論が難しくなる。このため“dで割った余り”を取るのは、加減乗法の計算のどの段階で取ってもよいのだから、最後に延期するのが得策で、我々はこの方針で進む。
【0004】
現在我々は、述べられた2つの素数の積を法とするMC生成機構によって相続く乱数の直線的な6連
{x,xk+1, …,xk+5
が互いに独立と見える優れた統計性と、実際に用い得る大周期(251や252を越え、生成にはコンピュータ上で年の単位を要するもの)とを持ち、倍精度実数乱数としても十分な桁数の精度を与える満足できるMC乱数生成機構を得ている。しかしこの直線的な連の統計的性質だけではカバーできない用途がMC乱数にはあり、各種シミュレーションで重大な問題となる。現在の発明はこの問題を解決する技術を目指して得られた。この方向への認識は1992年のFerrenberg他(文献B)の指摘に始まる。彼等は2次元Isingスピン16×16格子に、当時優れているとされた種々の乱数による初期値を与え、その時間発展を厳密解と比較して、当時の一様独立を名乗るすべての乱数は無視できない破綻を与えると報告した。底にあるのは一様独立乱数ならどのように格子点上に配置しても互いに一様独立である性質は変らないはずだ、という常識に基づく計算であろう。しかし上に述べた様に、直線的な連だけが独立と見える事を目指して選ばれた乱数にとって、これは過大な期待である。
(文献B)M.Ferrenberg,D.P.Landau and Y.J.Wong,“Monte Carlo simulation;Hidden errors from‘good’random number generators”,Physical Review Letters Vol.69(1992),pp.3382-3384.
【0005】
問題の核心は、6連を越える乱数列がどの様な統計的性質を持つかである。MC乱数は、法dで割る前の形はすべて、整数nzと法dで合同な形だから、任意の2つのMC乱数はnzとnzとしてよく、その間の遷移は乗数zk-jを法dで掛けて得られる。即ちMC乱数生成機構(d、zk-j、z)の初項(種)zと第2項z×zk-jとである。この関係で乗数zk-jの2次スクトル検定を用いて任意の2つのMC乱数が無相関と言えるかどうか、を判定できる。中澤と中澤(文献A)はこの考察に基づいて一般化2次検定(文献A)を導入した。次のページに優れたMC乱数生成機構#001からの(d、z)の一般化2次検定値を1から100までの次数kに対して図1として示す。
【0006】
前頁の図1は、この#001MC生成機構がR=6を越えてR=8まで一般化2次検定値が1.25未満、乱数出力xとxk+8も無相関である優秀な性質を持つ事を示す。ただそれから先は異なる。どれ位先まで行っても大きな相関を示唆する1.25より大きい検定値も、それより小さく無相関を示す評価値も出現する。空間格子の幾何学的近傍に無相関と見えるMC乱数を配置するにはこの状況を利用しなければならない。以下ではこの配置の実現可能性を示す。その技術的実体は、検定を繰り返して性能のよい配置を発見し選び出す手続きである。難しい議論を要するのは第一にこの手続き構造の特定である。そして第2にその結果の検定可能性、特に必要な検定時間の理解である。
我々はこの両方に成功した。結果は検定構造について
(1)Ferrenberg達の目指した通り、MC乱数を空間格子点に存在するIsingスピン達のような物理系にR=6以下のr個ずつ一様独立と見えるMC乱数を配布し、空間的最隣接格子点に配布されたr個のMC乱数のそれぞれから取った対は互いに無相関と見える配置とする方法の一般具体構造を示す。空間格子は周期的境界条件を課されない場合と、周期的境界条件を満たすトーラスである場合とに亘る。その両方について、2次元格子での優れたMC乱数配置の探索成功を開示できる事を喜びに思う。
(2)空間格子点から出発して時間的に発展する時空間格子の上ではR/2=3以下のrを個数とする独立と見られるMC乱数を各時空格子点に配置し、
(2A)時間軸方向に相隣る格子点のr個のMC乱数から取った対はすべて一様無相 関であり、
(2B)同時刻に空間格子上の最隣接格子点の夫々に配布されたr個のMC乱数のす べての対は共に一様で無相関と見る事ができる、
という状態を実現する配置の条件を文献Aと共に精細に報告する。そして少なくとも空間的に文献Aでは2次元までの場合に時間軸も含む時空格子の上の優れた乱数配置の実現を発見し開示できる喜びを持つ。我々が得た好結果は、実際のコンピュータの利用者が使用可能な形で各コンピュータセンターに備えられるべきソフトウェアとして、一様独立乱数生成機構と、空間格子上に置かれた空間的一様homogeneousで最隣接近傍で無相関のMC乱数配置の実現可能な形であり、それは容易に時空間格子上の同様の結論(文献A)に敷衍される。
【0007】
成功の鍵は、既に触れたMC(d、z、n)一様乱数生成方法の大きな利点、MC(d、z、n)列上のすべての項は法dで整数nzの形を取る、という事実である。それを次の補題に再記して強調する。
(補題2)一般性を失う事なく整数jは整数kより小さいとする。法dでのnzとnzとはMC乱数生成機構(d、zk-j、nz)の第1項と第2項であり、これらの出力が2次元平面に張る格子が正三角形を含む三角格子に近いなら、即ちMC乱数生成機構(d、zk-j)の一般化2次スペクトル検定値(文献A)が1.25より小なら、2乱数nzとnzは無相関と見てよい。
(証明)スペクトル検定値によるこの状況の説明は図と共に(文献A)(注B)に詳しく示されている。(証明終)
(注B)一般化2次検定はロシア特許と米国特許とを付与された。(文献A)内包する応用の可能性がシミュレーションを利用するすべての国の人々に重要である事と負担の公平を考えて、発明者、中澤宏と中澤直也はこれら特許を無償で公開する。
【0008】
空間格子上のシミュレーションには、Ferrenberg達のように空間に分布した物理量にランダムな初期値を与えて時間発展を求める“初期値問題”と、さらに時空間に与えられたMC一様乱数の場(文献A)の影響の下で、ある種のランダムウォークを行う粒子系の運動、無重力シミュレーション、反応、凝集、重力下での沈降など、の多様な実際問題が関係する;これは文献Aでも、さらに稿を変えてinternet上でも述べる。これらの応用に共通するのは1つの格子点に複数r個の互いに独立なMC乱数の配置が求められる点である。複数の一様独立乱数とは、例えばランダムな速度ベクトルの成分、液体媒質分子からの衝撃力の成分、などである。ここでは最も基本的な、MCランダムな初期値を6個以下のr個まで空間格子に配置する問題から始める。この問題で乱数生成配布技術が認識すべき事は、“独立と見える乱数を得るのに我々にはMC乱数の相続くr連、rは6以下、を取る以外の方法がない”という現実である。状況は次の補題3にまとめられる。
(補題3)1つの空間格子点にシミュレーションが求める独立と見えるMC乱数の個数をrとする。現在可能なrは6以下で、MC乱数列の相続く6個の中に取られなければならない。(補題3終)
【0009】
具体的な議論を空間格子の表記から始める。次元sが2以上で正の整数J、J、…、Jで表される空間格子G(j)を行ベクトルjと共に定義する:
G(j):=J×J×…×J
={j:=(j,j,…,j)|
は0からJ-1まで、kは1からsまで}
後にs=1の1次元格子も考えるが、その場合にはjはベクトルではなく格子座標の番号jと考える。J、J、…、Jを格子のサイズの整数と呼ぶ。
【0010】
格子G(j)の上のIsing原子の様な物理系にランダムなMC乱数を初期値として与えるとしよう。我々は次の方針(A)-(C)に沿ってそれを実現する。
(A)この格子の各点jに適当な1つのMC乱数(のd倍)を配置して、ランダムな根(ね)の関数g(j)と名付け、
(B)各格子点の根g(j)に相続くr個のMC(d、z)乱数の行ベクトルv(r)、法dで記して
v(r)¥d¥(1,z,z,…,zr-1
を掛けて(接木して)各格子点で求められるr個のMC乱数(のd倍)を構成するランダムMCベクトル関数g(j)v(r)と定め、
(C)それらの格子上への“うまい”配置技術を発見する。
作戦をより具体的に述べる。まず
(a)MC生成機構(d、z、n)が生成する乱数列(のd倍)をあるr以上の整数J毎に切り分け、得られる長さJの小列の先頭のMC乱数を根(ね)rootとする。MCランダムな根の関数g(j)の値(のd倍)は整数の法dの意味で
{nz^(kJ)|k=0,1,…,J…J-1}
と表す事ができる。
(b)これらの根は格子点jの上に相応しい方法で置かれ、行ベクトルv(r)をjでの根関数g(j)への植え付けに相当してg(j)に掛け合わせ、
(c)各格子点の行ベクトルの成分r個を法dで取ってその格子点に与えられる独立なMC乱数の(d倍された)整数と考える。
上に述べた根の各格子点への相応しい配置の方法は次の段落の準備から始めて記す。
【0011】
これからの格子上の他の利用も考えて、MC生成機構(d、z、n)が生成する法dのMC乱数列は周期を超えて正負両方向へ延長し、無限長と看做す。その無限長の上でMC乱数列の実用周期T(注C)
(α)zが法dで-1、即ちd-1と合同になる最小の正のT、或は
(β)zが法dで-1と合同にならなければTは乱数列の周期(注C)
と定義する。実用周期Tの間にはMC乱数列には法dで同じ値を取るMC乱数は出現しない。以下ではJ毎の根とそれらの間のMC乱数で空間格子点全体に配置される総数J…Jは使える周期T内である、即ちJ…JはT以下である、と仮定する。導入された整数Jはずらしstaggerの定数と呼ぶ。
(注C)法dでzが-1即ちd-1に合同なら、T乗以後のMC乱数列は本質的にそれまでの符号だけを変えた繰り返しで、統計的に独立ではない。また例えば法7では乗数2の冪は、わかりやすい関数mod(x,d)の形で書いて
mod(2,7)=1、mod(2,7)=2、
mod(2,7)=4,mod(2,7)=1
と繰り返して-1或いは6は取る事がなく、3乗で巡回列周期の値1を実現する。大きな素数を法とする乗数で原始根ではない、上の法7での2の様な性質のものでも。諸検定が優れた評価値であれば用いてよい。
【0012】
(正の整数の可変長基数による表現)
(補題4)それぞれが2以上の格子サイズの整数J,J,…、Jが与えられたとする。固定された2以上の整数Jを基数とする0以上J-1以下の任意の整数Kの表現
K=j+jJ+j+…+js-1
は学校算数以来我々には使い慣れたものであるが、対応して、0以上J…J-1以下の任意の整数Kは整数の組、行ベクトルj=(j,j,…,j)による次の一意の可変基数の表現K=κ(j)を持つ:
K=κ(j):=j+j+j+…j…Js-1
番号kは1からsまでとしてjは0からJ-1まで.
(証明)上の関数K=κ(j)は与えられた範囲のすべての整数変数j,j,…,jの増加関数で、0以上から次の最大数
(J-1)+(J-1)J+(J-1)J+…
+(J-1)J…Js-1=J…J-1.
までの値を持つ。同じ整数Kの別の整数の組での表現
K=j’+j’J+j’J+…+j’J…Js-1
番号kは1からsまで、j’は0からJ-1まで
がある、と仮定すると次の等式が成り立つ:
0=(j’-j)+(j’-j)J+(j’-j)J
…+(j’-j)J…Js-1
この等式を整数2以上のJで割って余りの等式j’-j=0、j’=jを得る。故に上の0の等式右辺はJで割り切られて商は0、
0=(j’-j)+(j’-j)J+…
+(j’-j)J…Js-1
である。再びこの等式をJで割ると余りは0=j’-j、j’=jを得る。
以下同様でj’=jまでを得る。故に0以上J…J-1以下の整数Kの可変基数表現K=κ(j)は一意である。(証明終)
これらは我々が固定基数の整数表現で無意識に使っている事実である。
【0013】
(格子上のランダムなMC乱数初期値問題の解:MC根root関数とMCベクトル関数)
ランダムなMC根関数g(j)の可能な形、MC乱数列をr以上の整数の間隔Jでずらした(staggerした)MC乱数の空間格子G(j)への配置と、格子上に置かれた(接ぎ木された)MC乱数行ベクトル関数g(j)v(r)とは次の定理で与えられる。
(定理5)(空間格子上のMCランダムな根関数とMCベクトル関数)
6次まで正単体基準スペクトル及び最大最小稜検定に合格するMC(d,z,n)乱数列を取り、空間格子G(j)のすべての格子点jでMC乱数関数(MC根関数と呼ぶ)g(j)を次の様に定義する
格子G(j):=J×J×…×Jの各格子点に置かれたMC根関数g(j)にr成分ランダム行ベクトルv(r)¥d¥(1、z、z、…、zr-1)、rは正でR=6以下、を法dで掛けた(接木した)MCランダム行ベクトル関数を
g(j)v(r)¥d¥nv(r)z^{J|(j)}
¥d¥nv(r)z^(j+j+…
+j…Js-1
で定義する。ただしJ…JがT以内という制限、Tは用い得る周期、を置いて、用いられるMC乱数の重複が無い様に制限する。このとき法dでg(j)v(r)と同値なランダム行ベクトル関数は、G(j)空間格子の各点にr個の互いに独立と看做せる異なったMC乱数(のdで割る前の整数達)を配置する。
(証明)MC乱数列は巡回周期列、或は剰余類周期列であり、周期以内ではすべて異なるMC乱数からなる。使い得る周期Tはこれら周期の半分であるか全体であるか、なので、J…JがT以下であればg(j)の右辺はjが異なればすべて異なるMC乱数(のd倍)からなる事に注意する。空間格子の整数格子点j上の関数κ(j)は0からJ…J-1までのすべての整数を1回ずつ経ることが補題4によって示されている。故にg(j)は
{nz^(JK)|K=0、1、2、…、J…J-1}
と、(d、z、n)MC乱数列の先頭からJ毎に切り分けた小列N個、
N=J…J=G(j)の格子点の総数
の各小列の先頭MC乱数を、K=κ(j)の指定するG(j)の格子点jに配置する。ランダムベクトル関数は、これら根関数に乗じられたr成分ベクトルv(r)だから、それぞれ長さJの小列内にあって、MC乱数列上のK番目の小列内のr個のMC乱数がK=κ(j)で指定される格子点jに置かれている。
用いられた小列全体のMC乱数の個数rNは、
N=J…J
以内であり、仮定された制限によって使い得る周期T以内であって、MC乱数列上のすべて異なる乱数である。(定理5証明終)
【0014】
(空間格子上に配置されたランダムベクトル関数、g(j)v(r)の非周期的tuning調整)
空間格子G(j)=J×J×…×Jの格子点jからのj軸方向の最隣接格子点は、1からsの任意格子座標軸番号kについて次で与えられる。
(k+)=(j、j…、j+1、…、j
j=(j、j、…、j、…、j
(k-)=(j、j、…、j-1、…、j
格子点jに置かれるランダム根関数g(j)とそれに接木されたr成分(rはR=6以下)のベクトルMC乱数v(r)の具体形は、
g(j(k+))v(r)¥d¥g(j)v(r)z^(J…Jk-1
g(j)v(r)
g(j(k-))v(r)¥d¥g(j)v(r)z^(-J…Jk-1
である。これらがs次元格子G(j)の格子点jとその最隣接格子点に与えられるMC乱数の(dで割る前の整数部分の)r成分達を表す。各格子点に置かれた行ベクトルg(j)v(r)に含まれるMC乱数は始めから優れた独立性を示すものに選ばれている。さらにこれらと格子の幾何学的最隣接格子点の上のr成分MC乱数同士が、独立とは言わずとも無相関かどうかを見るには発見された具体形、g(j(k±))v(r)とg(j)v(r)、即ち共通MC乱数を除いたr個のMC乱数の2組
v(r)とv(r)z^(±J…Jk-1
のすべての対が与えるMC生成機構の一般化2次検定を見ればよい。MC乱数の対nzとnzなら、積の乗数
k-j¥d¥(nz-1nz
の一般化2次検定が1.25未満の評価値を与えればよいし、具体的にnとzで表さなくてもMC(d、z、n)乱数列の2成分AとBとして、A-1Bを乗数とする一般化2次検定値が1.25未満ならAとBは無相関である。発明の最初の骨子は関連する対AとBの特定、そして調べるべきMC生成機構の乗数A-1Bの特定であり、生成機構(d、A-1B)の一般化2次検定が評価値1.25未満を持てばAとBは無相関であると理解される。
【0015】
関連するA-1Bを見落としなく得るために乱数の行ベクトル
v(r)-1:¥d¥(1、z-1、z-2、…、z-(r-1)
を導入する;MC乱数は法dとは素な整数で、法dの逆元が存在する。(文献A)この行ベクトルを転置した列ベクトルを{v(r)-1}と記し、行列としての積{v(r)-1}zv(r)を下の図2に描く。この図の諸項の関係をまとめてA-1Bに相当する諸乱数を抽出するのは次の補題6である。
補題6.(v(r)とzv(r)を結ぶMC生成機構)
整数Kはr以上とする。行ベクトルv(r)(mod d)のr個のMC乱数と行ベクトルzv(r)(mod d)のr個のMC乱数のすべての対が無相関である事を示すには、2r-1個のMC生成機構
(d、z),(d、zK+1)、…、(d、zK+r-1)、
(d、zK-1)、…、 (d、zK-r+1)、
が一般化2次検定値を1.25未満に持つと示せばよい。
(証明)図2の行列積{v(r)-1}zv(r)の成分は補題6のすべてのMC乱数の積を含んでいる。各項の重複を除き異なる項を拾い集めれば結論を得る。(証明終)
【0016】
補題6の2r-1個の生成機構は、格子点jに与えられMCランダムベクトル関数のr個のMC乱数と、jの最隣接格子点に与えられたランダムベクトル関数のr個のMC乱数のすべての対を与える。それらを乗数としてすべてが一般化2次検定に合格する1組を発見すれば、望む格子上の乱数配置が完成する。まず調べるべきMC乱数生成機構の組を発見する。それは定理にまとめられる。
定理7.(周期性は求めない格子の点とその最隣接近傍格子点とに置かれたランダムベクトル関数の成分毎の対の無相関を検定する生成機構配置)
整数rはR=6以下であり、整数Jはr以上とする。MC乱数(d、z、n)生成機構からの列の上で、ずらしの整数J毎に取られた根rootを空間s次元格子G(j)=J×J×…×Jの各格子点に植えつけたランダムroot根関数g(j)=g(j、j、…、j)は法dで次の具体形を持つ:
g(j)z¥d¥nz^{J|(j)}
¥d¥nz^(j+j+…
+j…Js-1).
また格子点jで番号k(但しkは1以上s以下)の格子座標j方向の最隣接格子点をj’とすると、ベクトル関数g(j)v(r)のr成分MC乱数とベクトル関数g(j’)v(r)のr成分MC乱数のすべての対の無相関は、次のページ図3に(I)‐(I)と記されたMC生成機構、各2r-1個の生成機構s組、の一般化2次検定がすべて評価値1.25未満を与える事で示す事ができる。
(証明)上の補題6と空間格子の座標軸番号k=1,2、…、sに対するj軸方向を調べて結論は得られる。例としてk=2の場合を詳しく述べる。この場合格子の境界点ではないjに対して
2-軸方向の最隣接近傍格子点j(2+):=(j、j+1、…、j
j=(j、j、…、j
2-軸方向の最隣接近傍格子点j(2-):=(j、j-1、…、j
それぞれの上でのランダムベクトル関数は次の通りである。
g(j(2+))v(r)¥d¥g(j)v(r)z^(J
g(j)v(r)
g(j(2-))v(r)¥d¥g(j)v(r)z^(-J
MC乱数A,Bからの形A-1Bを頭に置いて共通なMC乱数g(j)を割って除くと、jに関係のない形
B¥d¥v(r)z^(J)、 A¥d¥v(r)、
または
B¥d¥v(r)z^(-J)、 A¥d¥v(r)、
を得る。A-1B或はB-1Aから、無相関を調べるべき遷移はv(r)からv(r)z^(J)としてよい。なお、最終的な遷移の形は格子座標jを含まない事に注意する。jが格子G(j)の境界にあるとj(2±)のどちらかはjのj格子座標方向の最隣接格子点ではない可能性があるが、それはこのjに関係しない結論には影響がない。(定理7証明終)
【0016】
(非周期的な格子での調整tuning)
複雑な考察で得られた定理7の一般化2次検定の乗数或はMC生成機構は図3にまとめられ、今や一般化2次検定そのものを実行して最隣接近傍間での無相関を実現する事ができる。手順を次の補題8に述べる。
補題8(トーラスを仮定しない格子の任意格子点jでの調整tuning)
まず、ずらしと格子サイズの整数の1組J、J、…、Jをシミュレーションの要求に適うように設計し定めて出発する。勿論、制限J…Jは用い得る周期Tを超えないと仮定する。対象となるどの生成機構も格子点jにはよらない。
(j軸方向)下の(i)の2r-1生成機構を取る。
(i)(d、z^{J})、 (d、z^{J±1})、
(d、z^{J±2})、…、
(d、z^{J±(r-1)})
これらはずらしの整数Jだけを含む。先頭から一般化2次検定を行う;(i)のどれから一般化2次検定を始めてもよいが結果はそれによって変わるだろう。この様に調整とその結果とは一意ではない。もし不合格の1.25以上の評価が現れれば、このJを破棄して新しいJ‘を取る。その取り方には2通りの可能性がある。
(調整i+)J‘=J+1として(i)の一般化2次検定を行う。
(調整i-)J‘=J-1として(i)の一般化2次検定を行う。
(調整i+)の場合にはJは最初余り大きくは取れない。(調整i-)の場合には最初大きなJ、例えばJ…Jが用い得る周期Tのかなり部分になるもの、を取る。以後この様な一般化2次検定を繰り返して、(i)のすべての生成機構が合格するもの発見してJ‘を採用する。
(j軸方向)(i)の2r-1生成機構を取る。
(i)(d、z^{J‘J})、 (d、z^{J‘J±1})、
(d、z^{J‘J±2})、…、
(d、z^{J‘J±(r-1)})
新しい格子サイズの整数Jだけを変えながら、例えば先頭から一般化2次検定を行う。もし不合格の評価が現れれば、このJを破棄して新しいJ‘=J+1を取り、一般化2次検定を繰り返し、すべてが合格するJ’を発見する。もし合格者が出なければ、J‘の調整に戻らなければならないが、我々にはその経験はなかった。
…………………………………………………………
(j軸方向)(i)の2r-1生成機構を取る。
(i)(d、z^{J‘J‘J‘…Js-1})、
(d、z^{J‘J‘J‘…Js-1±1})、
(d、z^{J‘J‘J‘…Js-1±2})、…、
(d、z^{J‘J‘J‘…Js-1±(r-1)})
新しい格子サイズの整数Js-1だけを変えながら、例えば先頭から一般化2次検定を行う。もし不合格の評価が現れれば、このJs-1を破棄して新しいJs-1‘=Js-1+1を取り、一般化2次検定を繰り返し、すべてが合格するJs-1’を発見する。こうしてすべての必要な一般化2次検定に合格するずらしと格子サイズの整数J‘,J’、…、Js-1‘とJを用いる事で、調整された非周期的な格子
G‘(j):=J’×J‘×…×Js-1’×J
の上の調整された一様(homogeneous)で最隣接格子点間に無相関のr個の独立なMC乱数の組を与えるMCランダム根関数g‘(j)は
g‘(j)¥d¥ nz^(j’+j‘J
+j‘J’J‘+…
+js-1‘J’J‘…Js-2
+j‘J’J‘…Js-1’)
であり、ランダムベクトル関数は
g‘(j)v(r)¥d¥ v(r)nz^(j’+j‘J
+j‘J’J‘+…
+js-1‘J’ J‘…Js-2
+j‘J’ J‘…Js-1’)
となる。(補題8終)
【0017】
再度注意するが、この調整されたランダム根関数、ランダムベクトル関数の形は一意ではない。格子G‘(j)は最初設計されたものより大きいが、それは問題ではない。G’(j)の部分格子であるJ×J×…×Jの上で用いればよい。ただしランダム根関数g‘(j)やランダムベクトル関数g’(j)v(r)は上の通りJ’、J‘、…、Js-1’とJで定義されなければならない。
【0018】
(ランダムな初期値問題:空間格子G(j)がトーラスである場合の周期的調整tuning)
トーラスを形成する格子上の周期的境界条件の重要性はFerrenberg等がIsing模型で厳密解に依拠した通りである。再びG(j)=J×J×…×Jを格子の設計出発値とする。格子座標軸jの方向の出発、終端境界点は
(k)=(j、j、…、j=0、…、j
(k)=(j、j、…、j=J-1、…、j
である。ランダム根関数g(j)がこれらの境界点での最隣接格子点に向けて持つ境界面に平行な遷移機構は今までと変わらず新しく考える必要はない。これらの境界点でランダム根関数は
g(j(k))¥d¥nz^(j+j+…
+jk-1…Jk-2
+jk+1…J+…+j…Js-1
g(j(k))¥d¥nz^(j+j+…
+jk-1…Jk-2+(J-1)J…Jk-2k-1 +jk+1…J+…+j…Js-1
¥d¥g(j(k))z^{(J-1)J…Jk-2k-1
と表されるから、境界面に垂直にj軸方向に持つg(j(k))とg(j(k))の間の遷移乗数は法dで
z^{±(J-1)J…Jk-2k-1
であり、ランダムベクトル関数g(j(k))v(r)とg(j(k))v(r)の間の遷移機構は共通MC乱数因子は除いてよく、また乗数の冪の指数は±どちらでもよいから
(d、z^{(J-1)J…Jk-2k-1})、 k=1,2、…、s
と記す事ができる。だから格子がトーラスである場合の
r個の相続く乱数v(r)と
r個の相続く乱数z^{(J-1)J…Jk-2k-1}v(r)との間のすべての遷移機構の一般化2次検定で評価すべきものすべて、全評価値が1.25より小さい事が、格子がトーラスである場合の格子上のMC乱数が幾何学的に一様(homogeneous)で最隣接格子上の乱数とは相関を持たない配置であるための付加条件である。全体条件は次の段落で定理9にまとめる。
【0019】
(周期的調整tuning)
rはR=6以下であるとする。トーラス格子G(j)上のr個の独立な成分を持つMCランダムベクトル関数が最隣接格子点のそれらr個とは相関を持たず、一様(homogeneous)に配置されるための条件は次である。
定理9.(トーラス格子の格子点上でR=6以内のr個の独立な成分を持つMCベクトル関数の周期的調整)
格子G(j)=J×J×…×Jの格子点j上のMCベクトル関数g(j)v(r)が最隣接格子点とは相関を持たない様に一般化2次検定を行うべき遷移機構は下の図4に記された(I),(B),(I),(B),…、(I),(B)がすべてである。
【0019】
(トーラスの空間格子上のR=6以下の独立なr成分MCベクトル関数のすべての成分のすべての対を隣接格子点の間で無相関かつ一様(homogeneous)なMCベクトル関数とする調整の方法)
トーラス格子G(j)上でR=6以下のr個の独立乱数を取り、格子上最隣接格子点間で必要な一般化2次検定のためのMC生成機構は上の図4にまとめられた通りである。非周期的な格子の調整の通り、例えば(I)の生成機構や(B)のそれらを並べられた順に検定するか、逆順に行うかを考えただけでも明らかに、それらの一般化2次検定を行う方法と結果とは一意ではない。しかしすべての結果を得る事やその中からの取捨選択は現実的ではない。異なる2つのシミュレーションの結果を比較する程度が十分安全だろう。特に異なる合格者でも名目の“格子上一様homogeneousな無相関”には変りはないから、以下には調整の最も簡単な1例を記す。
(1)まずJ,J,…、Jをシミュレーションから望まれる設計値に仮に定めて、ずらしの整数Jだけが関係する(I)から出発する。これらは非周期的調整で考えた通りで、余り大きくないJを増大させながら進む方法と大きなJから出発して1ずつ減少させる調整とがある。すべて合格する結果を(周期的調整のものである事を区別して)J と記す。
(2)次にJ とJを含む(B)と(I)を同時に考えて一般化2次検定を行い、J は変えないで、不合格ならJをJ+1に増大させながら調整する。すべての生成機構が合格したとき、Jはより大きいJ となるだろう。
(3)次はJ ,J とJを含む(B)と(I)を取って、一般化2次検定不合格ならJだけを増大させながら調整して、一般にJよりは大きいJ となって終わる。
…………………………………………………………
(s)J からJs-2 までと新しくJs-1を含む(Bs-1)と(I)の4r-2の生成機構の調整を進めて、一般にJs-1より増大したJs-1 ですべての一般化2次検定を合格する。
(s+1)最後に、J からJs-1 と新しくJを含む(B)の調整で一般にはJより増大したJ を発見して、すべての調整を終える。
図1
図2
図3
図4
【手続補正書】
【提出日】2021-07-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項2
【補正方法】変更
【補正の内容】
【請求項2】
正の整数dを法、dとは素な整数zを乗数、dとは素な任意の整数nの種seed、の3つ組(d、z、n)が作る乗算合同(MULTIPLICATIVECONGRUENTIAL、MC)法乱数生成機構が与える乱数列は相続く6個までの独立性の外観を保障されていると前提し、シミュレーションを行う2以上の次元sのトーラス空間格子G(j)=J×J×…×Jの各格子点j=(j、j、…、j)に6以下のr個の独立MC乱数を配置して、G(j)の任意格子点とその最隣接格子点に置かれたr個のMC乱数とはすべての対が無相関と看做せる配置を、r以上のずらしの整数Jと格子のサイズの各2以上の整数J、J、…、Jとから定まる次の2r-1組のMC生成機構の2s組(I)、(B)、(I)、(B)、…、(I)、(B)、即ち
の(一般化)2次スペクトル検定を繰り返して、評価値が1.25以上の不合格がある場合Jはr以上の範囲で増大させ或いは大きい値から減少させJ とし、格子サイズの整数は出発の設計値J,J、…、Jから増大させながらJ 、J 、…、J に変えて、すべて合格値1.25未満となるJ 新しい格子
と発見して、その上のMCランダム根関数g(j)即ちで格子点j=(j、j、…、j)で
と合同になるもの、を特定し、r成分のベクトル(1、z、z、…、zr-1)と法dで合同なv(r)を各格子点jで根関数g(j)に掛けてMCベクトル関数を
と定めて、そのr個の成分をG(j)の格子点jに与えられた独立なr個のMC乱数とし、最隣接格子点に与えられるr成分どうしは無相関と見る事ができる格子G(j)上一様homogeneousなMC乱数配置とする方法であって、シミュレーションで望まれるなら格子の周期性は放棄して例えばG(j)の部分格子である初期設計のG(j)の上でシミュレーションを行う、或はG(j)に欠損を導入した格子上でシミュレーションを行う、そのために空間格子上で一様homogeneousで各格子点には6以下のr個置かれ、最隣接格子点間では無相関と看做せるMC乱数の配置方法。
【手続補正書】
【提出日】2021-11-25
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
整数の3つ組(d、z、n)、d>0、dとは素で乗数と呼ばれるz>0、dとは素で初期値あるいは種seedと呼ばれるn、が与えるmultiplicative congruential(MC)法、即ち乗算合同法乱数生成機構は、dを法とする再帰的合同関係で開区間(0、d)の整数の列{z,z,z, ...}を
=mod(n,d), zk+1=mod(zz,d)
k=1,2, ...
まとめてz=mod(nz,d)、k=0、1、2、…と生成し、開区間(0、1)に一様に分布した有理数列
{x:=z/d| k=0,1,2, ...}
が一様独立乱数の見本列に見える様にd、zを様々に検定し選んで(文献A)用いる。この最も古い乱数生成方法は、しかし最も広範強力な生成機構であり、コンピュータ上の有限長さの任意一様乱数列を1/zの精度で近似する。(文献A)20世紀からMC法については生成された乱数の相続くk連がk次元の格子を作る事が知られていた。その性質は6以下のk個の相続く連が独立な統計を持つ列の見本である条件、6次までのスペクトル検定としても利用された。
(文献A)中澤宏/中澤直也:“コンピュータ上の優れた乱数とは何か”、東京図書、出版予定。
【0002】
2012年までのスペクトル検定理論は、遺憾ながら、乱数の相次ぐ3連から6連までに関する検定基準に認識の過誤があった。これは(文献A)が指摘し、正しいものとして、MC乱数の3以上のkを個数とする相続く連の作るk次元格子が、正格子の場合の最大格子間隔に基づくスペクトル検定と、より精密に格子ベクトルそのものが正単体を最小単位細胞とする正格子からの変化に基づく最大最小稜検定とで構成しなければならない事が結論された。これら新しい検定の合格者は大変少なく、発見は膨大な検定時間を要する。それでも何年にも亙る困難な検定計算を越えて、2018年以降素数の法と原始根乗数の生成機構の1組#M001と、2つの奇素数の積を法とする2組の生成機構#001と#003、が発見された。後2者は252-251程度の大きな周期、倍精度実数に十分な桁数の一様乱数出力、そして検定の結果で保証される優れた独立性、統計精度を持ち、倍精度計算を要する現代の大規模シミュレーションに相応しいものである。2つの奇素数の積を法とする構造は、孫子(中国南北朝時代400-500AD)の定理から倍精度整数計算での生成技法を可能として実際的にも(文献A)きわめて優れている。この、3年以上に亙る検定時間経緯でも漸く3個という状況からも明らかな様に、すべての検定に合格するMC乱数生成法は真に希少であるが、素数の法と原始根乗数の生成機構は孫子の定理が適用できないため4倍精度整数計算か、あるいは何等かの多倍長整数計算の工夫が必要となるにも関わらず、得られる周期は230を少し越える程度で、パソコン上でもごく短い時間で周期を使い切られ、乱数出力は実数単精度にとどまり、現在のシミュレーション研究に不適である事は全般状況として認識されなければならない。
【0003】
これら理解された構造や以下述べる発明では、“法の整数dに関する整数達の合同関係”が重要な構成要素、推論要素である。それは2つの整数xとyの差x-yがdの倍数、dの整数倍であるとき“xとyは法dで合同”と定義し、“法dで同じものだ”とする考え方である。一見煩わしいが、これは極めて有利な考え方である。詳細は添付の文献Aに詳しいので参照して頂きたい。残念ながら特許文書では“合同記号”さえも許されない。そこで妥協として上の合同関係を“x¥d¥y”と記す。この明細書限りの記法だが記述のため納得して頂きたい。合同関係は等式同様
(1)x¥d¥y、 y¥d¥zならx¥d¥z、
(2)x¥d¥x‘、 y¥d¥y’、z¥d¥z‘、…なら
xyz¥d¥x‘yz¥d¥x’y‘z¥d¥…、
等を成り立たせる。特に極めて有用な理解を次の補題1に述べる。
(補題1)整数x、y、z、…はそれぞれ法dでx‘、y’、z‘…と合同とすると、整数成分と整数係数の加減乗法だけで構成される任意の関数f(x、y、z、…)に関して
f(x、y、z、…)¥d¥f(x‘、y、z、…)
¥d¥f(x‘、y、z’、…)¥d¥…、
が成り立つ。言葉で述べれば、整数値の変数と整数係数の加減乗法だけで構成される関数f(x、y、z、…)では任意の整数変数をそれと法dで合同なもので置き換えても全体が法dで合同に留まる性質は変わらない。(補題1終)証明はx‘=x+pd、y’=y+qd、z‘=z+rdなどと整数p、q、rで置いて見れば明らかである。計算言語での関数mod(x,d)即ち整数xを法dで割った余り、も使う事はできるが、例えば整数関数f(x、y)のdで割った余りを取るとf(x、y)の構造が見えなくなり、推論が難しくなる。このため“dで割った余り”を取るのは、加減乗法の計算のどの段階で取ってもよいのだから、最後に延期するのが得策で、我々はこの方針で進む。
【0004】
現在我々は、述べられた2つの素数の積を法とするMC生成機構によって相続く乱数の直線的な6連
{x,xk+1, ・・・,xk+5
が互いに独立と見える優れた統計性と、実際に用い得る大周期(251や252を越え、生成にはコンピュータ上で年の単位を要するもの)とを持ち、倍精度実数乱数としても十分な桁数の精度を与える満足できるMC乱数生成機構を得ている。しかしこの直線的な連の統計的性質だけではカバーできない用途がMC乱数にはあり、各種シミュレーションで重大な問題となる。現在の発明はこの問題を解決する技術を目指して得られた。この方向への認識は1992年のFerrenberg他(文献B)の指摘に始まる。彼等は2次元Isingスピン16×16格子に、当時優れているとされた種々の乱数による初期値を与え、その時間発展を厳密解と比較して、当時の一様独立を名乗るすべての乱数は無視できない破綻を与えると報告した。底にあるのは一様独立乱数ならどのように格子点上に配置しても互いに一様独立である性質は変らないはずだ、という常識に基づく計算であろう。しかし上に述べた様に、直線的な連だけが独立と見える事を目指して選ばれた乱数にとって、これは過大な期待である。
(文献B)M.Ferrenberg, D. P. Landau and Y. J.Wong, “Monte Carlo simulation;Hidden errors from ‘good’ random number generators”, Physical Review Letters Vol.69 (1992), pp. 3382-3384.
【0005】
問題の核心は、6連を越える乱数列がどの様な統計的性質を持つかである。MC乱数は、法dで割る前の形はすべて、整数nzと法dで合同な形だから、任意の2つのMC乱数はnzとnzとしてよく、その間の遷移は乗数zk-jを法dで掛けて得られる。即ちMC乱数生成機構(d、zk-j、z)の初項(種)zと第2項z×zk-jとである。この関係で乗数zk-jの2次スクトル検定を用いて任意の2つのMC乱数が無相関と言えるかどうか、を判定できる。中澤と中澤(文献A)はこの考察に基づいて一般化2次検定(文献A)を導入した。次のページに優れたMC乱数生成機構#001からの(d、z)の一般化2次検定値を1から100までの次数kに対して図1として示す。
図1.優れた#001MC乱数生成機構(d、z)に対する
(d、z)の100までのkでの一般化2次検定値
(注A)2次ではスペクトル検定と最大最小稜検定とは一致するので区別の必要はない。また2次スペクトル検定値は必ず1より大で、それが1.25未満ならMC乱数生成機構出力の相続く2連は互いに無相関と考える事ができる。
1]による詳しい説明は(文献A)を参照して頂きたい。
【0006】
前頁の図1は、この#001MC生成機構がR=6を越えてR=8まで一般化2次検定値が1.25未満、乱数出力xとxk+8も無相関である優秀な性質を持つ事を示す。ただそれから先は異なる。どれ位先まで行っても大きな相関を示唆する1.25より大きい検定値も、それより小さく無相関を示す評価値も出現する。空間格子の幾何学的近傍に無相関と見えるMC乱数を配置するにはこの状況を利用しなければならない。以下ではこの配置の実現可能性を示す。その技術的実体は、検定を繰り返して性能のよい配置を発見し選び出す手続きである。難しい議論を要するのは第一にこの手続き構造の特定である。そして第2にその結果の検定可能性、特に必要な検定時間の理解である。我々はこの両方に成功した。結果は検定構造について
(1)Ferrenberg達の目指した通り、MC乱数を空間格子点に存在するIsingスピン達のような物理系にR=6以下のr個ずつ一様独立と見えるMC乱数を配布し、空間的最隣接格子点に配布されたr個のMC乱数のそれぞれから取った対は互いに無相関と見える配置とする方法の一般具体構造を示す。空間格子は周期的境界条件を課されない場合と、周期的境界条件を満たすトーラスである場合とに亘る。その両方について、2次元格子での優れたMC乱数配置の探索成功を開示できる事を喜びに思う。
(2)空間格子点から出発して時間的に発展する時空間格子の上ではR/2=3以下のrを個数とする独立と見られるMC乱数を各時空格子点に配置し、
(2A)時間軸方向に相隣る格子点のr個のMC乱数から取った対はすべて一様無相関であり、
(2B)同時刻に空間格子上の最隣接格子点の夫々に配布されたr個のMC乱数のすべての対は共に一様で無相関と見る事ができる、
という状態を実現する配置の条件を文献Aと共に精細に報告する。そして少なくとも空間的に文献Aでは2次元までの場合に時間軸も含む時空格子の上の優れた乱数配置の実現を発見し開示できる喜びを持つ。我々が得た好結果は、実際のコンピュータの利用者が使用可能な形で各コンピュータセンターに備えられるべきソフトウェアとして、一様独立乱数生成機構と、空間格子上に置かれた空間的一様homogeneousで最隣接近傍で無相関のMC乱数配置の実現可能な形であり、それは容易に時空間格子上の同様の結論(文献A)に敷衍される。
【0007】
成功の鍵は、既に触れたMC(d、z、n)一様乱数生成方法の大きな利点、MC(d、z、n)列上のすべての項は法dで整数nzの形を取る、という事実である。それを次の補題に再記して強調する。
(補題2)一般性を失う事なく整数jは整数kより小さいとする。法dでのnzとnzとはMC乱数生成機構(d、zk-j、nz)の第1項と第2項であり、これらの出力が2次元平面に張る格子が正三角形を含む三角格子に近いなら、即ちMC乱数生成機構(d、zk-j)の一般化2次スペクトル検定値(文献A)が1.25より小なら、2乱数nzとnzは無相関と見てよい。
(証明)スペクトル検定値によるこの状況の説明は1]と共に(文献A)(注B)に詳しく示されている。(証明終)
(注B)一般化2次検定はロシア特許と米国特許とを付与された。(文献A)内包する応用の可能性がシミュレーションを利用するすべての国の人々に重要である事と負担の公平を考えて、発明者、中澤宏と中澤直也はこれら特許を無償で公開する。
【0008】
空間格子上のシミュレーションには、Ferrenberg達のように空間に分布した物理量にランダムな初期値を与えて時間発展を求める“初期値問題”と、さらに時空間に与えられたMC一様乱数の場(文献A)の影響の下で、ある種のランダムウォークを行う粒子系の運動、無重力シミュレーション、反応、凝集、重力下での沈降など、の多様な実際問題が関係する;これは文献Aでも、さらに稿を変えてinternet上でも述べる。これらの応用に共通するのは1つの格子点に複数r個の互いに独立なMC乱数の配置が求められる点である。複数の一様独立乱数とは、例えばランダムな速度ベクトルの成分、液体媒質分子からの衝撃力の成分、などである。ここでは最も基本的な、MCランダムな初期値を6個以下のr個まで空間格子に配置する問題から始める。この問題で乱数生成配布技術が認識すべき事は、“独立と見える乱数を得るのに我々にはMC乱数の相続くr連、rは6以下、を取る以外の方法がない”という現実である。状況は次の補題3にまとめられる。
(補題3)1つの空間格子点にシミュレーションが求める独立と見えるMC乱数の個数をrとする。現在可能なrは6以下で、MC乱数列の相続く6個の中に取られなければならない。(補題3終)
【0009】
具体的な議論を空間格子の表記から始める。次元sが2以上で正の整数J、J、…、Jで表される空間格子G(j)を行ベクトルjと共に定義する:
G(j):=J×J×…×J
={j:=(j,j,…,j)|
は0からJ-1まで、kは1からsまで}
後にs=1の1次元格子も考えるが、その場合にはjはベクトルではなく格子座標の番号jと考える。J、J、…、Jを格子のサイズの整数と呼ぶ。
【0010】
格子G(j)の上のIsing原子の様な物理系にランダムなMC乱数を初期値として与えるとしよう。我々は次の方針(A)-(C)に沿ってそれを実現する。
(A)この格子の各点jに適当な1つのMC乱数(のd倍)を配置して、ランダムな根(ね)の関数g(j)と名付け、
(B)各格子点の根g(j)に相続くr個のMC(d,z)乱数の行ベクトルv(r)、法dで記して
v(r)¥d¥(1,z,z,…,zr-1
を掛けて(接木して)各格子点で求められるr個のMC乱数(のd倍)を構成するランダムMCベクトル関数g(j)v(r)と定め、
(C)それらの格子上への“うまい”配置技術を発見する。
作戦をより具体的に述べる。まず
(a)MC生成機構(d、z、n)が生成する乱数列(のd倍)をあるr以上の整数J毎に切り分け、得られる長さJの小列の先頭のMC乱数を根(ね)rootとする。MCランダムな根の関数g(j)の値(のd倍)は整数の法dの意味で
{nz^(kJ)|k=0,1,…,J…J-1}
と表す事ができる。
(b)これらの根は格子点jの上に相応しい方法で置かれ、行ベクトルv(r)をjでの根関数g(j)への植え付けに相当してg(j)に掛け合わせ、
(c)各格子点の行ベクトルの成分r個を法dで取ってその格子点に与えられる独立なMC乱数の(d倍された)整数と考える。
上に述べた根の各格子点への相応しい配置の方法は次の段落の準備から始めて記す。
【0011】
これからの格子上の他の利用も考えて、MC生成機構(d、z、n)が生成する法dのMC乱数列は周期を超えて正負両方向へ延長し、無限長と看做す。その無限長の上でMC乱数列の実用周期T(注C)
(α)zが法dで-1、即ちd-1と合同になる最小の正のT、或は
(β)zが法dで-1と合同にならなければTは乱数列の周期(注C)
と定義する。実用周期Tの間にはMC乱数列には法dで同じ値を取るMC乱数は出現しない。以下ではJ毎の根とそれらの間のMC乱数で空間格子点全体に配置される総数J…Jは使える周期T内である、即ちJ…JはT以下である、と仮定する。導入された整数Jはずらしstaggerの定数と呼ぶ。
(注C)法dでzが-1即ちd-1に合同なら、T乗以後のMC乱数列は本質的にそれまでの符号だけを変えた繰り返しで、統計的に独立ではない。また例えば法7では乗数2の冪は、わかりやすい関数mod(x,d)の形で書いて
mod(2,7)=1、mod(2,7)=2、
mod(2,7)=4,mod(2,7)=1
と繰り返して-1或いは6は取る事がなく、3乗で巡回列周期の値1を実現する。大きな素数を法とする乗数で原始根ではない、上の法7での2の様な性質のものでも諸検定が優れた評価値であれば用いてよい。
【0012】
(正の整数の可変基数による表現)
(補題4)それぞれが2以上の格子サイズの整数J,J,…、Jが与えられたとする。固定された2以上の整数Jを基数とする0以上J-1以下の任意の整数Kの表現
K=j+jJ+j+…+js-1
は学校算数以来我々には使い慣れたものであるが、対応して、0以上J…J-1以下の任意の整数Kは整数の組、行ベクトルj=(j,j,…,j)による次の一意の可変基数の表現K=κ(j)を持つ:
K=κ(j):=j+j+j+…+j…Js-1
番号kは1からsまでとしてjは0からJ-1まで.
(証明)上の関数K=κ(j)は与えられた範囲のすべての整数変数j,j,…,jの増加関数で、0以上から次の最大数
(J-1)+(J-1)J+(J-1)J+…
+(J-1)J…Js-1=J…J-1.
までの値を持つ。同じ整数Kの別の整数の組での表現
K=j’+j’J+j’J+…+j’J…Js-1
番号kは1からsまで、j’は0からJ-1まで
がある、と仮定すると次の等式が成り立つ:
0=(j’-j)+(j’-j)J+(j’-j)J
…+(j’-j)J…Js-1
この等式を整数2以上のJで割って余りの等式j’-j=0、j’=jを得る。故に上の0の等式右辺はJで割り切られて商は0、
0=(j’-j)+(j’-j)J+…
+(j’-j)J…Js-1
である。再びこの等式をJで割ると余りは0=j’-j、j’=jを得る。以下同様でj’=jまでを得る。故に0以上J…J-1以下の整数Kの可変基数表現K=κ(j)は一意である。(証明終)
これらは我々が固定基数の整数表現で無意識に使っている事実である。
【0013】
(格子上のランダムなMC乱数初期値問題の解:MC根root関数とMCベクトル関数)
ランダムなMC根関数g(j)の可能な形、MC乱数列をr以上の整数の間隔Jでずらした(staggerした)MC乱数の空間格子G(j)への配置と、格子上に置かれた(接ぎ木された)MC乱数行ベクトル関数g(j)v(r)とは次の定理で与えられる。
(定理5)(空間格子上のMCランダムな根関数とMCベクトル関数)
6次まで正単体基準スペクトル及び最大最小稜検定に合格するMC(d,z,n)乱数列を取り、空間格子G(j)のすべての格子点jでMC乱数関数(MC根関数と呼ぶ)g(j)を次の様に定義する
κ(j)=j+j+j+…+j…Js-1
g(j)¥d¥nz^{Jκ(j)}
¥d¥nz^{j+j+j+…
+j…Js-1
格子G(j):=J×J×…×Jの各格子点に置かれたMC根関数g(j)にr成分ランダム行ベクトルv(r)¥d¥(1、z、z、…、zr-1)、rは正でR=6以下、を法dで掛けた(接木した)MCランダム行ベクトル関数を
g(j)v(r)¥d¥nv(r)z^{Jκ(j)}
¥d¥nv(r)z^{j+j+…
+j…Js-1
で定義する。ただしJ…JがT以内という制限、Tは用い得る周期、を置いて、用いられるMC乱数の重複が無い様に制限する。このとき法dでg(j)v(r)と同値なランダム行ベクトル関数は、G(j)空間格子の各点にr個の互いに独立と看做せる異なったMC乱数(のdで割る前の整数達)を配置する。
(証明)MC乱数列は巡回周期列、或は剰余類周期列であり、周期以内ではすべて異なるMC乱数からなる。使い得る周期Tはこれら周期の半分であるか全体であるか、なので、J…JがT以下であればg(j)の右辺はjが異なればすべて異なるMC乱数(のd倍)からなる事に注意する。空間格子の整数格子点j上の関数κ(j)は0からJ…J-1までのすべての整数を1回ずつ経ることが補題4によって示されている。故にg(j)は
{nz^(JK)|K=0、1、2、…、J…J-1}
と、(d、z、n)MC乱数列の先頭からJ毎に切り分けた小列N個、
N=J…J=G(j)の格子点の総数
の各小列の先頭MC乱数を、K=κ(j)の指定するG(j)の格子点jに配置する。ランダムベクトル関数は、これら根関数に乗じられたr成分ベクトルv(r)だから、それぞれ長さJの小列内にあって、MC乱数列上のK番目の小列内のr個のMC乱数がK=κ(j)で指定される格子点jに置かれている。
用いられた小列全体のMC乱数の個数rNは、
N=J…J
以内であり、仮定された制限によって使い得る周期T以内であって、MC乱数列上のすべて異なる乱数である。(定理5証明終)
【0014】
(空間格子上に配置されたランダムベクトル関数、g(j)v(r)の非周期的tuning調整)
空間格子G(j)=J×J×…×Jの格子点jからのj軸方向の最隣接格子点は、1からsの任意格子座標軸番号kについて次で与えられる。
(k+)=(j、j、…、j+1、…、j
j=(j、j、…、j、…、j
(k-)=(j、j、…、j-1、…、j
格子点jに置かれるランダム根関数g(j)とそれに接木されたr成分(rはR=6以下)のベクトルMC乱数v(r)の具体形は、
g(j(k+))v(r)¥d¥g(j)v(r)z^(J…Jk-1
g(j)v(r)
g(j(k-))v(r)¥d¥g(j)v(r)z^(-J…Jk-1
である。これらがs次元格子G(j)の格子点jとその最隣接格子点に与えられるMC乱数の(dで割る前の整数部分の)r成分達を表す。各格子点に置かれた行ベクトルg(j)v(r)に含まれるMC乱数は始めから優れた独立性を示すものに選ばれている。さらにこれらと格子の幾何学的最隣接格子点の上のr成分MC乱数同士が、独立とは言わずとも無相関かどうかを見るには発見された具体形、g(j(k±))v(r)とg(j)v(r)、即ち共通MC乱数を除いたr個のMC乱数の2組
v(r)とv(r)z^(±J…Jk-1
のすべての対が与えるMC生成機構の一般化2次検定を見ればよい。MC乱数の対nzとnzなら、積の乗数
k-j¥d¥(nz-1nz
の一般化2次検定が1.25未満の評価値を与えればよいし、具体的にnとzで表さなくてもMC(d、z、n)乱数列の2成分AとBとして、A-1Bを乗数とする一般化2次検定値が1.25未満ならAとBは無相関である。発明の最初の骨子は関連する対AとBの特定、そして調べるべきMC生成機構の乗数A-1Bの特定であり、生成機構(d、A-1B)の一般化2次検定が評価値1.25未満を持てばAとBは無相関であると理解される。
【0015】
関連するA-1Bを見落としなく得るために乱数の行ベクトル
v(r)-1:¥d¥(1、z-1、z-2、…、z-(r-1)
を導入する;MC乱数は法dとは素な整数で、法dの逆元が存在する。(文献A)この行ベクトルを転置した列ベクトルを{v(r)-1}と記し、行列としての積{v(r)-1}zv(r)を下の図2に描く。この2]の諸項の関係をまとめてA-1Bに相当する諸乱数を抽出するのは次の補題6である。
図2.r以上の整数Kに対する行列積{v(r)-1}zv(r)
補題6.(v(r)とzv(r)を結ぶMC生成機構)
整数Kはr以上とする。行ベクトルv(r)(mod d)のr個のMC乱数と行ベクトルzv(r)(mod d)のr個のMC乱数のすべての対が無相関である事を示すには、2r-1個のMC生成機構
(d、z),(d、zK+1)、 …、 (d、zK+r-1)、
(d、z )、 …、 (d、zK-r+1)、
が一般化2次検定値を1.25未満に持つと示せばよい。
(証明)図2の行列積{v(r)-1}zv(r)の成分は補題6のすべてのMC乱数の積を含んでいる。各項の重複を除き異なる項を拾い集めれば結論を得る。(証明終)
【0016】
補題6の2r-1個の生成機構は、格子点jに与えられMCランダムベクトル関数のr個のMC乱数と、jの最隣接格子点に与えられたランダムベクトル関数のr個のMC乱数のすべての対を与える。それらを乗数としてすべてが一般化2次検定に合格する1組を発見すれば、望む格子上の乱数配置が完成する。まず調べるべきMC乱数生成機構の組を発見する。それは定理にまとめられる。
定理7.(周期性は求めない格子の点とその最隣接近傍格子点とに置かれたランダムベクトル関数の成分毎の対の無相関を検定する生成機構配置)
整数rはR=6以下であり、整数Jはr以上とする。MC乱数(d、z、n)生成機構からの列の上で、ずらしの整数J毎に取られた根rootを空間s次元格子G(j)=J×J×…×Jの各格子点に植えつけたランダムroot根関数g(j)=g(j、j、…、j)は法dで次の具体形を持つ:
g(j)z¥d¥nz^{Jκ(j)}
¥d¥nz^(j+j+…
+j…Js-1).
また格子点jで番号k(但しkは1以上s以下)の格子座標j方向の最隣接格子点をj’とすると、ベクトル関数g(j)v(r)のr成分MC乱数とベクトル関数g(j’)v(r)のr成分MC乱数のすべての対の無相関は、次のページ図3に(I)‐(I)と記されたMC生成機構、各2r-1個の生成機構s組、の一般化2次検定がすべて評価値1.25未満を与える事で示す事ができる。
(証明)上の補題6と空間格子の座標軸番号k=12、…、sに対するj軸方向を調べて結論は得られる。例としてk=2の場合を詳しく述べる。この場合格子の境界点ではないjに対して
j=(j、j、…、j
それぞれの上でのランダムベクトル関数は次の通りである。
g(j(2+))v(r)¥d¥g(j)v(r)z^(J
g(j)v(r)
g(j(2-))v(r)¥d¥g(j)v(r)z^(-J
MC乱数A,Bからの形A-1Bを頭に置いて共通なMC乱数g(j)を割って除くと、jに関係のない形
B¥d¥v(r)z^(J)、 A¥d¥v(r)、
または
B¥d¥v(r)z^(-J)、 A¥d¥v(r)、
を得る。A-1B或はB-1Aから、無相関を調べるべき遷移はv(r)からv(r)z^(J)としてよい。なお、最終的な遷移の形は格子座標jを含まない事に注意する。jが格子G(j)の境界にあるとj(2±)のどちらかはjのj格子座標方向の最隣接格子点ではない可能性があるが、それはこのjに関係しない結論には影響がない。(定理7証明終)
図3.空間格子上で最隣接近傍乱数を関係付ける生成機構
【0017】
(非周期的な格子での調整tuning)
複雑な考察で得られた定理7の一般化2次検定の乗数或はMC生成機構は図3にまとめられ、今や一般化2次検定そのものを実行して最隣接近傍間での無相関を実現する事ができる。手順を次の補題8に述べる。
補題8(トーラスを仮定しない格子の任意格子点jでの調整tuning)
まず、ずらしと格子サイズの整数の1組J、J、…、Jをシミュレーションの要求に適うように設計し定めて出発する。勿論、制限J…Jは用い得る周期Tを超えないと仮定する。対象となるどの生成機構も格子点jにはよらない。
(j軸方向)下の(i)の2r-1生成機構を取る。
(i)(d、z^{J})、 (d、z^{J±1})、
(d、z^{J±2})、…、
(d、z^{J±(r-1)})
これらはずらしの整数Jだけを含む。先頭から一般化2次検定を行う;(i)のどれから一般化2次検定を始めてもよいが結果はそれによって変わるだろう。この様に調整とその結果とは一意ではない。もし不合格の1.25以上の評価が現れれば、このJを破棄して新しいJ‘を取る。その取り方には2通りの可能性がある。
(調整i+)J‘=J+1として(i)の一般化2次検定を行う。
(調整i-)J‘=J-1として(i)の一般化2次検定を行う。
(調整i+)の場合にはJは最初余り大きくは取れない。(調整i-)の場合には最初大きなJ、例えばJ…Jが用い得る周期Tのかなり部分になるもの、を取る。以後この様な一般化2次検定を繰り返して、(i)のすべての生成機構が合格するもの発見してJ ‘を採用する。
(j軸方向)(i)の2r-1生成機構を取る。
(i)(d、z^{J‘J})、 (d、z^{J‘J±1})、
(d、z^{J‘J±2})、…、
(d、z^{J‘J±(r-1)})
新しい格子サイズの整数Jだけを変えながら、例えば先頭から一般化2次検定を行う。もし不合格の評価が現れれば、このJを破棄して新しいJ‘=J+1を取り、一般化2次検定を繰り返し、すべてが合格するJ’を発見する。もし合格者が出なければ、J‘の調整に戻らなければならないが、我々にはその経験はなかった。
新しい格子サイズの整数Js-1だけを変えながら、例えば先頭から一般化2次検定を行う。もし不合格の評価が現れれば、このJs-1を破棄して新しいJs-1‘=Js-1+1を取り、一般化2次検定を繰り返し、すべてが合格するJs-1’を発見する。こうしてすべての必要な一般化2次検定に合格するずらしと格子サイズの整数J‘,J’、…、Js-1‘とJを用いる事で、調整された非周期的な格子
G‘(j):=J’×J‘×…×Js-1’×J
の上の調整された一様(homogeneous)で最隣接格子点間に無相関のr個の独立なMC乱数の組を与えるMCランダム根関数g‘(j)は
g‘(j)¥d¥ nz^(j’+j‘J
+j‘J’ J‘+…
+js-1‘J’ J‘…Js-2
+j‘J’ J‘…Js-1’)
であり、ランダムベクトル関数は
g‘(j)v(r)¥d¥ v(r)nz^(j’+j‘J
+j‘J’ J‘+…
+js-1‘J’ J‘…Js-2
+j‘J’ J‘…Js-1’)
となる。(補題8終)
【0018】
再度注意するが、この調整されたランダム根関数、ランダムベクトル関数の形は一意ではない。格子G‘(j)は最初設計されたものより大きいが、それは問題ではない。G’(j)の部分格子であるJ×J×…×Jの上で用いればよい。ただしランダム根関数g‘(j)やランダムベクトル関数g’(j)v(r)は上の通りJ’、J‘、…、Js-1’とJで定義されなければならない。
【0019】
(ランダムな初期値問題:空間格子G(j)がトーラスである場合の周期的調整tuning)
トーラスを形成する格子上の周期的境界条件の重要性はFerrenberg等がIsing模型で厳密解に依拠した通りである。再びG(j)=J×J×…×Jを格子の設計出発値とする。格子座標軸jの方向の出発、終端境界点は
(k)=(j、j、…、j=0、…、j
(k)=(j、j、…、j=J-1、…、j
である。ランダム根関数g(j)がこれらの境界点での最隣接格子点に向けて持つ境界面に平行な遷移機構は今までと変わらず新しく考える必要はない。これらの境界点でランダム根関数は
g(j(k))¥d¥ nz^(j+j+…
+jk-1…Jk-2
+jk+1…J+…+j…Js-1
g(j(k))¥d¥ nz^(j+j+…
+jk-1…Jk-2+(J-1)J…Jk-2k-1
+jk+1…J+…+j…Js-1
¥d¥ g(j(k))z^{(J-1)J…Jk-2k-1
と表されるから、境界面に垂直にj軸方向に持つg(j(k))とg(j(k))の間の遷移乗数は法dで
z^{±(J-1)J…Jk-2k-1
であり、ランダムベクトル関数g(j(k))v(r)とg(j(k))v(r)の間の遷移機構は共通MC乱数因子は除いてよく、また乗数の冪の指数は±どちらでもよいから
(d、z^{(J-1)J…Jk-2k-1})、 k=1,2、…、s
と記す事ができる。だから格子がトーラスである場合の
r個の相続く乱数v(r)と
r個の相続く乱数z^{(J-1)J…Jk-2k-1}v(r)と
の間のすべての遷移機構の一般化2次検定で評価すべきものすべて、全評価値が1.25より小さい事が、格子がトーラスである場合の格子上のMC乱数が幾何学的に一様(homogeneous)で最隣接格子上の乱数とは相関を持たない配置であるための付加条件である。全体条件は次の段落で定理9にまとめる。
【0020】
(周期的調整tuning)
rはR=6以下であるとする。トーラス格子G(j)上のr個の独立な成分を持つMCランダムベクトル関数が最隣接格子点のそれらr個とは相関を持たず、一様(homogeneous)に配置されるための条件は次である。
定理9.(トーラス格子の格子点上でR=6以内のr個の独立な成分を持つMCベクトル関数の周期的調整)
格子G(j)=J×J×…×Jの格子点j上のMCベクトル関数g(j)v(r)が最隣接格子点とは相関を持たない様に一般化2次検定を行うべき遷移機構は下の図4に記された(I),(B),(I),(B),…、(I),(B)がすべてである。
図4.トーラス格子G(j)で格子点jに置かれたR=6以内のr個の独立MC乱数達がj座標軸方向、kは1からsまで、の最隣接格子点のr個とは無相関であるために検定すべきMC乱数生成機構各2r-1)×2
【0021】
(トーラスの空間格子上のR=6以下の独立なr成分MCベクトル関数のすべての成分のすべての対を隣接格子点の間で無相関かつ一様(homogeneous)なMCベクトル関数とする調整の方法)
トーラス格子G(j)上でR=6以下のr個の独立乱数を取り、格子上最隣接格子点間で必要な一般化2次検定のためのMC生成機構は上の図4にまとめられた通りである。非周期的な格子の調整の通り、例えば(I)の生成機構や(B)のそれらを並べられた順に検定するか、逆順に行うかを考えただけでも明らかに、それらの一般化2次検定を行う方法と結果とは一意ではない。しかしすべての結果を得る事やその中からの取捨選択は現実的ではない。異なる2つのシミュレーションの結果を比較する程度が十分安全だろう。特に異なる合格者でも名目の“格子上一様homogeneousな無相関”には変りはないから、以下には調整の最も簡単な1例を記す。
(1)まずJ,J,…、Jをシミュレーションから望まれる設計値に仮に定めて、ずらしの整数Jだけが関係する(I)から出発する。これらは非周期的調整で考えた通りで、余り大きくないJを増大させながら進む方法と大きなJから出発して1ずつ減少させる調整とがある。すべて合格する結果を(周期的調整のものである事を区別して)J と記す。
(2)次にJ とJを含む(B)と(I)を同時に考えて一般化2次検定を行い、J は変えないで、不合格ならJをJ+1に増大させながら調整する。すべての生成機構が合格したとき、Jはより大きいJ となるだろう。
(3)次はJ ,J とJを含む(B)と(I)を取って、一般化2次検定不合格ならJだけを増大させながら調整して、一般にJよりは大きいJ となって終わる。
………………………………………………………………
(s)J からJs-2 までと新しくJs-1を含む(Bs-1)と(I)の4r-2の生成機構の調整を進めて、一般にJs-1より増大したJs-1 ですべての一般化2次検定を合格する。
(s+1)最後に、J からJs-1 と新しくJを含む(B)の調整で一般にはJより増大したJ を発見して、すべての調整を終える。
【図面の簡単な説明】
【0022】
図1
図2
図3空間格子上で最隣接近傍乱数を関係づける全てのMC乱数生成機構を示す図である。
図4トーラス格子上で最隣接近傍乱数が無相関である様に一般化2次検定を行うべき全てのMC乱数生成機構を示す図である。