【问题标题】:Difference between hamiltonian path and euler path哈密​​顿路径和欧拉路径的区别
【发布时间】:2011-03-17 04:32:54
【问题描述】:

谁能告诉我哈密顿路径和欧拉路径之间的区别。它们看起来很相似!

【问题讨论】:

  • 我已经删除了 C/C++ 标签。如果您实际上正在寻找某种关于欧拉/哈密顿路径的算法代码,请随时将它们添加回来。
  • 一个路径只包含每个顶点一次(在封闭路径/循环的情况下可能是第一个/最后一个顶点)。所以 欧拉路径欧拉循环 对我来说似乎是一种误导。它应该是欧拉轨迹欧拉回路
  • 我同意阿布·纳菲医学博士的观点。 Euler path 这个名称似乎具有误导性,因为其中重复了顶点。它的原名是Eulerian trailEuler path 用词不当。

标签: algorithm graph graph-theory hamiltonian-path euler-path


【解决方案1】:

欧拉路径 - 欧拉路径是每条边只经过一次的路径。

哈密顿路径 - 哈密顿路径是指每个顶点只经过一次的路径。

如果您曾经困惑过,请记住 E - Euler E - Edge。

【讨论】:

    【解决方案2】:

    图论定义

    (按一般性降序排列)

    • Walk:一系列边,其中一条边的结束标志着下一条边的开始

    • Trail:不重复任何边的行走。所有的小径都是步行。

    • 路径:每个顶点最多遍历一次的路径。 (路径过去是指开放式行走,现在定义已更改)最多遍历顶点一次的属性意味着边也最多交叉一次,因此所有路径都是路径。

    哈密顿路径和欧拉路径

    • 哈密顿路径:访问图中的每个顶点(恰好一次,因为它是一条路径)

    • 欧拉轨迹:只访问一次图中的每条边(因为它是一条轨迹,顶点很可能会多次交叉。)

    【讨论】:

    • +1 用于考虑 Path 的定义(每个顶点只遍历一次)。 Euler PathEuler Cycle 对我来说似乎具有误导性。它应该始终是欧拉轨迹欧拉回路。不幸的是,其他答案没有考虑 Path 的定义。
    • 请添加这些定义的官方来源的链接。
    【解决方案3】:

    欧拉路径是通过每条边恰好一次的路径。如果它在初始顶点处结束,则它是一个 欧拉循环

    Hamiltonian 路径 是通过每个顶点恰好一次(不是每条边)的路径。如果它在初始顶点处结束,则它是一个 Hamiltonian 循环

    在欧拉路径中,您可能会多次通过一个顶点。

    在哈密顿路径中,您可能不会通过所有边。

    【讨论】:

    • 来自:pballew.net/graphs.html 请注意,对于欧拉路径,您可以多次访问每个顶点,而在汉密尔顿路径中,不必遍历每条边。
    • IIRC,很容易找到是否存在欧拉路径(或循环),但是图是否具有哈密顿量是 NP 完全的。
    • 是的,我相信欧拉路径的某些属性可以用来证明图具有欧拉路径,而无需算法来遍历它。寻找哈密顿路径是一个 NP 完全的,我认为该算法涉及反复试验。我认为将其添加到答案中将超出原始问题的范围,OP 显然是图论的新手:D 对我来说已经有一段时间了,我可能会翻出我的旧书。
    • 一个路径只包含每个顶点一次(在封闭路径/循环的情况下可能是第一个/最后一个顶点)。所以 欧拉路径欧拉循环 对我来说似乎是一种误导。它应该是欧拉轨迹欧拉回路
    • 我同意阿布·纳菲医学博士的观点。 Euler path 这个名称似乎具有误导性,因为其中重复了顶点。它的原名是Eulerian trailEuler path 用词不当。
    【解决方案4】:

    欧拉路径是一条使用了每条边的路径 只绘制一次。它必须恰好有两个奇数顶点。路径在不同的顶点开始和结束。哈密​​顿循环是包含图的每个顶点的循环,因此您可能不会使用图的所有边。

    【讨论】:

      【解决方案5】:

      我将使用生物学中的一个常见例子;通过制作 DNA 样本重建基因组。

      从头组装

      要从短读取构建基因组,有必要构建这些读取的图表。我们通过将读取分解为 k-mer 并将它们组装成一个图来做到这一点。

      我们可以通过访问每个节点一次来重建基因组,如图所示。这称为哈密顿路径。

      不幸的是,构建这样的路径是 NP 难的。不可能推导出一个有效的算法来解决它。相反,在生物信息学中,我们构建了一个欧拉循环,其中一条边代表一个重叠。

      【讨论】:

        【解决方案6】:

        欧拉路径是使用图的每条边(注意)恰好一次的图。欧拉回路是一条覆盖所有边后返回起点的欧拉路径。

        虽然汉密尔顿路径是一个只覆盖所有顶点(注意)一次的图。当这条路径回到起点时,这条路径称为汉密尔顿回路。

        【讨论】:

          【解决方案7】:

          它们是相关的,但既不依赖也不相互排斥。如果一个图有一个欧勒环,它可能也有也可能没有哈密顿环,反之亦然。


          欧拉循环只访问图中的每个一次。如果图中的顶点有两条以上的边,那么根据定义,循环将多次通过这些顶点。因此,顶点可以重复,但边不能重复。

          Hamiltonian 循环 只访问图中的每个顶点 一次(类似于旅行商问题)。因此,边和顶点都不能重复。

          【讨论】:

          • 您将路径和电路混为一谈。哈密​​顿/欧拉回路是在同一节点开始和结束的适当类型的路径/轨迹。
          • 一个 Path 只包含每个顶点一次(在闭合路径/循环的情况下可能是第一个/最后一个顶点)。因此,Euler PathEuler Cycle 对我来说似乎具有误导性。应该是欧拉轨迹欧拉回路
          【解决方案8】:

          哈密顿路径恰好访问每个节点(或顶点)一次,而欧拉路径恰好遍历每条边一次。

          【讨论】:

          • 一个 Path 只包含每个顶点一次(在闭合路径/循环的情况下可能是第一个/最后一个顶点)。因此,Euler PathEuler Cycle 对我来说似乎具有误导性。应该是欧拉轨迹欧拉回路
          【解决方案9】:

          欧拉路径必须只访问每个一次,而哈密顿路径必须只访问每个顶点一次。

          【讨论】:

          • 一个 Path 只包含每个顶点一次(在闭合路径/循环的情况下可能是第一个/最后一个顶点)。所以 欧拉路径欧拉循环 对我来说似乎是一种误导。它应该是欧拉轨迹欧拉回路
          • 请添加这些定义的官方来源的链接。
          猜你喜欢
          • 1970-01-01
          • 2022-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-21
          • 2014-12-20
          • 2023-03-08
          相关资源
          最近更新 更多