§E18.14確率的計算量

最終更新

確率的アルゴリズムは、入力だけでなく内部で生成した乱数にも動作が依存する。一つの入力に対して複数の計算分枝が生じる点は非決定性機械と似ているが、確率的計算では、受理分枝の存在ではなく、全乱数列に占める受理分枝の割合によって正しさを定める。計算量クラスを定めるためには、各入力に対する確率条件と全ての入力長に共通する多項式時間上界を同時に要求する。

1 確率的 Turing 機械

定義 1.1. 確率的 Turing 機械 (probabilistic Turing machine)MMは、通常の決定性多テープ TM に読取り専用の乱数テープを加えた機械である。乱数テープのヘッドは位置00から始まり、乱数ビットを一つ読むたびに右へ一マス進み、左へ戻らない。乱数テープの各マスには、互いに独立で

Pr⁡[ri=0]=Pr⁡[ri=1]=12\Pr[r_i=0]=\Pr[r_i=1]=\frac12

を満たすビットが置かれる。入力xxと乱数列rrを固定すれば計算は決定的になるので、その計算をM(x;r)M(x;r)と書く。

MMが全ての長さnnの入力と全ての乱数列に対してp(n)p(n)段以内に停止するなら、読み取る乱数は高々p(n)p(n)ビットである。未使用のビットも補ってr∈{0,1}p(n)r\in\{0,1\}^{p(n)}とすると、受理確率 (acceptance probability) は

Pr⁡r[M(x;r) が受理する]=∣{r∈{0,1}p(∣x∣):M(x;r) が受理する}∣2p(∣x∣)\Pr_r[M(x;r)\text{ が受理する}] =\frac{|\{r\in\{0,1\}^{p(|x|)}:M(x;r)\text{ が受理する}\}|} {2^{p(|x|)}}

である。

無限乱数列そのものへ未定義の確率を割り当てず、まず有限 prefix にだけ確率を定める。最初のmmビットだけで決まる事象AAに対して、

Pr⁡[A]=∣{u∈{0,1}m:u が A を満たす}∣2m\Pr[A] =\frac{|\{u\in\{0,1\}^m:u\text{ が }A\text{ を満たす}\}|}{2^m}

と定める。より長い prefix へ未使用ビットを補っても、分子と分母が同じ22の冪倍になるので値は変わらない。停止時間に関する無限和と極限は、次の補題によって有限 prefix の確率から定める。

補題 1.2. 一方向乱数テープを読む確率的 TM の、非負整数値または∞\inftyをとる停止時間をTTとする。次が成り立つ。

  1. 打切り時間mmまでの事象{T>m}\{T>m\}は最初のmm個以下の乱数ビットだけで決まる。 Pr⁡[T=∞]=lim⁡m→∞Pr⁡[T>m],E[T]=∑j≥0Pr⁡[T>j]\Pr[T=\infty]=\lim_{m\to\infty}\Pr[T>m], \qquad \mathbb E[T]=\sum_{j\ge0}\Pr[T>j] と定めることができる。特にE[T]<∞\mathbb E[T]<\inftyならばPr⁡[T=∞]=0\Pr[T=\infty]=0である。
  2. 各m∈Nm\in\mathbb Nに対してY(m)=min⁡{Y,m}Y^{(m)}=\min\{Y,m\}が有限個の乱数ビットだけで決まる、非負整数値または∞\infty値の確率変数YYを考える。 E[Y]=lim⁡m→∞E[Y(m)]\mathbb E[Y]=\lim_{m\to\infty}\mathbb E[Y^{(m)}] と定めると、全ての実数a>0a>0について Pr⁡[Y≥a]≤E[Y]a\Pr[Y\ge a]\le\frac{\mathbb E[Y]}a である。
  3. 事象A1,…,AkA_1,\ldots,A_kが互いに素な有限乱数ビット区間だけでそれぞれ決まるならば、 Pr⁡[A1∩⋯∩Ak]=∏i=1kPr⁡[Ai].\Pr[A_1\cap\cdots\cap A_k] =\prod_{i=1}^k\Pr[A_i]. 同じ区間から定まる有限値確率変数YiY_iについて、 E[∏i=1kYi]=∏i=1kE[Yi]\mathbb E\left[\prod_{i=1}^kY_i\right] =\prod_{i=1}^k\mathbb E[Y_i] である。

