新起点
BPP (复杂度)
2020-08-03 01:05:14

在计算复杂度理论里面,BPP是在多项式时间内以几率图灵机解出的问题的集合, 并且对所有的输入,输出结果有错误的概率在1/3之内。BPP这个简写代表"Bounded-error"(有限错误),"Probabilistic"(几率的),"Polynomial time"(多项式时间)。

要是一个问题在BPP集合里面,则存在一个算法,此算法允许转硬币作随机的决定,并在多项式时间内结束。 对这个算法的任何输入,他都要在小于1/3的错误概率之下给出正确判断,不论这一个问题的答案是"正确"或者"错误"。

在这里定义里面的1/3是任意给定的。它可以是在 0 与 1/2(不包含0与1/2自身) 之间的 任意常数而BPP集合维持不变(当然这个常数必须跟输入值为何无关)。原因在于,虽然这算法有错误的几率,但是只要我们多进行几次算法,那多数的答案都是错误的几率会呈现指数衰减 . 因此证明我们可以很简单的架构一个更准确的算法,仅仅单纯多重复几次这个算法然后对每次的答案作多数决。

BPP是大小最大的几个问题类别之一,代表大多数的BPP问题都有有效率的概率算法,因此以上倏地方法可以用现在的机器快速取得解答。因为这个原因,我们对哪一些问题或问题种类在BPP里面有着实用方面的兴趣。

一个语言在BPP里面,当且仅当这语言存在一个概率图灵机 ,另

另外,BPP可以仅以决定性图灵机定义。一个语言是在BPP里面当且仅当存在一个多项式和一个决定性图灵机,满足

已知 BPP 在取补集之下有封闭性; 换句话说, BPP=Co-BPP。 BPP是否是NP的子集仍旧是一个公开的问题。 另外NP是否是BPP的子集也是个公开的问题; 如果是的话,则NP=RP并且PH {\displaystyle \subseteq } , Manindra Agrawal 与他的学生 Neeraj Kayal 和 Nitin Saxena为了这个问题找到了一决定性,多项式时间的算法,因而证实这个问题是在P里面。

一个很重要的范例问题已知在BPP内 (事实上在co-RP内),但不知道是否在P之内。这问题是等同多项式检定, 这问题在于决定一个多项式是否完全等同于一个零多项式。 换句话说,是否存在任何变数数值的组合令这个多项式的结果不为零? 这题目应均匀且随意的从一个至少 个值的有限集合取变数的值来达到有限几率的错误(代表多项式的总次数)。

BPP是低对应于自己 , 代表一个能在常数时间内解决BPP问题的BPP机器 (一个BPP 启示图灵机) ,他的运算能力并不因此比没有这能力的机器更强(或说,两个不同机器定义出来的问题种类维持不变)。

BPP这个语言集合是以一个普通的图灵机加上一个乱数的来源来定义。 相对应的量子计算机语言集合则是BQP。

任何在BPP里面的语言可以被多项式大小的布林线路来决定 (参见P/poly).

相关:

网站公告: