Graph theory 为什么欧拉路径可以在线性时间内实现,而不是哈密顿路径?

Graph theory 为什么欧拉路径可以在线性时间内实现,而不是哈密顿路径?,graph-theory,Graph Theory,我了解到,尽管看起来很相似,但欧拉路径可以在线性时间内求解,而哈密顿路径问题是NP完全问题。我想知道造成这种差异的原因是什么?我不太懂图论,所以可能不会很好地理解严格的证明,但一些行话应该可以。如果我们以无向图为例,如果图是连通的,并且只有两个奇数度的顶点(起点和终点),则存在欧拉路径。此路径只访问每条边一次。因此,欧拉路径的存在依赖于顶点度数,而不是实际的顶点数 对于哈密顿路径,没有简单的必要条件(当然也没有多项式时间算法)。由于路径必须恰好击中每个顶点一次,“困难”的方法是检查所有顶点的排列

我了解到,尽管看起来很相似,但欧拉路径可以在线性时间内求解,而哈密顿路径问题是NP完全问题。我想知道造成这种差异的原因是什么?我不太懂图论,所以可能不会很好地理解严格的证明,但一些行话应该可以。

如果我们以无向图为例,如果图是连通的,并且只有两个奇数度的顶点(起点和终点),则存在欧拉路径。此路径只访问每条边一次。因此,欧拉路径的存在依赖于顶点度数,而不是实际的顶点数


对于哈密顿路径,没有简单的必要条件(当然也没有多项式时间算法)。由于路径必须恰好击中每个顶点一次,“困难”的方法是检查所有顶点的排列,看看路径是否存在。

基本上,Euler问题可以用动态规划来解决,Hamilton问题不能

这意味着,如果你有一个子集的图形,并找到一个有效的循环路径通过它,你可以结合这个部分解决方案与其他部分解决方案,并找到一个全局有效的路径。最优路径并非如此:即使通过图的一小部分找到了最优路径,这也很可能不是全局最优路径的一部分(事实上,通常不是)。非正式地说,通过大型图的最佳路径取决于图中所有其他部分的精确值,因此没有人找到正确使用“分而治之”解决问题的方法。

事实上, 哈密顿路径的限制是你只需要访问一次边。但使用欧拉方法,您可能访问同一个顶点,有时访问方向相反的同一条边。但是,在大多数情况下,可以创建一个新顶点,但只可以添加一条边

Bellman,R.(1962),“旅行商问题的动态规划处理”,ACM杂志9:61-63,doi:10.1145/321105.321111

如果您只是查看这篇文章,就会看到一个图的动态编程实现(当然不是所有类型的图)。。还有一些HMM实现

Andreas(2010),“无向哈密顿性的行列式和”,Proc。第51届IEEE计算机科学基础研讨会(FOCS'10),第173-182页,arXiv:1008.0541,doi:10.1109/FOCS.2010.24

欧拉路径的好部分是;您可以得到子图(分支和绑定类似),然后得到总循环图。说实话,欧拉法主要是针对当地的解决方案


希望这能有所帮助。

我想我现在已经很清楚了。但是你的意思是Euler路径是全局有效路径而Hamilton路径是最优路径吗?事实上,似乎有一个图的动态规划实现,参见我的答案..谢谢!但为什么欧拉路径存在必要条件,而哈密顿路径不存在必要条件?