証明.T(m)=min⁡{T,m}T^{(m)}=\min\{T,m\}とする。T(m)T^{(m)}は高々mm段の計算だけで決まり、一段で乱数を高々一つ読むので、最初のmmビットだけに依存する。有限和の順序を交換すると、

E[T(m)]=∑t=0mt Pr⁡[T(m)=t]=∑t=0m∑j=0t−1Pr⁡[T(m)=t]=∑j=0m−1Pr⁡[T>j].\begin{aligned} \mathbb E[T^{(m)}] &=\sum_{t=0}^m t\,\Pr[T^{(m)}=t]\\ &=\sum_{t=0}^m\sum_{j=0}^{t-1}\Pr[T^{(m)}=t] =\sum_{j=0}^{m-1}\Pr[T>j]. \end{aligned}

右辺はmmとともに非減少なので、その極限をE[T]\mathbb E[T]と定める。事象{T>m}\{T>m\}はmmとともに減少し、全てのmmで生き残る乱数列がT=∞T=\inftyを与えるため、Pr⁡[T=∞]\Pr[T=\infty]を表示された極限で定める。E[T]<∞\mathbb E[T]<\inftyなら級数の各項Pr⁡[T>m]\Pr[T>m]は00へ収束するので、Pr⁡[T=∞]=0\Pr[T=\infty]=0である。

Y(m)Y^{(m)}は{0,…,m}\{0,\ldots,m\}の有限集合に値をとり、仮定により有限 prefix 上の確率変数である。m≥am\ge aとすると{Y(m)≥a}={Y≥a}\{Y^{(m)}\ge a\}=\{Y\ge a\}であるから、有限和の各項のうちY(m)≥aY^{(m)}\ge aを満たすものだけを残して

E[Y(m)]≥∑y≥ayPr⁡[Y(m)=y]≥aPr⁡[Y(m)≥a]=aPr⁡[Y≥a]\mathbb E[Y^{(m)}] \ge\sum_{y\ge a}y\Pr[Y^{(m)}=y] \ge a\Pr[Y^{(m)}\ge a] =a\Pr[Y\ge a]

を得る。左辺についてm→∞m\to\inftyの極限を取れば、主張 (2)を得る。特にE[Y]<∞\mathbb E[Y]<\inftyである場合にも、Y=∞Y=\inftyとなる乱数列を除外せずに同じ評価を適用することができる。

主張 (3)を示す。AiA_iが依存する区間の長さをmim_iとし、その区間でAiA_iを満たすビット列の個数をaia_iとする。区間が互いに素であるため、全区間の割当てで全てのAiA_iを満たすものは∏iai\prod_i a_i個あり、全割当ては2∑imi2^{\sum_i m_i}個ある。したがって、

Pr⁡[A1∩⋯∩Ak]=∏iai2∑imi=∏iai2mi.\Pr[A_1\cap\cdots\cap A_k] =\frac{\prod_i a_i}{2^{\sum_i m_i}} =\prod_i\frac{a_i}{2^{m_i}}.

YiY_iの有限値集合をViV_iとする。直前に証明した事象の積公式を各{Yi=yi}\{Y_i=y_i\}へ適用し、有限和を分配すると、

E[∏iYi]=∑(y1,…,yk)∈V1×⋯×Vk(∏iyi)Pr⁡[Y1=y1,…,Yk=yk]=∑(y1,…,yk)∏i(yiPr⁡[Yi=yi])=∏i∑yi∈ViyiPr⁡[Yi=yi]=∏iE[Yi].\begin{aligned} \mathbb E\left[\prod_iY_i\right] &=\sum_{(y_1,\ldots,y_k)\in V_1\times\cdots\times V_k} \left(\prod_i y_i\right) \Pr[Y_1=y_1,\ldots,Y_k=y_k]\\ &=\sum_{(y_1,\ldots,y_k)} \prod_i\bigl(y_i\Pr[Y_i=y_i]\bigr)\\ &=\prod_i\sum_{y_i\in V_i}y_i\Pr[Y_i=y_i] =\prod_i\mathbb E[Y_i]. \end{aligned}

