我们何时能找到已知算法的更好界限?


16

是否有一些有趣的算法实例已被证明具有可靠的界线,而后来又严格地提出了更好的界线?没有更好的算法和更好的界限-显然发生了!但是更好的分析导致对现有算法的更好限制

我以为矩阵乘法就是一个例子,但是在试图更好地了解Coppersmith–Winograd及其朋友之后,我已经说了出来(也许是错误的!)。


一个理想的例子是矩阵乘法。实际上,最近的改进都是更好的分析方法(Le Gall,Williams等)。
Lwins

Lwins-我怀疑可能是这种情况,但是略读一些论文使我认为它们在算法和分析上都稍有不同。我可能需要更深入地研究。
罗布·西蒙斯

这是半答案,因为这是第二手道听途说:在确定Buechi自动机(dl.acm.org/citation.cfm?id=1398627)时,Safra最初将其构造分析为具有二次指数。然后,在写下构造后,由于一些误解,他得出了更好的(最佳)指数。nlogn
Shaull

我建议调查运动计划问题-我觉得那里已经有好几个案例了。而且,IIRC单纯形算法的精确复杂度是一个研究问题,已有相当长的时间了。
史蒂文·斯塔德尼基

1
稍有不同,但是通过更仔细的分析,在3SAT实例中满足子句的输入的存在性证据已改进为显式算法。7m/8
斯特拉·彼德曼

Answers:


23

联盟查找算法,它的Tarjan 1表现出了复杂nα(n),其中α(n)是逆阿克曼功能,受到了许多人以前分析。根据Wikipedia的说法,它是由Galler和Fischer 2发明的,但这似乎是不正确的,因为他们没有使算法快速运行所需的所有算法组件。

基于对论文的简短扫描,似乎该算法是由Hopcroft和Ullman 3发明的,他们给出了(不正确的)O(n)时限。然后,Fischer 4在证明中发现了错误,并给定了O(nloglogn)时限。接着,Hopcroft和乌尔曼5给了一个O(nlogn)结合的时间,在这之后的Tarjan 1中发现的(最优的)O(nα(n))结合的时间。

1 RE Tarjan,“有效但不是线性集并集算法的效率”(1975年)。
2 BS Galler和MJ Fischer,“一种改进的等效算法”(1964年)。
3 JE Hopcroft和JD Ullman,“线性列表合并算法”(1971年)。
4 MJ Fischer,“等效算法的效率”(1972年)。
5 JE Hopcroft和JD Ullman,“集合合并算法”(1973)。


2
对于我来说,这种数据结构的历史还不太清楚,对此进行调查将很高兴。我浏览了Galler和Fischer的文章,似乎描述了不相交集森林(DSF)数据结构,但没有关键路径压缩(PC)和加权联合(WU)启发式方法。Hopcroft和Ullman引用了Knuth的观点,将具有PC而没有WU的DSF归因于PC,而没有WU。我不确定是否在Hopcroft和Ullman发表论文之前就在同时发表的论文中提出了同时使用PC和WU的DSF,尽管我对此并不感到惊讶。
Sasho Nikolov

1
O(nloglogn)Θ(n)O(nlogn)
彼得·索尔

12

k-SATO(1.364n)3-SATO(1.308n)3-SAT 当时众所周知。


这是一个非常令人满意的答案!我认为它和Union Find示例是我所希望的最佳示例。
罗布·西蒙斯

8

FpFp

Lp(1/3,32/3)Lp(1/3,1.232)

Lp(v,c)=exp((c+o(1))(logp)v(loglogp)1v)


1
很有精神,谢谢!
罗布·西蒙斯

6

kO(nk+o(1))O(n2k2)O(n1.98k+O(1))

Ω(nk)

注意: Jason Li的演讲(以及相应的幻灯片)可以在TCS +网站上找到


k



4

3 给出更精细的分析(计算子问题/子结构),从而导致更好的重复发生以及更好的运行时间。我认为在参数化的复杂性文献中有很多这样的例子,其中在分析中添加另一个变量可以改善运行时间,但是我已经离开游戏了几年了,我想不出具体的例子。此时此刻。在论文标题中寻找“改进的分析”时,FPT和PTAS领域中出现了许多论文。

如果指定选择与同一算法一样(例如union-find的depth-rank启发式算法),则Edmonds-Karp算法是对Ford-Fulkerson的“改进分析”,我想像还有很多其他问题都具有该算法通过选择新规则可以改善运行时。

然后是对现有算法的大量分期摊销分析(我认为在该描述下适合并购,这是另一种https://link.springer.com/article/10.1007/s00453-004-1145-7


做出新的选择感觉很接近我在寻找的东西,但是还不完全是这样-从某种意义上说,一种更指定的算法是“不同的算法”-但是这些仍然是非常有趣的例子!
罗布·西蒙斯
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.