第七个知识点:随机性如何辅助计算和什么是BPP类问题
原文地址:http://bristolcrypto.blogspot.com/2014/11/52-things-number-7-how-does-randomness.html
这篇是密码学52件事中第7篇.我们只要把问题集中在BPP复杂类问题.
目前为止,我们已经介绍了一些复杂类:
- P 是一类能在多项式时间内被可确定的图灵机判定的问题.
- NP是一类能在多项式时间内被非确定的图灵机判定的问题.
- BPP是一类在多项式时间内被概率图灵机解出的问题,并且对所有的输入,输出结果有错误的概率在1/3之内.
概率图灵机
概率图灵机 [1] 是一类非确定的图灵机,这种图灵机在每个分支随机的选择,这种选择通过固定的随机分布.这种概率图灵机意味着每次输出的结果是不确定的.对于相同的输入,多次运行概率图灵机,得到的结果可能是接受的,也可能是拒绝的.这种图灵机的定义给出的几类问题的定义.RP,ZPP,和我们这次重要讨论的BPP.
BPP类复杂问题的一些概念
我们已经看到了这个BPP(Bounded-Error probabilistic polynomial time)的定义.注意这个错误概率能是在0到1/2之间的任何值,因为一个被叫做扩增定理(amplification lemma我们不会在这里讨论更多).BPP类问题是包含P类问题的,P类问题是BPP类问题的特例.错误概率为0.现在提出一个问题\(BPP==P\)?现在我们知道的是BPP的问题在逐渐被转换为P类问题.
一个BPP类问题的例子
最著名的BPP类问题但是不是P类问题就是确定一个数字是否是素数 [2] .然而在2002年已经被证明存在一个P类问题的算法了.另一个还没有被转换为P类问题的是polynomial identity testing [3].
关于复杂性类的主题,仍然有许多非常重要的未回答的问题。其中一些问题如果得到解答,将对密码学和计算机科学的未来产生重大影响。
[1] - http://en.wikipedia.org/wiki/Probabilistic_Turing_machine
[2] - http://en.wikipedia.org/wiki/AKS_primality_test
[3] - http://en.wikipedia.org/wiki/Schwartz%E2%80%93Zippel_lemma