可证明更快的随机算法在P中的问题


20

中是否存在任何问题,这些问题使随机算法超过了确定性算法的下限?更具体地讲,我们知道任何针对?这里表示由随机TM决定的语言集,在f(n)个步骤中具有恒定边界(一侧或两侧)错误。PkP Ť 中号È˚F Ñ ˚F Ñ DTIME(nk)PTIME(nk)PTIME(f(n))f(n)

\ mathsf {P}内的随机性会给我们买任何东西P吗?

明确地说,我正在寻找一种差异是渐近的(最好是多项式,但我会采用多元对数),而不仅仅是一个常数。

在最坏的情况下,我正在渐进地寻找算法。具有更高预期复杂度的算法不是我想要的。我指的是RP或BPP中的随机算法,而不是ZPP。


也许您正在寻找“姚明的技术”。简短说明可以在cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin

@WuYin如果我正确地理解了确定性算法的平均情况下,它将朝着下限随机算法的方向发展。没有买我们内部的任何P ..对吗?
aelguindy 2012年

1
为了在[ \ frac {n} {4}\ frac {3 * n} {4} ]中以秩为n的顺序找到长度为n的任何元素,我们可以简单地返回任意随机元素,并且使用\ frac {1 } {2}个概率,因此它的O(1)!而确定性算法将至少检查输入的一部分,从而检查\ Omega(n)nn43n412Ω(n)
rizwanhudda 2012年

@rizwanhudda可能有一些问题。首先,我正在寻找决策问题。其次,在Turing模型中,由于没有随机访问,因此返回的随机元素为。也许机器总是输出第一个元素?尽管如此,第一个问题还是更大。Ω(n)
aelguindy 2012年

2
最后一段没有意义,因为每个拉斯维加斯算法都可以转换为蒙特卡洛算法。
伊藤刚(Tsuyoshi Ito)2012年

Answers:


17

多项式身份测试允许使用随机多项式时间算法(请参阅 Schwartz-Zippel引理),并且我们目前尚无确定性多项式时间,甚至还没有次指数时间算法。

游戏树评估考虑一个完整的二叉树,其中叶节点每个存储0/1值。内部节点包含交替级别的OR / AND门。可以使用敌对论证证明,在最坏的情况下,每种确定性算法都必须检查叶节点。但是,有一个简单的随机算法,其预期运行时间为 请看演讲的幻灯片 14-27。Ω Ñ ø Ñ 0.793nΩ(n)O(n0.793)

超立方体上的遗忘路由考虑维中包含 个顶点的立方体。每个顶点都有一个数据包和一个最终要将数据包传递到的目的地。所有数据包的目的地均不同。即使如此,事实证明,任何确定性路由策略都将采取步骤。然而,有一个简单的随机策略,将在完成预期的步骤,以高概率Ñ = 2 Ñ Ω nN=2nOnΩ(Nn) O(n)

