定理使难看的算法问题变得容易


28

我正在寻找很好的示例,其中发生以下现象:(1)如果您想根据定义并仅使用标准结果来解决算法问题,那么算法问题就很难解决。(2)另一方面,如果您知道一些(不是那么标准的)定理,则变得很容易。

这样做的目的是向学生说明,学习更多定理甚至对理论领域之外的人(例如软件工程师,计算机工程师等)也很有用。这是一个例子:

问题:给定整数,是否存在一个顶点图(如果存在,找到一个),使得其顶点连通性为,其边缘连通性为,其最小度为?ñķdñķd

请注意,我们要求参数必须完全等于给定的数字,而不仅仅是边界。如果您想从头解决这个问题,它可能会显得很难。另一方面,如果您熟悉以下定理(请参阅B. Bollobas的《极值图论》),情况将大为不同。

定理:令为整数。当且仅当满足以下条件之一时,存在一个具有顶点连通性,边缘连通性和最小度 的顶点图:ñķdñķd

  • 0ķd<ñ/2
  • 1个2d+2-ñķ=d<ñ-1个
  • ķ==d=ñ-1。

这些条件很容易检查,由于输入参数之间的简单不等式,因此可以轻松地回答存在问题。此外,定理的证明是建设性的,也解决了构造问题。另一方面,此结果看起来不够标准,因此您可以期望每个人都知道。

您可以本着这种精神(如果不是那么标准)大大简化任务的情况下,提供更多示例吗?


1
我不确定我是否完全理解您的问题。您给出的示例是一个非平凡的问题,Bollobas为此提供了一个算法(这意味着一个表征)。所以我对您的示例的印象是,任何非平凡的算法都将成为答案……
Bruno 2014年

3
素数与AKS定理。
拉明

@Bruno:我的意思是,如果您知道一个不为人所知的定理,那么算法任务将变得容易得多,因此可能从未听说过。从这里的定理不仅有用,而且实际上解决了问题的意义上说,给出的例子也不是完美的。我真正想要的是当一个定理有帮助时,提供一些有用的捷径,但不能完全解决问题。
Andras Farago 2014年

3
社区维基?
约书亚·格罗肖

1
罗伯逊-西摩定理也使确定性地寻找质数变得容易。
卡夫

Answers:


31

通过其乘法表确定简单组的同构。可以在多项式时间内完成这一事实直接源于一个事实,即所有有限简单组最多可以由2个元素生成,并且当前唯一已知的证明是使用有限简单组的分类(也许是最大定理) -在作者,论文和页面方面-久经考验)。


3
这是一个很好的例子!顺便说一句,对此答案的评论声称,从某种意义上说,该定理与分类一样难:mathoverflow.net/a/59216/35733
Sasho Nikolov


20

今天下午,我在读弦论-“真正的”弦论

问题:如果y是某个字母上的两个字符串,那么当存在一些正整数m n时x m = y nXÿñX=ÿñ

定理:存在正整数,当且仅当x y = y x时x m = y nñX=ÿñXÿ=ÿX


9

查找全部或给定间隔中实多项式的(相异)实根的数量。Sturm定理告诉您,可以将满足少量要求的多项式序列用于计算具有实系数的多项式的实根数。

然后,您要做的就是构造这样的序列(这不是很困难,但是需要一些边际情况和对不可分离的多项式的情况的处理),而鲍勃是您的叔叔。

出乎意料的是,尽管结果很旧(1829年),却很少有人知道。它在许多计算机代数系统中都使用过,但是我问过的所有我大学的数学教授都根本不了解Sturm定理,或者他们只知道它的名字,并且与多项式的根有关。

考虑到找到根要困难得多,当您告诉他们说像对真正的根进行精确计数这样的操作很容易并且不需要任何近似时,大多数人会感到非常惊讶。(请记住,对于阶数≥5的多项式,甚至没有根的“适当”公式)


9

定理:每个平面图都有一个顶点,其顶点至多为5。

问题:设计平面图的表示形式,在这里我们可以检查u v 是否为O 1 时间的边。ØñüvØ1个

我们最多可以删除度为5的顶点,并将其作为键添加到列表中,并将其邻居作为值添加到列表中。其余图也是平面的,并且顶点的度数最多为5。因此,消耗的空间最多为。我们可以检查u是否在v的邻接表中;如果不是,我们可以检查v是否在u的邻接表中。这最多需要10个步骤。5ñüvvü10


