アルゴリズム的ランダムな無限列
アルゴリズム的ランダムな無限列(あるごりずむてきらんだむなむげんれつ、Algorithmically random sequence)、あるいは単にランダムな列は、直感的にはどんなアルゴリズムにとってもランダムに見える二進無限列のことを言う。この定義は有限文字の列にも上手く適用される。ランダムな列はアルゴリズム情報理論において中心となる対象である。実行時間に特定の上限のあるアルゴリズムや神託への伺いを許したアルゴリズムなど、いくつかの異なった種類のアルゴリズムが考えられ、それに応じて異なったランダムネスの概念が存在する。もっとも良く知られているのはマルティンレーフランダムネス(1ランダムネスとも言う)であるが、もっと強いランダムネスや弱いランダムネスも存在する。単に「ランダム」と言った場合には、マルティンレーフランダムであることを意味することが多い。二進無限列は単位区間の実数と同一視できるので、ランダムな2進無限列はランダムな実数と呼ばれることもある。さらに、二進無限列は自然数の集合の特性関数とも同一視されるので、自然数の集合と見ることもある。二進のマルティンレーフランダムの無限列のクラスはRANDやMLRで表される。
適切なランダムな列の定義を最初に与えたのはペール・マルティン=レーフであり、1966年のことであった。リヒャルト・フォン・ミーゼスなどの先行研究者もランダムネスのためにテストの概念を定式化して、ランダムネスのテストをすべて通過する列をランダムな列と定義しようとしたが、正確なランダムネスのテストの概念を与えることはできなかった。マルティンレーフによる重要な貢献は計算理論を使ってランダムネスのテストの概念を定式化したことにあった。この定義は、確率論のランダムネスの考え方とは対照的である。つまり、確率論では標本空間のどの特定の元もランダムとは言えないからである。
マルティンレーフランダムネスはその後、多くの同値な特徴付けが可能であることが示された。データ圧縮、ランダムネスのテスト、ギャンブルなどどれも元の定義には似ていないように思われるが、同時にどれもランダムな列が持つべき直感的な特徴を満たしている。ランダムな列は圧縮不可能であるだろうし、確率的なテストを通過するであろうし、賭をして儲けるのは難しいであろう。複数の定義が存在し異なる計算のモデルの異なる定義が一致することから、マルティンレーフランダムネスは数学において基本的な性質であって、マルティンレーフの特別なモデルではないと言える。
マルティンレーフランダムネスがランダムネスの直感的概念を「正しく」捕らえているというテーゼは、マルティンレーフ=チャイティンのテーゼと呼ばれている。これは「チャーチ=チューリングのテーゼ」と似たようなものである。
マルティンレーフによるランダムな列の元の定義は構成可能なヌルの被覆によるものである。すなわちランダムな列とは、そのようなどんな被覆にも含まれないことを言う。レオニード・レビンやクラウス・ピーター・シュノアがコルモゴロフ複雑性による次のような特徴付けを与えた。ある列がランダムであるとはその最初の有限部分の圧縮可能性に一様な下限があることを言う。シュノアはマルチンゲール(賭の戦略の一つ)を使って3つ目の同値な定義を与えた。LiとVitanyiのはこれらの良い入門書であろう。
コルモゴロフ複雑性(シュノア1973、レビン1973): コルモゴロフ複雑性は(文字もしくはビットの)有限列のアルゴリズム的圧縮可能性の下限と考えることができ、有限列wに対して自然数K(w)を対応させる。直感的には(ある固定のプログラミング言語で書かれた)コンピュータプログラムで入力なしでwを出力するものの最小の長さを測っている。ある自然数cとwに対して、wがc圧縮不可能であるとは、K(w) \geq |w| -c であることを言う。
無限列Sがマルティンレーフランダムであることは、ある定数cがあってすべてのSの有限接頭辞がc圧縮不可能であることと同値。
構成可能なヌル被覆(マルティンレーフ1966): これはマルティンレーフによる元の定義である。二進有限列wに対して、Cwでwから作られるシリンダーを表すことにする。これはwで始まる無限列の集合であり、カントール空間における基本開集合である。wから作られるシリンダーの積測度\mu(C_w)は2^{-|w〕で定義される。カントール空間上のすべての開集合は可算個の互いに素な基本開集合の列の和で書け、開集合の測度はその基本開集合の列の測度の和となる。構成可能な開集合は開集合で帰納的可算な二進有限列の列で定めされる基本開集合の列の和で書けるものを言う。構成可能なヌル被覆または構成可能な測度0の集合とは構成可能な開集合の帰納的可算な列U_iですべてのiに対してU_{i+1}\subseteq U_iかつ\mu U_i \leq 2^{-i}となるものを言う。すべての構成可能なヌル被覆は測度0のG_\delta集合であるU_iの積集合を決める。
列がマルティンレーフランダムであるとは、構成可能なヌル被覆で決められるどんなG_\delta集合にも含まれないことを言う。
構成可能なマルチンゲール(シュノア1971): マルチンゲールは関数d:\{0,1\}^*\to[0,\infty)で、すべての有限文字列wに対してd(w) = (d(w^\smallfrown 0) + d(w^\smallfrown 1))/2となるものを言う。ここでa^\smallfrown bは文字列aとbの連結である。これは「公平な条件」とも呼ばれる。マルチンゲールを賭けの戦略と見ると、上記の条件は公平なオッズであることを要求していると思えるからである。マルチンゲールdが列Sで成功するとは、\limsup_{n\to\infty} d(S \upharpoonright n) = \inftyとなることを言う。ここでS \upharpoonright nはSの最初のnビットである。マルチンゲールdが構成可能(弱計算可能、下方半計算可能、下計算可能とも言われる)であるとは、ある計算可能な関数\widehat{d}:\{0,1\}^*\times\N\to{\mathbb{Q}があってすべての二進有限列wに対して以下を満たすことを言う。
すべての正の整数tに対して\widehat{d}(w,t) \leq \widehat{d}(w,t+1) < d(w)
\lim_{t\to\infty} \widehat{d}(w,t) = d(w)
ある列がマルティンレーフランダムであることは、どんな構成可能なマルチンゲールでも成功しないことと同値。
(ここでのマルチンゲールの定義は確率論で使われるものと微妙に異なる。確率論で使われるマルチンゲールは似たような公平な条件で定義される。すなわち、事前観察の歴史が与えられたときに、ある観察後の期待値が観察前の期待値と同じであることを要求する。確率論では事前の観察の歴史が資産の歴史であるのに対し、ここでの歴史は具体的な0と1の文字列である。)
コルモゴロフ複雑性による特徴付けはランダムな列は圧縮不可能であるという直感を与える。すなわちどんな接頭辞もそれよりもはるかに短いプログラムからは作られない。
ヌル被覆による特徴付けはランダムな実数は「普通でない」性質は持たないという直感を与える。測度0の集合は普通はない性質と思うことができる。列がどの測度0の集合にも入らないことは不可能である、なぜなら1点集合は測度0であるからである。マルティンレーフの発想は測度0の集合を構成的に記述可能なものに制限することであった。すなわち構成可能なヌル被覆の定義は可算個の構成可能で記述可能な測度0の集合を与え、ランダムな列をそのような特別な測度0の集合に含まれないと定義したのである。測度0の集合の可算和は測度0であるから、この定義からランダムな列の測度1の集合があることが分かる。ここで二進列のカントール空間を[0,1]の実数区間と同一視すれば、カントール空間の測度はルベーグ測度に一致することに注意して欲しい。
マルチンゲールによる特徴付けはどんな構成可能なものでもランダムな列に対して儲けることができないという直感を与える。マルチンゲールdは賭けの戦略である。マルチンゲールdは有限文字列wを読んで次のビットにある金額を賭ける。持っている金額のいくらかを次のビットが0であることに賭け、残りを1であることに賭ける。dは実際に起こったビットに賭けた金額の2倍を受け取り、残りは失う。d(w)はw見た後の所持金である。文字列wを見た後の賭けはd(w)、d(w0)、d(w1)の値から計算できるので、金額を計算することは賭けを計算することと同じである。マルチンゲールによる特徴付けはどんなコンピューターによって実装されるどんな賭け戦略も(たとえ必ずしも計算可能ではない弱い意味の構成可能な戦略であってでも)ランダムな列に対しては儲けることができないということを意味している。
チャイティンの停止確率\Omegaはランダムな列の族である。
RANDc(RANDの補集合)はすべての無限列の集合の中の測度0の部分集合である。これは構成可能なヌル被覆は測度0の集合しか覆えず、構成可能なヌル被覆は可算個しか存在せず、測度0の集合の可算和は測度0であることから導かれる。よってRANDは測度1の集合である。
すべてのランダムな列は正規数である。
RANDcを決める構成可能なヌル被覆が存在する。すなわちすべての構成可能なランダムネスのテスト(すなわち構成可能なヌル被覆)は、ある意味この万能なランダムネスのテストに含まれる、なぜならこの一つのランダムネスのテストを通過するどんな列はどんなランダムネスのテストをも通過するであろうから。(マルティンレーフ1966年)
万能な構成可能なマルチンゲールdが存在する。すなわちどんな構成可能なマルチンゲールdに対しても、dがある列で成功すればdもその列で成功するという意味で万能なマルチンゲールである。よってdはRANDcのどの列でも成功する(が、dは構成可能なので、RANDのどの列でも成功しない)。(シュノア1971)
RANDはカントール空間の\Sigma^0_2集合である。ここで\Sigma^0_2とは算術的階層の2番目である。なぜなら列SがRANDに入るかどうかは、万能で構成可能なヌル被覆に含まれるSを含まない開集合が存在するかどうかと同値であり、これは\Sigma^0_2の式で定義可能であるからである。
\Delta^0_2(停止問題をオラクルとして計算可能)なランダムな列が存在する。(シュノア1971)チャイティンの\Omegaはそのような列の例である。
ランダムな列は帰納的集合でも、帰納的可算集合でも、帰納的可算集合の補集合でもない。これらはそれぞれ算術的階層で\Delta_1^0、\Sigma_1^0、\Pi_1^0に対応するから、\Delta_2^0がランダムな列が存在する算術的階層で一番低い層ということになる。
すべての列はあるランダムな列にチューリング還元可能である。(クセラ1985/1989、ガックス1986)よって任意の高いチューリング次数にランダムな列は存在する。
マルティンレーフランダムの列のそれぞれの定義はチューリングマシンでの計算可能性を元にしているので、神託機械での計算可能性でも考えることができる。ある固定した神託Aに対して、列Bが、ランダムであるだけでなくAから見た計算可能性による同じ定義を満たすならば(例えばAから見た構成可能なマルチンゲールでBが成功しないならば)、BはAに対してランダムであると言う。二つの列がそれぞれランダムでも似た情報を持っているために互いにランダムではないということは起こりうる。ある列からもう一方へのチューリング還元が存在すれば、後者の列は前者の列から見てランダムではない。それはちょうど計算可能な列がランダムではないようなものである。特にチャイティンの停止確率\Omegaは停止性問題の集合から見てランダムではない。
相対的なランダムネスに関して重要な結果の一つが、van Lambalgenの定理である。これは列Cが列Aと列BからAの最初のビット、Bの最初のビット、Aの2番目のビットと交互に取って作られる列だとすると、Cがアルゴリズム的ランダムであるということとAがランダムでBがAから見てランダムであるということが同値であるという定理である。似た結論としてAとBがそれぞれランダムとすると、AがBから見てランダムであるということとBがAから見てランダムであることが同値になる。
相対的なランダムネスはマルティンレーフランダムよりも強い最初のランダムネスの概念を与えてくれる、つまりある固定した神託Aからみたランダムネスである。どんな神託でも少なくとも同じくらい強いランダムであるし、多くの神託にとっては真に強いランダムネスである、なぜならAから見てランダムではないマルティンレーフランダムがあるだろうから。重要な神託でよく考察されるのが停止問題、\emptyset '、n回ジャンプの神託、\emptyset^{(n)}である。というのも、これらの神託が自然に起きる特定の問題に答えることができるからである。\emptyset^{(n-1)}から見てランダムな列はnランダムと呼ばれる。よって1ランダムとマルティンレーフランダムは同じである。すべてのnに対してnランダムである列は算術的ランダムと呼ばれる。nランダムな列はもっと複雑な性質を考えるときによく出てくる。例えば\Delta^0_2集合は可算個しかないので、ランダムとすべきではないと考えるかもしれない。しかしチャイティンの停止確率\Omegaは\Delta^0_2であり1ランダムである。2ランダムネス以上ならばランダムな集合が\Delta^0_2とはなり得ない。
さらにマルティンレーフランダムより弱いランダムネスも存在する。例えば、弱1ランダムネス、シュノアランダムネス、計算可能ランダムネス、部分計算可能ランダムネスなどである。またコルモゴロフ・ラブランドランダムネスはマルティンレーフランダムネスより強くないランダムネスとして知られているが、真に弱いかどうかは知られていない。