全ての和は有限なので、和の順序交換に追加の収束仮定は不要である。▨

乱数を固定すると決定的計算になるため、独立反復では各回に互いに素な乱数ビット区間を割り当てる。補題 1.2により、各回の受理事象または誤り事象の共通部分の確率は各確率の積になる。

2 片側誤り、零誤り、両側誤り

定義 2.1. 言語L⊆Σ∗L\subseteq\Sigma^*が RP\mathsf{RP} (RP) に属するとは、ある確率的 TMMMと多項式ppが存在し、MMが全ての入力と全ての乱数列でp(∣x∣)p(|x|)段以内に停止し、任意のx∈Σ∗x\in\Sigma^*について

{x∈L ⟹ Pr⁡r[M(x;r) が受理する]≥12,x∉L ⟹ Pr⁡r[M(x;r) が受理する]=0\begin{cases} x\in L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]\ge\frac12,\\ x\notin L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]=0 \end{cases}

を満たすことをいう。

RP\mathsf{RP}の機械は、言語の外側の入力を誤って受理しないが、言語の要素を誤って拒否することがある。

定義 2.2. 言語L⊆Σ∗L\subseteq\Sigma^*が coRP\mathsf{coRP} (coRP) に属するとは、ある確率的 TMMMと多項式ppが存在し、MMが全ての入力と全ての乱数列でp(∣x∣)p(|x|)段以内に停止し、任意のx∈Σ∗x\in\Sigma^*について

{x∈L ⟹ Pr⁡r[M(x;r) が受理する]=1,x∉L ⟹ Pr⁡r[M(x;r) が受理する]≤12\begin{cases} x\in L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]=1,\\ x\notin L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]\le\frac12 \end{cases}

を満たすことをいう。

coRP\mathsf{coRP}の機械は、言語の要素を誤って拒否しないが、言語の外側の入力を誤って受理することがある。二つの片側誤りクラスは、補言語を取る操作で互いに移り合う。

命題 2.3. 言語L⊆Σ∗L\subseteq\Sigma^*について、L∈coRPL\in\mathsf{coRP}であることとL‾=Σ∗∖L∈RP\overline L=\Sigma^*\setminus L\in\mathsf{RP}であることは同値である。

証明.L∈coRPL\in\mathsf{coRP}とし、定義の機械MMと多項式ppを取る。MMの受理と拒否を入れ替えた機械M′M'も、全ての入力と全ての乱数列でp(∣x∣)p(|x|)段以内に停止する。x∈L‾x\in\overline L、すなわちx∉Lx\notin Lならば、MMの受理確率は高々1/21/2であるから、M′M'の受理確率は少なくとも1/21/2である。x∉L‾x\notin\overline L、すなわちx∈Lx\in Lならば、MMの受理確率は11であるから、M′M'の受理確率は00である。したがってM′M'はL‾\overline Lに対するRP\mathsf{RP}の条件を満たす。

逆にL‾∈RP\overline L\in\mathsf{RP}とし、その機械の受理と拒否を入れ替える。x∈Lx\in Lならば元の機械の受理確率は00なので、入れ替えた機械は確率11で受理する。x∉Lx\notin Lならば元の機械の受理確率は少なくとも1/21/2なので、入れ替えた機械の受理確率は高々1/21/2である。したがって、入れ替えた機械はLLに対するcoRP\mathsf{coRP}の条件を満たす。▨

定義 2.4. 言語L⊆Σ∗L\subseteq\Sigma^*が ZPP\mathsf{ZPP} (ZPP) に属するとは、ある確率的 TMZZと多項式ppが存在し、任意の入力xxについて次の二条件を満たすことをいう。

  1. Z(x)Z(x)は確率11で停止し、停止した全ての計算でx∈Lx\in Lの場合に受理し、x∉Lx\notin Lの場合に拒否する。
  2. 乱数に関する停止時間をTZ(x)T_Z(x)とすると、E[TZ(x)]≤p(∣x∣)\mathbb E[T_Z(x)]\le p(|x|)である。

この条件を満たす機械を零誤り期待多項式時間機械 (zero-error expected polynomial-time machine) という。

