七桥问题与一笔画问题:图论的奠基石
目录
历史背景
18世纪的哥尼斯堡(今俄罗斯加里宁格勒)是一座被普雷格尔河分割的城市,河中有两个岛屿,连接陆地和岛屿的七座桥梁构成了当时著名的"七桥问题":能否不重复地走过所有七座桥,且只经过每座桥一次?
这个看似简单的问题引起了瑞士数学家莱昂哈德·欧拉(Leonhard Euler,1707-1783)的兴趣。1736年,欧拉发表了《哥尼斯堡的七桥》论文,不仅解决了这个具体问题,更开创了图论这一全新的数学分支。
问题描述
哥尼斯堡七桥问题可以描述为:城市被河流分为四个区域(A、B、C、D),其中A和B是两个岛屿,C和D是河的两岸。这些区域通过七座桥连接:
- 连接A和B的一座桥
- 连接A和C的两座桥
- 连接A和D的两座桥
- 连接B和C的一座桥
- 连接B和D的一座桥
问题是:是否存在一条路径,能恰好通过每座桥一次(不重复),可以从任意地点开始,到任意地点结束?
数学模型化
欧拉的天才之处在于将这个物理问题抽象为数学模型。他意识到关键不是区域的形状或桥的长度,而是它们的连接关系。
欧拉创造性地引入了"图"的概念:
- 将四个区域抽象为"顶点"(或称"节点")
- 将七座桥抽象为连接顶点的"边"
这样,哥尼斯堡七桥问题就转化为:是否存在一条路径,经过图中每条边恰好一次?
岛屿A 岛屿B 河岸C 河岸D
欧拉的解决方案
欧拉通过仔细分析发现,当一个人穿过一座桥到达某个区域时,必须有另一座桥让他离开(除非是起点或终点)。换句话说,对于路径中的中间顶点,进入的边数必须等于离开的边数。
这意味着,除了可能的起点和终点外,每个顶点必须关联偶数条边(称为"度")。而在哥尼斯堡的情况下:
- 顶点A的度为5(奇数)
- 顶点B的度为3(奇数)
- 顶点C的度为3(奇数)
- 顶点D的度为3(奇数)
由于所有四个顶点都有奇数度,不可能找到满足条件的路径。欧拉证明了哥尼斯堡七桥问题是不可解的。
欧拉定理及证明
通过对七桥问题的思考,欧拉提出了更一般的定理,现在被称为"欧拉定理":
欧拉路径定理 :
一个连通图存在欧拉路径(经过每条边恰好一次的路径)当且仅当图中恰好有0个或2个奇度顶点。
- 如果有0个奇度顶点(所有顶点度数都是偶数),则存在欧拉回路(起点和终点相同)
- 如果有2个奇度顶点,则存在欧拉路径,且必须以这两个奇度顶点为起点和终点
证明:
必要性 :
假设存在欧拉路径。对于路径中的任意中间顶点v,每次通过v时都会消耗两条与v关联的边(一条进入,一条离开)。因此,与v关联的边数必须是偶数。
对于起点(如果与终点不同),第一步只消耗一条边离开;对于终点,最后一步只消耗一条边进入。因此,起点和终点(如果不同)必须有奇数条关联边。
综上,一个图有欧拉路径,当且仅当它最多有两个奇度顶点。
充分性 :
假设连通图G有0个或2个奇度顶点。
情况1:G没有奇度顶点。从任意顶点v开始,我们可以构造一条路径。由于所有顶点度数为偶数,每次进入一个顶点后总能找到一条未使用的边离开,直到回到起点。这可能只覆盖了图的一部分边。如果还有未覆盖的边,一定存在某个已访问顶点u与未访问边相连。从u开始重复上述过程,得到一个新回路,将其与原回路合并。重复此操作直到覆盖所有边,最终得到欧拉回路。
情况2:G有两个奇度顶点u和v。在G中添加一条连接u和v的新边e,得到新图G'。按照情况1,G'存在欧拉回路。删除边e,得到G的欧拉路径。
证毕。
0个 2个 4个或以上 连通图 奇度顶点数量? 存在欧拉回路
(起点=终点) 存在欧拉路径
(起点≠终点)
必须以奇度顶点为起点和终点 不存在欧拉路径
一笔画问题
七桥问题的推广就是著名的"一笔画问题":能否一笔画完一个图形而不重复、不断开?
这正是在寻找图的欧拉路径。根据欧拉定理,我们可以直接判断一个图是否可以一笔画完:
- 图必须是连通的(否则无法完整遍历)
- 奇度顶点的数量必须是0或2:
- 如果是0个奇度顶点,可以从任意点开始,一笔画完后回到起点
- 如果是2个奇度顶点,必须从其中一个奇度顶点开始,在另一个奇度顶点结束
例子:
- 正方形:4个顶点都是偶度(每个连接2条边),可以一笔画且回到起点
- 五角星:5个顶点都是偶度(每个连接4条边),可以一笔画且回到起点
- 信封图:有2个奇度顶点,可以一笔画但不能回到起点
- 完全图K₅(5个顶点,每两点间都有边):所有顶点都是偶度(每个连接4条边),可以一笔画且回到起点
不能一笔画 C2 C1 C3 C4 C5 可以一笔画但不能回到起点 B2 B1 B3 B4 可以一笔画且回到起点 A2 正方形 A3 A4
寻找欧拉路径的算法
实际找到欧拉路径可以使用Fleury算法或Hierholzer算法:
Hierholzer算法(更高效):
- 从适当的起点(有0个奇度顶点时任选,有2个奇度顶点时选其一)开始
- 任意选择边前进,每走过一条边就将其删除
- 当某个顶点没有未走过的边时,将该顶点加入路径
- 重复步骤2-3直到所有边都被走过
- 逆序输出路径中的顶点,即为所求欧拉路径
Fleury算法:
- 从适当的起点出发
- 每一步尽可能不选择割边(删除后会使图不连通的边)
- 每走过一条边就将其删除
- 重复直到所有边都被走过
是 否 否 是 开始 选择适当起点
(0或2个奇度顶点时) 从当前顶点出发
沿未访问边前进 标记边为已访问 当前顶点还有
未访问的边? 将当前顶点
加入路径堆栈 所有边都已访问? 从堆栈中回溯到
有未访问边的顶点 从堆栈输出顶点
即为欧拉路径(逆序) 结束
现代应用
尽管七桥问题和一笔画问题看似简单,但其数学理论在现代有广泛应用:
- 路线规划:邮递员问题(中国邮递员问题)是欧拉回路问题的变种,用于优化配送路线
- 电路设计:印刷电路板设计中,需要找到不交叉的导线路径
- DNA序列重建:生物信息学中的基因序列组装利用欧拉路径
- 网络设计:通信网络中的流量规划和链路优化
- 机器人路径规划:确保机器人能完整覆盖区域而不重复
- 计算机图形学:多边形描边和填充算法
总结
哥尼斯堡七桥问题不仅解决了一个具体的数学难题,更重要的是,欧拉的解决方案开创了图论这一全新的数学分支。他将物理问题抽象为数学模型的方法,对现代数学和科学产生了深远影响。
欧拉定理提供了判断图是否存在欧拉路径的简洁条件:连通图存在欧拉路径当且仅当图中恰好有0个或2个奇度顶点。这为解决各种一笔画问题提供了理论基础。
从18世纪的桥梁问题到现代科技应用,欧拉的思想展示了纯数学研究如何从简单问题出发,产生具有广泛实用价值的理论。这也是数学之美的体现:以简驭繁,见微知著。
七桥问题与一笔画问题 历史背景 图论基础 欧拉定理 算法 应用 1736年欧拉解决 哥尼斯堡七桥 图论起源 顶点与边 度(Degree) 欧拉路径与回路 0个奇度顶点: 欧拉回路 2个奇度顶点: 欧拉路径 >2个奇度顶点: 不存在欧拉路径 Hierholzer算法 Fleury算法 路线规划 电路设计 DNA序列重建 网络设计
人们常说数学是人类思维的体操,七桥问题正是这种说法的完美注脚。通过抽象思维将现实问题转化为数学模型,再通过严谨的证明得出普适性结论,最终又将这些结论应用于现实世界解决问题------这一过程正是数学之美和力量的体现。
当我们今天拿起笔,尝试一笔画出各种图形时,我们正在重现近300年前欧拉思考的问题,也在亲身体验数学的魅力。