§E13.27乱択アルゴリズム

最終更新

アルゴリズムの中で乱数を用いると、出力と実行時間が乱数に応じて変わる。この変動を確率として扱うのが乱択アルゴリズムの解析である。

確率をどこに置くかを最初に定める。本記事では、入力を一つ固定し、確率はアルゴリズムが内部で用いる乱数の上にだけ置く。入力の集合の上に確率分布を置いて平均を取る解析は行わない。したがって、以下で述べる期待実行時間や誤り確率は、どの入力についても成り立つ保証である。特定の入力に対して悪い振る舞いをする、という形の反例は生じない。

本記事では、まず内部乱数の有限確率空間を定め、kk回の独立反復に対応する直積確率空間を構成する。次に、常に正しい出力を返すが実行時間が変動する Las Vegas 型と、実行時間は抑えられるが誤答の確率をもつ Monte Carlo 型を区別する。そのうえで、成功確率θ\thetaの試行を成功するまで繰り返すときの試行回数の期待値が1/θ1/\thetaであることと、成功確率δ\deltaで一側誤りをもつ Monte Carlo 型アルゴリズムをkk回独立に反復すると誤り確率が(1−δ)k(1-\delta)^{k}以下になることを証明し、いずれも有限集合の上の具体例へ適用する。ここでθ\thetaは一回の試行が成功する確率、δ\deltaは一側誤りアルゴリズムが正しく11を出力する確率であり、別の量である。

記号について。期待値をE[⋅]\mathbb E[\cdot]、確率をP(⋅)\mathbb P(\cdot)と書く。これらは先行記事§E11.4 定義 1.1が定める量である。標本空間が空でない有限集合であり、そのすべての部分集合を事象とする確率空間を有限確率空間とよぶ。この語は先行記事§E13.11 定義 1.1が定める。ループ不変条件、停止性の変量、漸近記法および多項式時間は§D2.8 定義 1.1、§D2.8 命題 1.4、§D2.8 定義 2.2、§D2.8 定義 4.1の定義に従う。

1 内部乱数の確率空間

定義 1.1.X\mathcal Xを入力の集合、Y\mathcal Yを出力の集合とする。乱択アルゴリズム (randomized algorithm) とは、空でない有限集合RR(内部乱数の集合 (set of internal random choices))と二つの写像A:X×R→Y,T:X×R→Z≥0A:\mathcal X\times R\to\mathcal Y,\qquad T:\mathcal X\times R\to\mathbb Z_{\ge0}の組をいう。A(x,r)A(x,r)は、内部乱数としてrrを用いたときの出力を表し、T(x,r)T(x,r)はそのときの実行ステップ数を表す。

入力x∈Xx\in\mathcal Xを一つ固定する。RR上の一様分布をPR({r})=1∣R∣(r∈R),PR(B)=∣B∣∣R∣(B⊆R)\mathbb P_R(\{r\})=\frac{1}{\lvert R\rvert}\quad(r\in R),\qquad \mathbb P_R(B)=\frac{\lvert B\rvert}{\lvert R\rvert}\quad(B\subseteq R)と定めると、(R,2R,PR)(R,2^{R},\mathbb P_R)は§E13.11 定義 1.1の有限確率空間である。xxを固定したとき、r↦A(x,r)r\mapsto A(x,r)とr↦T(x,r)r\mapsto T(x,r)はこの確率空間の上の確率変数である。前者をA(x,⋅)A(x,\cdot)、後者をT(x,⋅)T(x,\cdot)と書く。

注意 1.2 (確率を入力に置かないこと).定義 1.1では、確率測度は内部乱数の集合RRの上にだけ置かれている。入力xxは確率変数ではなく、固定された定数である。

このため、E[T(x,⋅)]\mathbb E[T(x,\cdot)]の上界が「すべてのx∈Xx\in\mathcal XについてE[T(x,⋅)]≤f(∣x∣)\mathbb E[T(x,\cdot)]\le f(\lvert x\rvert)」という形で得られたとき、その保証はどの入力についても成り立つ。入力の集合の上に分布を置いて平均を取る解析では、分布の取り方に依存する保証しか得られず、分布から外れた入力については何も述べることができない。この違いを混同しない。

2 有限回の独立反復

同じ乱択アルゴリズムをkk回、毎回新しい乱数を用いて実行する状況を、直積確率空間として書き下す。

定義 2.1.(Ω0,2Ω0,P0)(\Omega_0,2^{\Omega_0},\mathbb P_0)を§E13.11 定義 1.1の有限確率空間とし、k≥1k\ge1を整数とする。標本空間をΩ0k\Omega_0^{k}、すなわち長さkkの列ρ=(ρ1,…,ρk)\rho=(\rho_1,\dots,\rho_k)(各ρi∈Ω0\rho_i\in\Omega_0)の全体とし、事象の全体を2Ω0k2^{\Omega_0^{k}}とする。各ρ∈Ω0k\rho\in\Omega_0^{k}に対してP0(k)({ρ})=∏i=1kP0({ρi})\mathbb P_0^{(k)}(\{\rho\})=\prod_{i=1}^{k}\mathbb P_0(\{\rho_i\})と定め、事象C⊆Ω0kC\subseteq\Omega_0^{k}に対してP0(k)(C)=∑ρ∈CP0(k)({ρ})\mathbb P_0^{(k)}(C)=\sum_{\rho\in C}\mathbb P_0^{(k)}(\{\rho\})と定める。各iiに対しπi(ρ)=ρi\pi_i(\rho)=\rho_iで定まる写像を第ii射影 (coordinate projection) という。

命題 2.2.定義 2.1の記号のもとで、次が成り立つ。

  1. B1,…,Bk⊆Ω0B_1,\dots,B_k\subseteq\Omega_0に対し、事象C={ρ∈Ω0k: ρi∈Bi (i=1,…,k)}C=\{\rho\in\Omega_0^{k}:\ \rho_i\in B_i\ (i=1,\dots,k)\}の確率はP0(k)(C)=∏i=1kP0(Bi)\mathbb P_0^{(k)}(C)=\prod_{i=1}^{k}\mathbb P_0(B_i)である。
  2. P0(k)\mathbb P_0^{(k)}は確率測度である。したがって(Ω0k,2Ω0k,P0(k))(\Omega_0^{k},2^{\Omega_0^{k}},\mathbb P_0^{(k)})は§E13.11 定義 1.1の有限確率空間である。
  3. 射影の族(π1,…,πk)(\pi_1,\dots,\pi_k)は§E11.7 定義 1.1の意味で相互独立である。

