随机化何时可以加速算法,但“不应该”?


39

Adleman证明包含的证明表明,如果存在一个针对大小为输入在时间上运行的问题的随机算法,那么对于在时间上运行的问题也存在确定性算法输入大小为 [算法在独立的随机字符串上运行随机算法。重复算法必须具有随机性,这对所有都有利P / p ö ý Ñ ñ Θ Ñ Ñ ñ Θ Ñ 2 ÑBPPP/polyt(n)nΘ(t(n)n)nΘ(n)2n可能的输入]。确定性算法不统一-对于不同的输入大小,其行为可能有所不同。因此,阿德勒曼(Adleman)的论点表明-如果不关心均匀性-随机化只能以输入大小呈线性的因数加速算法。

据我们所知,随机化可以加速计算的一些具体示例是什么?

一个例子是多项式身份测试。这里的输入是一个n大小的算术电路,用于计算一个字段上的m变量多项式,任务是找出该多项式是否相等为零。随机算法可以在随机点上评估多项式,而我们所知的最佳确定性算法(可能是现有的最好的)可以在许多点上评估多项式。

另一个例子是最小生成树,其中Karger-Klein-Tarjan的最佳随机算法是线性时间(错误概率呈指数小!),而Chazelle的最佳确定性算法在时间(是Ackermann逆函数,因此随机化加速确实很小)。有趣的是,Pettie和Ramachandran证明,如果最小生成树存在非统一的确定性线性时间算法,那么也存在统一的确定性线性时间算法。αO(mα(m,n))α

还有哪些其他示例?您知道哪些示例的随机化加速率较高,但这可能仅仅是因为我们尚未找到足够有效的确定性算法?



通过将随机生成器替换为具有密码质量的伪随机生成器,您始终可以将任何随机算法转换为确定性算法。在合理的密码学假设(据我们所知)是有效的情况下,此方法有效。因此,我的回答是:“据我们所知,答案是:没有任何此类现实问题”。(换句话说,就我们所知,运行时中的差距反映了我们无法证明严格的运行时界限,而不是任何实际的根本差异。)
DW 2015年

1
在合理的硬度假设下,您可以从伪随机数生成器提供算法随机性,但是要真正从中获得确定性算法,您需要对所有可能的种子运行该算法。这炸毁了运行时间!
Dana Moshkovitz

除了Dana的观点,我认为要对BPP进行随机化,PRG需要比原始算法运行更多的时间(尽管我不知道差距有多大)。同样,这可能说明确定性和指数高置信度之间存在(根本性)差距:只需将随机算法重复次(对于任何常数)即可获得正确概率,但是确定性版本需要检查所有多项式的许多种子。c 2 O c cc2O(c)
usul 2015年

@DanaMoshkovitz,这取决于您是从理论角度还是从实践者角度来解决。从从业者的角度来看,不,您不需要这样做。请参阅cs.stackexchange.com/a/41723/755中概述的构造,该构造仅在种子上运行该算法。在随机预言机模型下,可以证明渐近运行时间没有增加,并且没有计算边界的对手很可能能够找到该算法产生错误答案的任何算法输入。对于所有实际目的,这可能已经足够了。O(1)
DW

Answers:


28

我不知道随机化是否“应该”或“不应”帮助,但是,可以使用随机米勒-拉宾(Miller-Rabin在时间内完成整数素数测试,而据我所知,假定GRH(确定性Miller–Rabin)或(无条件)(假设AKS变体),最著名的确定性算法是)。øÑ4øÑ6O~(n2)O~(n4)O~(n6)


尽管有理由相信的最小组合见证是的阶,这将给出算法。但是,即使在标准的数论猜想(如RH的变体)下,这仍然未经证实。日志Ñ 日志的日志Ñ øÑ 3NlogNloglogNO~(n3)
EmilJeřábek在2015年

类似的问题是在有限域上进行多项式不可约性测试,在这种情况下,已知的确定性算法的界限要比随机算法差,但我不记得细节了。
EmilJeřábek在2015年

19

一个古老的例子是体积计算。给定一个隶属度oracle描述的多面体,有一个在多项式时间内运行的随机算法来估计其体积为1因子,但是没有确定性算法可以无条件地接近。1+ϵ

这种随机策略的第一个例子是Dyer,Frieze和Kannan,确定性算法的硬度结果是Bárány和Füredi。阿利斯泰尔(Alistair Sinclair)在这方面有很好的讲义

我不确定我是否完全理解问题的“并且不应”部分,因此我不确定这是否符合要求。


