1 確率的 Turing 機械
定義 1.1. 確率的 Turing 機械 (probabilistic Turing machine )M M M は、通常の決定性多テープ TM に読取り専用の乱数テープを加えた機械である。乱数テープのヘッドは位置0 0 0 から始まり、乱数ビットを一つ読むたびに右へ一マス進み、左へ戻らない。乱数テープの各マスには、互いに独立で
Pr [ r i = 0 ] = Pr [ r i = 1 ] = 1 2 \Pr[r_i=0]=\Pr[r_i=1]=\frac12 Pr [ r i = 0 ] = Pr [ r i = 1 ] = 2 1 を満たすビットが置かれる。入力x x x と乱数列r r r を固定すれば計算は決定的になるので、その計算をM ( x ; r ) M(x;r) M ( x ; r ) と書く。
M M M が全ての長さn n n の入力と全ての乱数列に対してp ( n ) p(n) p ( n ) 段以内に停止するなら、読み取る乱数は高々p ( n ) p(n) p ( n ) ビットである。未使用のビットも補ってr ∈ { 0 , 1 } p ( n ) r\in\{0,1\}^{p(n)} r ∈ { 0 , 1 } p ( n ) とすると、受理確率 (acceptance probability ) は
Pr r [ M ( x ; r ) が受理する ] = ∣ { r ∈ { 0 , 1 } p ( ∣ x ∣ ) : M ( x ; r ) が受理する } ∣ 2 p ( ∣ x ∣ ) \Pr_r[M(x;r)\text{ が受理する}]
=\frac{|\{r\in\{0,1\}^{p(|x|)}:M(x;r)\text{ が受理する}\}|}
{2^{p(|x|)}} r Pr [ M ( x ; r ) が受理する ] = 2 p ( ∣ x ∣ ) ∣ { r ∈ { 0 , 1 } p ( ∣ x ∣ ) : M ( x ; r ) が受理する } ∣ である。
無限乱数列そのものへ未定義の確率を割り当てず、まず有限 prefix にだけ確率を定める。最初のm m m ビットだけで決まる事象A A A に対して、
Pr [ A ] = ∣ { u ∈ { 0 , 1 } m : u が A を満たす } ∣ 2 m \Pr[A]
=\frac{|\{u\in\{0,1\}^m:u\text{ が }A\text{ を満たす}\}|}{2^m} Pr [ A ] = 2 m ∣ { u ∈ { 0 , 1 } m : u が A を満たす } ∣
と定める。より長い prefix へ未使用ビットを補っても、分子と分母が同じ2 2 2 の冪倍になるので値は変わらない。停止時間に関する無限和と極限は、次の補題によって有限 prefix の確率から定める。
補題 1.2. 一方向乱数テープを読む確率的 TM の、非負整数値または∞ \infty ∞ をとる停止時間をT T T とする。次が成り立つ。
打切り時間m m m までの事象{ T > m } \{T>m\} { T > m } は最初のm m m 個以下の乱数ビットだけで決まる。
Pr [ T = ∞ ] = lim m → ∞ Pr [ T > m ] , E [ T ] = ∑ j ≥ 0 Pr [ T > j ] \Pr[T=\infty]=\lim_{m\to\infty}\Pr[T>m],
\qquad
\mathbb E[T]=\sum_{j\ge0}\Pr[T>j] Pr [ T = ∞ ] = m → ∞ lim Pr [ T > m ] , E [ T ] = j ≥ 0 ∑ Pr [ T > j ]
と定めることができる。特にE [ T ] < ∞ \mathbb E[T]<\infty E [ T ] < ∞ ならばPr [ T = ∞ ] = 0 \Pr[T=\infty]=0 Pr [ T = ∞ ] = 0 である。
各m ∈ N m\in\mathbb N m ∈ N に対してY ( m ) = min { Y , m } Y^{(m)}=\min\{Y,m\} Y ( m ) = min { Y , m } が有限個の乱数ビットだけで決まる、非負整数値または∞ \infty ∞ 値の確率変数Y Y Y を考える。
E [ Y ] = lim m → ∞ E [ Y ( m ) ] \mathbb E[Y]=\lim_{m\to\infty}\mathbb E[Y^{(m)}] E [ Y ] = m → ∞ lim E [ Y ( m ) ]
と定めると、全ての実数a > 0 a>0 a > 0 について
Pr [ Y ≥ a ] ≤ E [ Y ] a \Pr[Y\ge a]\le\frac{\mathbb E[Y]}a Pr [ Y ≥ a ] ≤ a E [ Y ]
である。
事象A 1 , … , A k A_1,\ldots,A_k A 1 , … , A k が互いに素な有限乱数ビット区間だけでそれぞれ決まるならば、
Pr [ A 1 ∩ ⋯ ∩ A k ] = ∏ i = 1 k Pr [ A i ] . \Pr[A_1\cap\cdots\cap A_k]
=\prod_{i=1}^k\Pr[A_i]. Pr [ A 1 ∩ ⋯ ∩ A k ] = i = 1 ∏ k Pr [ A i ] .
同じ区間から定まる有限値確率変数Y i Y_i Y i について、
E [ ∏ i = 1 k Y i ] = ∏ i = 1 k E [ Y i ] \mathbb E\left[\prod_{i=1}^kY_i\right]
=\prod_{i=1}^k\mathbb E[Y_i] E [ i = 1 ∏ k Y i ] = i = 1 ∏ k E [ Y i ]
である。
証明. T ( m ) = min { T , m } T^{(m)}=\min\{T,m\} T ( m ) = min { T , m } とする。T ( m ) T^{(m)} T ( m ) は高々m m m 段の計算だけで決まり、一段で乱数を高々一つ読むので、最初のm m m ビットだけに依存する。有限和の順序を交換すると、
E [ T ( m ) ] = ∑ t = 0 m t Pr [ T ( m ) = t ] = ∑ t = 0 m ∑ j = 0 t − 1 Pr [ T ( m ) = t ] = ∑ j = 0 m − 1 Pr [ 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} E [ T ( m ) ] = t = 0 ∑ m t Pr [ T ( m ) = t ] = t = 0 ∑ m j = 0 ∑ t − 1 Pr [ T ( m ) = t ] = j = 0 ∑ m − 1 Pr [ T > j ] . 右辺はm m m とともに非減少なので、その極限をE [ T ] \mathbb E[T] E [ T ] と定める。事象{ T > m } \{T>m\} { T > m } はm m m とともに減少し、全てのm m m で生き残る乱数列がT = ∞ T=\infty T = ∞ を与えるため、Pr [ T = ∞ ] \Pr[T=\infty] Pr [ T = ∞ ] を表示された極限で定める。E [ T ] < ∞ \mathbb E[T]<\infty E [ T ] < ∞ なら級数の各項Pr [ T > m ] \Pr[T>m] Pr [ T > m ] は0 0 0 へ収束するので、Pr [ T = ∞ ] = 0 \Pr[T=\infty]=0 Pr [ T = ∞ ] = 0 である。
Y ( m ) Y^{(m)} Y ( m ) は{ 0 , … , m } \{0,\ldots,m\} { 0 , … , m } の有限集合に値をとり、仮定により有限 prefix 上の確率変数である。m ≥ a m\ge a m ≥ a とすると{ Y ( m ) ≥ a } = { Y ≥ a } \{Y^{(m)}\ge a\}=\{Y\ge a\} { Y ( m ) ≥ a } = { Y ≥ a } であるから、有限和の各項のうちY ( m ) ≥ a Y^{(m)}\ge a Y ( m ) ≥ a を満たすものだけを残して
E [ Y ( m ) ] ≥ ∑ y ≥ a y Pr [ Y ( m ) = y ] ≥ a Pr [ Y ( m ) ≥ a ] = a Pr [ 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] E [ Y ( m ) ] ≥ y ≥ a ∑ y Pr [ Y ( m ) = y ] ≥ a Pr [ Y ( m ) ≥ a ] = a Pr [ Y ≥ a ] を得る。左辺についてm → ∞ m\to\infty m → ∞ の極限を取れば、(2) を得る。特にE [ Y ] < ∞ \mathbb E[Y]<\infty E [ Y ] < ∞ である場合にも、Y = ∞ Y=\infty Y = ∞ となる乱数列を除外せずに同じ評価を適用することができる。
(3) を示す。A i A_i A i が依存する区間の長さをm i m_i m i とし、その区間でA i A_i A i を満たすビット列の個数をa i a_i a i とする。区間が互いに素であるため、全区間の割当てで全てのA i A_i A i を満たすものは∏ i a i \prod_i a_i ∏ i a i 個あり、全割当ては2 ∑ i m i 2^{\sum_i m_i} 2 ∑ i m i 個ある。したがって、
Pr [ A 1 ∩ ⋯ ∩ A k ] = ∏ i a i 2 ∑ i m i = ∏ i a i 2 m i . \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}}. Pr [ A 1 ∩ ⋯ ∩ A k ] = 2 ∑ i m i ∏ i a i = i ∏ 2 m i a i . Y i Y_i Y i の有限値集合をV i V_i V i とする。直前に証明した事象の積公式を各{ Y i = y i } \{Y_i=y_i\} { Y i = y i } へ適用し、有限和を分配すると、
E [ ∏ i Y i ] = ∑ ( y 1 , … , y k ) ∈ V 1 × ⋯ × V k ( ∏ i y i ) Pr [ Y 1 = y 1 , … , Y k = y k ] = ∑ ( y 1 , … , y k ) ∏ i ( y i Pr [ Y i = y i ] ) = ∏ i ∑ y i ∈ V i y i Pr [ Y i = y i ] = ∏ i E [ Y i ] . \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} E [ i ∏ Y i ] = ( y 1 , … , y k ) ∈ V 1 × ⋯ × V k ∑ ( i ∏ y i ) Pr [ Y 1 = y 1 , … , Y k = y k ] = ( y 1 , … , y k ) ∑ i ∏ ( y i Pr [ Y i = y i ] ) = i ∏ y i ∈ V i ∑ y i Pr [ Y i = y i ] = i ∏ E [ Y i ] . 全ての和は有限なので、和の順序交換に追加の収束仮定は不要である。▨
乱数を固定すると決定的計算になるため、独立反復では各回に互いに素な乱数ビット区間を割り当てる。補題 1.2 により、各回の受理事象または誤り事象の共通部分の確率は各確率の積になる。
2 片側誤り、零誤り、両側誤り
定義 2.1. 言語L ⊆ Σ ∗ L\subseteq\Sigma^* L ⊆ Σ ∗ が R P \mathsf{RP} RP (RP ) に属するとは、ある確率的 TMM M M と多項式p p p が存在し、M M M が全ての入力と全ての乱数列でp ( ∣ x ∣ ) p(|x|) p ( ∣ x ∣ ) 段以内に停止し、任意のx ∈ Σ ∗ x\in\Sigma^* x ∈ Σ ∗ について
{ x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≥ 1 2 , 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} { x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≥ 2 1 , x ∈ / L ⟹ Pr r [ M ( x ; r ) が受理する ] = 0 を満たすことをいう。
R P \mathsf{RP} RP の機械は、言語の外側の入力を誤って受理しないが、言語の要素を誤って拒否することがある。
定義 2.2. 言語L ⊆ Σ ∗ L\subseteq\Sigma^* L ⊆ Σ ∗ が c o R P \mathsf{coRP} coRP (coRP ) に属するとは、ある確率的 TMM M M と多項式p p p が存在し、M M M が全ての入力と全ての乱数列でp ( ∣ x ∣ ) p(|x|) p ( ∣ x ∣ ) 段以内に停止し、任意のx ∈ Σ ∗ x\in\Sigma^* x ∈ Σ ∗ について
{ x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] = 1 , x ∉ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≤ 1 2 \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} { x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] = 1 , x ∈ / L ⟹ Pr r [ M ( x ; r ) が受理する ] ≤ 2 1 を満たすことをいう。
c o R P \mathsf{coRP} coRP の機械は、言語の要素を誤って拒否しないが、言語の外側の入力を誤って受理することがある。二つの片側誤りクラスは、補言語を取る操作で互いに移り合う。
命題 2.3. 言語L ⊆ Σ ∗ L\subseteq\Sigma^* L ⊆ Σ ∗ について、L ∈ c o R P L\in\mathsf{coRP} L ∈ coRP であることとL ‾ = Σ ∗ ∖ L ∈ R P \overline L=\Sigma^*\setminus L\in\mathsf{RP} L = Σ ∗ ∖ L ∈ RP であることは同値である。
証明. L ∈ c o R P L\in\mathsf{coRP} L ∈ coRP とし、定義の機械M M M と多項式p p p を取る。M M M の受理と拒否を入れ替えた機械M ′ M' M ′ も、全ての入力と全ての乱数列でp ( ∣ x ∣ ) p(|x|) p ( ∣ x ∣ ) 段以内に停止する。x ∈ L ‾ x\in\overline L x ∈ L 、すなわちx ∉ L x\notin L x ∈ / L ならば、M M M の受理確率は高々1 / 2 1/2 1/2 であるから、M ′ M' M ′ の受理確率は少なくとも1 / 2 1/2 1/2 である。x ∉ L ‾ x\notin\overline L x ∈ / L 、すなわちx ∈ L x\in L x ∈ L ならば、M M M の受理確率は1 1 1 であるから、M ′ M' M ′ の受理確率は0 0 0 である。したがってM ′ M' M ′ はL ‾ \overline L L に対するR P \mathsf{RP} RP の条件を満たす。
逆にL ‾ ∈ R P \overline L\in\mathsf{RP} L ∈ RP とし、その機械の受理と拒否を入れ替える。x ∈ L x\in L x ∈ L ならば元の機械の受理確率は0 0 0 なので、入れ替えた機械は確率1 1 1 で受理する。x ∉ L x\notin L x ∈ / L ならば元の機械の受理確率は少なくとも1 / 2 1/2 1/2 なので、入れ替えた機械の受理確率は高々1 / 2 1/2 1/2 である。したがって、入れ替えた機械はL L L に対するc o R P \mathsf{coRP} coRP の条件を満たす。▨
定義 2.4. 言語L ⊆ Σ ∗ L\subseteq\Sigma^* L ⊆ Σ ∗ が Z P P \mathsf{ZPP} ZPP (ZPP ) に属するとは、ある確率的 TMZ Z Z と多項式p p p が存在し、任意の入力x x x について次の二条件を満たすことをいう。
Z ( x ) Z(x) Z ( x ) は確率1 1 1 で停止し、停止した全ての計算でx ∈ L x\in L x ∈ L の場合に受理し、x ∉ L x\notin L x ∈ / L の場合に拒否する。
乱数に関する停止時間をT Z ( x ) T_Z(x) T Z ( x ) とすると、E [ T Z ( x ) ] ≤ p ( ∣ x ∣ ) \mathbb E[T_Z(x)]\le p(|x|) E [ T Z ( x )] ≤ p ( ∣ x ∣ ) である。
この条件を満たす機械を零誤り期待多項式時間機械 (zero-error expected polynomial-time machine ) という。
定義 2.5. 言語L ⊆ Σ ∗ L\subseteq\Sigma^* L ⊆ Σ ∗ が B P P \mathsf{BPP} BPP (BPP ) に属するとは、ある確率的 TMM M M と多項式p p p が存在し、M M M が全ての入力と全ての乱数列でp ( ∣ x ∣ ) p(|x|) p ( ∣ x ∣ ) 段以内に停止し、任意のx ∈ Σ ∗ x\in\Sigma^* x ∈ Σ ∗ について
{ x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≥ 2 3 , x ∉ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≤ 1 3 \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} { x ∈ L ⟹ Pr r [ M ( x ; r ) が受理する ] ≥ 3 2 , x ∈ / L ⟹ Pr r [ M ( x ; r ) が受理する ] ≤ 3 1 を満たすことをいう。
B P P \mathsf{BPP} BPP の機械は、言語の内側と外側の両方で誤る可能性があるが、どの入力でも正しい結論を返す確率が少なくとも2 / 3 2/3 2/3 である。
例 2.6 (行列積の検証と誤りの向き). 成分が0 0 0 と1 1 1 のn × n n\times n n × n 整数行列の三つ組を標準的な方法で符号化した語を⟨ A , B , C ⟩ \langle A,B,C\rangle ⟨ A , B , C ⟩ と書き、言語を
L = { ⟨ A , B , C ⟩ : A B ≠ C } L=\{\langle A,B,C\rangle:AB\ne C\} L = {⟨ A , B , C ⟩ : A B = C } と定める。次の機械M M M を考える。M M M は、入力が正しい符号でなければ直ちに拒否する。正しい符号ならば乱数ビットをn n n 個読んでベクトルr ∈ { 0 , 1 } n r\in\{0,1\}^n r ∈ { 0 , 1 } n を作り、行列とベクトルの積B r Br B r 、A ( B r ) A(Br) A ( B r ) 、C r Cr C r を整数の演算で順に計算し、A ( B r ) ≠ C r A(Br)\ne Cr A ( B r ) = C r の場合に受理する。行列とベクトルの積一回は成分の乗算と加算O ( n 2 ) O(n^2) O ( n 2 ) 回で計算することができるため、M M M は全ての入力と全ての乱数列で入力長の多項式段数以内に停止する。
A B = C AB=C A B = C ならば、結合法則により任意のr r r についてA ( B r ) = ( A B ) r = C r A(Br)=(AB)r=Cr A ( B r ) = ( A B ) r = C r であるから、受理確率は0 0 0 である。A B ≠ C AB\ne C A B = C ならば、D : = A B − C D:=AB-C D := A B − C は零行列でないので、d i j ≠ 0 d_{ij}\ne0 d ij = 0 となる成分を取ることができる。r j r_j r j 以外の成分を任意に固定すると
( D r ) i = d i j r j + ∑ k ≠ j d i k r k (Dr)_i=d_{ij}r_j+\sum_{k\ne j}d_{ik}r_k ( D r ) i = d ij r j + k = j ∑ d ik r k であり、r j = 0 r_j=0 r j = 0 とr j = 1 r_j=1 r j = 1 に対する二つの値の差はd i j ≠ 0 d_{ij}\ne0 d ij = 0 である。したがって、固定した成分ごとに( D r ) i = 0 (Dr)_i=0 ( D r ) i = 0 となるr j r_j r j の値は高々一つであり、D r = 0 Dr=0 D r = 0 となるr ∈ { 0 , 1 } n r\in\{0,1\}^n r ∈ { 0 , 1 } n は高々2 n − 1 2^{n-1} 2 n − 1 個である。ゆえに
Pr r [ M ( ⟨ A , B , C ⟩ ; r ) が受理する ] = Pr r [ D r ≠ 0 ] ≥ 1 2 \Pr_r[M(\langle A,B,C\rangle;r)\text{ が受理する}]
=\Pr_r[Dr\ne0]\ge\frac12 r Pr [ M (⟨ A , B , C ⟩ ; r ) が受理する ] = r Pr [ D r = 0 ] ≥ 2 1 であり、M M M は定義 2.1 の二条件を満たす。よってL ∈ R P L\in\mathsf{RP} L ∈ RP である。
同じ検査で受理の向きだけを入れ替え、正しい符号に対してA ( B r ) = C r A(Br)=Cr A ( B r ) = C r の場合に受理する機械をM ′ M' M ′ とすると、A B = C AB=C A B = C の入力は確率1 1 1 で受理され、A B ≠ C AB\ne C A B = C の入力の受理確率は高々1 / 2 1/2 1/2 であり、正しい符号でない入力は受理されない。したがってM ′ M' M ′ は言語{ ⟨ A , B , C ⟩ : A B = C } \{\langle A,B,C\rangle:AB=C\} {⟨ A , B , C ⟩ : A B = C } に対する定義 2.2 の二条件を満たす。一回の検査も成功確率の数値1 / 2 1/2 1/2 も共通であり、どちら側の入力で誤り確率が0 0 0 になるかがクラスを区別する。
n = 2 n=2 n = 2 の場合を一つ計算する。
A = ( 1 1 0 1 ) , B = C = ( 1 0 0 1 ) A=\begin{pmatrix}1&1\\0&1\end{pmatrix},\qquad
B=C=\begin{pmatrix}1&0\\0&1\end{pmatrix} A = ( 1 0 1 1 ) , B = C = ( 1 0 0 1 ) ではA B = A ≠ C AB=A\ne C A B = A = C であり、D = A B − C = ( 0 1 0 0 ) D=AB-C=\begin{pmatrix}0&1\\0&0\end{pmatrix} D = A B − C = ( 0 0 1 0 ) 、D r = ( r 2 , 0 ) T Dr=(r_2,0)^{\mathsf T} D r = ( r 2 , 0 ) T である。四つの乱数ベクトルのうちr 2 = 1 r_2=1 r 2 = 1 となる二つだけがD r ≠ 0 Dr\ne0 D r = 0 を与えるため、M M M の受理確率はちょうど1 / 2 1/2 1/2 である。
3 零誤りと二種類の片側誤り
零誤り期待多項式時間から最悪時多項式時間の片側誤りを得る方向では、期待時間の二倍で計算を打ち切る。逆方向では、二つの片側誤り機械のうち、正しい結論を保証する側が成功するまで反復する。
定理 3.1.
Z P P = R P ∩ c o R P \mathsf{ZPP}=\mathsf{RP}\cap\mathsf{coRP} ZPP = RP ∩ coRP である。
証明. 最初にL ∈ Z P P L\in\mathsf{ZPP} L ∈ ZPP とし、Z Z Z と期待時間上界p p p を定義の機械と多項式とする。p ( n ) ≥ 1 p(n)\ge1 p ( n ) ≥ 1 となるように、必要ならp p p をp + 1 p+1 p + 1 へ置き換える。入力x x x でZ Z Z を2 p ( ∣ x ∣ ) 2p(|x|) 2 p ( ∣ x ∣ ) 段だけ実行し、その時点で停止していなければ拒否する機械R R R を構成する。補題 1.2 (2) により
Pr [ T Z ( x ) > 2 p ( ∣ x ∣ ) ] ≤ E [ T Z ( x ) ] 2 p ( ∣ x ∣ ) ≤ 1 2 \Pr[T_Z(x)>2p(|x|)]
\le\frac{\mathbb E[T_Z(x)]}{2p(|x|)}
\le\frac12 Pr [ T Z ( x ) > 2 p ( ∣ x ∣ )] ≤ 2 p ( ∣ x ∣ ) E [ T Z ( x )] ≤ 2 1 である。x ∈ L x\in L x ∈ L ならばZ Z Z が時間内に停止した場合にR R R は受理するので、受理確率は少なくとも1 / 2 1/2 1/2 である。x ∉ L x\notin L x ∈ / L ならばZ Z Z は受理することがなく、R R R の受理確率も0 0 0 である。したがってR R R はR P \mathsf{RP} RP の機械である。
同じ打切りで、時間切れの場合に受理する機械C C C を構成する。x ∈ L x\in L x ∈ L ならば、Z Z Z が時間内に停止すれば正しく受理し、時間切れでもC C C は受理するので、受理確率は1 1 1 である。x ∉ L x\notin L x ∈ / L ならば、C C C が受理するのは時間切れの場合だけであり、その確率は高々1 / 2 1/2 1/2 である。したがってC C C はc o R P \mathsf{coRP} coRP の機械である。これでZ P P ⊆ R P ∩ c o R P \mathsf{ZPP}\subseteq\mathsf{RP}\cap\mathsf{coRP} ZPP ⊆ RP ∩ coRP を得る。
逆に、L ∈ R P ∩ c o R P L\in\mathsf{RP}\cap\mathsf{coRP} L ∈ RP ∩ coRP とする。R R R をL L L に対するR P \mathsf{RP} RP の機械、C C C をL L L に対するc o R P \mathsf{coRP} coRP の機械とする。次の一回の試行を、毎回新しい独立な乱数で反復する。
R ( x ) R(x) R ( x ) とC ( x ) C(x) C ( x ) を実行する。
R ( x ) R(x) R ( x ) が受理したら受理して停止する。
C ( x ) C(x) C ( x ) が拒否したら拒否して停止する。
どちらの保証付き結論も得られなければ次の試行へ進む。
x ∈ L x\in L x ∈ L ならばC C C は拒否せず、R R R が受理した場合だけ全体が受理する。この結論は正しい。一回の停止確率はR R R の受理確率であり、少なくとも1 / 2 1/2 1/2 である。x ∉ L x\notin L x ∈ / L ならばR R R は受理せず、C C C が拒否した場合だけ全体が拒否する。この結論も正しく、一回の停止確率は少なくとも1 / 2 1/2 1/2 である。各試行には互いに素な乱数ビット区間を割り当てるので、補題 1.2 (3) により、どちらの場合も試行回数N N N について
Pr [ N > j ] ≤ 2 − j \Pr[N>j]\le2^{-j} Pr [ N > j ] ≤ 2 − 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 Pr [ N = ∞ ] = j → ∞ lim Pr [ N > j ] ≤ j → ∞ lim 2 − j = 0 となる。また、同補題の停止時間の定義により
E [ N ] = ∑ j ≥ 0 Pr [ N > j ] ≤ ∑ j ≥ 0 2 − j = 2 \mathbb E[N]
=\sum_{j\ge0}\Pr[N>j]
\le\sum_{j\ge0}2^{-j}=2 E [ N ] = j ≥ 0 ∑ Pr [ N > j ] ≤ j ≥ 0 ∑ 2 − j = 2 となる。一回の試行時間を共通の多項式q ( ∣ x ∣ ) q(|x|) q ( ∣ x ∣ ) で抑えると、総時間はq ( ∣ x ∣ ) N q(|x|)N q ( ∣ x ∣ ) N 以下であり、その期待値は2 q ( ∣ x ∣ ) 2q(|x|) 2 q ( ∣ x ∣ ) 以下である。結論は停止した全ての計算で正しいので、構成した機械は零誤り期待多項式時間機械である。これで逆包含を得る。▨
4 独立反復による誤り減少
片側誤りでは、誤り得ない結論を一度でも得たか、全ての試行で得たかによって出力を決める。両側誤りでは、独立試行の多数決を用いる。
定理 4.1. L ∈ R P L\in\mathsf{RP} L ∈ RP とし、定義の一回の受理確率下界を1 / 2 1/2 1/2 とする。独立にk k k 回実行し、少なくとも一回受理したら受理する機械では、x ∉ L x\notin L x ∈ / L の受理確率は0 0 0 のままであり、x ∈ L x\in L x ∈ L の拒否確率は高々2 − k 2^{-k} 2 − k である。
L ∈ c o R P L\in\mathsf{coRP} L ∈ coRP の場合、独立にk k k 回実行して全ての回が受理した場合だけ受理すれば、x ∈ L x\in L x ∈ L の受理確率は1 1 1 のままであり、x ∉ L x\notin L x ∈ / L の受理確率は高々2 − k 2^{-k} 2 − k である。
証明. R P \mathsf{RP} RP の場合、x ∉ L x\notin L x ∈ / L では各回の受理確率が0 0 0 なので、少なくとも一回受理する確率も0 0 0 である。x ∈ L x\in L x ∈ L では各回の拒否確率が高々1 / 2 1/2 1/2 である。独立性により、全k k k 回が拒否する確率は各確率の積であり、高々( 1 / 2 ) k (1/2)^k ( 1/2 ) k である。
c o R P \mathsf{coRP} coRP の場合、x ∈ L x\in L x ∈ L では各回が確率1 1 1 で受理するので、全ての回も確率1 1 1 で受理する。x ∉ L x\notin L x ∈ / L では各回の受理確率が高々1 / 2 1/2 1/2 であり、独立性により全k k k 回が受理する確率は高々( 1 / 2 ) k (1/2)^k ( 1/2 ) k である。▨
両側誤りの多数決について、Chernoff 境界の一般形を仮定せず、指数モーメントを直接評価する。
補題 4.2. X 1 , … , X k X_1,\ldots,X_k X 1 , … , X k を独立な{ 0 , 1 } \{0,1\} { 0 , 1 } 値確率変数とし、Pr [ X i = 1 ] ≤ 1 / 3 \Pr[X_i=1]\le1/3 Pr [ X i = 1 ] ≤ 1/3 とする。このとき
Pr [ ∑ i = 1 k X i ≥ k 2 ] ≤ ( 4 3 2 ) k . \Pr\left[\sum_{i=1}^kX_i\ge\frac k2\right]
\le
\left(\frac4{3\sqrt2}\right)^k. Pr [ i = 1 ∑ k X i ≥ 2 k ] ≤ ( 3 2 4 ) k . 特にρ = 4 / ( 3 2 ) < 1 \rho=4/(3\sqrt2)<1 ρ = 4/ ( 3 2 ) < 1 と置けば、右辺はρ k \rho^k ρ k で指数的に減少する。
証明. S = ∑ i X i S=\sum_iX_i S = ∑ i X i と置く。事象S ≥ k / 2 S\ge k/2 S ≥ k /2 では2 S ≥ 2 k / 2 2^S\ge2^{k/2} 2 S ≥ 2 k /2 なので、補題 1.2 (2) を非負変数2 S 2^S 2 S へ適用すると、
Pr [ S ≥ k / 2 ] ≤ E [ 2 S ] 2 k / 2 \Pr[S\ge k/2]
\le\frac{\mathbb E[2^S]}{2^{k/2}} Pr [ S ≥ k /2 ] ≤ 2 k /2 E [ 2 S ] となる。各X i X_i X i は互いに素な有限乱数ビット区間から定まり、その値は0 0 0 または1 1 1 である。したがって、有限和を直接分配すると、
E [ 2 S ] = ∑ ( x 1 , … , x k ) ∈ { 0 , 1 } k 2 x 1 + ⋯ + x k Pr [ X 1 = x 1 , … , X k = x k ] = ∑ ( x 1 , … , x k ) ∏ i = 1 k ( 2 x i Pr [ X i = x i ] ) = ∏ i = 1 k ∑ x i ∈ { 0 , 1 } 2 x i Pr [ X i = x i ] = ∏ i = 1 k E [ 2 X i ] . \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} E [ 2 S ] = ( x 1 , … , x k ) ∈ { 0 , 1 } k ∑ 2 x 1 + ⋯ + x k Pr [ X 1 = x 1 , … , X k = x k ] = ( x 1 , … , x k ) ∑ i = 1 ∏ k ( 2 x i Pr [ X i = x i ] ) = i = 1 ∏ k x i ∈ { 0 , 1 } ∑ 2 x i Pr [ X i = x i ] = i = 1 ∏ k E [ 2 X i ] . 第2の等号では補題 1.2 の事象の積公式を用いた。p i = Pr [ X i = 1 ] ≤ 1 / 3 p_i=\Pr[X_i=1]\le1/3 p i = Pr [ X i = 1 ] ≤ 1/3 とすると
E [ 2 X i ] = ( 1 − p i ) 2 0 + p i 2 1 = 1 + p i ≤ 4 3 . \mathbb E[2^{X_i}]
=(1-p_i)2^0+p_i2^1
=1+p_i\le\frac43. E [ 2 X i ] = ( 1 − p i ) 2 0 + p i 2 1 = 1 + p i ≤ 3 4 . したがって
Pr [ S ≥ k / 2 ] ≤ ( 4 / 3 ) k 2 k / 2 = ( 4 3 2 ) k . \Pr[S\ge k/2]
\le\frac{(4/3)^k}{2^{k/2}}
=\left(\frac4{3\sqrt2}\right)^k. Pr [ S ≥ k /2 ] ≤ 2 k /2 ( 4/3 ) k = ( 3 2 4 ) k . また16 < 18 16<18 16 < 18 なので4 / ( 3 2 ) < 1 4/(3\sqrt2)<1 4/ ( 3 2 ) < 1 である。▨
定理 4.3. L ∈ B P P L\in\mathsf{BPP} L ∈ BPP とする。定義の機械を独立に奇数回k k k 実行し、多数決を返す機械の誤り確率は、全ての入力で
( 4 3 2 ) k \left(\frac4{3\sqrt2}\right)^k ( 3 2 4 ) k 以下である。したがって、任意の0 < ε < 1 0<\varepsilon<1 0 < ε < 1 に対し
k ≥ log ( 1 / ε ) log ( 3 2 / 4 ) k\ge
\frac{\log(1/\varepsilon)}
{\log(3\sqrt2/4)} k ≥ log ( 3 2 /4 ) log ( 1/ ε ) を満たす奇数k k k を選べば、誤り確率をε \varepsilon ε 以下にすることができる。
証明. 入力x x x を固定し、第i i i 回の試行が誤った結論を返す事象の特性変数をX i X_i X i とする。x ∈ L x\in L x ∈ L とx ∉ L x\notin L x ∈ / L のどちらの場合も、B P P \mathsf{BPP} BPP の定義からPr [ X i = 1 ] ≤ 1 / 3 \Pr[X_i=1]\le1/3 Pr [ X i = 1 ] ≤ 1/3 である。各回に互いに素な乱数ビット列を用いるためX 1 , … , X k X_1,\ldots,X_k X 1 , … , X k は独立である。多数決が誤るなら、奇数k k k 回のうち少なくとも( k + 1 ) / 2 > k / 2 (k+1)/2>k/2 ( k + 1 ) /2 > k /2 回が誤る。したがって、補題 4.2 により誤り確率はρ k \rho^k ρ k 以下である。ρ k ≤ ε \rho^k\le\varepsilon ρ k ≤ ε をk k k について解けば表示された条件を得る。各試行が多項式時間であり、固定したk k k 、または入力長の多項式以下のk k k を選ぶ場合には総時間も多項式である。▨
系 4.4.
Z P P ⊆ R P ⊆ B P P , Z P P ⊆ c o R P ⊆ B P P . \mathsf{ZPP}\subseteq\mathsf{RP}\subseteq\mathsf{BPP},
\qquad
\mathsf{ZPP}\subseteq\mathsf{coRP}\subseteq\mathsf{BPP}. ZPP ⊆ RP ⊆ BPP , ZPP ⊆ coRP ⊆ BPP .
証明. 最初の二つのZ P P \mathsf{ZPP} ZPP の包含は定理 3.1 から従う。R P \mathsf{RP} RP の機械を二回独立に実行して OR を取ると、言語の要素の受理確率は少なくとも1 − ( 1 / 2 ) 2 = 3 / 4 1-(1/2)^2=3/4 1 − ( 1/2 ) 2 = 3/4 、外側の受理確率は0 0 0 である。したがって、B P P \mathsf{BPP} BPP の2 / 3 , 1 / 3 2/3,1/3 2/3 , 1/3 条件を満たす。c o R P \mathsf{coRP} coRP の機械を二回独立に実行して AND を取ると、言語の要素の受理確率は1 1 1 、外側の受理確率は高々( 1 / 2 ) 2 = 1 / 4 (1/2)^2=1/4 ( 1/2 ) 2 = 1/4 である。したがって、こちらもB P P \mathsf{BPP} BPP に属する。▨
注意 4.5 (アルゴリズムと計算量クラス). 一つの乱択アルゴリズムには、対象とする問題、入力表現、実行時間、および入力ごとの成功確率がある。これに対してR P \mathsf{RP} RP 、c o R P \mathsf{coRP} coRP 、Z P P \mathsf{ZPP} ZPP 、B P P \mathsf{BPP} BPP は言語のクラスであり、全入力に対する量化と一つの多項式上界を満たす機械の存在によって定まる。特定の入力で高い成功率を観測したことだけでは、そのアルゴリズムがいずれかの計算量クラスの定義を満たすという結論を得ることができない。
5 演習
問題 5.1.
R P \mathsf{RP} RP とc o R P \mathsf{coRP} coRP について、確率0 0 0 でなければならない誤りをそれぞれ答えよ。
B P P \mathsf{BPP} BPP 機械を同じ乱数列でk k k 回実行しても、定理 4.3 の証明を適用することができない理由を説明せよ。
一回の誤り確率が1 / 2 1/2 1/2 以下のR P \mathsf{RP} RP 機械について、誤り確率を2 − 20 2^{-20} 2 − 20 以下にする反復回数と出力規則を答えよ。
零誤り機械を期待時間の二倍で打ち切る二つの方法が、それぞれR P \mathsf{RP} RP とc o R P \mathsf{coRP} coRP のどちらを与えるかを説明せよ。
解答 (演習の要点).
R P \mathsf{RP} RP では言語の外側を受理する確率が0 0 0 であり、c o R P \mathsf{coRP} coRP では言語の要素を拒否する確率が0 0 0 である。
各回の誤り事象が独立でなくなり、積による確率評価と指数モーメントの積への分解を使用することができない。
独立に20 20 20 回実行し、一回でも受理したら受理する。言語の要素に対する全回拒否の確率は高々2 − 20 2^{-20} 2 − 20 である。
時間切れで拒否すれば誤った受理が生じないR P \mathsf{RP} RP 機械になり、時間切れで受理すれば誤った拒否が生じないc o R P \mathsf{coRP} coRP 機械になる。
▨