証明.(1)を示す。kkについての数学的帰納法(§D2.1 命題 1.2)による。

k=1k=1のとき、C=B1C=B_1でありP0(1)(B1)=∑ρ1∈B1P0({ρ1})=P0(B1)\mathbb P_0^{(1)}(B_1)=\sum_{\rho_1\in B_1}\mathbb P_0(\{\rho_1\})=\mathbb P_0(B_1)である。

k≥2k\ge2とし、k−1k-1で主張が成り立つとする。写像ρ↦((ρ1,…,ρk−1),ρk)\rho\mapsto((\rho_1,\dots,\rho_{k-1}),\rho_k)はΩ0k\Omega_0^{k}からΩ0k−1×Ω0\Omega_0^{k-1}\times\Omega_0への全単射であり、CCをC′×BkC'\times B_kへ写す。ここでC′={σ∈Ω0k−1: σi∈Bi (i=1,…,k−1)}C'=\{\sigma\in\Omega_0^{k-1}:\ \sigma_i\in B_i\ (i=1,\dots,k-1)\}である。この全単射で和を書き換え、各項の積を最後の因子と残りの因子へ分けるとP0(k)(C)=∑σ∈C′ ∑ρk∈Bk(∏i=1k−1P0({σi}))P0({ρk})=(∑σ∈C′∏i=1k−1P0({σi}))(∑ρk∈BkP0({ρk}))\mathbb P_0^{(k)}(C)=\sum_{\sigma\in C'}\ \sum_{\rho_k\in B_k}\left(\prod_{i=1}^{k-1}\mathbb P_0(\{\sigma_i\})\right)\mathbb P_0(\{\rho_k\}) =\left(\sum_{\sigma\in C'}\prod_{i=1}^{k-1}\mathbb P_0(\{\sigma_i\})\right)\left(\sum_{\rho_k\in B_k}\mathbb P_0(\{\rho_k\})\right)となる。ここでは有限和の入れ替えと分配法則だけを用いた。第一の因子はP0(k−1)(C′)\mathbb P_0^{(k-1)}(C')であり、帰納法の仮定より∏i=1k−1P0(Bi)\prod_{i=1}^{k-1}\mathbb P_0(B_i)に等しい。第二の因子はP0(Bk)\mathbb P_0(B_k)である。ゆえに主張の等式を得る。

(2)を示す。 各P0(k)({ρ})\mathbb P_0^{(k)}(\{\rho\})は非負実数の有限積であるから非負である。(1)をB1=⋯=Bk=Ω0B_1=\dots=B_k=\Omega_0に対して適用するとC=Ω0kC=\Omega_0^{k}であり、P0(k)(Ω0k)=∏i=1kP0(Ω0)=1\mathbb P_0^{(k)}(\Omega_0^{k})=\prod_{i=1}^{k}\mathbb P_0(\Omega_0)=1である。事象の確率をその元の一点集合の確率の和で定めたのでP0(k)\mathbb P_0^{(k)}は有限加法的であり、Ω0k\Omega_0^{k}が有限集合であるから可算加法性は有限加法性に帰着する。ゆえにP0(k)\mathbb P_0^{(k)}は確率測度である。

(3)を示す。Ω0\Omega_0の元は実数とは限らないので、§E11.7 定義 1.1の (2)、すなわち部分シグマ加法族の族の相互独立性の形で確かめる。第ii射影πi\pi_iが生成する部分シグマ加法族はGi={πi−1(B): B⊆Ω0}\mathcal G_i=\{\pi_i^{-1}(B):\ B\subseteq\Omega_0\}である。Ω0k\Omega_0^{k}のすべての部分集合が事象であるからGi⊆2Ω0k\mathcal G_i\subseteq2^{\Omega_0^{k}}であり、Gi\mathcal G_iは逆像を取る操作が合併・補集合と可換であることからシグマ加法族である。

j≥1j\ge1とし、相異なる添字i1,…,ij∈{1,…,k}i_1,\dots,i_j\in\{1,\dots,k\}とBi1,…,Bij⊆Ω0B_{i_1},\dots,B_{i_j}\subseteq\Omega_0を取る。残りの添字iiについてはBi=Ω0B_i=\Omega_0と置くと⋂r=1jπir−1(Bir)={ρ: ρi∈Bi (i=1,…,k)}\bigcap_{r=1}^{j}\pi_{i_r}^{-1}(B_{i_r})=\{\rho:\ \rho_i\in B_i\ (i=1,\dots,k)\}であるから、(1)より、この事象の確率は∏i=1kP0(Bi)=∏r=1jP0(Bir)\prod_{i=1}^{k}\mathbb P_0(B_i)=\prod_{r=1}^{j}\mathbb P_0(B_{i_r})である。ここでP0(Ω0)=1\mathbb P_0(\Omega_0)=1を用いた。他方、(1)を一つの添字に対して適用するとP0(k)(πir−1(Bir))=P0(Bir)\mathbb P_0^{(k)}(\pi_{i_r}^{-1}(B_{i_r}))=\mathbb P_0(B_{i_r})であるから、両者は一致する。ゆえに射影の族は相互独立である。▨

3 Las Vegas 型と Monte Carlo 型

乱択アルゴリズムの保証の型は二つに分かれる。出力の正しさを常に保証して実行時間を確率変数として扱う型と、実行時間を確定させて誤答の確率を抑える型である。

定義 3.1.f:X→Yf:\mathcal X\to\mathcal Yを計算したい写像とし、(A,T,R)(A,T,R)を定義 1.1の乱択アルゴリズムとする。項 1 と項 2 では入力x∈Xx\in\mathcal Xを一つ固定し、そのxxについての性質を述べる。項 3 では入力を固定せず、X\mathcal Xのすべての元にわたる量化を含む性質を述べる。

  1. AAがxxにおいて Las Vegas 型 (Las Vegas algorithm) であるとは、すべてのr∈Rr\in RについてA(x,r)=f(x)A(x,r)=f(x)が成り立つことをいう。このとき出力は常に正しく、T(x,⋅)T(x,\cdot)が確率変数として変動する。E[T(x,⋅)]\mathbb E[T(x,\cdot)]を xxにおける期待実行時間 (expected running time at an input) という。
  2. η∈[0,1)\eta\in[0,1)とする。AAがxxにおいて誤り確率η\etaの Monte Carlo 型 (Monte Carlo algorithm with error probability eta) であるとは、PR(A(x,⋅)≠f(x))≤η\mathbb P_R\bigl(A(x,\cdot)\ne f(x)\bigr)\le\etaが成り立つことをいう。この型では、T(x,r)T(x,r)のrrについての最大値を実行時間の保証として用いる。
  3. L⊆XL\subseteq\mathcal Xを判定問題とし、f(x)=1f(x)=1(x∈Lx\in Lのとき)、f(x)=0f(x)=0(x∉Lx\notin Lのとき)とする。δ∈(0,1]\delta\in(0,1]とする。AAが LLに対する成功確率δ\deltaの一側誤りアルゴリズム (one-sided error algorithm with success probability delta) であるとは、次の二条件が成り立つことをいう。
  1. x∉Lx\notin Lを満たすすべてのxxと、すべてのr∈Rr\in RについてA(x,r)=0A(x,r)=0である。
  2. x∈Lx\in Lを満たすすべてのxxについてPR(A(x,⋅)=1)≥δ\mathbb P_R(A(x,\cdot)=1)\ge\deltaである。

すなわち、答が00である入力では決して誤らず、答が11である入力でのみ誤りうる。

注意 3.2 (二つの型で何を保証するかが異なること). Las Vegas 型では、出力の正しさが乱数によらないので、§D2.8 定理 1.2の意味の部分正当性は乱数を含まない議論で確かめることができる。確率が関わるのは実行時間だけである。

Monte Carlo 型では逆に、実行時間が乱数によらず抑えられ、正しさだけが確率的である。誤り確率η\etaの保証は、その入力についてアルゴリズムを一度実行したときの保証であり、同じ入力に対して何度実行しても同じ誤った答が返る可能性を排除しない。この可能性を減らす方法が、独立な乱数による反復である。

4 検証可能な出力を得るまでの再試行

正しさを検証することができる試行を、成功するまで繰り返す手続きを扱う。まず試行回数の確率空間を定め、そのうえでこの型の手続きと、それに対する Las Vegas 性を定義する。

定義 4.1.θ∈(0,1]\theta\in(0,1]とする。標本空間をΩθ={1,2,3,… }\Omega_{\theta}=\{1,2,3,\dots\}、事象の全体を2Ωθ2^{\Omega_{\theta}}としPθ({k})=(1−θ)k−1θ(k≥1),Pθ(C)=∑k∈CPθ({k})(C⊆Ωθ)\mathbb P_{\theta}(\{k\})=(1-\theta)^{k-1}\theta\quad(k\ge1),\qquad \mathbb P_{\theta}(C)=\sum_{k\in C}\mathbb P_{\theta}(\{k\})\quad(C\subseteq\Omega_{\theta})と定める。N:Ωθ→Z≥1N:\Omega_{\theta}\to\mathbb Z_{\ge1}をN(k)=kN(k)=kと定め、最初の成功までの試行回数 (number of trials until first success) という。

事象の全体を全冪集合2Ωθ2^{\Omega_{\theta}}に取ったので、Ωθ\Omega_{\theta}からR\mathbb Rへの任意の写像は、どの Borel 集合の逆像もΩθ\Omega_{\theta}の部分集合として2Ωθ2^{\Omega_{\theta}}に属することから§E9.5 定義 1.1の意味で可測であり、確率変数である。NNも、以下でNNから作る写像も、いずれもこの理由で確率変数である。Ωθ\Omega_{\theta}は可算無限集合であるから、§E13.11 命題 1.2の (2) をこの確率空間へ適用することはできない。

この定義で現れる無限和は、すべての項が非負であるから、有限部分和の全体の上限として定めることができる。上限は和を取る順序に依存しないので、Pθ(C)\mathbb P_{\theta}(C)はCCの元の番号づけによらずに定まる。

命題 4.2.θ∈(0,1]\theta\in(0,1]とする。

  1. Pθ\mathbb P_{\theta}は(Ωθ,2Ωθ)(\Omega_{\theta},2^{\Omega_{\theta}})上の確率測度である。
  2. 整数j≥0j\ge0に対しPθ(N>j)=(1−θ)j\mathbb P_{\theta}(N>j)=(1-\theta)^{j}が成り立つ。
  3. 各回の試行を、成功する確率がθ\thetaである§E13.11 定義 1.1の有限確率空間Ω0\Omega_0上の事象BBが起こることとして表す。すなわちP0(B)=θ\mathbb P_0(B)=\thetaとする。このとき、定義 2.1のjj回の独立反復の確率空間において、最初のjj回がすべて失敗する事象の確率は(1−θ)j(1-\theta)^{j}であり、(2) の値と一致する。

証明.(2)を先に示す。。j≥0j\ge0を整数とし、q=1−θq=1-\thetaと置く。θ=1\theta=1のときはq=0q=0であり、Pθ({1})=1\mathbb P_{\theta}(\{1\})=1、k≥2k\ge2でPθ({k})=0\mathbb P_{\theta}(\{k\})=0である。したがってj=0j=0ではPθ(N>0)=1=00\mathbb P_{\theta}(N>0)=1=0^{0}、j≥1j\ge1ではPθ(N>j)=0=0j\mathbb P_{\theta}(N>j)=0=0^{j}であり、いずれも主張の形になる。ここで00=10^{0}=1という規約を用いた。

θ∈(0,1)\theta\in(0,1)のときq∈(0,1)q\in(0,1)である。kkをk=j+ik=j+i(i≥1i\ge1)と書き換えるとPθ(N>j)=∑k=j+1∞qk−1θ=∑i=1∞q j+i−1θ=θqj∑i=1∞q i−1\mathbb P_{\theta}(N>j)=\sum_{k=j+1}^{\infty}q^{k-1}\theta=\sum_{i=1}^{\infty}q^{\,j+i-1}\theta=\theta q^{j}\sum_{i=1}^{\infty}q^{\,i-1}である。§B1.9 定理 2.1を初項11、公比qqに対して適用すると、最後の和は11−q=1θ\dfrac{1}{1-q}=\dfrac1\thetaである。ゆえにPθ(N>j)=θqj⋅1θ=qj\mathbb P_{\theta}(N>j)=\theta q^{j}\cdot\dfrac1\theta=q^{j}である。

(1)を示す。 各点の確率は非負である。(2)をj=0j=0に対して適用するとPθ(Ωθ)=Pθ(N>0)=1\mathbb P_{\theta}(\Omega_{\theta})=\mathbb P_{\theta}(N>0)=1である。またPθ(∅)=0\mathbb P_{\theta}(\emptyset)=0である。

可算加法性を確かめる。C1,C2,…C_1,C_2,\dotsを二つずつ交わらない事象とし、C=⋃l≥1ClC=\bigcup_{l\ge1}C_lと置く。

第一に、二つの量をそれぞれ上限として書き直す。項がすべて非負である族の総和は、その族の有限部分族についての和の全体の上限に等しい。したがってPθ(C)\mathbb P_{\theta}(C)は、集合S={∑k∈FPθ({k}) : F⊆C, F は有限}\mathcal S=\left\{\textstyle\sum_{k\in F}\mathbb P_{\theta}(\{k\})\ :\ F\subseteq C,\ F\ \text{は有限}\right\}の上限である。同じ理由を二重に適用すると、∑l≥1Pθ(Cl)\sum_{l\ge1}\mathbb P_{\theta}(C_l)は、集合T={∑i=1r∑k∈FiPθ({k}) : r≥0, l1<⋯<lr, Fi⊆Cli は有限}\mathcal T=\left\{\textstyle\sum_{i=1}^{r}\sum_{k\in F_i}\mathbb P_{\theta}(\{k\})\ :\ r\ge0,\ l_1<\dots<l_r,\ F_i\subseteq C_{l_i}\ \text{は有限}\right\}の上限である。

第二に、S=T\mathcal S=\mathcal Tを示す。F⊆CF\subseteq Cを有限集合とする。ClC_lが二つずつ交わらないので、FFの各元はちょうど一つのClC_lに属し、FFはF∩ClF\cap C_lたちの二つずつ交わらない合併へ一意に分解される。FFは有限であるからF∩Cl≠∅F\cap C_l\ne\emptysetとなるllは有限個であり、それらをl1<⋯<lrl_1<\dots<l_r、Fi=F∩CliF_i=F\cap C_{l_i}と置くと∑k∈FPθ({k})=∑i=1r∑k∈FiPθ({k})\sum_{k\in F}\mathbb P_{\theta}(\{k\})=\sum_{i=1}^{r}\sum_{k\in F_i}\mathbb P_{\theta}(\{k\})である。ゆえにS⊆T\mathcal S\subseteq\mathcal Tである。逆に、l1<⋯<lrl_1<\dots<l_rと有限集合Fi⊆CliF_i\subseteq C_{l_i}が与えられたとき、F=⋃i=1rFiF=\bigcup_{i=1}^{r}F_iはCCの有限部分集合であり、FiF_iたちは二つずつ交わらないから∑i=1r∑k∈FiPθ({k})=∑k∈FPθ({k})\sum_{i=1}^{r}\sum_{k\in F_i}\mathbb P_{\theta}(\{k\})=\sum_{k\in F}\mathbb P_{\theta}(\{k\})である。ゆえにT⊆S\mathcal T\subseteq\mathcal Sである。

二つの集合が一致するので上限も一致し、Pθ(C)=∑l≥1Pθ(Cl)\mathbb P_{\theta}(C)=\sum_{l\ge1}\mathbb P_{\theta}(C_l)である。したがってPθ\mathbb P_{\theta}は§E9.2 定義 1.1の意味の測度であり、全体の確率が11であるから確率測度である。

(3)を示す。命題 2.2 (1)をB1=⋯=Bj=Ω0∖BB_1=\dots=B_j=\Omega_0\setminus Bに対して適用すると、最初のjj回がすべて失敗する事象の確率はP0(Ω0∖B)j=(1−θ)j\mathbb P_0(\Omega_0\setminus B)^{j}=(1-\theta)^{j}である。▨

この確率空間の上で、成功するまで繰り返す型の手続きを定義する。この型の手続きは定義 1.1の乱択アルゴリズムではない。同定義は内部乱数の集合を一つの空でない有限集合とし、実行ステップ数を全域写像として要求するが、繰り返しの回数に上限が無い手続きは、乱数の列の取り方によっては停止しないので、どちらも満たさないからである。したがって定義 3.1 (1)をそのまま適用することができない。そこで、この型に対する Las Vegas 性を別に定める。

定義 4.3.f:X→Yf:\mathcal X\to\mathcal Yを計算したい写像とし、入力x∈Xx\in\mathcal Xを一つ固定する。記号⊥\botは「今回の試行では出力を得なかった」ことを表すものとし、⊥∉Y\bot\notin\mathcal Yとする。

検証つき反復アルゴリズム (verified repetition algorithm) とは、空でない有限集合R0R_0(一回の試行の内部乱数の集合)、写像g:R0→Y∪{⊥}g:R_0\to\mathcal Y\cup\{\bot\}、および正の整数ccの組であって、次の三条件を満たすものが定める手続きをいう。

  1. (検証可能性)すべてのr∈R0r\in R_0について、g(r)≠⊥g(r)\ne\botならばg(r)=f(x)g(r)=f(x)である。
  2. (成功確率が正)R0R_0上の一様分布をPR0\mathbb P_{R_0}と書くとき、θ=PR0({r∈R0: g(r)≠⊥})\theta=\mathbb P_{R_0}(\{r\in R_0:\ g(r)\ne\bot\})がθ>0\theta>0を満たす。
  3. (一回の費用の上界)一回の試行に要するステップ数は高々ccである。

手続きは、PR0\mathbb P_{R_0}に従って独立にr1,r2,…r_1,r_2,\dotsを取り、g(ri)≠⊥g(r_i)\ne\botとなる最小のiiにおいてg(ri)g(r_i)を出力して停止する。

この手続きが Las Vegas 型である (Las Vegas property) とは、条件 (a)、すなわち出力を得たときにその値が必ずf(x)f(x)に等しいことをいう。定義より、検証つき反復アルゴリズムはつねに Las Vegas 型である。

試行回数は、定義 4.1の確率空間(Ωθ,2Ωθ,Pθ)(\Omega_{\theta},2^{\Omega_{\theta}},\mathbb P_{\theta})の上の確率変数NNとして扱う。この扱いが正しいことは命題 4.2 (3)による。すなわち、Ω0=R0\Omega_0=R_0、B={r: g(r)≠⊥}B=\{r:\ g(r)\ne\bot\}として得られる有限回の独立反復の確率と、Pθ\mathbb P_{\theta}による確率が一致する。E[N]\mathbb E[N]を期待試行回数 (expected number of trials) という。

注意 4.4 (標本空間に「永久に失敗する」結果を置かないこと).定義 4.1の標本空間は正の整数の全体であり、「どの試行も成功しない」という結果を含まない。この置き方が妥当であることは命題 4.2 (3)が示す。すなわち、有限回の反復について計算した確率が、この可算な確率空間で計算した確率と一致する。

同時に、この置き方は次のことも示している。定義 4.3の手続きには、§D2.8 命題 1.4の意味で各反復ごとに狭義に減少する非負整数値の変量が存在しない。実際、乱数の列の取り方によっては反復が何度でも続きうる。停止についての主張は変量による議論ではなく、Pθ(N>j)=(1−θ)j\mathbb P_{\theta}(N>j)=(1-\theta)^{j}がjjを大きくすると00へ近づくこと(§B1.7 定理 2.1)として述べられる。

4.1 証明方針

E[N]\mathbb E[N]を求める。NNは非負の値を取るが、Ωθ\Omega_{\theta}が無限集合であるため、期待値を有限和として書き下すことはできない。そこでNNを最初のmm点に制限した確率変数NmN_mを作る。NmN_mは有限個の値しか取らない非負単関数であるから、その積分は§E9.6 命題 1.2によって有限和として計算することができる。NmN_mは各点で単調非減少にNNへ収束するので、§E9.7 定理 1.1により積分も収束し、E[N]\mathbb E[N]は無限級数∑k≥1k(1−θ)k−1θ\sum_{k\ge1}k(1-\theta)^{k-1}\thetaの和として表される。

この級数の値は、θ∈(0,1)\theta\in(0,1)の場合には§E11.5 補題 1.1が与える∑k≥0kqk=q/(1−q)2\sum_{k\ge0}kq^{k}=q/(1-q)^{2}から得られる。両辺をqqで割って添字をずらすと∑k≥1kqk−1=1/θ2\sum_{k\ge1}kq^{k-1}=1/\theta^{2}となり、θ\thetaを掛けてE[N]=1/θ\mathbb E[N]=1/\thetaを得る。θ=1\theta=1の場合にはq=0q=0であるから、同じ級数のk≥2k\ge2の項がすべて消えて部分和が11になる。いずれの場合も同じNmN_mと単調収束定理の議論を経由し、場合分けは級数の値を求める段階だけで行う。

定理 4.5.θ∈(0,1]\theta\in(0,1]とし、定義 4.1の確率空間を取る。このときNNは可積分でありE[N]=1θ\mathbb E[N]=\frac1\thetaが成り立つ。

さらに、ccを正の整数とし、S:Ωθ→Z≥0S:\Omega_{\theta}\to\mathbb Z_{\ge0}を、各点で0≤S≤cN0\le S\le cNを満たす確率変数とする。このときE[S]≤c/θ\mathbb E[S]\le c/\thetaが成り立つ。一回の試行に要するステップ数が高々ccである定義 4.3の検証つき反復アルゴリズムにおいて、成功するまでの総ステップ数を表す確率変数は、この条件を満たす。

証明.q=1−θq=1-\thetaと置く。θ∈(0,1]\theta\in(0,1]よりq∈[0,1)q\in[0,1)である。整数m≥1m\ge1に対しNm=N⋅1{1,…,m}N_m=N\cdot\mathbf 1_{\{1,\dots,m\}}と定める。NmN_mは値0,1,…,m0,1,\dots,mしか取らない非負単関数である。§E9.6 命題 1.2を、Ωθ\Omega_{\theta}の互いに交わらない分割{1},{2},…,{m},{m+1,m+2,… }\{1\},\{2\},\dots,\{m\},\{m+1,m+2,\dots\}と係数1,2,…,m,01,2,\dots,m,0に対して適用すると∫ΩθNm dPθ=∑k=1mk Pθ({k})=∑k=1mk qk−1θ\int_{\Omega_{\theta}}N_m\,d\mathbb P_{\theta}=\sum_{k=1}^{m}k\,\mathbb P_{\theta}(\{k\})=\sum_{k=1}^{m}k\,q^{k-1}\thetaである。ここで、この分割と係数が定める関数はちょうどNmN_mであってNNではないことに注意する。NNはk>mk>mでも値kkを取るからである。

各点k∈Ωθk\in\Omega_{\theta}について、m≤m′m\le m'ならばNm(k)≤Nm′(k)N_m(k)\le N_{m'}(k)であり、m≥km\ge kのときNm(k)=k=N(k)N_m(k)=k=N(k)である。したがって(Nm)m≥1(N_m)_{m\ge1}は各点で単調非減少であり、その上限はNNである。§E9.7 定理 1.1を適用するとE[N]=∫ΩθN dPθ=lim⁡m→∞∑k=1mk qk−1θ\mathbb E[N]=\int_{\Omega_{\theta}}N\,d\mathbb P_{\theta}=\lim_{m\to\infty}\sum_{k=1}^{m}k\,q^{k-1}\thetaである。ここまでの議論はθ∈(0,1]\theta\in(0,1]の全体について成り立ち、θ=1\theta=1を除外していない。

