欧拉路径与汉密尔顿路径的区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧拉路径与汉密尔顿路径的区别?相关的知识,希望对你有一定的参考价值。
一个是边,一个是节点。
但是等价的么?
若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。若该路径是一个圈,则称为欧拉(Euler)回路。
具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图.
求欧拉回路的思路:
循环的找到出发点。从某个节点开始,然后查出一个从这个出发回到这个点的环路径。这种方法不保证每个边都被遍历。如果有某个点的边没有被遍历就让这个点为起点,这条边为起始边,把它和当前的环衔接上。这样直至所有的边都被遍历。这样,整个图就被连接到一起了。
具体步骤:
1。如果此时与该点无相连的点,那么就加入路径中
2。如果该点有相连的点,那么就加入队列之中,遍历这些点,直到没有相连的点。
3。处理当前的点,删除走过的这条边,并在其相邻的点上进行同样的操作,并把删除的点加入到路径中去。
4。这个其实是个递归过程。
哈密顿回路即哈密顿图:哈密顿图(英语:Hamiltonian path,或Traceable path)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。在图论中是指含有哈密顿回路的图,闭合的哈密顿路径称作哈密顿回路(Hamiltonian cycle),含有图中所有顶点的路径称作哈密顿路径。
具体到实际就是在一个有多个城市的地图网络中,寻找一条从给定的起点到给定的终点沿,途恰好经过所有其他城市一次的路径。 参考技术A 欧拉路径和欧拉回路
欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径。
欧拉回路:在欧拉路径的基础上又回到起点。
a、凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为
终点画完此图。
b、凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另
一个奇点终点。
c、其他情况的图都不能一笔画出。(有偶数个奇点除以2便可算出此图需几笔画成。)
欧拉回路和欧拉路径的判断
欧拉回路:
无向图:每个顶点的度数都是偶数,则存在欧拉回路。
有向图:每个顶点的入度都等于出度,则存在欧拉回路。
欧拉路径:
无向图:当且仅当该图所有顶点的度数为偶数 或者 除了两个度数为奇数外其余的全是偶数。
有向图:当且仅当该图所有顶点 出度=入度 或者 一个顶点 出度=入度+1,另一个顶点 入度=出度+1,其
他顶点 出度=入度。
哈密 顿路径和欧拉路径之间的区别
有人可以告诉我汉密尔顿路径和欧拉路径之间的区别。他们似乎相似!
欧拉路径是一条路径,它恰好一次穿过每条边而不重复,如果它在初始顶点结束,则它是一个欧拉循环。
汉密尔顿路径通过每个顶点(注意不是每个边缘),恰好一次,如果它在初始顶点结束,则它是哈密顿循环。
在Euler路径中,您可以多次通过顶点。
在哈密尔顿路径中,您可能无法通过所有边缘。
Graph Theory Definitions
(按一般性的降序排列)
- Walk:一系列边缘,其中一条边的末端标记下一条边的开始
- 小径:不重复任何边缘的步行。所有步道都是散步。
- 路径:每个顶点遍历一次的步行路径。 (用于引用开放行走的路径,现在定义已经改变)仅遍历顶点的属性意味着边缘也只交叉一次,因此所有路径都是路径。
Hamiltonian paths & Eulerian trails
- 哈密尔顿路径:访问图中的每个顶点(恰好一次,因为它是一条路径)
- 欧拉轨迹:只访问图中的每个边缘一次(因为它是一条轨迹,顶点可能会被多次交叉。)
欧拉路径必须完全访问每个边缘一次,而哈密尔顿路径必须访问每个顶点一次。
哈密尔顿路径只访问每个节点(或顶点)一次,而欧拉路径只遍历每个边缘一次。
它们是相关的,但既不依赖也不相互排斥。如果图形具有Eurler周期,则它可能也可能不具有哈密顿量的cyle,反之亦然。
欧拉循环只访问图中的每个边缘一次。如果图中的顶点有两个以上的边,那么根据定义,循环将不止一次地通过这些顶点。因此,顶点可以重复,但边缘不能重复。
哈密尔顿循环访问图中的每个顶点一次(类似于旅行商问题)。结果,边缘和顶点都不能重复。
我将在生物学中使用一个常见的例子;通过制作DNA样本重建基因组。
新装配
为了从短读取构建基因组,有必要构建这些读取的图。我们通过将读取分解为k-mers并将它们组装成图形来实现。
我们可以通过访问每个节点重建基因组,如图所示。这被称为哈密顿路径。
不幸的是,构建这样的路径是NP难的。无法推导出有效的算法来解决它。相反,在生物信息学中,我们构建了一个欧拉循环,其中边缘代表重叠。
Euler路径是一个仅使用图形的每个边缘一次的路径。它必须具有正好两个奇数顶点。路径在不同的顶点开始和结束。哈密顿循环是一个包含图的每个顶点的循环,因此您可能无法使用图的所有边。
欧拉路径是使用图形的每个边缘(注释)恰好一次的图形。欧拉电路是一条欧拉路径,在覆盖所有边缘后返回到它的起始点。
汉密尔顿路径是一个覆盖所有顶点(注)的图形。当此路径返回其起始点时,此路径称为hamilton circuit。
以上是关于欧拉路径与汉密尔顿路径的区别?的主要内容,如果未能解决你的问题,请参考以下文章