“该图连接 P、RP、ZPP、BPP 与 PP。概率放大 固化常数阈值,Sipser–Gács–Lautemann 把 BPP 放入 PH,伪随机生成器则研究这些包含何时能坍缩到 P。”
形式陈述
ZPP 是可由零错误、期望多项式时间随机算法解决的语言类。具体地,存在使用独立公平随机位带的随机算法
随机位带允许无限长;这里约束期望耗时,而不预先限制每条路径读取的位数。期望针对算法的随机币
这是一种 Las Vegas 范式:随机性改变得到答案所花的时间,不改变最终答案的真假。与之相比,BPP 固定多项式时间预算,但允许每个输入上有小概率答错。
直觉
允许回答“暂时不知道”
另一种等价定义是:存在最坏多项式时间算法
从期望时间定义得到它,只需在
反过来,用全新的独立随机币反复运行
为什么
RP 算法给出的“接受”是可靠结论:非成员绝不被接受,成员以至少
若一个语言同时有这两种算法,每轮分别运行一次。RP 算法接受就输出
| 输入属于哪边 | 能给出可靠答案的一方 | 每轮得到答案的概率 |
|---|---|---|
| RP 算法接受 | 至少 |
|
| coRP 算法拒绝 | 至少 |
每轮耗时有多项式上界,用新随机币重试便得到 ZPP 算法。这是两种可靠输出方向的组合,不是把任意两个可能出错的答案互相投票。
反向从三输出的 ZPP 刻画出发:将
例子与边界
随机快速排序展示了什么
以互异键的随机快速排序为例,无论选到哪些枢轴,完成时都给出正确排序。对每个固定输入,它的期望比较次数为
排序是函数问题,而 ZPP 的对象是语言判定问题,因此不能直接把“快速排序”当成 ZPP 中的一个语言。这个例子的作用是解释时间保证的含义,而不是证明某个困难判定问题因此属于 ZPP。
期望界与截止时间
仅从
固定截止时间后强行猜一个
推论与应用
确定性多项式算法是不使用随机币的特例,故P 包含于 ZPP。将三输出算法独立运行两轮,再把两轮都失败的情形任意映射为
把一个 ZPP 算法的最终
设计此类算法时,核心任务是把不确定性变成可检测的“重试”,并对每个固定输入给出非微小的成功概率。一个永远答对却经常等待极久的过程,和一个总是很快却可能悄悄答错的过程,都尚未同时满足这两个要求。
这里约束的是随机运行时间的期望,而不是每条随机执行路径都满足同一个时间复杂度上界。
参考资料
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach,作者公开草稿,§7.3、Definition 7.7 与 Theorem 7.8;正式版 Cambridge University Press, 2009。
- John Gill, “Computational Complexity of Probabilistic Turing Machines,” SIAM Journal on Computing 6(4), 1977, pp. 675–695。