級数の値を求める(θ=1\theta=1の場合)。q=0q=0である。k=1k=1の項は1⋅q0⋅θ=11\cdot q^{0}\cdot\theta=1であり(00=10^{0}=1という命題 4.2の証明と同じ規約による)、k≥2k\ge2の項はqk−1=0q^{k-1}=0であるから00である。ゆえにすべてのm≥1m\ge1について部分和は11に等しく、E[N]=1=1/θ\mathbb E[N]=1=1/\thetaである。

級数の値を求める(θ∈(0,1)\theta\in(0,1)の場合)。q∈(0,1)q\in(0,1)である。上の極限はθ∑k=1∞kqk−1\theta\sum_{k=1}^{\infty}kq^{k-1}と書くことができる。§E11.5 補題 1.1より∑k=0∞kqk=q(1−q)2=qθ2\displaystyle\sum_{k=0}^{\infty}kq^{k}=\frac{q}{(1-q)^{2}}=\frac{q}{\theta^{2}}である。左辺のk=0k=0の項は00であるから∑k=1∞kqk=q/θ2\sum_{k=1}^{\infty}kq^{k}=q/\theta^{2}であり、各部分和をq>0q>0で割って極限を取ると∑k=1∞kqk−1=1θ2\sum_{k=1}^{\infty}kq^{k-1}=\frac{1}{\theta^{2}}である。ゆえにE[N]=θ⋅1θ2=1θ\mathbb E[N]=\theta\cdot\dfrac{1}{\theta^{2}}=\dfrac1\thetaである。

