如何愚弄地块检验启发法?


23

这里,戴夫·克拉克(Dave Clarke)提出,为了比较渐近增长,您应该画出手边的函数。作为理论上有偏见的计算机科学家,我称这个伏都教徒为阴谋,永远无法证明。再三考虑,我必须同意,这是一种非常有用的方法,有时甚至没有得到充分利用。情节是获得第一个想法的有效方法,有时这就是您所需要的。

在教授TCS时,总是有学生问:“如果我能做总是有效的X,我需要什么正式证明?” 由他的老师指出并说明谬论。有一组出色的示例示例,这些示例最终会在math.SE上进行故障转移,但这是相当数学的情况。

那么,您如何愚弄小区检验的启发式方法?在某些情况下,很难分辨出差异,例如

例 例 例
[ 来源 ]

进行猜测,然后检查实际功能的来源。但这并没有我所希望的那么壮观,特别是因为即使对于初学者,真正的关系也很容易从功能上发现。

是否存在(相对)渐近增长的示例,其中从函数定义中得出的真相并不明显,并且对较大图检验会给您一个完全错误的想法?都欢迎数学函数和实际数据集(例如,特定算法的运行时);不过,请不要使用分段定义的函数。n


2
实际上,我提出该建议是理解问题的提示。
戴夫·克拉克2012年

@DaveClarke:我知道;我只是将您的最初提法用作挑衅性的开场白。无意冒犯。
拉斐尔

Answers:


23

从经验上来讲,当试图找出某些观察到的函数的增长率(例如,马尔可夫链混合时间或算法运行时间)时,很难从来区分因子。例如,看起来很像:n b O (logn)anbOn 0.6O(nlogn)O(n0.6)

情节
[ 来源 ]

例如,在Bentley等人的“垃圾箱填充的某些意外预期行为结果”中,根据经验估算最佳填充和首次拟合垃圾箱填充算法在将物品均匀包装在上时的空白空间增长率为和。正确的表达式是和。Ñ 0.6 Ñ 0.7 Ñ 1 / 2日志3 / 4 Ñ Ñ 2 / 3[0,1]n0.6n0.7n1/2log3/4nn2/3


15

这是另一个(当然是相当构造的)示例,但我仍然发现了一个非凡的示例。旨在表明,在判断渐近增长时,情节可能会产生很大的误导。

下图显示了在不同范围内的两个函数和下面将公开;)。值得注意的是,两个函数都是单调(严格)增加的(无限频繁)连续的可微且凸的,因此它们在许多方面都是“不错的”。g ^fg

您能猜出哪个函数(渐近地)增长更快?

f和g直到2000的图 f和g的积高达10,000 f和g的最大200,000

答案:,即函数渐近等价。函数为 fg

f(x)=x2
g(x)=sin(log(x))+1dxdx=x2(135cos(log(x))+15sin(log(x))).

所以本质上是,即与相同,但是它的二阶导数不是均匀地,而是在到之间以指数增长周期振荡。在普通图中看不到这种振荡。gx2f204

对于示例,我们可以通过考虑log-log-plot来掩盖振荡:

f和g的对数-对数图最大为200,000

当然,通常这没有帮助。例如,我们可能有一个双倍的指数期...


12

一个很好的例子是Brzozowski的极富魔力的最小DFA算法。给定一个有限自动机,我们可以从中计算出一个最小确定性有限自动机:N=(Q,SQ,FQ,RQ×Σ×Q)

Minimize:NFADFA=DeterminizeReverseDeterminizeReverse

这显然是最坏情况下的指数时间算法,因为它可以采用不确定的自动机并为您提供确定性的自动机(或更明显的是,它两次调用子集构造)。

但是,如果为Brzozowski算法提供DFA作为输入,则在许多常见的输入上,它可以与专用DFA最小化算法(通常为或如果您是核心,并实现Hopcraft的算法)。O(n2)O(nlog(n))

这触及“绘图检查启发式”的“绘图”部分---我们必须在绘制绘图时选择要采样的点,并且如果您没有仔细选择点,就可以愚弄天真的绘图。对于其他示例(例如Quicksort和Simplex算法)也是如此,但是对于教学法,我更喜欢此算法而不是这两个算法。

Quicksort的差异是“仅”二次方对对数线性,不如多项式/指数差异那么大。单纯形算法确实有相似的惊人差异,但是它的分析比Brzozowski的算法复杂得多。

(此外,我觉得Brzozowski的DFA最小化算法远不如应有的知名度,但这当然是个问题。)


抱歉,但是我不太明白与解释函数图的联系。
拉斐尔

3
我假设您会为样例采样执行类似绘制性能与实例大小的比较-除非您选择实例使其成为指数时间,否则Brzozowski的算法将“看”多项式。
Neel Krishnaswami 2012年

1
我懂了。在对算法进行基准测试并绘制平均运行时间时,这当然是一个问题,即绘制正确的数据的问题。当我提出问题时,我只是在考虑正确地解释情节,这完全是另一种野兽。您能否将此观点添加到答案中?
拉斐尔

对于所有具有不同平均和最坏情况表现的算法,您都会遇到相同的问题;我想到了Quicksort和Simplex。
拉斐尔

8

曲线拟合的数学技术可用于为您的问题提供无限数量的答案。给定一条曲线和一个范围,可以很容易地找到一个适合该曲线的多项式。维基百科的此示例显示了如何用四阶多项式(蓝色曲线)正确拟合正弦波。

在此处输入图片说明

我可以使用更高阶的多项式,并且比该图更好地欺骗绘图检查启发式方法。


2
确实如此。不过,它也有人造的味道。当然,我可以通过这种方式为学生提供反例,但我看不出对此有更多的怀疑。在误解是“致命的”情况下,是否存在这种现象的“自然”发生(即,可以将高阶多项式函数误认为其他函数)?
拉斐尔

我知道这不是您要找的答案。
Dave Clarke 2012年
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.