欧拉回路和哈密顿回路区别
一、 欧拉回路定义
经过图中**每一条边**一次且**仅一次**的回路。也就是**顶点**可以经过(遍历)**至少一次**。欧拉回路强调的是:**边**。
定理:设G是无孤立结点的有向图
- G有欧拉回路当且仅当G是弱联通,且每个结点的入读等于出度
- G有欧拉路但没有欧拉回路,当且仅当G是弱连通,且除了两个结点外,其余结点的入度等于出度,这两个特殊结点中,一个结点的入读比出度大1,另一个结点的入度比出度小1.
欧拉回路的例子
在计算生物学中,DNA片段的拼接时用的图算法需要找欧拉路径。
二、哈密顿回路
经过图中**每一个顶点**一次且**仅一次**的回路。也就是边可以遍历多次。哈密顿回路强调的是:**顶点**。比如下图能否在图中找到一条回路,使得这条回路恰好经过每一个结点一次,且仅一次。 ![无向图(https://img-blog.csdnimg.cn/ead5948fcc7346339571de4965688ef0.png#pic_center)
奥尔定理(不是哈密顿路/哈密顿回路存在的充要条件,只是充分条件)
- 设G是有n个结点的无向简单图。如果G中任意两个不同结点的度数之和都大于等于n-1,则G中存在一条哈密顿路
- 设G是有n个结点的无向简单图。如果G中任意两个不同结点的度数之和都大于等于n,则G中存在一条哈密顿回路。
哈密顿路的例子
环游世界,找到一条哈密顿回路,能游遍世界每一个地方。找哈密顿回路问题是NP-完全问题,目前还没有高效的算法