いずれの場合もE[N]=1/θ\mathbb E[N]=1/\thetaは有限であるから、§E11.4 定義 1.1の意味でNNは可積分である。

総費用。cNcNは可積分であるから、§E11.4 命題 1.2をX=NX=N、Y=0Y=0、a=ca=c、b=0b=0に対して適用してE[cN]=cE[N]=c/θ\mathbb E[cN]=c\mathbb E[N]=c/\thetaである。仮定より各点で0≤S≤cN0\le S\le cNであり、SSとcNcNはいずれも非負の値を取る確率変数であるから、§E9.6 命題 2.2をf=Sf=S、g=cNg=cNに対して適用してE[S]≤E[cN]=c/θ\mathbb E[S]\le\mathbb E[cN]=c/\thetaである。とくにE[S]\mathbb E[S]は有限であるから、SSは§E11.4 定義 1.1の意味で可積分である。▨

例 4.6 (有限集合からの探索:手計算).S={1,2,3,4,5,6}S=\{1,2,3,4,5,6\}とし、QQを「33の倍数でも11でも44でもない」という述語とする。QQを満たす元は22と55の二つであるから、T={2,5}T=\{2,5\}、∣T∣=2\lvert T\rvert=2、∣S∣=6\lvert S\rvert=6である。

次の手続きを考える。SSから一様にランダムに元ssを選び、Q(s)Q(s)を判定する。真ならばssを出力して停止し、偽ならば繰り返す。