定義 2.5. 言語L⊆Σ∗L\subseteq\Sigma^*が BPP\mathsf{BPP} (BPP) に属するとは、ある確率的 TMMMと多項式ppが存在し、MMが全ての入力と全ての乱数列でp(∣x∣)p(|x|)段以内に停止し、任意のx∈Σ∗x\in\Sigma^*について

{x∈L ⟹ Pr⁡r[M(x;r) が受理する]≥23,x∉L ⟹ Pr⁡r[M(x;r) が受理する]≤13\begin{cases} x\in L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]\ge\frac23,\\ x\notin L\ \Longrightarrow\ \Pr_r[M(x;r)\text{ が受理する}]\le\frac13 \end{cases}

を満たすことをいう。

BPP\mathsf{BPP}の機械は、言語の内側と外側の両方で誤る可能性があるが、どの入力でも正しい結論を返す確率が少なくとも2/32/3である。

例 2.6. 成分が00と11のn×nn\times n整数行列の三つ組を標準的な方法で符号化した語を⟨A,B,C⟩\langle A,B,C\rangleと書き、言語を

L={⟨A,B,C⟩:AB≠C}L=\{\langle A,B,C\rangle:AB\ne C\}

と定める。次の機械MMを考える。MMは、入力が正しい符号でなければ直ちに拒否する。正しい符号ならば乱数ビットをnn個読んでベクトルr∈{0,1}nr\in\{0,1\}^nを作り、行列とベクトルの積BrBr、A(Br)A(Br)、CrCrを整数の演算で順に計算し、A(Br)≠CrA(Br)\ne Crの場合に受理する。行列とベクトルの積一回は成分の乗算と加算O(n2)O(n^2)回で計算することができるため、MMは全ての入力と全ての乱数列で入力長の多項式段数以内に停止する。

AB=CAB=Cならば、結合法則により任意のrrについてA(Br)=(AB)r=CrA(Br)=(AB)r=Crであるから、受理確率は00である。AB≠CAB\ne Cならば、D:=AB−CD:=AB-Cは零行列でないので、dij≠0d_{ij}\ne0となる成分を取ることができる。rjr_j以外の成分を任意に固定すると

(Dr)i=dijrj+∑k≠jdikrk(Dr)_i=d_{ij}r_j+\sum_{k\ne j}d_{ik}r_k

であり、rj=0r_j=0とrj=1r_j=1に対する二つの値の差はdij≠0d_{ij}\ne0である。したがって、固定した成分ごとに(Dr)i=0(Dr)_i=0となるrjr_jの値は高々一つであり、Dr=0Dr=0となるr∈{0,1}nr\in\{0,1\}^nは高々2n−12^{n-1}個である。ゆえに

Pr⁡r[M(⟨A,B,C⟩;r) が受理する]=Pr⁡r[Dr≠0]≥12\Pr_r[M(\langle A,B,C\rangle;r)\text{ が受理する}] =\Pr_r[Dr\ne0]\ge\frac12

であり、MMは定義 2.1の二条件を満たす。よってL∈RPL\in\mathsf{RP}である。

同じ検査で受理の向きだけを入れ替え、正しい符号に対してA(Br)=CrA(Br)=Crの場合に受理する機械をM′M'とすると、AB=CAB=Cの入力は確率11で受理され、AB≠CAB\ne Cの入力の受理確率は高々1/21/2であり、正しい符号でない入力は受理されない。したがってM′M'は言語{⟨A,B,C⟩:AB=C}\{\langle A,B,C\rangle:AB=C\}に対する定義 2.2の二条件を満たす。一回の検査も成功確率の数値1/21/2も共通であり、どちら側の入力で誤り確率が00になるかがクラスを区別する。

n=2n=2の場合を一つ計算する。

A=(1101),B=C=(1001)A=\begin{pmatrix}1&1\\0&1\end{pmatrix},\qquad B=C=\begin{pmatrix}1&0\\0&1\end{pmatrix}

ではAB=A≠CAB=A\ne Cであり、D=AB−C=(0100)D=AB-C=\begin{pmatrix}0&1\\0&0\end{pmatrix}、Dr=(r2,0)TDr=(r_2,0)^{\mathsf T}である。四つの乱数ベクトルのうちr2=1r_2=1となる二つだけがDr≠0Dr\ne0を与えるため、MMの受理確率はちょうど1/21/2である。

