Computational Complexity: Randomized Computation
Probabilistic Turing Machine
$\textbf{PTM}$是$\textbf{NDTM}$的升级,其以确定的概率(一般均为0.5)选择$\delta _0$和$\delta _1$。故概率图灵机的输出$\mathbb{P}(x)$是一个随机分布(变量)。$
\text{Pr}[\mathbb{P}(x)=y]$表示给定输入$x$,该概率图灵机输出$y$的概率。
一个函数$\phi$是概率可计算的(能被概率图灵机$\mathbb{P}$计算),若:
$$
\phi(x)=
\begin{cases}
y,\text{if}\space \text{Pr}[\mathbb{P}(x)=y] > 1/2 \\
\uparrow, \text{if no such y exists}
\end{cases}
$$
一个语言$L$能被$\textbf{PTM}$判定,当且仅当:
$$
\text{Pr}[\mathbb{P}(x)=L(x)] > 1/2
$$
概率图灵机可计算的函数就是可计算函数。
Average Case Time Complexity
概率图灵机可以定义平均时间复杂性。
With bounded error:
$$
\phi(x)=
\begin{cases}
y,\text{if}\space \text{Pr}[\mathbb{P}(x)=y] \ge 1/2 + \epsilon \\
\uparrow, \text{if no such y exists}
\end{cases}
$$
带bounded error是为了避免出现任何问题都能平均两步解决的错误结论。
Polynomial Identity Testing
著名随机算法——等价性测试:测试两个电路是否是等价的。
在有限域中随机取值,直接输入该电路。
$\textbf{PP}$
若$\forall x \in \{0,1\} ^*$,$\text{Pr}[\mathbb{P}(x)=L(x)] > 1/2$,且对任意的选择,$\mathbb{P}$在$T(|x|)$步内停机,则$\mathbb{P}$在$T(n)$时间内判定$L$。($T$为最坏时间复杂性)
上面的定义即为$\textbf{PP}$类,其等价定义为:有个多项式时间的普通图灵机$\mathbb{M}$,使得:
$$
\text{Pr} _{r \in \{0,1\} ^{p(|x|)}}[\mathbb{M}(x,r)=L(x)] > 1/2
$$
其中$r$为一个随机串。
$$
\textbf{NP},\text{co}\textbf{NP} \subseteq \textbf{PP} \subseteq \textbf{PSPACE}
$$
PP完全
都是$\textbf{SAT}$的变形。
$\phi \in \text{MajSAT}$如果有超过一半的真值指派,使得$\phi=1$。
C-L归约,$\delta$的选择转变为一个个真值指派。
$\textbf{PP}$是封闭的,所以对$A \in \textbf{PP}$,$B \in \textbf{PP}$,有$A\cap B \in \textbf{PP}$,$A \cup B \in \textbf{PP}$。
$\textbf{BPP}$
B:Bounded-Error
接受标准:With bounded-error,即要严格大于$1/2$。时间复杂度:最坏时间复杂度与平均时间复杂度都行(马尔可夫不等式),两者定义出来的是等价的。$\textbf{BPP}$一般用的标准是$2/3$。
$$
\textbf{P} \subseteq \textbf{BPP} \subseteq \textbf{PP}
$$
$$
\textbf{BPP}= \textbf{coBPP}
$$
$\textbf{BPP}$是很鲁棒的,出错概率大和出错概率小的$\textbf{BPP}$定义的是同一个类。(出错概率高,则多运行几次,取出现多的为最终值)。
错误压缩定理:可以把错误压缩到指数的倒数。
带神谕的BPP
$$
\textbf{BPP} ^{\textbf{BPP}} = \textbf{BPP}
$$
错误压缩,让子程序的调用几乎不出错。
$\textbf{BPP}$完全
不存在。如果$\textbf{BPP}=\textbf{P}$,则存在。
Adleman Theorem:
$$
\textbf{BPP} \subseteq \textbf{P} _{\text{poly}}
$$
定理:
$$
\textbf{BPP} \subseteq \Sigma _2 ^p \cap \Pi _2 ^p
$$
用错误压缩定理证明。
$\textbf{ZPP}$
平均运行时间为P且不出错的概率图灵机:
$$
\textbf{ZPP}=\bigcup _{c \in \text{N}}\textbf{ZTIME}(n ^c)
$$
如一些排序算法
$L \in \textbf{ZPP}$等价于存在最坏时间为$\textbf{P}$的概率图灵机,其在多项式时间内输出$\{0,1,?\}$,其中$?$表示算不出来,要求算不出来的概率小于等于1/3。
单向出错算法:回答是一定对,回答否可能错。
多项式时间的单向出错算法:
$$
\textbf{RP}=\bigcup _{c \in \text{N}} \textbf{RTIME}(n ^c)
$$
其与$\textbf{ZPP}$存在关系:
$$
\textbf{ZPP}=\textbf{RP}\cap \textbf{coRP}
$$
左到右:若让$?$是始终回答NO,则ZPP就是RP;若始终回答YES,则ZPP就是coRP;
右到左:RP回答YES一定是对的,coRP回答NO一定是对的,因此交叉运行两个算法即可。
RP也有错误压缩定理。类似地,ZPP也有错误压缩定理。