确定性困难的高效简单随机算法


33

我经常听到,对于许多问题,我们知道非常优雅的随机算法,但没有,或者只有更复杂的确定性解决方案。但是,我只知道几个例子。最突出

  • 随机快速排序(以及相关的几何算法,例如用于凸包)
  • 随机Mincut
  • 多项式身份测试
  • 克莱的度量问题

其中,如果不使用随机性,则仅多项式恒等性检验似乎非常困难。

您是否知道更多示例问题,其中随机解决方案非常优雅或非常有效,而确定性解决方案却并非如此?理想情况下,外行应容易激发问题(与多项式身份测试不同)。


10
另一个例子是素数测试。Miller-Rabin和Solovay-Strassen概率素数检验非常简单有效。寻找有效的确定性素数检验是一个长期存在的难题,该检验已由Agrawal,Kayal和Saxena解决。AKS检验是确定性多项式检验素数检验。但是,它不像概率测试那样简单且效率不高。
尤里2012年

8
随机选择(中位数发现)比确定性要容易一些。近似求解打包和覆盖LP的随机算法(在最坏的情况下)比确定性的算法(KY07GK95更快。许多在线问题已将算法随机化,比任何确定性算法FK91更具竞争
Neal Young

11
计算高维凸体的体积可以通过随机化实现逼近。众所周知,没有确定性算法可以给出良好的近似。因此,随机化在这里至关重要。(1+ϵ)
Chandra Chekuri 2012年

5
@ChandraChekuri这是一个很好的评论,它将是一个更好的答案:)
Suresh Venkat 2012年

3
@ChandraChekuri在Oracle模型中,否则BPPP
Sasho Nikolov

Answers:


36

螺母和螺栓分类

Rawlins在1992年提出了以下问题:假设您得到了n个螺母和n个螺栓的集合。每个螺栓恰好适合一个螺母,否则,螺母和螺栓具有不同的尺寸。尺寸太小,无法直接比较成对的螺栓或螺母。但是,您可以尝试将它们拧在一起,从而将任何螺母与任何螺栓进行比较。在恒定时间内,您会发现螺栓太大,太小还是恰好适合螺母。您的任务是发现适合每个螺母的螺栓,或者等效地按大小对螺母和螺栓进行分类。

随机快速排序的一个简单变体以高概率解决了时间的问题。随机选择一个螺栓;用它来分割坚果;使用配套螺母对螺栓进行分隔;然后递归。但是,找到一个甚至可以在o n 2)中运行的确定性算法并非易事。确定性O n log n 时间算法最终由Bradford于1995年发现,由Komlós,Ma和Szemerédi独立发现。在后台,两种算法都使用AKS并行排序网络的变体,因此O nO(nlogn)o(n2)O(nlogn)时限很大;随机算法的隐藏常数为4。O(nlogn)

  • Noga Alon,Manuel Blum,Amos Fiat,Sampath Kannan,Moni Noar和Rafail Ostrovsky。配套螺母和螺栓。程序 五周年 ACM-SIAM症状。离散算法,690–696,1994年。
  • Noga Alon,Phillip G.Bradford和Rudolf Fleischer。螺母和螺栓的匹配速度更快。通知。程序 来吧 59(3):123–127,1996年。
  • 菲利普·G·布拉德福德。最佳地匹配螺母和螺栓。科技 众议员MPI-I-95-1-025,马克斯-普朗克研究所献给Informatik公司,1995年http://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/1995-1-025
  • 菲利普·G·布拉德福德和鲁道夫·弗莱舍。螺母和螺栓的匹配速度更快。 程序 6号 诠释 症状 算法计算。,402-408,1995年。科学 1004。
  • JánosKomlós,Yuan Ma和EndreSzemerédi。在时间内匹配螺母和螺栓。SIAM J.离散数学。11(3):347-372,1998年。O(nlogn)
  • Gregory J. E. Rawlins。比什么?:算法分析导论。计算机科学出版社/ WH Freeman,1992年。

2
这是一个美丽的例子,但这是一个oracle问题。有什么办法可以从中删除oracle?
彼得·索尔