この手続きを定義 4.3の枠へ収める。Y=S\mathcal Y=Sとし、計算したい写像ffの値を「QQを満たすSSの元」と定める。R0=SR_0=Sとし、g:R0→Y∪{⊥}g:R_0\to\mathcal Y\cup\{\bot\}を、Q(r)Q(r)が真のときg(r)=rg(r)=r、偽のときg(r)=⊥g(r)=\botと定める。QQの判定に要するステップ数の上界をccとする。反復の回数に上限が無いので、この手続きは定義 1.1の乱択アルゴリズムではなく、定義 3.1 (1)を直接適用することはできない。

Las Vegas 型であること。g(r)≠⊥g(r)\ne\botならばQ(r)Q(r)は真であり、g(r)=rg(r)=rはffの値の条件を満たす。すなわち検証可能性が成り立つ。ゆえに定義 4.3の意味で Las Vegas 型である。

一回の成功確率。θ=PR0(g≠⊥)=∣T∣/∣S∣=2/6=1/3\theta=\mathbb P_{R_0}(g\ne\bot)=\lvert T\rvert/\lvert S\rvert=2/6=1/3である。θ>0\theta>0であり、成功確率が正であるという条件も満たされる。

期待試行回数。定理 4.5よりE[N]=1/θ=3\mathbb E[N]=1/\theta=3である。