3 零誤りと二種類の片側誤り

零誤り期待多項式時間から最悪時多項式時間の片側誤りを得る方向では、期待時間の二倍で計算を打ち切る。逆方向では、二つの片側誤り機械のうち、正しい結論を保証する側が成功するまで反復する。

定理 3.1.

ZPP=RP∩coRP\mathsf{ZPP}=\mathsf{RP}\cap\mathsf{coRP}

である。

証明. 最初にL∈ZPPL\in\mathsf{ZPP}とし、ZZと期待時間上界ppを定義の機械と多項式とする。p(n)≥1p(n)\ge1となるように、必要ならppをp+1p+1へ置き換える。入力xxでZZを2p(∣x∣)2p(|x|)段だけ実行し、その時点で停止していなければ拒否する機械RRを構成する。補題 1.2 (2)により

Pr⁡[TZ(x)>2p(∣x∣)]≤E[TZ(x)]2p(∣x∣)≤12\Pr[T_Z(x)>2p(|x|)] \le\frac{\mathbb E[T_Z(x)]}{2p(|x|)} \le\frac12

である。x∈Lx\in LならばZZが時間内に停止した場合にRRは受理するので、受理確率は少なくとも1/21/2である。x∉Lx\notin LならばZZは受理することがなく、RRの受理確率も00である。したがってRRはRP\mathsf{RP}の機械である。

同じ打切りで、時間切れの場合に受理する機械CCを構成する。x∈Lx\in Lならば、ZZが時間内に停止すれば正しく受理し、時間切れでもCCは受理するので、受理確率は11である。x∉Lx\notin Lならば、CCが受理するのは時間切れの場合だけであり、その確率は高々1/21/2である。したがってCCはcoRP\mathsf{coRP}の機械である。これでZPP⊆RP∩coRP\mathsf{ZPP}\subseteq\mathsf{RP}\cap\mathsf{coRP}を得る。

逆に、L∈RP∩coRPL\in\mathsf{RP}\cap\mathsf{coRP}とする。RRをLLに対するRP\mathsf{RP}の機械、CCをLLに対するcoRP\mathsf{coRP}の機械とする。次の一回の試行を、毎回新しい独立な乱数で反復する。

  1. R(x)R(x)とC(x)C(x)を実行する。
  2. R(x)R(x)が受理したら受理して停止する。
  3. C(x)C(x)が拒否したら拒否して停止する。
  4. どちらの保証付き結論も得られなければ次の試行へ進む。

x∈Lx\in LならばCCは拒否せず、RRが受理した場合だけ全体が受理する。この結論は正しい。一回の停止確率はRRの受理確率であり、少なくとも1/21/2である。x∉Lx\notin LならばRRは受理せず、CCが拒否した場合だけ全体が拒否する。この結論も正しく、一回の停止確率は少なくとも1/21/2である。各試行には互いに素な乱数ビット区間を割り当てるので、補題 1.2 (3)により、どちらの場合も試行回数NNについて

Pr⁡[N>j]≤2−j\Pr[N>j]\le2^{-j}

であり、

Pr⁡[N=∞]=lim⁡j→∞Pr⁡[N>j]≤lim⁡j→∞2−j=0\Pr[N=\infty] =\lim_{j\to\infty}\Pr[N>j] \le\lim_{j\to\infty}2^{-j}=0

となる。また、同補題の停止時間の定義により

E[N]=∑j≥0Pr⁡[N>j]≤∑j≥02−j=2\mathbb E[N] =\sum_{j\ge0}\Pr[N>j] \le\sum_{j\ge0}2^{-j}=2

となる。一回の試行時間を共通の多項式q(∣x∣)q(|x|)で抑えると、総時間はq(∣x∣)Nq(|x|)N以下であり、その期待値は2q(∣x∣)2q(|x|)以下である。結論は停止した全ての計算で正しいので、構成した機械は零誤り期待多項式時間機械である。これで逆包含を得る。▨

4 独立反復による誤り減少

片側誤りでは、誤り得ない結論を一度でも得たか、全ての試行で得たかによって出力を決める。両側誤りでは、独立試行の多数決を用いる。