请注意,在随机算法中,预期成本具有很高的概率(例如)实际上相当于最坏的情况。P [R [ ˚F Ñ > 10 È ˚F Ñ ] < 1E(F(n)) Pr[F(n)>10E(F(n))]<1n2


此外,考虑用于测试矩阵,和如果。我们目前不知道算法,我们知道随机算法。关键是,是否存在可以证明随机算法更好的问题?B C A B = C o 2 2.3O n 2ABCAB=Co(22.3)O(n2)
aelguindy 2012年

@aelguindy我明白你的意思。但是,对于PIT,最著名的确定性算法是指数算法。而且,PIT去随机化是理论CS中一个重要的开放问题。
rizwanhudda 2012年

我在帖子中添加了Game tree评估和超立方体路由,事实证明,随机算法比确定性算法要好。
rizwanhudda 2012年

是的,对于Game Tree评估,如果我理解正确,它会以预期的,对吗?我的意思是在某些情况下它将以Ω n 运行。第三个例子也是如此吗?我不允许更好的预期时间,我希望更好的最坏情况下的复杂性,允许输出错误。O(n0.793)Ω(n)
aelguindy 2012年

1
因此,在最坏的情况下它们并不更好。尽管我欣赏这些示例,但恐怕这并不是我想要的。这些例子非常有启发性!
aelguindy 2012年

5

调查最坏情况对随机算法毫无意义。最坏情况下的运行时不仅经常是无限的,而且在该指标上也不能胜过确定性算法。

考虑任何随机算法。获得确定性算法通过用于随机胶带固定0 。然后,Ť Ñ Ť Ñ 对于所有ÑABA0TB(n)TA(n)n


5

我们知道有效的随机算法有很多问题,我们不知道任何可以证明有效的确定性算法。但是,这可能反映出我们证明有关复杂性而不是任何根本差异的能力的缺陷。

根据您的评论,您似乎想问的是是否存在有效的随机算法的问题,我们可以证明没有可比效率的确定性算法。我不知道有什么问题。

确实,有合理的理由怀疑这种问题不太可能存在。从经验上讲,这种问题的存在可能意味着安全加密是不可能的。这似乎是一个令人难以置信的结果。

你问什么关系?好吧,请考虑可以有效解决某些问题的任何随机算法它依赖于随机硬币:从真实随机源获得的随机比特。现在假设我们采用了具有密码质量的伪随机数发生器,并用伪随机数发生器的输出替换了真实随机数源。通话所产生的算法一个。注意,A '是确定性算法,其运行时间与A大致相同。AAAA

此外,如果密码PRNG是安全的,启发式我们应该期待是一个很好的算法,如果一个是:AA

  • 例如,如果是一种拉斯维加斯算法(它总是输出正确的答案,并以高概率快速终止),那么A 将是一个很好的确定性算法(始终输出正确的答案,并且对于大多数输入都迅速终止) 。AA

  • 作为另一示例,如果是一个蒙特卡洛算法(确定性的运行时间,并且输出的概率至少正确答案1 - ε),则将是一个不错的确定性算法(确定性的运行时间,并输出了正确的答案在所有输入的1 - ε中)。A1εA1ε

因此,如果密码PRNG是安全的,并且有一个有效的随机算法,那么您将获得非常好的确定性算法。现在,如果某些密码假设成立,则可以保证许多密码PRNG的构造是安全的。实际上,这些密码学假设被广泛认为:至少,安全的商业和交易依赖于它们的真实性,因此我们显然愿意押注存在安全密码学的巨额资金。这种转换失败的唯一方法是不存在加密PRNG,这反过来意味着不可能进行安全加密。尽管我们没有任何证据证明并非如此,但这似乎是不太可能的结果。

结构细节:这是工作原理。上输入X,它导出用于加密PRNG作为的函数的种子X(例如,通过散列X),然后模拟X ,使用加密PRNG作为硬币的输出。例如,特定的实例将设置k = SHA256 x ,然后将k用作计数器模式下的AES256或其他加密PRNG的种子。我们可以在随机预言模型下证明以上陈述。AxxxA(x)Ak=SHA256(x)k

如果您不满意的想法,上投入一些小部分可能输出不正确的结果,可以得到解决。如果多次重复A '并获得多数表决,则错误概率在迭代次数中呈指数级下降。这样,通过迭代的次数恒定数目,就可以得到错误概率ε为低于1 / 2 256,这意味着机会,您在输入运行XAAε1/2256x算法输出错误答案的位置几乎很小(小于连续多次被雷击的机会)。而且,根据我上面给出的结构,可以使对手甚至在A '给出错误答案的情况下找到输入的机会很小,因为这将需要破坏SHA256哈希的安全性。(从技术上讲,这需要使用随机预言模型进行证明,因此这意味着必须选择A独立于SHA256,而不是对其进行与SHA256相关的计算中的硬编码,但是几乎所有现实世界算法都可以满足该要求)xAA

如果你想要更强的理论依据,可以迭代Θ Ñ 倍,得到的错误概率低于1 / 2 Ñ,其中Ñ是输入的长度X。现在的分数Ñ位输入,其中'给出了一个不正确的答案是不是严格小于1 / 2 Ñ。但是只有2 n个可能的n位输入,并且每一个A都是正确的或不正确的,因此得出在A '处没有输入的结论A Θ(n)1/2nnxnA1/2n2nnAA不正确:是对所有输入正确,这个拥有无条件。如果一个在时间用完牛逼ñ ,然后一个'在时间用完Θ ñ Ť ñ ,所以一个'是有点慢但不会太大慢。这是Adleman证明BPP包含在P / poly中的内容。出于实际目的,这可能是过大了,但是如果您喜欢避免加密假设的干净证据,或者如果从理论家的角度进行研究,那么您可能会更喜欢此版本。AAt(n)AΘ(nt(n))AA

有关后面的理论考量和其他问题的更多详细信息(我们知道有效的随机算法,但我们不知道任何可以证明有效的确定性算法),请参阅/cstheory//q/31195 / 5038

总结:对于任何我们知道有效的随机算法的问题,我们也知道确定性算法在实践中似乎很有效-但目前我们还不知道如何证明它是有效的。一种可能的解释是,我们只是不能很好地证明有关算法的知识。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.