分布の値を手計算で確かめる。q=1−θ=2/3q=1-\theta=2/3としてPθ(N=1)=13=927,Pθ(N=2)=23⋅13=29=627,Pθ(N=3)=49⋅13=427\mathbb P_{\theta}(N=1)=\frac13=\frac9{27},\qquad \mathbb P_{\theta}(N=2)=\frac23\cdot\frac13=\frac29=\frac6{27},\qquad \mathbb P_{\theta}(N=3)=\frac49\cdot\frac13=\frac4{27}である。したがってPθ(N≤3)=9+6+427=1927\mathbb P_{\theta}(N\le3)=\dfrac{9+6+4}{27}=\dfrac{19}{27}である。他方命題 4.2 (2)よりPθ(N>3)=(2/3)3=8/27\mathbb P_{\theta}(N>3)=(2/3)^{3}=8/27であり、19/27+8/27=27/27=119/27+8/27=27/27=1で整合する。

期待値の部分和による検算。KK回で打ち切ったときの試行回数min⁡(N,K)\min(N,K)の期待値を計算する。min⁡(N,K)=∑j=0K−11{N>j}\min(N,K)=\sum_{j=0}^{K-1}\mathbf 1_{\{N>j\}}が各点で成り立つ。実際、N(k)=k≤KN(k)=k\le Kのときは右辺のj=0,…,k−1j=0,\dots,k-1の項が11、他が00で和はkkであり、N(k)>KN(k)>KのときはKK個すべての項が11で和はKKである。ゆえに命題 4.2 (2)よりE[min⁡(N,K)]=∑j=0K−1(23)j\mathbb E[\min(N,K)]=\sum_{j=0}^{K-1}\left(\frac23\right)^{j}である。K=3K=3では1+23+49=9+6+49=199=2.111…1+\dfrac23+\dfrac49=\dfrac{9+6+4}{9}=\dfrac{19}{9}=2.111\ldotsであり、K=6K=6では243+162+108+72+48+32243=665243=2.736…\frac{243+162+108+72+48+32}{243}=\frac{665}{243}=2.736\ldotsである。いずれもE[N]=3\mathbb E[N]=3より小さく、KKを大きくすると33へ近づいている。実際§B1.1 公式 2.3より∑j=0K−1(2/3)j=3(1−(2/3)K)\sum_{j=0}^{K-1}(2/3)^{j}=3\bigl(1-(2/3)^{K}\bigr)であり、K=6K=6では3(1−64/729)=3⋅665729=6652433(1-64/729)=3\cdot\dfrac{665}{729}=\dfrac{665}{243}で一致する。

期待総費用。QQの判定に高々ccステップを要するとすると、総ステップ数を表す確率変数SSは各点で0≤S≤cN0\le S\le cNを満たす。定理 4.5の後半よりE[S]≤c/θ=3c\mathbb E[S]\le c/\theta=3cである。

5 一側誤りの独立反復による誤り確率の減少

一側誤りをもつ Monte Carlo 型アルゴリズムは、答が00である入力では決して誤らない。したがって、独立な乱数で何度か実行して一度でも11が出れば、その答は正しい。誤りうるのは、答が11である入力に対してすべての回が00を返す場合だけである。

5.1 証明方針

kk回の独立反復の確率空間を定義 2.1で取り、反復アルゴリズムの出力を各回の出力の最大値と定める。

答が00である入力では、各回の出力がすべて00であるから、最大値も00であり、誤りは起こらない。したがって一側誤りという性質は反復によって保たれる。

答が11である入力では、反復アルゴリズムが00を出力する事象は、各回が00を出力する事象の直積である。命題 2.2 (1)を、各成分を「一回の実行で00が出る」という事象に取って適用すると、その確率は各回の確率のkk乗になる。一回の確率は1−δ1-\delta以下であるから、kk乗は(1−δ)k(1-\delta)^{k}以下である。

最後に、(1−δ)k(1-\delta)^{k}がkkを大きくすると00へ近づくことから、任意に与えられた誤り確率の上限を達成する反復回数が存在することを示す。

