【新規性喪失の例外の表示】特許法第30条第1項適用 「積率適合度による擬似乱数シードの選別に関する基礎的研究 2010年度 土木情報利用技術 論文集 pp.293−300」、社団法人 土木学会、平成22年10月21日に発表。
【文献】
松保重之,構造信頼性評価のための事象再現型モンテカルロ法の効率化,材料,日本,社団法人日本材料学会 ,2005年 3月19日,54(3),p.314-319
【文献】
横谷 進弥,CDOプライシングの離散高速アプローチ(2),日本銀行金融研究所ディスカッション・ペーパー・シリーズ(2007年収録分) [online],日本銀行,2007年11月26日,p.1-34
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について、図面等を参照しながら説明する。
【0011】
(A)頻度検定による擬似乱数シードの選別
擬似乱数の具備すべき条件は、a)速やかに多数個発生できること、b)周期があるとすれば十分長い周期を有すること、c)再現性があること、d)良好な統計的性質を持つこと等が挙げられる。このうち、a)高速生成の条件は、計算機で発生させる擬似乱数であれば満足している。次のb)の条件は、メルセンヌ・ツィスター等の乱数を使えば相当長い周期は確保できるものの大規模問題等では極めて多くの乱数が必要とされる場合があるので注意が必要である。また、c)の条件は、同一の擬似乱数列を何度でも発生できるか否かを問うている。擬似乱数は、数式を用いて発生させているので、シードを指定すれば再現性があり、物理乱数を用いない限り自動的に満足している。通常、このような条件を利用することは無いが、本実施の形態では、頻度検定の結果を計算機メモリに保存して計算機資源を消耗することのないように、積極的に利用する。
【0012】
最後のd)の条件は、擬似乱数の利用目的にあった検定を、利用前に実施すべきであるが、現状はほとんど実施されていない。統計的検定としては、頻度検定、系列相関検定、組合せ検定、ギャップ検定、連の検定等が知られている。これらのうち、頻度検定は重要な検定となることが多い。特に、確率統計の処理問題では、必要不可欠な検定である。以下、非特許文献1で紹介した積率適合法を再度簡単に紹介し、その方法を対象問題へ応用する方法を紹介する。
【0013】
(B)擬似乱数の一様性の評価
擬似乱数が所要の確率分布へどの程度適合しているかを計算プログラムで検定する方法としては、a)乱数の定義区間を適当に(等)分割して、各区間の頻度を観測する方法、b)カイ2乗適合度検定でのカイ2乗値を利用する方法、c)コルモゴロフ検定での最大絶対偏差値を利用する方法等が知られている。しかし、方法a)とb)では区間分割をどのように分割するかと言う問題、方法c)では発生擬似乱数の並べ替えをする問題が生ずる。そこで、非特許文献1では、発生させた擬似乱数列の積率を観測し、それらの理論値との一致度によってその擬似乱数列の精度を評価した。完全な確率情報は、確率密度関数で与えられるが、頻度分布で比較することは、プログラム作成上、上述のような欠点がある。そこで、無限大次数までの全ての確率モーメントは、完全な確率情報と等価であることを利用して、対象擬似乱数の良否を、擬似乱数列の積率で評価するのが提案手法の目的である。従来の積率適合の手法の中に、同様な目的で開発されたものもあるが、本件発明では、具体的には、以下のようにして、高精度の一様擬似乱数系列を選別するようにした。
【0014】
区間[0,1]で一様分布する確率変数Xの原点回りのn次原点積率(理論値)は、一般に、下記(数1)のように与えられる。
【0016】
そこで、当該モンテカルロ計算に必要な数のN個の擬似乱数から構成される擬似乱数列をM系列(たとえば1000系列)発生させ、L次までの積率適合を考える。この時、j番目の擬似乱数系列中のi番目の擬似乱数X
ij(i=1、・・・、N;j=1、・・・、M)に対して、k次の標本原点積率は、下記(数2)で計算できる。
【0018】
j番目の擬似乱数系列についての原点積率の2乗誤差は、下記(数3)で与えられる。
【0020】
以上より、非特許文献1では,上記の2乗誤差S
jが最小となる擬似乱数列を一番良好な擬似乱数列とし、その擬似乱数列を実際のモンテカルロ計算に用いた。なお、本明細書において、「●^」(数2、数3では、記号「^」は「●」の真上に配置されている。)は、●の推定値であることを示す記号として用いている。
【0021】
(C)乱数シードの選別
非特許文献1では、最小2乗誤差S
jの擬似乱数列を探索するために、最適な擬似乱数列の候補を計算機メモリに一時保存した。しかし,擬似乱数シードが決まれば、同一の擬似乱数列が完全に再現されるので、上記での記述中、「系列」を「シード」と読み替えれば、擬似乱数をメモリに保存する必要が無くなる。さらに、非特許文献1では、最適な擬似乱数列を試行ごとに毎回計算していたので、効率を計算する場合に、(数2)、(数3)の所要計算時間もモンテカルロ計算の所要時間に算入した。しかし、最小の2乗誤差S
jとなるような擬似乱数シードを予め調査してデータベース化しておけば、2度とこのような最小2乗誤差S
jを計算する必要が無い。したがって、本実施の形態においては、モンテカルロ計算を実行する前の頻度検定の代わりに、式(数3)の2乗誤差S
jが最小となるような乱数シードを選別しておくことにする。そして、実際にモンテカルロ計算する場合には、選別した乱数シードを用いることにする。ただし、最適な乱数シードを選別する場合には、より効果のあるシードを選別するために、計算で必要とする擬似乱数の個数ごとに、乱数シードを選別すべきことに注意を要する。その結果は、擬似乱数の所要個数ごとに作表しておけば、同じ計算環境であれば、種々の問題に利用可能である。
【0022】
積率適合度として、(数3)を用いれば、1次元問題は効率計算を期待することができる。多次元の場合は、(数1)に対応する式(本明細書では「試行関数」と呼ぶ。)について、種々検討した。そこで、n次元の多次元の場合は、生成擬似乱数の多次元空間への分布状況、即ち、生成擬似乱数がn次元空間内で偏り無く、どれだけ一様にばらついているかが重要となることから、試行関数として、下記(数4)を考えた。
【0024】
この場合の2乗誤差は、下記(数5)で表される。
【0026】
本願発明者は、このようにして生成した一様擬似乱数を用いれば、効率的なモンテカルロ計算が可能となることを多数の数値計算例で例証している。なお、n次元関数f(x
1,x
2,・・・x
n)の積分をモンテカルロ法で求める場合、試行関数として考えている下記(数6)は、被積分関数のn次元関数の一番簡単な場合(例えば2次元であればX
1*X
2、3次元であればX
1*X
2*X
3、4次元であればX
1*X
2*X
3*X
4、・・・・。いずれも“*”は乗算を表す。)を考えていることに対応する。
【0028】
なお、本実施の形態では、計算機の空き時間を利用して、予め作成した高精度擬似乱数のシード表に基づいて計算するので、計算効率は、同一のモンテカルロ法に基づく限り、単純に、解の推定分散の比として表わされる(推定に伴う分散については、後に(数11)として説明する。
【0029】
(D)数値計算例
領域積分型モンテカルロ計算の計算例として、円周率を求める問題と指数関数の4重積分を求める問題と2次元正規確率分布の上側超過確率を求める問題を考える。事象再現型モンテカルロ計算の計算例としては、遺伝的アルゴリズムの最大値探索問題を考える。計算には、富士通Fortran & C Ver.4.0(使用CPUとOSはWindows(登録商標) XP on Pentium(登録商標) IV 2.8GHz)上で提供されるC言語を用いた。
【0030】
(D−1)計算条件
乱数シードの選別で用いる乱数精度の指標S
jの計算では、なるべく少ない計算で最小のS
j(数3参照)が得られる積率次数を試算し、5次迄の積率(数2、数3でL=5)を考えていることに対応する。ちなみに、信頼性工学では2次までの積率で信頼性指標を定義し、不規則関数論の相関理論でも2次までの積率で確率過程をモデル化している。
【0031】
このような状況に鑑みて、L=3以上として、計算時間との兼ね合いでL=5と決めた。また、乱数シードの選別も、なるべく多くのシードから求める方が良いが、これも計算時間との関係から1000個のシードから選別することにする。
【0032】
なお、乱数シードの選別を行わない場合のモンテカルロ計算では、乱数生成システムがデフォルトで有する乱数シードを用いることにする。これは、普通の工学者は、特別な理由がない限り、擬似乱数の検定を行うことはなく、デフォルトの乱数シードを用いてモンテカルロ計算を行うのが普通である状況を反映させたものである。
【0033】
さらに、モンテカルロ計算では、擬似乱数の精度のみの影響を調べるために、分散逓減法等を援用しない入門的(Crude)モンテカルロ法を用いる。入門的モンテカルロ法では、下記(数7)の定積分は、N個の一様擬似乱数ξ
1、ξ
2、・・・、ξ
N・・・を用いて、下記(数8)で近似評価される。
【0036】
(D−2)円周率の計算
提案手法で選別した乱数シードを用いて、検証が簡単で、この種の計算のベンチマーク的な計算例として、円周率πを入門的モンテカルロ法によって計算した。
(数8)による入門的モンテカルロ計算を行った結果を(
図1)に示す。(
図1)の左半分には、処理系の組み込み関数として一般に提供されている普通の擬似乱数をシード選別しないまま用いた場合の結果と、MT(メルセンヌ・ツィスター)乱数と呼ばれる擬似乱数をシード選別しないまま用いた場合の結果を示す。一方、(
図1)の表の右側には、(数3)によるシード選別を行った場合の普通擬似乱数を用いた場合とMT乱数を用いた場合とを示している。いずれも正解値との誤差を百分率で示している。
【0037】
(
図1)の表より、シード選別を行うことによって、モンテカルロ計算による解の推定精度が向上することが確認できる。また、普通の擬似乱数の場合とMT乱数の場合との間では、明らかな結果の違いは見られないようである。
【0038】
(D−3)4重積分の計算
モンテカルロ法のメリットの1つとして、モンテカルロ法は、次元数に関係なく同じ計算公式を使って多次元積分を求めることができる。しかしながら、多次元積分の計算は、多くの時間を必要とし、効率化が必要不可欠である。ここでは、解の精度の検証が可能な多次元積分として、下記(数9)のような4重積分を考えた。
【0040】
入門的モンテカルロ法によって(数9)を計算した結果を(
図2)に示す.表記法は(
図1)の表と同様である。(
図2)の表より、多次元の場合は、(数3)によるシード選別を行った擬似乱数を使っても、モンテカルロ法による解の推定精度に余り影響しないことが分かる。また、円周率の計算時と同様に、普通の擬似乱数の場合とMT乱数の場合との間では、明らかな結果の違いは見られないようである。
【0041】
(D−4)2次元正規確率分布の上側超過確率の計算
たとえば、信頼性評価問題では、当該基本変数の同時確率密度関数を破壊領域にわたって積分し破壊確率を求めるが、通常、小さな確率となるため、多くの擬似乱数を必要とする。したがって、このような積分においても、擬似乱数の精度向上が計算結果に与える影響を知ることは、モンテカルロ法に基づく信頼性評価を行う際には重要である。そこで、多次元確率変数の簡単な確率計算問題として、平均値0、分散1の正規分布に従う2変数χ
1とχ
2とを考え、それらの相関係数がγ=0.6の場合の上側確率(下記(数10)で表される)を求める。正解値は、P=0.000654である。
【0043】
(数8)によって(数10)を推定した結果を(
図3)、(
図4)に示す。(
図3)の表は、普通の擬似乱数とMT乱数をシード選別しないままモンテカルロ計算に用いた場合の計算結果である。(
図4)の表は、これらの擬似乱数に対して(数3)によるシード選別を行った場合の計算結果である。なお、表中の変動係数ρとは、(数8)による推定誤差に基づく変動係数であり、(数7)の推定に対しては、次式(数11)によって評価することができる。
【0045】
(
図3)の表と(
図4)の表とを比較することにより、この場合も、(数3)によるシード選別は、モンテカルロ計算による解の推定精度に余り影響しないことが分かる。また、普通の擬似乱数の場合とMT乱数の場合との間でも、明らかな結果の違いが見られないようである。
【0046】
今まで示した計算では、1次元確率特性が良好な擬似乱数のシードを、多くの乱数シードの中から(数2)、(数3)の評価式を使って選別したが、多次元積分の問題では、余り良い結果を得ることができなかった。そこで、同様にして、対象とする多次元確率分布への分布状況が良好な擬似乱数シードを(数5)によって選別すれば、多次元積分を求める問題でも、効率の良いモンテカルロ計算を実施することができるのではないかと考えた。
【0047】
そこで、多次元確率分布への分布状況を考慮して選別した擬似乱数シードを(数5)にもとづいて作表した(この表は、各実施者の計算環境によって異なる)。その結果を使って、(数10)の上側超過確率の計算を(数8)の入門的モンテカルロ法で行った。
【0048】
数値計算の結果を(
図5)に示す。(
図3)の表と(
図5)の表との比較により、選別シードの擬似乱数を用いれば、効率化を実現できることが分かる。また、(
図3)の表と(
図5)の表とを比較すると、誤差が大きいにもかかわらず推定誤差に基づく変動係数ρが小さい場合等が存在する。これは、たとえば、誤差が大きくても、大きな数値を推定するほど推定が容易になることを反映したものである。事象再現型計算の場合に対応させて言えば、頻繁に生起する事象を推定することは容易であるが、稀にしか生起しない事象を推定するのは困難であることに対応する。したがって、推定誤差に基づく変動係数ρのみを推定精度の評価指標として使う場合は、注意が必要である。
【0049】
(D−5)単純GAによる最大値探索問題への適用
領域積分型モンテカルロ法では、積分領域を陰の形であれ陽の形であれ、定式化する必要があり、その記述には、充分な検討を要する場合がある。そのような場合、注目事象を計算機内で正確に再現する方法(事象再現型モンテカルロ法)が便利である。事象再現型モンテカルロ法は、きわめて多くの問題に適用可能で、安定的に解を得ることができるが、効率が悪く、その効率化に関する研究は重要課題である。ここでは、事象再現型モンテカルロ法の一つである遺伝的アルゴリズムを対象に、本実施の形態で説明した方法で選別した最適乱数シードの適用を考える。遺伝的アルゴリズムとしては、単純GAを考える。そして、単純GAに基づき、次式(数12)の関数の最大値を求める問題を考える。
【0051】
これはx=π/2の時に最大値4.0をとる関数であり、単純GAの計算では、これを適応関数とする。変数xのコーディングは0と1の2進表現を行い、解空間(0≦x≦π)を2
12個の離散値に等分する。単純GAは、個体数20、交叉確率0.4、突然変異確率0.1、計算世代数41として計算を行った。
【0052】
デフォルトの擬似乱数シードを用いて計算を行った結果を(
図6)の表の左半分に、最適乱数シードの適用を行った単純GAによる計算結果を同図に示される表の右半分に示す。世代ごとの線列の評価値(適合度)を示している。表中、「平均」とは20個の個体で得られる評価関数値の平均値である。また、「最大値」とは、20個の個体で得られる評価関数値の最大値である。「歴代最大値」とは、過去の世代を通じての歴代の最大値を示している。(
図6)の表より、右半分の結果は、左半分の結果に比べ、各値が全体的に大きくなり、正解値4.0が出やすくなっているのが分かる。その結果、最適乱数シードの適用によって、容易に正解値が出現している状況を確認することができる。
【0053】
(E)総括
今回の研究では、効率の良い計算ができる擬似乱数シードの選別を、計算機の空き時間(モンテカルロ計算の前)を利用して実施する方法、および、そのような結果を擬似乱数の必要個数ごとに最適乱数シードとして作表しておく方法を提案した。そして、いくつかの典型的な例題に提案手法を適用して、擬似乱数の確率特性の改善効果に関する検討を行った。得られた主な結果は以下のとおりである。
【0054】
(1)本研究で提案した手法によって作表した最適乱数シードを用いてモンテカルロ計算を実施すれば、効率の良いモンテカルロ計算を行うことができる。
(2)多次元の積分問題に対しては、1次元確率特性に着目して選別した乱数シードを用いても、計算の効率化が余り期待できない。多次元確率分布への分布状況の考慮が必要である。
(3)事象再現型モンテカルロ計算の一例として遺伝的アルゴリズムの最大値探索問題を考え、本研究で提案した手法を適用した結果、効率的な計算が可能であることが確認できた。
【0055】
数値計算は、限定された条件下での結果ではあるが、提案した乱数シードの選別法は汎用性のある方法であり、今後、種々の分野へ応用されることが期待される。