欧拉回路及哈密顿回路

转载自:http://blog.youkuaiyun.com/zhang360896270/article/details/8746783

欧拉图:

在图为连通图的前提下,欧拉通路:当前图中经过每条边一次且仅一次,若最终回到出发点则称为欧拉回路。

相关判定条件(图联通)

(1)无向图存在欧拉回路的条件是:图中不存在奇度结点,有向图存在欧拉回路的条件是:每个结点出度均等于入度

(2)无向图存在欧拉通路的条件是:图中仅存在两个奇度结点(起点和终点),有向图存在欧拉通路的条件是:存在两个结点入度不等于出度,分别为起点(出度-入度==1)和终点(入度-出度==1)

除此之外个人认为无向图只要存在欧拉回路则从任意一点出发均可遍历全部边回到该点(哈密顿图同理)。

判定欧拉图只是基础,更重要的是找出具体的欧拉路径(回路)

算法:

使用链式前向星存储图(便于找边),可先通过并查集(或者广搜)判断当前图是否连通,然后还能记录出入度根据之前定理判定。然后通过深搜并且标记每一条走过的边确定是否有欧拉路径(回路),算法整体思路较简单,关键是能否想到利用欧拉路径(回路)建立模型。

哈密顿图:

在图为无向连通图的前提下,哈密顿通路:经过每个顶点一次且仅一次,若最终回到出发点则称为哈密顿图,哈密顿图为NP完全问题,暂不存在多项式时间内的解法

相关判定条件(图无向且连通)

(1)若图有n个结点的无向图且任意两个不同的结点度数之和均大于n,则此图为哈密顿图(存在哈密顿回路),此为判断是否是哈密顿图的充分条件,也就是说满足这个条件一定是哈密顿图,但哈密顿图不一定必满足这个条件。

算法:(前提是图有n个结点的无向图且任意两个不同的结点度数之和均大于n)

选取任意结点作为S,与其相邻一结点为T,然后逐步向两边扩展至无法扩展为止,若此时S与T连通,则判断是否S->T中包含全部点,若不连通则查找S->T中结点v[i]与T相邻且v[i+1]与S相邻的点,即S->v[i]->v[i+1]->T,而此时S ->V[i+1],T->V[i],将V[i+1]及其后部分翻转可构成S->v[i]->T->v[i+1]的哈密顿回路,判断此时是否路径包含全部结点,若不包含,查找不属于回路中但与其中结点相邻的结点,然后可将此回路缩为一点(因为已经求得当前回路为哈密顿回路)再修改S、T重复上述过程。

欧拉路径(回路)相关题目:UVA10054、POJ2230、HDU1116

哈密顿(回路)相关题目:POJ2438

UVA10054(每一个珠子首尾连接构成无向图)

离散数学中的哈密顿回路(Hamiltonian Cycle)和欧拉回路(Eulerian Cycle)都是图论中的重要概念,它们都涉及到在无向连通图中找到一条经过每个顶点恰好一次的路径。 1. **哈密顿回路**: - 定义:在一个无向图中,是否存在从某个顶点出发,沿着边走一遍,最后回到起点的闭合路径,这条路径包含了图中所有顶点恰好一次。 - 特征:哈密顿回路只适用于有向或无向完全图,以及某些特定类型的非完全图,比如4-正则图(每条边都有两个入度相同的顶点)。 - 求解:著名的库尔特·哥德施泰因猜想指出,对于无限大的平面网格图,存在哈密顿回路,但对于一般图,哈密顿回路问题是NP完全问题。 2. **欧拉回路**: - 定义:在一个无向图中,是否存在一条边可以被访问恰好两次(因为每个顶点的出度等于入度),形成一个封闭的环路,这条路径包含了图中所有的边。 - 特征:欧拉回路存在于所有无向、连通且所有顶点的度数都是偶数的图中,这种图被称为欧拉图。 - 求解:如果找到了一个欧拉回路,那么图一定是欧拉图,反之不一定成立。 总结一下,两者的区别在于哈密顿回路关注的是通过每个顶点恰好一次,而欧拉回路关注的是遍历所有的边恰好两次,而且欧拉回路对顶点的度数有特殊的要求。在实际应用中,两者都是寻找特定路径的问题,但在条件和目标上有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值