定理 5.1.L⊆XL\subseteq\mathcal Xを判定問題とし、(A,T,R)(A,T,R)を定義 3.1 (3)の意味でLLに対する成功確率δ∈(0,1]\delta\in(0,1]の一側誤りアルゴリズムとする。整数k≥1k\ge1に対し、ρ=(ρ1,…,ρk)∈Rk\rho=(\rho_1,\dots,\rho_k)\in R^{k}を内部乱数とするアルゴリズムA(k)A^{(k)}をA(k)(x,ρ)=max⁡1≤i≤kA(x,ρi),T(k)(x,ρ)=∑i=1kT(x,ρi)A^{(k)}(x,\rho)=\max_{1\le i\le k}A(x,\rho_i),\qquad T^{(k)}(x,\rho)=\sum_{i=1}^{k}T(x,\rho_i)で定める。RkR^{k}には定義 2.1の確率測度PR(k)\mathbb P_R^{(k)}を入れる。このとき次が成り立つ。

  1. x∉Lx\notin Lを満たすすべてのxxと、すべてのρ∈Rk\rho\in R^{k}についてA(k)(x,ρ)=0A^{(k)}(x,\rho)=0である。
  2. x∈Lx\in Lを満たすすべてのxxについてPR(k)(A(k)(x,⋅)=0)≤(1−δ)k\mathbb P_R^{(k)}\bigl(A^{(k)}(x,\cdot)=0\bigr)\le(1-\delta)^{k}が成り立つ。すなわちA(k)A^{(k)}はLLに対する成功確率1−(1−δ)k1-(1-\delta)^{k}の一側誤りアルゴリズムである。
  3. 任意のη∈(0,1)\eta\in(0,1)に対し、整数k≥1k\ge1が存在して(1−δ)k≤η(1-\delta)^{k}\le\etaが成り立つ。そのkkに対しA(k)A^{(k)}の誤り確率はη\eta以下である。
  4. T(k)(x,ρ)≤kmax⁡r∈RT(x,r)T^{(k)}(x,\rho)\le k\max_{r\in R}T(x,r)が成り立つ。すなわち反復による実行時間の増加は高々kk倍である。

証明.(1)を示す。x∉Lx\notin Lとする。定義 3.1 (3)の定義 3.1 条件 (a)より、すべてのr∈Rr\in RについてA(x,r)=0A(x,r)=0である。ゆえにρ∈Rk\rho\in R^{k}に対しA(x,ρi)=0A(x,\rho_i)=0が各iiで成り立ち、その最大値も00である。

(2)を示す。x∈Lx\in Lとする。AAの出力は00または11であるから、A(k)(x,ρ)=0A^{(k)}(x,\rho)=0であることと、すべてのiiについてA(x,ρi)=0A(x,\rho_i)=0であることは同値である。B={r∈R: A(x,r)=0}B=\{r\in R:\ A(x,r)=0\}と置くと{ρ∈Rk: A(k)(x,ρ)=0}={ρ: ρi∈B (i=1,…,k)}\bigl\{\rho\in R^{k}:\ A^{(k)}(x,\rho)=0\bigr\}=\{\rho:\ \rho_i\in B\ (i=1,\dots,k)\}である。命題 2.2 (1)をB1=⋯=Bk=BB_1=\dots=B_k=Bに対して適用するとPR(k)(A(k)(x,⋅)=0)=PR(B)k\mathbb P_R^{(k)}\bigl(A^{(k)}(x,\cdot)=0\bigr)=\mathbb P_R(B)^{k}である。定義 3.1 (3)の定義 3.1 条件 (b)よりPR(A(x,⋅)=1)≥δ\mathbb P_R(A(x,\cdot)=1)\ge\deltaであり、BBはその補事象であるからPR(B)≤1−δ\mathbb P_R(B)\le1-\deltaである。0≤PR(B)≤1−δ0\le\mathbb P_R(B)\le1-\deltaでありt↦tkt\mapsto t^{k}は[0,∞)[0,\infty)上で単調非減少であるからPR(B)k≤(1−δ)k\mathbb P_R(B)^{k}\le(1-\delta)^{k}である。

(1)とあわせると、A(k)A^{(k)}はx∉Lx\notin Lで決して11を出力せず、x∈Lx\in Lで11を出力する確率が1−(1−δ)k1-(1-\delta)^{k}以上であるから、成功確率1−(1−δ)k1-(1-\delta)^{k}の一側誤りアルゴリズムである。

(3)を示す。δ=1\delta=1のときは1−δ=01-\delta=0であり、k=1k=1で(1−δ)1=0≤η(1-\delta)^{1}=0\le\etaである。δ∈(0,1)\delta\in(0,1)のときは0<1−δ<10<1-\delta<1であるから、§B1.7 定理 2.1の第3項より(1−δ)k→0(1-\delta)^{k}\to0(k→∞k\to\infty)である。したがって、η>0\eta>0に対して整数kkが存在して(1−δ)k≤η(1-\delta)^{k}\le\etaが成り立つ。このkkに対し(2)より誤り確率はη\eta以下である。

(4)を示す。M=max⁡r∈RT(x,r)M=\max_{r\in R}T(x,r)と置く。RRは空でない有限集合であるからこの最大値は定まる。各iiについてT(x,ρi)≤MT(x,\rho_i)\le Mであるから、kk個の和はkMkM以下である。▨

例 5.2 (有限集合上の存在判定:手計算).S={1,2,3,4,5,6}S=\{1,2,3,4,5,6\}と述語QQを例 4.6と同じに取り、T={s∈S: Q(s)}={2,5}T=\{s\in S:\ Q(s)\}=\{2,5\}とする。判定問題を「与えられたSSとQQに対してT≠∅T\ne\emptysetであるか」とする。

アルゴリズムAAは次のとおりである。SSから一様にランダムにrrを選び、Q(r)Q(r)が真ならば11、偽ならば00を出力する。

一側誤りであること。T=∅T=\emptysetならば、どのrrについてもQ(r)Q(r)は偽であるから、AAは常に00を出力する。T≠∅T\ne\emptysetのとき、AAが11を出力する確率は∣T∣/∣S∣\lvert T\rvert/\lvert S\rvertである。いまの入力では2/6=1/32/6=1/3であるから、成功確率δ=1/3\delta=1/3の一側誤りアルゴリズムである。

五回の反復。定理 5.1 (2)より、k=5k=5のときの誤り確率の上界は(1−13)5=(23)5=2535=32243=0.131687…\left(1-\frac13\right)^{5}=\left(\frac23\right)^{5}=\frac{2^{5}}{3^{5}}=\frac{32}{243}=0.131687\ldotsである。35=2433^{5}=243と25=322^{5}=32は直接計算した値である。