1
我知道MCMC方法,但没有意识到这个下限,我很惊讶(我以为所知道的只是#P-hardness)。可从Füredi的网页上访问的论文是“计算体积困难” ,它们给出了近似的近似下限。[n/logn]n
杰里米·昆

9

我不知道这是否能回答您的问题(或至少是部分问题)。但是,对于在现实世界中,可以提高速度的示例是优化问题以及与“ 免费午餐(NFL)定理”的关系

有一篇论文“也许不是免费的午餐,但至少是免费的开胃菜”,其中表明采用随机化(优化)算法可以具有更好的性能。

抽象:

通常要求进化算法优于其他优化技术,尤其是在对要优化的目标函数知之甚少的情况下。与此相反,Wolpert和Macready(1997)证明,所有优化技术在所有上平均具有相同的行为,其中和是有限集。该结果称为无免费午餐定理。这里介绍了不同的优化方案。有人争论为什么免费午餐定理所基于的场景不能对现实生活中的优化进行建模。对于更现实的场景,有人争论了为什么优化技术的效率会有所不同。仅举一个小例子就可以证明这一主张。X Yf:XYXY

参考文献:

  1. 没有用于优化的免费午餐定理(用于优化的原始NFL定理)
  2. 也许不是免费的午餐,但至少是免费的开胃菜
  3. 无免费午餐和描述的长度(显示NFL结果对所有可能函数集的任何子集都成立,前提是在杯形排列下是封闭的)˚FFF
  4. 在没有免费午餐结果的功能类别上(已证明杯子的子集所占比例很小)
  5. 没有免费午餐结果的两个大类函数(表明当函数的描述长度有足够的界限时,NFL结果不适用于一组函数)
  6. 连续午餐是免费的,还可以设计最佳优化算法(表明对于连续域,NFL的官方版本不成立。该自由午餐定理基于通过随机场的随机适应度函数概念的形式化) )
  7. 超越免费午餐:任意问题类别的现实算法(表明“ .. [a] ll违反免费午餐定理可以表示为杯状问题子集上的非块均匀分布”)
  8. 基于群体的元启发式算法和No-Free-Lunch定理(“ [..t]因此,对于重访案例,非重访时间顺序迭代的结果可能不正确,因为重访迭代破坏了以下重要假设:证明NFL定理所需的杯子(Marshall and Hinton,2010)“)
  9. 没有免费的午餐和算法随机性
  10. 没有免费的午餐和基准(一套理论方法可以推广到非特定于杯子的标准,但仍然要注意,(非平凡的)随机算法可以平均胜过确定性算法,“ [..]已证明,一般情况下,概率不足以肯定无约束的NFL结果。[..]本文放弃了概率,而是选择了一种集理论框架,该框架通过完全放弃概率来消除量度理论的局限性”。

David H. Wolpert的免费午餐(和免费午餐)摘要,晚餐费用是多少?请注意,由于NFL型定理的证明类型,它从未指定实际的“ 价格 ”)

专门针对广义优化(GO):

  1. 两个空间和。例如,是输入,是输出上的分布。Z X ZXZXZ

  2. 适应度函数f:XZ

  3. m的采样点:(其中, 每个的(可能是随机的)函数f

    dm={dm(1),dm(2),...,dm(m)}
    t
    dm(t)={dmX(t),dmZ(t)}
    dmZ(t)f[dmX(t)]
  4. 搜索算法a={dtdmX(t):t=0..m}

  5. 欧式向量值成本函数C(f,dm)

  6. 为了捕获特定类型的优化问题,大部分问题结构用C(.,.)

NFL定理主要取决于与无关。如果取决于,则可能有免费午餐。例如,除非,否则 独立于。f C f C f d mf = f CfCfC(f,dm)f=f

最后,简单(不是那么简单)说明了为什么随机(以一种或另一种形式)可以提供比严格确定性算法更好的性能。

  1. 优化的上下文中(尽管不限于此),随机搜索过程平均 比确定性搜索更好地逃避局部极值,并达到全局极值。
  2. 集合的顺序,基数和随机化之间(在一般意义上)存在一个有趣的关系(乍一看也不简单)。集合的幂集(及其基数)本质上取决于集合(元素)的某个(静态)固定排序。假设对(元素的)的排序不是(静态地)固定的(随机化可以以随机排序的形式输入到此处),则集合可以表示自己的幂集(如果它有助于将其视为一种幂集)经典集合的量子类似物的描述,其中动态排序起着解释一种叠加原理的作用)。 A A A A2AAAAA

1

最好的例子是在当前被认为是OWF的最佳候选人的地区,似乎每个煮熟的流行OWF都有一个随机的次指数算法,而没有确定性的次指数算法(例如,整数分解)。实际上,在许多情况下,给出一些建议字符串(密码分析)可能是一种有效的算法。


-5

如果您有使用随机化的算法,则始终可以将其替换为使用伪随机数的确定性算法:对问题进行描述,计算哈希码,使用该哈希码作为良好伪随机数生成器的种子。实际上,这实际上是有人使用随机化实现算法时可能发生的情况。

如果我们省略哈希码,则该算法与使用真正随机化的算法之间的区别在于,我可以预测生成的随机数的序列,并且可以产生一个问题,使得应用于我的问题的预测随机数将始终做出最糟糕的决定。例如,对于具有伪随机枢轴的Quicksort,我可以构造一个输入数组,其中伪随机枢轴将始终在数组中找到最大可能的值。真正的随机性是不可能的。

使用哈希码,对我来说很难构造一个伪随机数产生最差结果的问题。我仍然可以预测随机数,但是如果我改变问题,伪随机数的序列将完全改变。不过,您要证明我无法构造这样的问题几乎是不可能的。


我是cstheory.SE的新手。因此,拒绝投票的人-这个答案出了什么问题?
galdre

3
有两件事是错误的:(1)我们一般都不知道如何构造伪随机数,(2)即使我们确实知道如何构造伪随机数,它们在计算上也很昂贵。在实践中使用的伪随机数不能保证在理论上起作用。我们所知道的是,它们似乎是凭经验工作的。(实际上,大多数实际使用的PRNG可能会被破坏,因此,实际上,只有在您没有专门尝试破坏它们的情况下,它们实际上一般都不安全。)
Yuval Filmus 2015年

2
cstheory.se与理论计算机科学有关,而不是编程实践。不管您喜不喜欢,这两个区域是完全分开的。
Yuval Filmus 2015年

2
@YuvalFilmus:C. Gunther于1987年发明的交替步进发生器尚未被破坏(尚未进行公开突破,我怀疑NSA也已被破坏)。二十八年是一个长久不间断的时间,令我惊讶的是,如此简单的发生器(三个LFSR和一个XOR门,那有多简单?
威廉·希尔德

2
@WilliamHird:根据“损坏”的定义,它似乎实际上已经损坏(与相关,更有效和广泛使用的A5 / x系列大致相同)。参见 crypto.stackexchange.com/a/342
EmilJeřábek在2015年
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.