第六章(六)中国邮递员问题
6-5中国邮递员问题
Xi'an post and telecommunications university modern post College
第六章 图与网络
主讲教师 武小平
主要内容
1 欧拉回路与道路
2 奇偶点表上作业法
运
筹
3 中国邮递员问题求解
学
1 欧拉回路与道路
1、 连通图G中,若存在一条道路,经过每边一次且 仅一次,则称这条路为欧拉道路。若存在一条回路,经过 每边一次且仅一次,则称这条回路为欧拉回路。
4
v1
9
v4
4
v7
图5
v3 5 v2
5
v1
2 v6 4
3
6
4
v5
4
9
v4 4
图6
v9 3 v8 4
v7
v3 5 v2 5
v1
2 v6 4
63
4
v5
4
v9
3 v8 4
9
v4
4
v7
图7
v3 2 v6 4
5
v2
6
5
3 4
v5 4
v9
3 v8 4
v1
9
v4
4
v7
图8
v3 2 v6 4
5
v2
6
5
3 4
v5 4
判定标准2 : 在最优邮递员路线上,图中每一个圈的重
复边总权小于或等于该圈总权的一半。
3 中国邮递员问题求解
例1 求解下图5所示网络的中国邮路问题,
图中数字为该边的长。
v3 2 v6 4 v9
5
3
v2
6 v5
运筹学课件4.8 中国邮递员问题
哥尼斯堡七桥问题与欧拉图 中国邮递员问题 求解中国邮递员问题的奇偶点图作业法 奇偶点图作业法的改进方法
一、哥尼斯堡七桥问题与欧拉图
哥尼斯堡七桥问题 欧拉图与一笔画问题
A
A C B 哥尼斯堡七桥问题 C D
D
B
二、中国邮递员问题
1962年,管梅谷先生提出 中国邮递员问题 若图中无奇点,欧拉圈即为所求 若图中有奇点,则奇点必为偶数,在奇点间加边 (重复走),使其变为偶数而成欧拉图。 中国邮递员问题是要求所加边的权之和最小。
三、求解中国邮递员问题的奇偶点图作业法
在奇点间加边,构造初始可行方案。 寻找改进可行方案:在两奇点间检查所有链,若 某链的长度小于已加重复边的长度,则在该链的 每边加上重复边,去掉原重复边。 重复以上步骤,直到任意两奇点间加重复边的链 是最短的为止。
求解中国邮递员问题:例子
v2
1 2 3 6
v3
4 2
5 1 2 2
v1
v6
v4
3
v5
例子的初始可行解
v2
1 2 3 6
v3
v4
4 2 3
5 1 2 2
5
v1
v6
2
v5
例子的修正解
v2
1 1 2 3 6
v3
v4
4 2 3
5 1 2 2 2
v1
v6
v5Leabharlann 四、奇偶点作业法的改进方法
奇偶点作业法的瓶颈是需检查太多的链 可以首先求出任意一对奇点之间的最短路, 从中选出总路长最小的组合方案。 也可以由奇点构成偶图,求最小匹配得到 最优解。
运筹学 中国邮递员问题
§4.中国邮递员问题(Chinese Postman Problem)1.问题的提出例5. 一个邮递员从邮局出发投递信件, 然后再返回邮局, 如果他必须至少一次地走过他负责投递范围内的每条街道, 街道路线如下图所示, 问选择怎样的路线才能使所走的路为最短?5 6 78问题的图论表述:在赋权G=[V, E]上找一条经每条边至少一次的权最小的圈。
1960年山东师范学院管梅谷教授首先提出此问题,并设计了一个“奇偶点表上作业法”,后来发现此法不是多项式算法,1973年,Edmonds和Johnson给出一个多项式算法。
2.哥尼斯堡七桥问题18世纪在哥尼斯堡城(今俄罗斯加里宁格勒)的普莱格尔河上有7座桥,将河中的两个岛和河岸连结,如下图所示。
城中的居民经常沿河过桥散步,于是提出了一个问题:能否一次走遍7座桥,而每座桥只许通过一次,最后仍回到起始地点。
3.Euler圈Euler圈:经图G的每条边的简单圈Euler图:具有Euler圈的图Euler图非Euler图下面讨论的图G允许有重边,且重边被认为是有区别的边。
伪Euler 圈:经图G 的每条边至少一次的圈点v 的次:与点V 关联的边的数目奇(偶)点:该点的次为奇(偶)数命题1:G 的奇点个数为偶数命题2:G 中有伪Euler 圈 ⇔ G 无奇点中国邮递员问题可表述为:在图G 中找一条权最小的伪Euler 圈。
对于邮递员来说,有些街道可能会重复走,原问题便转化为尽可能少走重复的 街道。
我们将这些重复的边组成的集合称可行集,即找最小的可行集。
命题3:E *是最小可行集 ⇔ωωμμμ()()()()*()*()e e e E E E e E E ≤∑∑∀μ∈∩∈∩\初等圈重复的边 非重复的边4.算法思路由命题1,简单图G 的奇点个数为偶数,可设为v 1 , v 2 , …, v 2k , 对每个1≤ i ≤k, 找v 2i − 1 至v 2i 的链p i ,将p i 的边重复一次。
第六章(六)中国邮递员问题
若vi 是C的起点v,i也是C的终点,vi必关联两条边
d (vi )为偶数,即vi为偶点
该图特点:d (vi )均为偶数
v•1 e1 v•2
e4
e5 e2
v•3 e3 v•4
该图不存在欧拉回路
存在奇点
定理 无向连通图G为欧拉图的 充要条件是G中无
奇证点明:必要性
已知G=(V,E)为欧拉图,即存在一条欧拉回路C,
C经过G的每一条边, 由于G为连通图,
所以G中的每个点至少在C中出现一次
对vi V
结论:不存在这样一种走法。
类似的问题:一笔画问题
图的一笔画: 可一笔画
不可一笔画
字的一笔画:如“中、日、口、串”等可一笔画 而:“田、目”等不能一笔画
6.6.1 欧拉图与中国邮递员问题 开
•欧拉道路: 一笔画问题
链
设G是一个无向连通图,若存在一条道路,经过G中的 每一条边一次且仅一次,则称这条道路为欧拉道路
Euler circuit and Chinese Postman Problem
※歌尼斯堡七桥难题
普莱格尔河
七桥问题的数学模型:
用A、B表示两座小岛,C、D表示两岸,
连线AB表示A、B之间有一座桥。
C•
A•
•B
问题简化为:
D•
在该图中,从任一点出发,能否通过每条线段 一次且仅仅一次后又回到原来的出发点
推论 无向连通图G有欧拉道路的充要条件 是G中恰有两个奇点
中国邮递员问题 ppt课件
中国邮递员问题
管梅谷教授首先提出的方法是奇偶点图上作业 法(1962年)
Edmonds,Johnson(1973年)给出有效算法。
复杂度为 O(|V(G)|2|E(G)|)
中国邮递员问题
中国邮递员问题
解决这样的问题,可以采用奇偶 点图上作业法:如果在配送范围 内,街道中没有奇点,那么他就 可以从配送中心出发,走过每条 街道一次,且仅一次,最后回到 配送中心,这样他所走的路程也 就是最短的路程。
原来的问题可以叙述为在一个有奇点的图中, 要求增加一些重复边,使新图不含奇点,并且 重复边的总权为最小。
我们把使新图不含奇点而增加的重复边简称为 可行(重复边)方案,使总权最小的可行方案 为最优方案。
现在的问题是第一个可行方案如何确定? 在确定一个可行方案后,怎么判断这个方案是
否为最优方案? 若不是最优方案,如何调整这个方案?
Fleury算法的复杂度是 O(| E(G)|2)
中国邮递员问题
求欧拉回路的算法(回路算法)
算法思想: 首先得到一个回路C1, 再在剩
下的图G- C1中求一条与C1有公共顶点的
回路C2, 则C1与 C2构成一个更长的回路,
继续下去可得到含所有边恰好一次的回
路. 回路算法的复杂度是
O(|
E(G) |)
这个问题就是一笔画问题。
中国邮递员问题
管梅谷教授。
上海市人。1957年毕业于华 东师范大学数学系。历任 山东师范大学讲师、副教 授、教授、校长,中国运 筹学会第一、二届常务理 事,山东省数学学会第四 届副理事长,山东省运筹 学会第一届副理事长,山 东省世界语协会理事长。 是第六届全国政协委员。 从事运筹学及其应用的研 究,对最短投递路线问题 的研究取得成果。所提模 型在国外称为中国投递问 题。
第六节 中国邮递员问题
e4
3
4
e3
e4
e1
V4 V2
3
4
e3
2
V2
e2
2
e5
V3
1
e2
2
e5
V3
1
e1
V4
(b)
8 30(a )
V1
V1
2
e4
3
4
e3
e4
e1
V4 V2
3
4
e3
2
V2
e2
2
e5
V3
1
e2
2
e5
V3
1
e1
V4
(d )
(c )
②
赋权图G的每个闭链上,
重复边权之和不超过该闭链总权数的一半
或该闭链中非重复边权之和. 设重复边权之和为a,非重复边权之和为b:
1 a (a b ) 2
ab
作业
195页
习题8
8.3题
第六节 中国邮递员问题 所谓中国邮递员问题,用图的语言来描 述,就是给定一个赋权连通图G ,要寻求一 个圈,使得经过G的每条边至少一次,并且 圈的总圈数最小。
这个问题是由我国数学家管梅谷教授于 1962年首先提出来的,因此称为“中国邮路 问题”. 这个问题和所谓的“一笔画问题”联系密切 。
8. 6. 1 一笔画问题
定理 8.6
加边法化欧拉图的原则和方法是:
在赋权图G的一些边上,加且仅加一条重 复边,使图G的每个顶点成为偶次顶点 ;
①
赋权图G的每个闭链上,重复边权之和不 超过该闭链总权数的一半或该闭链中非重复 边权之和.
②
例8.8 设有图 8-30(a)所示的赋权图,构造 总权数最小的闭的欧拉链.
中国邮路问题
定理:设P是加权连通图G中一条包含G的所有边 至少一次的闭链,则P最优的充要条件是 (1)P中没有二重以上的边; (2)在G的每条圈C中,重复边集E的长度之和不超过这 个圈长度的一半。
f: " "
( 1 )若P中存在重数大于 2的边,则删去 2条后得到的图仍为欧拉 图, 一直做下去,最终得到 的边数一定为 1条或2条。
②如果连通图不是欧拉图。 由于图G有偶数个奇度数顶点,对于任两个奇度数顶点x 和y,在G中必有一条路连接。 将这条路上的每条边改为二重边得到的新图 H1 ,则x 和y就变为H1 的偶度数顶点,在这条路上的其他顶点的度 数均增加2,即奇偶性不变。 于是 H1 的奇顶点个数比G的奇顶点个数少2,对H1 重 复上述过程得H 2 ,再对H 2 重复上述过程得H 3 ,……,经 若干次后,可将G中所有奇度数顶点变为偶度数顶点,从 而得到多重欧拉图G'。 这个欧拉图G'的一条欧拉回路就相应于中国邮递员问题 的一个可行解,且欧拉回路的长度等于G的所有边的长 度加上每次连奇度数顶点的路的长度。
2.3.3 中国邮递员问题
• 一名邮递员负责投递某个街区的邮件。如何为他(她)设 计一条最短的投递路线(从邮局出发,经过投递区内每条 街道至少一次,最后返回邮局)?
描述为图论语言:
在连通加权无向图G中,寻找一条经过每边至少一次 且权和最小的闭链,即G的最优环游。
①如果对应的图G是欧拉图,那么对应于邮局的顶点出发的 任何一条欧拉回路都是符合上述要求的投递员的最优投递 路线。 如果图G只有两个奇度数顶点x和y,则存在一条以x和 y为端点的欧拉路。因此,所要求的最优投递路线是由这 条欧拉路+边{x,y}。
奇偶点图上作业法
• 把G 中的所有奇度数顶点配成对,将每对奇度数顶点之间 的路上的每边改为二重边,得到一个新图G1 ,新图 G1 中没 有奇度数顶点,即 G1为欧拉图。 • 若 G1中某一对顶点之间有多于2两条边连接,则去掉其中 的偶数条边,留下1条或2条边连接这两个顶点,直到每一 对相邻顶点至多由2条边连接,得到图G2 。 • 检查G2 的每一个圈C,若某一个圈上重复边的权和超过此 圈权和的一半,则将C按定理1必要性的证明过程进行调 整,重复这一过程,直到对G2 的所有圈,其重复边的权和 不超过此圈权和的一半,得到G 。 3 • 用Fleury算法求G3 的欧拉回路。
网络优化模型-中国邮递员问题
中国邮递员问题及其网络模型
问题: 问题: 一名邮递员带着要分发的邮件从邮局出发, 经过要分发的每条街道,送完邮件后又返回邮 局.如果他必须至少一次走过他管辖范围内的 每一条街道,如何选择投递路线,使邮递员走 尽可能短的路程. 这个问题是由我国数学家管梅谷教授在 1962年首次提出并研究的,因此在国际上称之 1962年首次提出并研究的,因此在国际上称之 为中国邮递员问题.
AUMCM1990AUMCM1990-B AUMCM1991AUMCM1991-B AUMCM1994AUMCM1994-B AUMCM2000AUMCM2000-B
扫雪问题 通讯网络的极小生成树 计算机网络的文件传输 无线电信道的分配
求解中国邮递员问题的算法
如果中国邮递员问题中的图是欧拉 图,那么欧拉回路就是最优回路。 一般情形下(不是欧拉图),最优 回路包含某些边至少两次。这时求最优 回路的思想是:在图G 回路的思想是:在图G中添加一些重复边 使新图G*成为欧拉图,且使得所有添加 使新图G*成为欧拉图,且使得所有添加 的重复边的权和最小。再由G*的欧拉回 的重复边的权和最小。再由G*的欧拉回 路得到G 路得到G的最优回路。
求解中国邮递员问题的算法
管梅谷首先提出的方法是奇偶点图上作业法 (1962年) 1962年) Edmonds,Johnson(1973年)给出有效算法。 Edmonds,Johnson(1973年)给出有效算法。 复杂度为 O(| V(G)|2| E(G)|)
求解中国邮递员问题的算法 ( Edmonds,Johnson,1973年) Edmonds,Johnson,1973年)
欧拉图及求欧拉回路的算法
求欧拉回路的算法(回路算法) 求欧拉回路的算法(回路算法) 算法思想: 首先得到一个回路C 算法思想: 首先得到一个回路C1, 再在剩 下的图G 下的图G- C1中求一条与C1有公共顶点的 中求一条与C 回路C 回路C2, 则C1与 C2构成一个更长的回路, 构成一个更长的回路, 继续下去可得到含所有边恰好一次的回 路. 回路算法的复杂度是 O(| E (G) |) 注意到上述两算法都是在连通欧拉图中 求欧拉回路的算法. 求欧拉回路的算法.
运筹学 中国邮递员问题
§4.中国邮递员问题(Chinese Postman Problem)1.问题的提出例5. 一个邮递员从邮局出发投递信件, 然后再返回邮局, 如果他必须至少一次地走过他负责投递范围内的每条街道, 街道路线如下图所示, 问选择怎样的路线才能使所走的路为最短?5 6 78问题的图论表述:在赋权G=[V, E]上找一条经每条边至少一次的权最小的圈。
1960年山东师范学院管梅谷教授首先提出此问题,并设计了一个“奇偶点表上作业法”,后来发现此法不是多项式算法,1973年,Edmonds和Johnson给出一个多项式算法。
2.哥尼斯堡七桥问题18世纪在哥尼斯堡城(今俄罗斯加里宁格勒)的普莱格尔河上有7座桥,将河中的两个岛和河岸连结,如下图所示。
城中的居民经常沿河过桥散步,于是提出了一个问题:能否一次走遍7座桥,而每座桥只许通过一次,最后仍回到起始地点。
3.Euler圈Euler圈:经图G的每条边的简单圈Euler图:具有Euler圈的图Euler图非Euler图下面讨论的图G允许有重边,且重边被认为是有区别的边。
伪Euler 圈:经图G 的每条边至少一次的圈点v 的次:与点V 关联的边的数目奇(偶)点:该点的次为奇(偶)数命题1:G 的奇点个数为偶数命题2:G 中有伪Euler 圈 ⇔ G 无奇点中国邮递员问题可表述为:在图G 中找一条权最小的伪Euler 圈。
对于邮递员来说,有些街道可能会重复走,原问题便转化为尽可能少走重复的 街道。
我们将这些重复的边组成的集合称可行集,即找最小的可行集。
命题3:E *是最小可行集 ⇔ωωμμμ()()()()*()*()e e e E E E e E E ≤∑∑∀μ∈∩∈∩\初等圈重复的边 非重复的边4.算法思路由命题1,简单图G 的奇点个数为偶数,可设为v 1 , v 2 , …, v 2k , 对每个1≤ i ≤k, 找v 2i − 1 至v 2i 的链p i ,将p i 的边重复一次。
01-中国邮递员问题
欧拉图及判定定理
顶点可能重复
一进一出
经过一次 且不重复
偶点
如果一个连通图有欧拉环游,即从某个顶点出发,经过该图所有边一次,且不 重复,最后回到出发点,则对中间经过的任一顶点都是一进一出,而出发点开始出 去最后又进来,也是一进一出。注意有的顶点可能有若干次一进一出。不论如何, 都意味着该图的每个顶点都应该是偶点(即进出总共偶数条边)。
中国邮递员问题
厦门大学数学科学学院 金贤安
引言
中 国 邮 递 员 问 题 是 由 山 东 师 范 大 学 管 梅 谷 同 志 1960年首先提出的。
这是数学中为数不多的几个以“中国”命名的问题 或定理之一。
该问题涉及著名的的哥尼斯堡(Königsberg) 七桥问题。
七桥问题是图论和拓扑学的起源。
以交叉路口为顶点,街道为边,街道的长度为边的权得 到 一赋权图,我们称之为街道图。 不妨设邮局在一条街道上。 若街道图是欧拉图,有欧拉环游,无需重复走街道,沿 着 一个欧拉环游作为投递路线即可。
中国邮递员问题
若街道图不是欧拉图,则有些街道需要重复 走,那么中国邮递员问题就变为:重复走哪 些街道,使总路程最短?
给定一个连通图,我们称经过图的所有边一次且只有一次 的走法为一个欧拉通路。
如果进一步该走法还回到出发点,则称之为欧拉环游(回 路)。
具有欧拉环游的图称之为欧拉图。
C
哥尼斯堡问题即图3是否是欧拉图的问题。
A
B
D
图3 七桥问题对应图
欧拉图及判定定理
一笔画问题:什么样的图形可以一笔画成,笔不离纸,而 且每条线都只画一次不准重复?
(1) 在最优方案中,对街道图的任意一边,所添加的平行边的次数不会超过1。 事实上,若在某可行方案中,对街道图的某边,所添加的平行边的次数 大于等于2,那么在该方案中去掉该边2次,将得到一个新的更优的可行 方案,矛盾。
中国邮递员问题小论文
中国邮递员问题摘要:一名邮递员带着要分发的邮件从邮局出发,经过要分发的每个街道,送完邮件后又返回邮局.如果他必须至少一次走过他管辖范围内的每一条街道,如何选择投递路线,使邮递员走尽可能少的路程.这个问题是由我国数学家管梅谷先生(山东师范大学数学系教授)在1962年首次提出的,因此在国际上称之为中国邮递员问题本文主要介绍了中国邮递员问题的基本分析、求解中国邮递员问题的方法以及有关欧拉回路的算法实现。
关键词:中国邮递员欧拉图欧拉回路一、中国邮递员问题的分析中国投递员问题是1960年我们从生产实际中提出的一个数学问题,它是从下述实际问题中抽象出来的:“一个投递员应该怎么选择一条线路,才能既把所有由他负责的信件都送到,而所走的路程又最短”。
在我们开始研究中国投递员问题以前,国外有人研究过所谓旅行售货员的问题,即:“一个售货员要到n个城市去售货,问他应该选择怎样的一条线路,才能既走遍所有城市,并且走的路程最短”。
这是一个著名的难题.当n较大时,即使使用大型电子计算机,也很难解决。
投递员面临的问题显然可以归纳为旅行售货员问题,事实上,只要把投递员必须送的每一个地点看成是一个城市就行了.但是一般来说,投递员每次要到约二、三百个地点送信,如果归纳为旅行售货员问题来解决,将是一个规模很大的问题,是无法解决的.但是,在仔细分析了投递员面临的问题后,我们发现这个问题具有一定的特点,即需要送信的地点一般都是比较密集的排列在街道上的,因此,实际上,我们称这个问题为“最短投递线路问题”,1965年后国外称之为“中国投递员问题”(这个问题是我国数学家管梅谷先生在20世纪60年代提出来的)用图论的语言来描述就是在一个带权图G中,能否找到一条回路C,使C包含G的每条边至少一次且C的长度最短?如若他所管辖的街道构成一欧拉回路,则这欧拉回路便是所求路径。
如若不然,即存在度数为奇数的顶点,必然有些街道需要多走至少一遍,这时用中国邮路问题算法可求出最短路径。
中国邮递员数学问题
中国邮递员数学问题
中国邮递员数学问题是一个著名的数学问题,也称为"中国邮递员问题"。
这个问题源于邮递员在担任邮递员工作时,需要沿着不同的街道进行投递。
邮递员必须走遍每一条街道至少一次,然后回到出发地点。
问题的目标是寻找一条最短的路径,使得邮递员能够满足投递的要求。
具体问题描述如下:给定一个城市的街道网络图,每条街道上都有一个正整数表示街道的长度。
邮递员需要从一个特定地点出发,沿着街道网络进行投递,然后回到出发地点。
要求邮递员经过的路径总长度最短。
这个问题属于旅行商问题的变种,是一个NP-完全问题。
因为问题规模较大,难以找到一个最优解。
因此,通常采用近似算法进行求解,如TSP(Traveling Salesman Problem)等。
邮递员问题在实际中有很多应用,比如快递员的路线规划、物流配送等。
解决这个问题可以提高物流效率,减少成本。
中国邮递员问题
(割边)
FE算法复习:
(1)任取 v0属于V(G),令W0=v0. (2)设行迹Wi=v0v1v2…vi已选定,则从E(G)-E(W)中 选一条边ei+1,使得ei+1与vi相关联,且非必要时, ei+1 不要选G-E(W)的桥(所谓桥是一条删除后使连通图 不再连通的边)。 (3)反复执行(2), 直至每边e属于E(G)皆入选为止。
情况2:加权图G中有奇次顶时中国邮路问 题的解法(某些边要通过两次)
解法步骤:设G是连通加权图 1)求G中奇次顶集合V0; 2)对V0中的每个顶对u,v,用Dijkstra算法求距离d(u,v); 3)构造加权完全图K|V0|,完全图中顶点即为V0中顶点,边uv 之权为d(u,v); 4)求加权图K|V0|的总权最小的完备匹配M。 5)在G中求M中同一边之端点间的最短轨。 6)把G中在(5)求得的每条最短轨之边变成同权倍边,得 Euler图G’. 7)用FE算法求G’的一条Euler回路W’,W’即为中国邮路。 实例探讨
中国邮递员问题--邮递员从选好邮件去投递,然后返回邮 局,必须经过由他负责的每条街道至少 一次,怎么走耗时最少?
情况 1:邮路可抽象为 Euler图,则所有路经过恰好一次。 情况 2:邮路抽象成的图 G中包含奇次顶。(有的路径需要 重复走)
情况1:仍要遵循一定规则走
定理6.3
若G是Euler图,FE算法终止时得 到的W是Euler回路。
本质:此算法能实现无重复边的一笔画,且
回到出发点。
证明思路 (1)证明是闭行迹。 (2)证明能够经过一切边。(反证不能经过一切边)
基本概念复习
行迹:各边相异的道路。 Euler行迹:在图G中含一切边的行迹。 Euler回路:含一切边的闭行迹。 Euler图:若G中存在Euler回路。
中国邮递员问题解法
中国邮递员问题解法中国邮递员问题是一个著名的组合优化问题,实际上是一个旅行商问题(Traveling Salesman Problem,TSP)的变种。
问题描述:给定一个城市集合和城市之间的距离矩阵,求解一个最短的邮递员路径,使邮递员能够从出发城市出发,经过每个城市恰好一次,最后回到出发城市。
解法:1.暴力搜索暴力搜索是最简单直观的解法。
遍历所有可能的路径,计算每个路径的总距离,最后选择最短的路径。
这种解法的时间复杂度为O(n!),随着城市数量的增加而急剧增加,效率非常低,只适用于小规模问题。
2.动态规划动态规划是一个更高效的解法。
使用一个二维数组dp[i][j]表示从城市i出发经过城市集合j的最短路径长度,其中j是一个二进制数,表示哪些城市已经访问过。
动态规划的转移方程为:dp[i][j] = min{dp[k][j XOR (1 << k)] + distance[i][k]},其中k表示已经访问的最后一个城市。
利用这个递推关系,可以逐步计算出dp[0][1<<n-1],即从城市0出发经过所有城市的最短路径。
最后,将此路径与每个城市的距离相加,得到最终的最短路径长度。
3.贪心算法贪心算法是一种更简单的解法。
首先选择一个起始城市,然后每次选择距离最近且未被访问过的城市,将其加入路径中。
重复此过程,直到访问完所有城市,然后回到起始城市。
这种解法的时间复杂度为O(n^2),但由于贪心策略的局限性(可能会出现回头或死胡同),所以得到的解并不一定是最优解。
以上是三种常用的解决中国邮递员问题的方法,具体可以根据实际情况选择合适的算法进行求解。
Chap.6-邮递员问题
11
6.中国邮递员问题 6.中国邮递员问题
v1
5 2
v8
3
4
v7
3 4
v2
5
6
v9
4
v6
4 4
v3
9
v4
v5
图8.29
12
6.中国邮递员问题 6.中国邮递员问题
在连接 v2 和 v4 的链中任取一条,比如链 ( v2,v1,v8,v7,v6,v5,v4 ) , 在 加 入 重 复 边 [v2,v1],[v1,v8],[v8,v7],[v7,v6],[v6,v5],[v5,v4 ]. 同 样 , 任 取 连 接 v6 和 v8 的 一 条 链 (v8,v1,v2,v3,v4,v5,v6), 在 加 入 重 复 边 [v8,v1],[v1,v2],[v2,v3],[v3,v4],[v4,v5],[v5,v6 ].于是,得到图8.30 在连通图8.30中,没有奇点,故它是欧拉 图。对于这条邮递路线,重复边的总长 为:2W12+W23+W34+2W45+2W56+W67+W78+2W18=51。
6
6.中国邮递员问题 6.中国邮递员问题
v1-v2-v4-v3-v2-v4-v6-v5-v4-v6-v5-v3-v1,
总长是12。 也可以按照另一条路线走:
v1-v2-v3-v2-v4-v5-v6-v4-v3-v5-v3-v1,
总长是11。 按 照 第 1 条 路 线 走 , 在 边 [v2,v4],[v4,v6],[v6,v5]上各走3两次,按照 第2条路线走,在边[v3,v2],[v3,v5]上各走了 两次。
15
6.中国邮递员问题 6.中国邮递员问题
中国邮递员问题的应用
题目:姓名:学号:班级:前 言我们在生活中都与中国邮递员有了一定的接触,那么什么是中国邮递员?中国邮递员问题产生于1960年,它讨论的主要内容是:“一个投递员应该如何选择线路,才能把所有的由他负责的信件都送到,而且所走的路线又是最短的。
我国管梅谷教授1962变首先并提出了中国邮递员问题的原始模型。
然而在我们研究中国邮递员以前,国外有很多人士研究了所谓的旅行售货员问题:“一个售货员要到n 个城市去售货,问其应该如何的选择路线才能一条路的走完所有的城市,且路程是最短的。
”当n 增大到一定程度的时候我们将难以解决。
所以我们这里的中国投递员的问题也相当于旅行售后员一条线走完所有城市的问题,只要将所有的城市的点换成了我们所要投递的点就可以了。
事实上就是告诉你几个点和几条边及其权重,就其求出某点到某点的最短路的问题。
摘 要图论在各个领域都有着广泛的应用,在单循道路的寻早上早已经开始应用。
对于中国邮递员等的问题,我们可以用边着色理论和Euler 理论来解决,这里本文将应用于实践,将理论性问题用到福建省漳平市的邮递员发送派件的应走得道路方式。
本文将应用Fluery 算法来求解最终得到与本文所要寻找的问题的结果。
关键词:图论;EULER ;FLEURY 算法;邮递员1.知识简介EULER 环游]1[:一条闭途径如果通过图中每条边至少一次就称为环游,图中的每条边恰一次的比途径就称之为EULER 环游,有EULER 环游的图称之为EULER 图。
FLEURY 算法]1[(过河拆桥,尽量不走独木桥):(1)任取一点0v ,令00w v =。
(2)若迹k k k v e v e 110v w =已经取定,选},,,{e \E e 211k k e e ∈+使得①1e +k 与k v 相关联。
②除非无奈,选1e +k 使它不是},,,{G 21k k e e e G -=的割边。
(3)若(2)不能再进行下去,那么就终止。
免费)中国邮递员问题
v 7 3 v 6
6
4
4 9 v 4
图4
4 4 v 5
检查图4中圈(v1,v2, v9, v6,v7, v8,v1)
的总长度为24,但圈上重复边总权为13, 大于该圈总长度的一半,因此可以做一次 调整,使重复边总长度下降为15。见图5。
v1 5 v2 5 v3
2
v8 3 v9 4
2
v 8 3 v 9
4
v 7 3 v 6
6
4
4 9 v 4
图3
4 4 v 5
第二步:调整可行方案
而给原来没有重复边的边上加上重复边, 图中仍然没有奇点。因而如果在某个圈上 重复边的总权数大于这个圈的总权数的一 半,像上面所说的那样做一次调整,将会 得到一个总权下降的可行方案。
其次,如果把图中某个圈上的重复边去掉,
18世纪著名古典数学问题之一。在哥尼斯
堡的一个公园里,有七座桥将普雷格尔河 中两个岛以及岛与河岸连接起来(如图)。 问是否可能从这四块陆地中任一块出发, 恰好通过每座桥一次,再回到起点?
欧拉于1736年研究并解决了此问题, 他
用点表示岛和陆地,两点之间的连线表示 连接它们的桥,将河流、小岛和桥简化为 一个网络,把七桥问题化成判断连通网络 能否一笔画的问题。之后他发表一篇论文, 证明了上述走法是不可能的。并且给出了 连通网络可一笔画的充要条件这一著名的 结论。
v 1 3
v2
2
4
v 3
2 v4
5 6 4
v5
8 v6
4
如果在某条路线中,边[vi,vj]上重复走几次,
我们就在图中vi,vj之间增加几条边,令每条边 的权和原来的权相等,并把所增加的边,称为 重复边,于是这条路线就是相应的新图中的尤 拉图。 原来的问题可以叙述为在一个有奇点的图中, 要求增加一些重复边,使新图不含奇点,并且 重复边的总权为最小。 我们把使新图不含奇点而增加的重复边简称为 可行(重复边)方案,使总权最小的可行方案 为最优方案。
中国邮递员问题
– 第四步:检查有重复边的线路是否是多余的。即检查重复边的两端是 否已有其他线路相连通,如有的话,可将重复边连同原边从线路图中 删去。发现重复边V4V5的两端可通过其他线路相连,可将V4V5及重复 边一起从线路图中删去。即可得送货线路如下:V0—V1—V2—V3— V5—V6—V10—V9—V12—V7—V8—V12—V9—V4—V11—V1—V0。线 路的总长度减少为215千米。总长度较前减少了20千米。
A
6
2 2 I 5 4
H 1
4
G 1 F 5
J 3 K 2
D
3
B 3 C
5
E
图中重复边的总距离W1为18<23(总距离的一半),为可行解; 检查是否每一个闭合圈的重复边的总距离都小于该闭合圈的总距离 的一半。 在圈(A,B,K,J,I,H)中,重复边总距离为8,小于该圈总距离19 的一半,满足要求,不需改进;在圈(B,C,D,K)中,不需改进; 在圈(D,E,F,J)中,不满足要求需改进
A 6 B 3 C 4 5
2
2 I
H 1 J 3 K 2 D
4 3
G 1 F 5
5
E
阅读推荐
1、《物流管理实务》,梁金萍 主编,清华大学出 版社,2010。 2、《运筹学》
– 第二步:考虑到从配货中心出发的送货车辆,在送完所有的门店货物 后,仍需要返回配货中心,故再需对生成的最小树采用中国邮递员线 路的算法进行扩充。 奇点有:V0,V1,V3,V4,V6,V7,V8,V9,V10,V12。故需增加边 V3V5,重复边V0V1,V5V6,V4V9,V9V10,V7V12,V8V12,V9V12等 7条。 粗线部分已给出了送货车量从配送中心出发,送货到10家门店后返回 配货中心的具体路线。即可为:V0—V1—V2—V3—V5—V6—V5—V4— V9—V10—V9—V12—V7—V12—V8—V12—V9—V4—V11—V1—V0。线 路的总长度为251千米。
中国邮递员问题
12
管梅谷
管梅谷教授。
上海市人。1957年毕业于华 东师范大学数学系。历任 山东师范大学讲师、副教 授、教授、校长,中国运 筹学会第一、二届常务理 事,山东省数学学会第四 届副理事长,山东省运筹 学会第一届副理事长,山 东省世界语协会理事长。 是第六届全国政协委员。 从事运筹学及其应用的研 究,对最短投递路线问题 的研究取得成果。所提模 型在国外称为中国投递问 题。
? 定理:任何一个图中的奇点个数必为偶 数。
? 推论:连通的多重图有尤拉链,当且仅 当图中有两个奇点。
8
欧拉图及求欧拉回路的算法
? 欧拉行迹—含所有边恰好一次的行迹 ? 欧拉回路—含所有边恰好一次的回路 ? 欧拉图—存在欧拉回路的图
? 设G是连通图, 下列命题等价: (1) G是欧拉图. (2) 每个顶点的度数都是偶数. (3) G是两两无公共边的圈的并.
? 一笔画问题:从某一点开始画画,笔不离纸, 各条线路仅画一次,最后回到原来的出发点。
5
v1 a
b
c
v2
v3
v4
图1
图2
? 图1和图2当中哪一个图满足:从图中任何一点出 发,途径每条边,最终还能回到出发点?
? 试想:一个图应该满足什么条件才能达到上面要
求呢?
6
一笔画问题
? 凡是能一笔画出的图,奇点的个数最多 有两个。始点与终点重合的一笔画问题, 奇点的个数必是0。
13
中国邮递员问题
在一个连通的赋权图G(V,E)中,求一 条回路,使该回路包含G中的每条边至少 一次,且该回路的权最小.(称此回路 为最优回路或者中国邮路)
14
求解中国邮递员问题的算法
如果中国邮递员问题中的图是 欧拉图,那么欧拉回路就是最优回路。
关于中国邮递员问题和欧拉图应用
关于中国邮递员问题和欧拉图应用中国邮递员问题:1962年有管梅谷先生提出中国邮递员问题(简称CPP)。
一个邮递员从邮局出发,要走完他所管辖的每一条街道,可重复走一条街道,然后返回邮局。
任何选择一条尽可能短的路线。
这个问题可以转化为:给定一个具有非负权的赋权图G,(1)用添加重复边的方法求G的一个Euler赋权母图G*,使得尽可能小。
(2)求G*的Euler 环游。
人们也开始关注另一类似问题,旅行商问题(简称TSP)。
TSP是点路优化问题,它是NPC 的。
而CPP是弧路优化问题,该问题有几种变形,与加权图奇点的最小完全匹配或网络流等价,有多项式算法。
[1]欧拉图:图G中经过每条边一次并且仅一次的回路称作欧拉回路。
存在欧拉回路的图称为欧拉图。
无向图欧拉图判定:无向图G为欧拉图,当且仅当G为连通图且所有顶点的度为偶数。
有向图欧拉图判定:有向图G为欧拉图,当且仅当G的基图[2]连通,且所有顶点的入度等于出度。
欧拉回路性质:性质1设C是欧拉图G中的一个简单回路,将C中的边从图G中删去得到一个新的图G’,则G’的每一个极大连通子图都有一条欧拉回路。
性质2设C1、C2是图G的两个没有公共边,但有至少一个公共顶点的简单回路,我们可以将它们合并成一个新的简单回路C’。
欧拉回路算法:1 在图G中任意找一个回路C;2 将图G中属于回路C的边删除;3 在残留图的各极大连通子图中分别寻找欧拉回路;4 将各极大连通子图的欧拉回路合并到C中得到图G的欧拉回路。
由于该算法执行过程中每条边最多访问两次,因此该算法的时间复杂度为O(|E|)。
如果使用递归形式,得注意|E|的问题。
使用非递归形式防止栈溢出。
如果图是有向图,我们仍然可以使用以上算法。
/showproblem.php?pid=1116 有向图欧拉图和半欧拉图判定/JudgeOnline/problem?id=2337 输出路径中国邮递员问题①:一个邮递员从邮局出发,要走完他所管辖的每一条街道,可重复走一条街道,然后返回邮局。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v1
1
•
1
1
v2
1
•
1 1 1
v3
•
1
• v4
1
• v5
• v6
G1
对路线 C 2: v1 v 4 v 2 v 4 v 5 v 3 v 6 v 5 v 2 v 3 v 2 v1 重复边:( 2,v4),( 2,v3) v v
v1
1
•
1
1
v2
1
•
1 1 1
• v6
结论: 对任意一个含奇点的邮路图G,由于奇点的个
数为偶数个,把每两个配成一对,由于G为连 通图,每对奇点之间至少存在一条链,对该条 链上的每一条边增加一条重复边,可得一欧拉 图,该欧拉图对应一条投递路线 寻找最佳投递路线方法: 在原邮路图上增加一些重复边得一个欧拉图,, 在所得欧拉图上找出一条欧拉回路。计算重复边 的权和,重复边权和最小欧拉回路既为所求的最 佳投递路线 管梅谷——奇偶点图上作业法
• D
类似的问题:一笔画问题
图的一笔画: 可一笔画 不可一笔画
字的一笔画:如“中、日、口、串”等可一笔画 而:“田、目”等不能一笔画
6.6.1 欧拉图与中国邮递员问题
• 欧拉道路: 一笔画问题 设G是一个无向连通图,若 存在一条道路,经过 G中的 每一条边一次且仅一次 ,则称这条道路为欧拉 道路
v3
•
1
且 G 2 为欧拉图, C 2 为 G 2的一条欧拉回路
一条投递路线对应一个 欧拉图 且投递路线为该图的一 条欧拉回路
• v4
1
• v5
• v6
G2
反之,对邮路图G,
v1
1
•
1
1
v2
1
•
1 1 1
v3
•
1
任取奇点 v 4到v3的一条链
如: v 4 , v 5 , v 6 , v 3
• v4
例:设 G为邮路图,其中 v1为邮局 ∵ d ( v 3 ), d ( v 4 )为奇数 , G 不是欧拉图
∴ G 不存在欧拉回路,
v1
1
•
1
1
v2
1
•
1 1 1
v3
•
1
• v5 v 6 • • v4 即不存在每条街道走一次且只走一次的投递路线
1
路线 C 1: v1 v 2 v 3 v 6 v 5 v 4 v1 v 2 v 3 v 5 v 2 v 4 v1 路线 C 2: v1 v 4 v 2 v 4 v 5 v 3 v 6 v 5 v 2 v 3 v 2 v1
简单回路 C 3: 1 , e7 , v5 , e 4 , v 4 , e8 , v1 } {v
v6
e6
5
v1 e1 •
e8
e7
•e
e9
v2
•e
2
G G′ 把 C 3 从 C 2的 v1点处插入 C 2,得一简单回路 C,
•5 v
e10
e4
• v4
e3
v •3
e6
v1 e1 •
e8
e7
• • v4
v2
1
• v5
• v6
v2
1
G
对该链上的每一条边增加一条重复边 v1 G ′为欧拉图 , 即 G ′存在欧拉回路
即G ′对应一条投递路线 C
C: v1 v 2 v 3 v 6 v 3 v 5 v 6 v 5 v 2 v 4 v 5 v 4 v1
•
1
1
•
1 1 1
v3
•
1
1
• v4
1
投递路线
欧拉图
G′
• v5
5
v1 e1 •
e8
v6
•e
e9
v2
e6
2
v1 e1 •
e8 e7
• • v4
v2
•e
e7
v1
8
•e
e7
•5 v
e10
e4
G
• v4
e3
v •3 v6•
e5
•5 v
e10
e4
•5 v
G′
G′′
e4
• v4
简单回路C1: 3 , e3 , v 4 , e9 , v 2 , e2 , v3 } {v 简单回路 C 2: 2 , e10 , v5 , e5 , v 6 , e6 , v1 , e1 , v 2 } {v
v2
v35
5
•
6 9
•
v5 v4
4
• • 3 3
4
•4 • 4
v9
v8
•
G2
•
•
v1
G2是欧拉图, 重复边权和=21
v2
5
•
6 9
2
v6 v5
• • 3 3
4 4 4
v7
•
v35
2、使图中每个初等圈重复边的 权和不大于该圈权和的一半 G3是欧拉图, 重复边权和=17
v •3 e
3
2
G
任取一点,如 v 3, 找一个以 v 3为起点的一个简单回路 C1 简单回路C1: 3 , e3 , v 4 , e9 , v 2 , e2 , v3 } {v
记G′ = G − C1 = V ′,E′), ′ = E − E1,V ′是E ′中边的端点 ( E 在G ′中,以G ′与C1的公共顶点v 2为起点取一个简单回路C 2 简单回路 C 2: 2 , e10 , v5 , e5 , v 6 , e6 , v1 , e1 , v 2 } {v
例:判断下图是否为欧拉图,若是,求出欧拉回路
e1
e6
v1
•
•
•5 v
v2 e2
e4
e5
v •3
e3
v •3
e7
• v4
•5 v
}
e4
• e5 v4
e7
C1 : {v1 , e1 , v 2 , e2 , v3 , e3 , v 4 , e6 , v1
C2 :
{ v3 , e7 , v4 , e5 , v5 , e4 , v3 }
则G ′中无奇点, 所以G ′存在欧拉回路C 去掉C中的边e, 即得以vi 为起点, v j 为终点的欧拉道路
必要性:设G有一条以vi 为起点, v j 为终点的欧拉道路L
在G上增加一条边e = (vi , v j ), 得连通图G ′, 把边 e加到 L中得 G ′的一条欧拉回路 C ,即G ′为欧拉图 ∴ d ( v )为偶数 , v ∈ G ′ 在G中,d ( v i ), d ( v j )为奇数 ,
证明:必要性 已知G=(V,E)为欧拉图,即存在一条欧拉回路C, C经过G的每一条边, 由于G为连通图, 所以G中的每个点至少在C中出现一次
对∀vi ∈ V
v 若 v i 是 C 的中间点,i 每出现一次,必关联两 条边 如 C : 1 , e1 , v 2 , e 2 , v 3 ⋯ , v i −1 , e i −1 , v i , e i , v i + 1 , ⋯ , v 1 } {v ∴ d ( v i )为偶数,即 v i 为偶点
可一笔画
不可一笔画
不可一笔画
中 日 白 田 回
不连通
6.6.2 中国邮路问题
提出问题的人:管梅谷教授 时间:1962年 提出的问题: 一个邮递员从邮局出发分送邮件,要走完他负责 投递的所有街道,最后再返回邮局,应如何选择 投递路线,才能使所走的路线最短? 邮路问题的图论描述: 在G上找一个圈, 取一无向赋权连通图G=(V,E) 该圈过每边至少 E中的每一条边对应一条街道 一次,且圈上所 每条边的非负权l(e)=街道的长度 有边的权和最小
v 若 v i 是 C 的起点,i 也是 C 的终点, i必关联两条边 v
∴ d ( v i )为偶数 ,即 v i 为偶点
充分性: 若无向连通图G=(V,E)中无奇点,则G为欧拉图 例: G 连通,d ( v i )为偶数
v1 e1 •
e8
v6
e6
5
•e
e9
v2
•e
e7
•5 v
e10
e4
• v4
欧拉回路 :
{v1 , e1 , v 2 , e2 , v3 , e7 , v4 , e5 , v5 , e4 , v3 , e3 , v4 , e6 , v1
}
推论 无向连通图G有欧拉道路的充要条件 是G中恰有两个奇点
证明:充分性:设vi , v j 是G的奇点, 在G上增加一条边e = (vi , v j ),
•
•
v9
•
有奇点: 把所有奇点两两配成一对,每对奇点找一条链, 在该条链上的每一条边增加一条重复边,得一 个欧拉图G1, 由G1所确定的欧拉回路即为一 个可行方案 G中有奇点:v2 ,v4 ,v6 ,v8 取v2到v4的一条链: v2v1v6v7v8v9v4 取v6到v8的一条链: v6v1v2v3v4v9v8
开 链
v1 e1 •
e5
•e
v2
2
v1
•
e1 e4
•
e2
v2 v •3 •3 v e
3
•5 v
e6
e4
• v4
e3
v •3
e2
v1
•
e1 e3
•
v2
• v4
•4 vΒιβλιοθήκη 存在 v 2到v 4的 一条欧拉道路:
存在 v 3到v 4的 任两点之间都不 一条欧拉道路: 存在欧拉道路
{v2 ,e1,v1,e5,v4 ,e3,v3,e2,v2,e6 ,v5,e4,v4}