誤り確率を1/1001/100以下にする反復回数。(2/3)k≤1/100(2/3)^{k}\le1/100を満たす最小のkkを求める。(23)11=2048177147=0.011561…,(23)12=4096531441=0.007707…\left(\frac23\right)^{11}=\frac{2048}{177147}=0.011561\ldots,\qquad \left(\frac23\right)^{12}=\frac{4096}{531441}=0.007707\ldotsである。ここで311=1771473^{11}=177147、312=5314413^{12}=531441、211=20482^{11}=2048、212=40962^{12}=4096である。0.011561>0.010.011561>0.01かつ0.007707<0.010.007707<0.01であるから、求める最小のkkは1212である。

実行時間との対比。QQの判定に高々ccステップを要するとすると、A(12)A^{(12)}の実行時間は定理 5.1 (4)より12c12c以下である。すなわち、実行時間を定数倍だけ増やして誤り確率を2/32/3から1/1001/100以下へ下げている。誤り確率をη\eta以下にするための反復回数はη\etaを小さくするにつれて増えるが、その増え方は1/η1/\etaに比例するのではなく、(2/3)k(2/3)^{k}という幾何的な減少の逆であるから、η\etaを1010分の11にするごとに一定数の反復を加えれば足りる。実際、(2/3)6=64/729=0.087791…(2/3)^{6}=64/729=0.087791\ldotsであり、66回の反復ごとに誤り確率が1/101/10以下の割合になる。

6 演習

問題 6.1.

  1. 命題 2.2 (1)の証明を、k=3k=3の場合について帰納法の形を使わずに書き下せ。分配法則を用いる箇所を明示せよ。
  2. 命題 2.2 (3)の証明で、残りの添字についてBi=Ω0B_i=\Omega_0と置いた。この置き換えが (1) の適用を可能にする理由と、P0(Ω0)=1\mathbb P_0(\Omega_0)=1が最後にどのように用いられるかを述べよ。
  3. 命題 4.2 (2)の証明をθ∈(0,1)\theta\in(0,1)の場合について再現せよ。θ=1\theta=1の場合を別に扱う必要がある理由を、q=0q=0のときの等比級数の扱いに注目して述べよ。
  4. 定理 4.5の証明で、NmN_mを導入せずにE[N]\mathbb E[N]を直接無限和として書くことができない理由を、§E9.6 定義 1.1が非負単関数についての定義であることに即して述べよ。
  5. 定理 4.5の証明を修正して、E[N2]\mathbb E[N^{2}]を求めよ。§E11.5 補題 1.1の第三の等式を用いること。得られた値からVar⁡(N)\operatorname{Var}(N)を計算せよ。
  6. 例 4.6で用いた各点の等式min⁡(N,K)=∑j=0K−11{N>j}\min(N,K)=\sum_{j=0}^{K-1}\mathbf 1_{\{N>j\}}を、N(k)≤KN(k)\le Kの場合とN(k)>KN(k)>Kの場合に分けて証明せよ。この等式と命題 4.2 (2)からE[min⁡(N,K)]\mathbb E[\min(N,K)]の閉じた式を導け。
  7. 定理 5.1 (2)の証明を、A(k)A^{(k)}の出力を最大値ではなく「一度でも11が出たら11」と言い換えた形で再現せよ。この二つの定め方が一致することを、AAの出力が00と11に限ることから示せ。
  8. 定理 5.1を、両側に誤りをもつアルゴリズムへそのまま適用することができない理由を指摘せよ。x∉Lx\notin Lのときにも誤りうるアルゴリズムでは、(1) の結論がどこで破綻するかを述べよ。
  9. 定理 5.1 (3)の証明では§B1.7 定理 2.1を用いた。同じ結論を、δ∈(0,1)\delta\in(0,1)に対し(1−δ)k≤11+kδ′(1-\delta)^{k}\le\dfrac{1}{1+k\delta'}となるようなδ′\delta'を見つける形で導くことを試み、どのような不等式が必要になるかを述べよ。
  10. 例 4.6の手続きを、試行回数をKK回で打ち切り、KK回とも失敗したときはSSの任意の元を出力する手続きへ変える。この打ち切り版が定義 1.1の乱択アルゴリズムであることを、内部乱数の集合をR=SKR=S^{K}と取って確かめよ。とくに、打ち切り版は実行ステップ数が全域で定まる点が、定義 4.3の打ち切り無しの手続きと異なることを述べよ。そのうえで、打ち切り版が定義 3.1 (1)と (2) のどちらの型になるかを述べ、その誤り確率をKKで表せ。

8 扱った範囲と次の記事

本記事では、固定した入力に対する内部乱数の有限確率空間を定め、kk回の独立反復に対応する直積確率空間を構成して、事象の確率が各回の確率の積へ分解することと射影が相互独立であることを証明した。Las Vegas 型と Monte Carlo 型を区別し、打ち切り無しの反復については検証つき反復アルゴリズムとして別に Las Vegas 性を定めた。そのうえで、成功確率θ\thetaの試行を成功するまで繰り返すときの試行回数の期待値が1/θ1/\thetaであること、および成功確率δ\deltaで一側誤りをもつアルゴリズムのkk回の独立反復が誤り確率を(1−δ)k(1-\delta)^{k}以下へ下げることを証明した。いずれも六元集合の上の具体例で数値を計算した。

両側に誤りをもつアルゴリズムを多数決によって改良する議論、確率的計算量クラス、および乱択によって最悪計算量そのものを下げるアルゴリズムは扱っていない。乱数の質、すなわち擬似乱数の生成についても扱っていない。

次の記事では、乱数を用いずに、最適解に対する保証つきの近似解を多項式時間で求めるアルゴリズムを扱う。近似比を定義し、極大マッチングから構成する頂点被覆と、貪欲な集合被覆について、近似保証を証明する。

参考文献

  1. Rajeev Motwani and Prabhakar Raghavan, Randomized Algorithms, Cambridge University Press, Cambridge, 1995.Las Vegas 型と Monte Carlo 型の区別、および一側誤りの独立反復による減少の定式化を参考にした。
  2. Michael Mitzenmacher and Eli Upfal, Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis, 2nd ed., Cambridge University Press, 2017.内部乱数の確率空間の置き方と、成功するまでの試行回数の期待値の計算を参考にした。
  3. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, Cambridge, Massachusetts, 2022.乱択アルゴリズムにおける確率の置き方と、期待実行時間の定義を参考にした。

前提記事

13 本の記事・単元を表示