5
稍加注意,您可以将每个顶点处存储的列表的大小减少到3,将邻接检查的步骤数减少到6。请参阅:平面度低,邻接矩阵紧凑,方向紧凑。M. Chrobak和D. Eppstein。理论。比较 科学 86(2):243–266,1991. ics.uci.edu/~eppstein/pubs/ChrEpp-TCS-91.pdf
David Eppstein



5

另一个例子:给定一个无向图,它是否具有最小切面,其中所有边都不相交?如果是这样,找到一个。

乍一看,这似乎很难。但是,如果您知道无向顶点图最多可以具有n n - 1 / 2个最小割的结果,并且所有这些都可以在多项式时间中列出,则变得很容易。ñññ-1个/2

它可以扩展到接近最小的切口,该切口比最小的切口大,但是最多增加一个常数。它们的数量仍受多项式限制。

(我没有搜索参考文献,我的回忆是这些结果归功于D. Karger。)


4

问题: MSO(一阶二阶逻辑)公式对有限字的可满足性。

定理: MSO等同于有限词上的有限自动机。

可以将以上内容提升为无限词,无限树,无限树。


4

稍微复杂一点的示例:非负矩阵分解,当非负秩恒定时。

一种中号×ñü中号×ķV中号ķ×ñ一种=üV一种

Ø[R2[R

ñØ[R2üVñØ[R


4

决断迪菲·海尔曼

(g,ga,gb,gc)gGGC=G一种b

在离散测井问题的硬度的标准假设下,这个问题似乎也很难。

ËGGC=ËG一种Gb

ËG×GGŤ

有关此问题的更多信息,请参阅“决策diffie- hellman 问题”,Boneh'98或Google在“配对”中查找


3

(琐碎地)存在有限博弈中的纳什均衡,三次图中的偶数汉密尔顿路径,各种类型的不动点,部分顺序的体面平衡比较以及许多其他PPAD问题。


纳什均衡的存在-以及PPAD的许多其他存在证明-似乎并没有使这些问题更容易通过算法解决……
Joshua Grochow 2014年

1
我指的是这些问题的决策版本。
Yonatan N

2

((V,E),s,t)EEsŤVËË

sŤVËsŤ


1
如果您知道LP很简单,就可以说流程很容易。因此,两个大定理(poly time中的LP和maxflow-mincut)使我们能够计算最小切割。
Chandra Chekuri 2014年

@ChandraChekuri,我个人的感觉是,这与问题并不完全相符:LP在多时可解的定理并没有帮助我们实际构建最小切割算法。我们需要实际的LP算法。
2014年

并不是的。如果您可以有效地在给定图中找到最小切割值,则可以使用这种算法来查找实际切割本身。
Chandra Chekuri 2014年

2

这是另一个示例:给定一个无向简单图,确定它是否具有两个顶点不相交的电路。

23

3ķ5ķ3ñ-3

由于很容易检查图是否为定理所允许的图之一,因此这为决策问题提供了多项式时间算法。

注意:(1)定理的证明一点都不容易。(2)一旦确定存在两个不相交的电路,似乎不太清楚如何解决相关的搜索问题,即如何实际找到这样的电路。该定理没有对此给出直接建议。


1

不太复杂的例子:有一些类似定理的性质表明,针对某些问题的贪心算法是最优的。对于最小的生成树来说,它不是很明显,可以通过贪婪算法找到最小生成树。在概念上有些相似的是Dijkstra的算法,用于在图中找到最短路径。实际上,在两种情况下,相关的“定理”都与算法几乎相同。


我认为,例如,如果您包含MST的cut属性的声明,并提及它如何暗示整个贪婪MST算法类别的正确性,那么这将是一个更好的答案。
Sasho Nikolov

MST削减了维基百科pg上列出的财产。也许您可以参考此处未涵盖的其他概括。顺便说一句,发问者询问了为“理论界之外的人”服务的例子(给出的其他很好的例子对于局外人来说可能太先进了)
vzn 2014年

ŤËŤ-Ë一种ËË一种

1

查找其他斐波纳契数字乘积的斐波纳契数字序列。例如,斐波那契数8是在序列中,因为8 = 2 * 2 * 2,而2是斐波那契数不等于8。斐波那契数144在序列中是因为144 = 3 * 3 * 2 * 2 * 2 * 2,并且2和3都是斐波那契数,不等于144。

卡迈克尔定理暗示8和144是该序列的唯一项。

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.