定理 4.1.L∈RPL\in\mathsf{RP}とし、定義の一回の受理確率下界を1/21/2とする。独立にkk回実行し、少なくとも一回受理したら受理する機械では、x∉Lx\notin Lの受理確率は00のままであり、x∈Lx\in Lの拒否確率は高々2−k2^{-k}である。

L∈coRPL\in\mathsf{coRP}の場合、独立にkk回実行して全ての回が受理した場合だけ受理すれば、x∈Lx\in Lの受理確率は11のままであり、x∉Lx\notin Lの受理確率は高々2−k2^{-k}である。

証明.RP\mathsf{RP}の場合、x∉Lx\notin Lでは各回の受理確率が00なので、少なくとも一回受理する確率も00である。x∈Lx\in Lでは各回の拒否確率が高々1/21/2である。独立性により、全kk回が拒否する確率は各確率の積であり、高々(1/2)k(1/2)^kである。

coRP\mathsf{coRP}の場合、x∈Lx\in Lでは各回が確率11で受理するので、全ての回も確率11で受理する。x∉Lx\notin Lでは各回の受理確率が高々1/21/2であり、独立性により全kk回が受理する確率は高々(1/2)k(1/2)^kである。▨

両側誤りの多数決について、Chernoff 境界の一般形を仮定せず、指数モーメントを直接評価する。

補題 4.2.X1,…,XkX_1,\ldots,X_kを独立な{0,1}\{0,1\}値確率変数とし、Pr⁡[Xi=1]≤1/3\Pr[X_i=1]\le1/3とする。このとき

Pr⁡[∑i=1kXi≥k2]≤(432)k.\Pr\left[\sum_{i=1}^kX_i\ge\frac k2\right] \le \left(\frac4{3\sqrt2}\right)^k.

特にρ=4/(32)<1\rho=4/(3\sqrt2)<1と置けば、右辺はρk\rho^kで指数的に減少する。

証明.S=∑iXiS=\sum_iX_iと置く。事象S≥k/2S\ge k/2では2S≥2k/22^S\ge2^{k/2}なので、補題 1.2 (2)を非負変数2S2^Sへ適用すると、

Pr⁡[S≥k/2]≤E[2S]2k/2\Pr[S\ge k/2] \le\frac{\mathbb E[2^S]}{2^{k/2}}

となる。各XiX_iは互いに素な有限乱数ビット区間から定まり、その値は00または11である。したがって、有限和を直接分配すると、

E[2S]=∑(x1,…,xk)∈{0,1}k2x1+⋯+xkPr⁡[X1=x1,…,Xk=xk]=∑(x1,…,xk)∏i=1k(2xiPr⁡[Xi=xi])=∏i=1k∑xi∈{0,1}2xiPr⁡[Xi=xi]=∏i=1kE[2Xi].\begin{aligned} \mathbb E[2^S] &=\sum_{(x_1,\ldots,x_k)\in\{0,1\}^k} 2^{x_1+\cdots+x_k} \Pr[X_1=x_1,\ldots,X_k=x_k]\\ &=\sum_{(x_1,\ldots,x_k)} \prod_{i=1}^k\bigl(2^{x_i}\Pr[X_i=x_i]\bigr)\\ &=\prod_{i=1}^k \sum_{x_i\in\{0,1\}}2^{x_i}\Pr[X_i=x_i] =\prod_{i=1}^k\mathbb E[2^{X_i}]. \end{aligned}

第2の等号では補題 1.2の事象の積公式を用いた。pi=Pr⁡[Xi=1]≤1/3p_i=\Pr[X_i=1]\le1/3とすると

E[2Xi]=(1−pi)20+pi21=1+pi≤43.\mathbb E[2^{X_i}] =(1-p_i)2^0+p_i2^1 =1+p_i\le\frac43.

したがって

Pr⁡[S≥k/2]≤(4/3)k2k/2=(432)k.\Pr[S\ge k/2] \le\frac{(4/3)^k}{2^{k/2}} =\left(\frac4{3\sqrt2}\right)^k.

また16<1816<18なので4/(32)<14/(3\sqrt2)<1である。▨

定理 4.3.L∈BPPL\in\mathsf{BPP}とする。定義の機械を独立に奇数回kk実行し、多数決を返す機械の誤り確率は、全ての入力で