找到了98 Szemeredi论文的链接?这有多难?平行比较每个螺栓和一个独特的螺母,然后将每个螺母按排序顺序排列;删除匹配的元素。在log(n)步骤中,合并排序的nbnbnbnbnb序列,在匹配出现时将其踢出。编辑:是的,nnn和bbbb字符串的不可比性在合并步骤上很烦人。
乍得·布鲁贝克

@ChadBrewbaker假设每一对中,螺栓比螺母小。(是的,这是可能的。)现在,您的算法会做什么?换句话说,“烦人” =“整个问题”。
Jeffε

我一直在寻找Szemeredi纸,然后大声思考它的难度。是的,我同意基于合并的方法并非易事。但是Vishkin关于并行图连通性的论文给人以直觉,这并非不可能。
乍得·布鲁贝克

通过对螺母和螺栓的每次比较,您都可以将有向边添加到图形中或将两个顶点都移除的匹配项。目的是合并连接的组件,使它们以线性的工作量折叠它们之间的所有匹配,并使连接组件中的边的存储大小限制为线性空间。
乍得·布鲁贝克

17

一旦您不仅在谈论多元时间,而且在研究我们研究的许多计算模型后,到处都有示例:

在Logspace中:无方向的ST连接(自1979年以来在RL中,仅从2005年以来在L中)

在NC中:在二部图中并行查找完美匹配(在RNC中,但仍未知在NC中)

在交互式证明中:确定性给定NP,而随机性给定PSPACE。相关:确定地检查证明需要查看所有证明,而PCP证明仅允许您检查恒定位数。

在算法机制设计中:许多随机的真实逼近机制,没有确定的对应物。

在“通信复杂性”中:等式函数需要确定性地进行线性通信,但需要对数(或取决于精确模型,恒定)通信。

在决策树中:评估“与”或“或”树需要确定性的线性查询,而随机化则要少得多。这基本上等效于alpha-beta修剪,后者提供了用于游戏树评估的随机亚线性算法。

在流模型中,为分布式计算模型:请参见先前的答案。


12

大多数流算法

在流式计算模型(AMS书籍)中,一种算法处理在线更新序列,并且被限制为仅保留亚线性空间。在任何时候,算法都应该能够回答查询。

tit[n]Dm=|{it:t=1m}|mΩ(n)O(logn)O(1ϵ2+logn)1±ϵ


8

nΔmin(Ω(logΔ),Ω(logn))

u

  1. u1/dudu>0udu=0u
  2. uu
  3. v

O(logn)O(n1/logn)


[1] Michael Luby:关于最大独立集问题的简单并行算法。SIAM J.计算。15(4):1036-1053(1986) http://dx.doi.org/10.1137/0215074

[2] Alessandro Panconesi,Aravind Srinivasan:论分布式网络分解的复杂性。J.算法20(2):356-374(1996) http://dx.doi.org/10.1006/jagm.1996.0017

[3] Fabian Kuhn,Thomas Moscibroda,Roger Wattenhofer:本地计算:上下界。CoRR abs / 1011.5470(2010) http://arxiv.org/abs/1011.5470


受生物系统启发,最近的算法(在PODC 2013上)通过使用简单的本地反馈机制获得了与Luby相同的性能。 arxiv.org/abs/1211.0235
安德拉斯·萨拉蒙

6

匿名选举过程中的领袖选举

1

有一个简单的论点(例如[1]),没有针对匿名环的确定性领导者选举算法。

模型:我们假设计算在同步回合中进行,在每个回合中,每个进程都执行一些本地计算,将消息发送到环中的邻居,并从其邻居接收消息。

Ar01

r0rArrr+1A

An[1,n4]


[1] Dana Angluin:处理器网络中的本地和全局属性(扩展摘要)。STOC 1980:82-93。 http://doi.acm.org/10.1145/800141.804655


6

查询模型中的多数问题。

nij

n/2O(n)

O(n)

FRK涌,RL格雷厄姆,J.毛,和AC姚明,不经意为广大和多元化问题,适应战略PROC。茧2005,第329-338页。

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.