【欧拉图】Euler Graph(Fluery算法,Hierholzer算法)
还在持续更新ing
前言
此乃小 Oler 的一篇算法随笔,从今日后,还会进行详细的修订。
注明:有参考自论文《欧拉图相关的生成与计数问题探究》
简单介绍
-
著名的哥尼斯堡七桥问题是18世纪著名的古典数学问题之一,该问题在相当长的时间里无人能解。欧拉经过研究,于1736年发表了论文《哥尼斯堡的七座桥》。这篇论文不仅圆满地回答了哥尼斯堡居民提出的问题,而且给出并证明了更为广泛的一般性结论。从那时起,图论作为数学的一个新的分支而诞生。因此,欧拉图问题是图论的起源,也是图论研究中十分重要的一部分。
-
欧拉图是指通过图(无向图或有向图)中所有边且每边仅通过一次通路,相应的回路称为欧拉回路。具有欧拉回路的图称为欧拉图(Euler Graph),具有欧拉通路而无欧拉回路的图称为半欧拉图。对欧拉图的一个现代扩展是蜘蛛图,它向欧拉图增加了可以连接的存在点。这给予欧拉图析取特征。欧拉图已经有了合取特征(就是说区定义了有着与起来的那些性质的对象在区中的存在)。所以蜘蛛图允许使用欧拉图建模逻辑或的条件。
注明:该介绍均来自于网络。
1 基本概念
定义 1.1. 图
定义 1.2. 图
定义 1.3. 对于无向图
定义 1.4. 对于图
定义 1.5. 图
定义 1.6. 图
定义 1.7. 存在欧拉回路的图称为欧拉图,存在欧拉路径但不存在欧拉回路的图称为半欧拉图。
定义 1.8. 不含平行边(也称重边)也不含自环的图称为简单图。
2 关于欧拉图的判定
2.1 无向图的判定
这里我们需要分类讨论,可以按顶点的度的奇偶性分类,如下
对于只存在偶顶点的图:
定理 2.1. 无孤立点的无向图
证明. 首先证明必要性。因为图
接着我们来说明充分性。从
来自蒟蒻的理解 2.1. 简单的来说,对于一个没有孤立点的无向欧拉图来说,要使其成为欧拉回路,先要保证图为连通,这个很容易理解。那么再到图中的任意一点
对于存在奇顶点的图:
定理 2.2. 如果无向连通图有
证明. 我们先来证明路径条数的下界。设图
接下来我们只需要构造一组方案。把这
来自蒟蒻的理解 2.2. 同上一个定理所述的差不多,但图中出现了奇数度的顶点,若
综合上述两个定理,我们已经了解了欧拉回路与欧拉路径存在的充要条件。我们可以由此推导出半欧拉图的判定条件:
定理 2.3. 无孤立点的无向图
此时两个奇顶点分别为欧拉路径的起点和终点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!