(432)k\left(\frac4{3\sqrt2}\right)^k

以下である。したがって、任意の0<ε<10<\varepsilon<1に対し

k≥log⁡(1/ε)log⁡(32/4)k\ge \frac{\log(1/\varepsilon)} {\log(3\sqrt2/4)}

を満たす奇数kkを選べば、誤り確率をε\varepsilon以下にすることができる。

証明. 入力xxを固定し、第ii回の試行が誤った結論を返す事象の特性変数をXiX_iとする。x∈Lx\in Lとx∉Lx\notin Lのどちらの場合も、BPP\mathsf{BPP}の定義からPr⁡[Xi=1]≤1/3\Pr[X_i=1]\le1/3である。各回に互いに素な乱数ビット列を用いるためX1,…,XkX_1,\ldots,X_kは独立である。多数決が誤るなら、奇数kk回のうち少なくとも(k+1)/2>k/2(k+1)/2>k/2回が誤る。したがって、補題 4.2により誤り確率はρk\rho^k以下である。ρk≤ε\rho^k\le\varepsilonをkkについて解けば表示された条件を得る。各試行が多項式時間であり、固定したkk、または入力長の多項式以下のkkを選ぶ場合には総時間も多項式である。▨

系 4.4.

ZPP⊆RP⊆BPP,ZPP⊆coRP⊆BPP.\mathsf{ZPP}\subseteq\mathsf{RP}\subseteq\mathsf{BPP}, \qquad \mathsf{ZPP}\subseteq\mathsf{coRP}\subseteq\mathsf{BPP}.

証明. 最初の二つのZPP\mathsf{ZPP}の包含は定理 3.1から従う。RP\mathsf{RP}の機械を二回独立に実行して OR を取ると、言語の要素の受理確率は少なくとも1−(1/2)2=3/41-(1/2)^2=3/4、外側の受理確率は00である。したがって、BPP\mathsf{BPP}の2/3,1/32/3,1/3条件を満たす。coRP\mathsf{coRP}の機械を二回独立に実行して AND を取ると、言語の要素の受理確率は11、外側の受理確率は高々(1/2)2=1/4(1/2)^2=1/4である。したがって、こちらもBPP\mathsf{BPP}に属する。▨

注意 4.5 (アルゴリズムと計算量クラス). 一つの乱択アルゴリズムには、対象とする問題、入力表現、実行時間、および入力ごとの成功確率がある。これに対してRP\mathsf{RP}、coRP\mathsf{coRP}、ZPP\mathsf{ZPP}、BPP\mathsf{BPP}は言語のクラスであり、全入力に対する量化と一つの多項式上界を満たす機械の存在によって定まる。特定の入力で高い成功率を観測したことだけでは、そのアルゴリズムがいずれかの計算量クラスの定義を満たすという結論を得ることができない。

5 演習

問題 5.1.

  1. RP⊆NP\mathsf{RP}\subseteq\mathsf{NP}とcoRP⊆coNP\mathsf{coRP}\subseteq\mathsf{coNP}を示せ。
  2. MMをLLに対するBPP\mathsf{BPP}の機械とし、奇数kkを固定する。入力xxと乱数列rrに対してM(x;r)M(x;r)をkk回実行し、その結論の多数決を出力する機械MkM_kを考える。ここでkk回の実行はすべて同じ乱数列rrを用いる。すべてのxxについて、MkM_kが誤る確率はMMが誤る確率に等しいことを示せ。
  3. 一回の誤り確率が1/21/2以下のRP\mathsf{RP}機械について、誤り確率を2−202^{-20}以下にする反復回数と出力規則を答えよ。
  4. ZZをLLに対する零誤り期待多項式時間機械とし、期待時間の上界をp≥1p\geq1とする。正の整数kkについて、ZZを2kp(∣x∣)2^kp(|x|)段で打ち切り時間切れで拒否する機械R1R_1と、ZZを2p(∣x∣)2p(|x|)段で打ち切り時間切れで拒否する試行を互いに素な乱数でkk回行い、一回でも受理すれば受理する機械R2R_2を考える。どちらもx∉Lx\notin Lを受理せず、x∈Lx\in Lを拒否する確率が2−k2^{-k}以下であることを示し、二つの機械の最大実行段数を比較せよ。
