欧拉路径和欧拉回路(Euler Path and Euler Circuit)解释

这篇具有很好参考价值的文章主要介绍了欧拉路径和欧拉回路(Euler Path and Euler Circuit)解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 欧拉路径(欧拉回路)是图论非常重要的组成部分,欧拉路径是数学家欧拉在研究著名的德国哥尼斯堡(Koenigsberg)七桥问题时发现的。这一发现直接导致了一门新的理论研究的诞生-图论问题。
  2. 欧拉路径和欧拉回路区别
    在一个连通图上,如果从一个顶点出发,历经访问所有的边,访问边的次数规定有且仅有一次,回到另外一个顶点,那么这个连通图中就包含欧拉路径。
    为了更好的理解,我们从以绿色顶点为起点,对无向图中的8条边,访问1次且仅为1次后,最后到达桔色终点。按照1-2-3-4-5-6-7-8的次序访问,此路径便形成一条欧拉路径。另外,下述无向图的欧拉路径的访问次序不唯一,读者可以考虑以下其它访问次序的可能性。欧拉通路,算法,深度优先,图论

欧拉通路,算法,深度优先,图论
值得一提的是,上图中的欧拉路径虽然有不同的顺序,当时起点/终点(可以互换)必须保持不变,如果选择从除这两点之外的其它点出发,是无法完成欧拉路径的遍历过程的。
上面讨论的都是欧拉路径,读者就会问,那什么是欧拉回路(Euler Circuit)呢? 欧拉回路实际上是一类特殊的欧拉路径,其本身属于欧拉路径,同时需要起点和终点在同一点,满足起点和终点为同一点的欧拉路径就是欧拉回路。为了让大家更清晰理解,我们以图为例。
欧拉通路,算法,深度优先,图论
在欧拉路径的基础上,我们通过#9号边和#10号边,让之前滞留在对面的终点重新回到起点。欧拉回路可以从图中的任意一点开始,都可以回到此点,所以欧拉回路可以有多种遍历形式。
3. 欧拉路径和欧拉回路的算法思想,欧拉路径算法思想包含Hierholzer算法和Fleury算法。在常规的DFS顶点遍历过程中,图中,只要完成所有的顶点的遍历即可,处理的对象为顶点,那么对于欧拉路径而言就会造成一个问题,backedge或者forwardedge由于共享的顶点已经标记为访问,那么这些边就会自动跳过,从而无法完成所有边的访问。
Hierholzer的通过转换操作对象,对边的访问进行标记,按照边是否访问,来控制DFS的操作。
Fleury算法核心思想是,每次访问边的邻接顶点之前,需要确认此边不是bridge,如果不是bridge类型的边,就继续访问,如果是那么就寻找其它合理的边再进行访问。
4. 接下来要讨论的问题是,什么样的连通图具有欧拉路径 或欧拉回路呢?我们需要分有向图和无向图两类情况进行讨论。

  • 对于有向连通图,如果图中所有的顶点的出度和入度相等,那么此有向连通图就为欧拉回路;如果此有向连通图中,有一个顶点的出度比入度多1,另外一个顶点的入度比出度多1,且除了这两个顶点之外的其它顶点,其出度和入度相等。除此之外, 此有向连通图中不包含欧拉路径或欧拉回路。
  • 对于无向连通图,如果所有顶点的度均为偶数,那么此无向连通图中包含欧拉回路,如果仅有两个顶点的度为奇书,那么此无向连通图中包含欧拉路径。除此之外,其它情况下,此无向连通图中不好含欧拉路径或欧拉回路。

欧拉通路,算法,深度优先,图论
5. 总结
通过对欧拉路径和欧拉回路的梳理,进一步了解二者的区别,同时也可以通过对顶点的度的判断,确认连通图中是否包含欧拉路径或欧拉回路。后续的博文中,我们将对两类经典算法进行分析和Coding.
谢谢
以上

参考文档:
1. 科普中国-欧拉回路
2. Existence of Eulerian Paths and Circuits by William Fiset文章来源地址https://www.toymoban.com/news/detail-667571.html

到了这里,关于欧拉路径和欧拉回路(Euler Path and Euler Circuit)解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 离散数学·通路与回路、图的连通性、连通度

    通路 —— 点边点边……点(点边可以重复) 注意 长度 的概念 ——边数 回路 —— 最后又回到自己,如其字面意思 简单 —— 边互异(边不可重复) 初级 —— 点互异(点不可重复,除了起点终点) 注意 路径 和 圈 所指代的 复杂通路 应该不是很重要,先不看 注意是在 无

    2024年02月03日
    浏览(72)
  • C++ [图论算法详解] 欧拉路&欧拉回路

    蒟蒻还在上课,所以文章更新的实在慢了点 那今天就来写一篇这周刚学的欧拉路和欧拉回路吧 在 一个风雪交加的夜晚 18世纪初普鲁士的哥尼斯堡,有一条河穿过,河上有两个小岛,有七座桥把两个岛与河岸联系起来。有个人提出一个问题:一个步行者怎样才能不重复、不遗

    2023年04月14日
    浏览(41)
  • 【图论】欧拉回路

    你的qq密码是否在圆周率中出现? 一个有意思的编码问题:假设密码是固定位数,设有 n n n 位,每位是数字0-9,那么这样最短的“圆周率”的长度是多少?或者说求一个最短的数字串定包含所有密码。 一些定义: 通过图中所有边恰好一次且行遍所有顶点的通路称为欧拉通路

    2023年04月09日
    浏览(48)
  • 考研数二第十七讲 反常积分与反常积分之欧拉-泊松(Euler-Poisson)积分

    反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 含有无穷上限/下限的反常积分 看到“无穷”这两个字,我们第一时间想到这玩意肯定跟极限有

    2023年04月19日
    浏览(37)
  • 数据结构第13周 :( 迪杰斯特拉最短路径 + 弗洛伊德求最短路径 + 欧拉回路 + Invitation Cards)

    【问题描述】 在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。 在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。 在本题中,读入一个有向图

    2024年02月13日
    浏览(37)
  • 图论10-哈密尔顿回路和哈密尔顿路径+状态压缩+记忆化搜索

    求解哈密尔顿回路 如何求解一个图是否存在哈密尔顿回路呢? 一个最直观的想法就是暴力求解。暴力求解的思路也很简单:我们遍历图的每一个顶点 v,然后从顶点 v 出发,看是否能够找到一条哈密尔顿回路。 暴力求解的代价同求解全排列问题是等价的,其时间复杂度为

    2024年02月04日
    浏览(36)
  • 图论(欧拉路径)

    理论: 所有边都经过一次,若欧拉路径,起点终点相同,欧拉回路 有向图欧拉路径:恰好一个out=in+1,一个in=out+1,其余in=out 有向图欧拉回路:所有in=out 无向图欧拉路径:两个点度数奇,其余偶 无向图欧拉回路:全偶 基础练习 P7771 【模板】欧拉路径 P2731 [USACO3.3] 骑马修栅栏

    2024年02月05日
    浏览(34)
  • 【Rust】——路径(Path)

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年03月18日
    浏览(61)
  • Node.js之path路径模块

    让我为大家介绍一下path路径模块吧! 什么是path路径模块? path 模块是 Node.s 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。 介绍三个关于path模块的方法: path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符

    2024年02月04日
    浏览(47)
  • Node.js:path文件路径操作模块

    path 用于文件路径操作 官方文档 https://nodejs.org/api/path.html 一个不错的解释 示例 参考文章 node之Path介绍

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包