解答 (演習の要点).
  1. L∈RPL\in\mathsf{RP}とし、定義の機械MMと多項式ppを取る。検証器VVは入力(x,r)(x,r)についてr∈{0,1}p(∣x∣)r\in\{0,1\}^{p(|x|)}であることを確かめ、乱数テープの内容をrrとしてM(x;r)M(x;r)を決定的に模倣し、その結論を出力する。模倣はp(∣x∣)p(|x|)段以内で終わるので、VVは多項式時間で停止する。x∈Lx\in Lならば受理確率は1/21/2以上であり正であるから、M(x;r)M(x;r)が受理するr∈{0,1}p(∣x∣)r\in\{0,1\}^{p(|x|)}が存在し、V(x,r)V(x,r)が受理する。x∉Lx\notin Lならば受理確率は00であり、受理確率の定義の分子が00であるから、M(x;r)M(x;r)が受理するrrは存在しない。よってVVはLLの多項式時間検証器であり、§E18.11 定理 3.1によりL∈NPL\in\mathsf{NP}である。

    L∈coRPL\in\mathsf{coRP}ならば、命題 2.3によりL‾∈RP⊆NP\overline L\in\mathsf{RP}\subseteq\mathsf{NP}であり、§E18.11 定義 5.1によりL∈coNPL\in\mathsf{coNP}である。

  2. 同じ乱数列rrを用いると、入力xxとrrを固定した計算M(x;r)M(x;r)は決定的であるから、kk回の実行はすべて同じ結論を返す。kk個の同じ結論の多数決はその結論自身であるから、すべてのrrについてMk(x;r)M_k(x;r)とM(x;r)M(x;r)の結論は一致する。受理確率は結論が受理であるrrの割合であるから、MkM_kとMMの受理確率は等しく、誤る確率も等しい。定理 4.3の証明では各回に互いに素な乱数ビット区間を割り当て、補題 1.2 (3)により各回の誤り事象の独立性を用いるが、このMkM_kではkk回の誤り事象が一致し、誤り確率は減らない。

  3. 独立に2020回実行し、一回でも受理したら受理する。言語の要素に対する全回拒否の確率は高々2−202^{-20}である。

  4. ZZは停止した全ての計算で正しく答えるので、x∉Lx\notin LのときZZは受理せず、時間切れでは拒否するから、R1R_1もR2R_2もx∉Lx\notin Lを受理しない。

    x∈Lx\in Lとする。R1R_1が拒否するのは時間切れの場合だけであるから、補題 1.2 (2)により拒否確率はPr⁡[TZ(x)≥2kp(∣x∣)]≤E[TZ(x)]/(2kp(∣x∣))≤2−k\Pr[T_Z(x)\geq2^kp(|x|)]\leq\mathbb E[T_Z(x)]/(2^kp(|x|))\leq2^{-k}である。R2R_2の各試行が時間切れになる確率は、同じ不等式により1/21/2以下である。R2R_2が拒否するのはkk回の試行がすべて時間切れになる場合だけであり、各試行は互いに素な乱数ビット区間を用いるので、補題 1.2 (3)によりその確率は(1/2)k=2−k(1/2)^k=2^{-k}以下である。

    最大実行段数は、R1R_1が2kp(∣x∣)2^kp(|x|)段に打切りの管理の定数倍を加えたもの、R2R_2が2kp(∣x∣)2kp(|x|)段に同じ管理を加えたものである。同じ誤り上界2−k2^{-k}に対して、R2R_2の段数はkkについて線形、R1R_1の段数はkkについて指数的に増える。とくにkkが入力長の多項式で増える場合、R2R_2は多項式時間のままであるが、R1R_1はそうではない。

▨

参考文献

  1. Rajeev Motwani and Prabhakar Raghavan, Randomized Algorithms, Cambridge University Press, Cambridge, 1995.Las Vegas 型と Monte Carlo 型の乱択アルゴリズム、および反復による誤り減少を参考にした。
  2. Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, Cambridge, 2009.確率的 Turing 機械、RP、coRP、ZPP、および BPP を参考にした。

前提記事