中国邮递员问题算法
数学建模中国邮递员问题求解算法
邮递员问题求解算法
若此连通赋权图是Euler图,则可用Fleury算法求Euler回路,此回路即为所求;关于非Euler图,1973年,Edmonds和Johnson给出下边的解法:
设G是连通赋权图,则
(i)求V0
{v|v
V(G),
d(v)
1(mod2)};
(ii)对每对极点
u ,v V0,求
d(u,v)(
d
(u,v)
是
u
与v的距离,
可用
Floyd
算法求得);
iii)结构完整赋权图K|V0|,以V0为极点集,以d(u,v)为边uv的权;
iv)求K|V0|中权之和最小的完满对集M;
v)求M中边的端点之间的在G中的最短轨;
vi)在(v)中求得的每条最短轨上每条边增添一条等权的所谓“倍边”(即共端点共权的边);
vii)在(vi)中得的图G'上求Euler回路即为中国邮递员问题的解。
多邮递员问题求解
邮局有k(k2)位送达员,同时送达信函,全城街道都要送达,达成任务返回邮局,怎样分派送达路线,使得达成送达任务的时间最早?我们把这一问题记
成kPP。
KPP的数学模型以下:
G(V,E)是连通图,v0
V(G),求G的回路
C1,
,C k,
使得
(i )v0
V(C i)
,i1,2,,k,
(ii)max
(
)min,
w
e
ik e
E(C)
(ii i)
k
E
(C i)E(G)
1。
归纳中国邮递员问题.pptx
精品文档
4
– 第二步:考虑到从配货中心出发的送货车辆,在送完所有的门店货物 后,仍需要返回配货中心,故再需对生成的最小树采用中国邮递员线 路的算法进行扩充。
奇点有:V0,V1,V3,V4,V6,V7,V8,V9,V10,V12。故需增加边 V3V5,重复边V0V1,V5V6,V4V9,V9V10,V7V12,V8V12,V9V12等 7条。
精品文档
6
– 第四步:检查有重复边的线路是否是多余的。即检查重复边的两端是
否已有其他线路相连通,如有的话,可将重复边连同原边从线路图中 删去。发现重复边V4V5的两端可通过其他线路相连,可将V4V5及重复 边一起从线路图中删去。即可得送货线路如下:V0—V1—V2—V3— V5—V6—V10—V9—V12—V7—V8—V12—V9—V4—V11—V1—V0。线 路的总长度减少为215千米。总长度较前减少了20千米。
精品文档
7
– 第五步:要综合考虑问题,在优化第三步时,同时考虑第四步有没有 重复边是多余的。此例题发现:圈V0—V1—V2—V13—V0中,加重复 边的长度为23, 不加重复边的长度为15+9+8=32,故不需要改进,但 是,去掉重复边V0V1,增加重复边V1V2,V0V13,V13V2。则V1V2成 为重复边,发现重复边V1V2的两端可通过其他线路相连,可将V1V2及 重复边一起从线路图中删去。这样去掉重复边V0V1和V1V2,总和长度 为31千米,增加V0V13和V13V2,总和长度为24千米,总长度较前减少 了7千米。即可得送货线路如下: V0—V1—V11—V4—V9—V12—V7— V8—V12—V9—V10—V6—V5—V3—V2—V13—V0。线路的总长度减少 为208千米。
运筹学 中国邮递员问题
§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 的边重复一次。
第六节 中国邮递员问题
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)所示的赋权图,构造 总权数最小的闭的欧拉链.
关于中国邮递员问题和欧拉图应用
1如果G的基图连通且所有顶点的入、出度均不为0,转2,否则返回无解并结束;
2计算所有顶点v的d’(v)值;
3构造网络N;
4在网络N中求最小费用最大流;
5对N中每一条流量f(u,v)的边(u,v),在图G中增加f(u,v)次得到G’;
6在G’中求欧拉回路,即为所求的最优路线。
NPC问题:
if(in[i] +1 == out[i]) ...{
spos = i;
break;
}
}
}
else ...{
for(i=0;i<30;i++) ...{
if(f[i] != -1) ...{
spos = i;
break;
}
}
}
for(i=0;i<30;i++) sort(words[i].begin(), words[i].end());
如果部分街道能够双向通行,部分街道只能单向通行。这个问题已被证明是NPC的。[5]
--------------------------------------------------------------------------------
[1]大城市邮政投递问题及其算法研讨
[2]忽略有向图所有边的方向,得到的无向图称为该有向图的基图。
step = 0;
memset(vis, 0, sizeof(vis));
find_euler(spos);
//memset(vis, 0, sizeof(vis));
for(i=step-1;i>0;i--) ...{
spos = seq[i];
string snext;
中国邮递员问题——欧拉巡回
案例2:铲雪车的行驶路线问题
铲雪车的行驶路线问题(MCM 90B题)
返回
案例1:双车道公路扫雪模型
问题 某地区的双车道公路如图1的图G(单 位是千米),路上积满了雪 。一辆扫雪车从 v1点出发,扫除公路上的所有积雪,最后回 到v1 。 要求1) 请你为扫雪车选择一条路径,使它 经过的总路程最短。 要求2) 现在先进的喷气扫雪车只需沿公 路一侧行驶,就能清除两个车道的积雪。如 果改用喷气扫雪车来扫雪,再请你为它选择 一条路径,使它经过的总路程最短。
6 8 v4 5 7 3 v5
5 4
9 6 v9 1 v10 2 v15
v6 5 v12
v7
4 3
2 v8
3
v11 1 1 v13 v14
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
要求1)的解法2 还可用深度优先搜索法(迷宫法则),遍历所有边,且 每边正好来回各走一次。 迷宫任务:从迷宫入口处出发,每个走廊都要搜索,最后 再从入口出来.
求解中国邮递员问题的算法
最小权对集法(Edmonds) 设G是连通加权图。 1) 求G的所有奇次顶点之间的最短路径及其 长度; 2) 以G的所有奇次顶点为顶点集作一完全图, 各条边上的权赋为两端点在原图中的最短路径长度, 得到一个加权完全图,记为G1;求G1的最小权理想 匹配M, 得到奇次顶点的最佳配对; 3)在G中,沿最佳配对奇次顶点间的最短路径 添加重复边得欧拉图G*,G*的欧拉巡回即为所求。
基本概念与基本结论
无向图的情形
结论一:连通图G是欧拉图的充要条件是G无奇次顶 点。
结论二:连通图G有欧拉道路的充要条件是ቤተ መጻሕፍቲ ባይዱ最多有 两个奇次顶点。 结论三:任何无向图的奇次顶点数目必为偶数。
网络优化模型-中国邮递员问题
中国邮递员问题及其网络模型
问题: 问题: 一名邮递员带着要分发的邮件从邮局出发, 经过要分发的每条街道,送完邮件后又返回邮 局.如果他必须至少一次走过他管辖范围内的 每一条街道,如何选择投递路线,使邮递员走 尽可能短的路程. 这个问题是由我国数学家管梅谷教授在 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) |) 注意到上述两算法都是在连通欧拉图中 求欧拉回路的算法. 求欧拉回路的算法.
中国邮递员数学问题
中国邮递员数学问题
中国邮递员数学问题是一个著名的数学问题,也称为"中国邮递员问题"。
这个问题源于邮递员在担任邮递员工作时,需要沿着不同的街道进行投递。
邮递员必须走遍每一条街道至少一次,然后回到出发地点。
问题的目标是寻找一条最短的路径,使得邮递员能够满足投递的要求。
具体问题描述如下:给定一个城市的街道网络图,每条街道上都有一个正整数表示街道的长度。
邮递员需要从一个特定地点出发,沿着街道网络进行投递,然后回到出发地点。
要求邮递员经过的路径总长度最短。
这个问题属于旅行商问题的变种,是一个NP-完全问题。
因为问题规模较大,难以找到一个最优解。
因此,通常采用近似算法进行求解,如TSP(Traveling Salesman Problem)等。
邮递员问题在实际中有很多应用,比如快递员的路线规划、物流配送等。
解决这个问题可以提高物流效率,减少成本。
中国邮递员问题
管梅谷
管梅谷教授。 上海市人。1957年毕业于华 东师范大学数学系。历任 山东师范大学讲师、副教 授、教授、校长,中国运 筹学会第一、二届常务理 事,山东省数学学会第四 届副理事长,山东省运筹 学会第一届副理事长,山 东省世界语协会理事长。 是第六届全国政协委员。 从事运筹学及其应用的研 究,对最短投递路线问题 的研究取得成果。所提模 型在国外称为中国投递问 题。
求解。
推广的中国邮递员问题: 混合图的中国邮递员问题,有各种限制 的中国邮递员问题,动态网络的中国邮 递员问题。 其他相关问题-旅行售货员(TSP)问题, 灾清巡视路线。
谢谢!
v1 2 5 v2 5 9 v3 v4 图2 3 v8
4
3
v7
6
v9 4 4 4
v6
4
v5
这样就得到初始方案.在这个图中,没有奇点, 故称它为欧拉图。对应于这个可行方案,重复 边总权为51。
思考
这样的可行方案是不是只有一种呢? 在确定一个可行方案后,怎么判断这个方案是 否为最优方案? 若不是最优方案,如何调整这个方案?
欧拉图及求欧拉回路的算法
欧拉行迹—含所有边恰好一次的行迹 欧拉回路—含所有边恰好一次的回路 欧拉图—存在欧拉回路的图
设G是连通图, 下列命题等价: (1) G是欧拉图. (2) 每个顶点的度数都是偶数. (3) G是两两无公共边的圈的并.
欧拉图及求欧拉回路的算法
求欧拉回路的算法(Fleury算法,1921年) 算法思想: “过河拆桥,尽量不走独木桥”. 即若已选定迹 Wi v0e1v1e2 eivi , 从 G Wi 中选 取下一条边 ei 1 使得ei 1 与 vi 相关联, 且ei 1 不是 G Wi 的桥, 除非无边可选.
中国邮递员问题
h
5
v1 a
b
c
v2
v3
v4
图1
图2
图1和图2当中哪一个图满足:从图中任何一点出 发,途径每条边,最终还能回到出发点?
试想:一个图应该满足什么条件才能达到上面要
求呢?
h
6
一笔画问题
凡是能一笔画出的图,奇点的个数最多 有两个。始点与终点重合的一笔画问题, 奇点的个数必是0。
求解。
推广的中国邮递员问题: 混合图的中国邮递员问题,有各种限制
的中国邮递员问题,动态网络的中国邮 递员问题。 其他相关问题-旅行售货员(TSP)问题, 灾清巡视路线。
谢谢!
上述两算法都是在连通欧拉图中求欧拉 回路的算法.
h
11
中国邮递员问题
一个邮递员送信,要走完他负责投递的 全部街道,投完后回到邮局,应该怎样 走,使所走的路程最短?
这个问题是我国管梅谷同志1960年首先 求出来的,因此在国际上通称为中国邮 递员问题。在物流活动中,经常会遇到 这样的问题,如:每天在大街小巷行驶 的垃圾车、洒水车、各售货点的送货车 等都需要解决一个行走的最短路程问题。
h
15
求解中国邮递员问题的算法
管梅谷教授首先提出的方法是奇偶点图上作业 法(1962年)
Edmonds,Johnson(1973年)给出有效算法。
复杂度为 O(|V(G)|2|E(G)|)
h
16
求解中国邮递员问题的算法(例)
h
17
求解中国邮递员问题的算法(例)
h
18
解决这样的问题,可以采用奇偶 点图上作业法:如果在配送范围 内,街道中没有奇点,那么他就 可以从配送中心出发,走过每条 街道一次,且仅一次,最后回到 配送中心,这样他所走的路程也
中国邮递员问题
(割边)
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),但由于贪心策略的局限性(可能会出现回头或死胡同),所以得到的解并不一定是最优解。
以上是三种常用的解决中国邮递员问题的方法,具体可以根据实际情况选择合适的算法进行求解。
中国邮递员问题的求解实例
中国邮递员问题的求解实例前面已经讲过,对于欧拉图,可以直接用Fleury算法找出一条欧拉巡回路线;对于半欧拉图,可以先求出奇点u和v之间的最短路径P,令G =G P,贝U G *为欧拉图,然后用Fleury算法来确定一个G *的欧拉巡回,它就是G的最优巡回。
当G有2n个奇点(n>1),可以用Edmonds算法解决,步骤如下:(1) 用Floyd算法求出所有奇点之间的最短路径和距离矩阵。
(2) 用匈牙利法或0-1规划法求出所有奇点之间的最佳配对。
(3) 在原图上添加最佳配对所包含的两两顶点之间的最短路得到欧拉图G *。
⑷用Fleury算法确定一个G *的欧拉巡回,这就是G的最优巡回。
以上步骤的关键是找出2n个奇点的最佳配对,举例如下。
例图3是某区街道示意图,各边的长度数据如下表所示。
现在需要对每条街道找最优巡回,需要先求26个奇点的最佳配对。
先用Floyd算法求出所有42个顶点之间的最短路距离和路径。
程序如下:E=[1 2 10261 4 402........ 注:每一行代表一条边(两个顶点和边长),此处省略59行40 39 198];for i=1:42for j=1:42if j==ia(i,j)=0; elsea(i,j)=inf; end end endfor k=1:62 i=E(k,1);j=E(k,2);a(i,j)=E(k,3);a(j,i)=E(k,3); end[D,R]=floyd(a);图3某区街道示意图然后求26个奇点的最优配对,这可以用Lin go 求解,编写程序如下:MODEL: SETS:4U12°26"30 O3539 40413*27 21 4128* 3338仆2934O114251015• 1724,25201922 23 32313637dot/2,4,5,6,8,9,10,11,12,13,14,15,17,18,19,20,22,24,25,26,28,29,30,36,40,41/;LINKS(dot,dot)| &2 # GT # & 1:C,X;ENDSETSDATA:C=1319 1065 651 650 939 1228 1463 1500 1213 617 895 1590 1709 1377 1033 1112 1652 1761 1853 1418 1832 2124 2151 2479 1687254 668 1173 1462 1751 198 181 402 1140 1418 2113 453 601 945 1635 2175 2284 597 1941 2355 868 1463 1498 2104414 919 1208 1497 1732 435 148 886 1164 1859 679 347 691 1381 1921 2030 823 1687 2101 1094 1689 1724 1850505 794 1083 1318 849 562 472 750 1445 1058 726 382 967 1507 1616 1202 1273 1687 1473 2005 2103 1541289 578 813 1354 1067 471 245 940 1563 1231 887 462 1002 1111 1707 768 1182 1978 2005 2333 1541 289 524 1643 1356 760 534 651 1852 1520 1176 504 828 886 1996 594 1008 2267 2197 2525 1733235 1932 1645 1049 823 362 2141 1809 1465 793 706 597 2285 883 890 2556 2486 2814 20222167 1880 1284 1058 163 2376 2044 1700 1028 507 398 2520 1105 691 2766 2658 2986 2194306 1321 1599 2294 272 505 849 1571 2111 2220 416 1877 2291 687 1282 1317 20081034 1312 2007 531 199 543 1265 1805 1914 675 1571 1985 946 1541 1576 1702360 1411 1203 871 527 577 1117 1226 1347 883 1297 1618 1534 1862 10701101 1563 1231 887 217 757 866 1707 523 937 1978 1894 2222 14302282 1950 1606 884 344 235 2426 942 528 2603 2495 2823 2031332 676 1398 1938 2047 144 1704 2118 415 1010 1045 1824344 1066 1606 1715 476 1372 1786 747 1342 1377 1503722 1262 1371 820 1028 1442 1091 1623 1721 1159540 649 1542 306 720 1813 1729 2057 1265109 2082 598 184 **** **** 2479 16872191 707 293 2368 2260 2588 17961848 2262 271 866 901 1680414 1711 1603 1931 11392075 1967 2295 1503595 630 1409360 832792;ENDDATA图4 26个奇点的最优配对MIN=@SUM(LINKS:C *X);@FOR(LINKS:@BIN(X));@FOR(dot(l):@SUM(LINKS(J,K)| J #EQ# I #OR# K #EQ# I:X(J,K))=1);END运行以上程序,得到最优配对结果为:2与6、4与12、5与13、8与9、10与11、14 与15、17 与25、18 与26、19 与20、22 与28、24 与29、30 与36、40 与41。
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.中国邮递员问题
中国邮递员问题
3, 一般情况下的邮路问题
当 G ( V , E )不是欧拉图也无欧拉 道路,即奇次 顶点数大于 2时,邮路必须重复更多 的边. Edmonds 算法
思想:利用奇次结点之 间的完美匹配来确定重 复边, 使欧拉图具有最优邮路 . 步骤: 1,求出 G 的所有奇次结点之间的 最短路径和距离. 2,以 G 的所有奇次结点为结点 (必为偶数),以他们 之间 最短距离为结点之间边 的权,得到一次完全图 G1 ; 3,将 M 中的匹配边( v i , v j)写成 v i 与 v j 之间最短路径 所经过的边集合 E ij ; 4,令 G = G U { E ij ( v i , v j ) ∈ M }, 则G是欧拉图,找到最优解 .
定理: 连通无向图 G (V , E )是欧拉图 每个顶点 的度数均为偶数.
推论1:连通无向图 G为欧拉图 G的边集可划分 为若干简单回路.
二,中国邮路问题
给定一个连通赋权图 G,要求一条回路经过 每边至少一次,且此回 路的权和最小.
1,最理想的情况 若G是一个连通的欧拉图, 则有欧拉回路.这时 每边只需经过一次,回 路长度(权和)为 L(c ) = ∑ w ij
第五节 中国邮递员问题
一,欧拉回路
在连通图中,经过图中 的每边一次且仅一次的 1, 道路为欧拉道路.经过 图中每边一次且仅一次 的 回路称为欧拉回路.
2, 具有欧拉回路的图称为 欧拉图.(简称 E图)
3, 边不重复的道称为简单 道路; 边不重复的回路称为简 单回路.
4, 区别:简单回路不必经 过图的每条边,欧拉回 路 必须经过图的每条边 .
2,若G只有两个奇次点 v i , v j , 则有从 v i 到v j的欧拉 道路,从 v j回到 v i 则必须重复一些边,使 重复边 的总长度最小,转化为 寻找 i 与v j 之间的最短路径 P ; 2, G = G + P ; 令 3, 为E图,的欧拉回路即为最优邮 路. G G
对“中国邮递员问题”的数理分析
一位邮递员从邮局出发投递邮件,经过他所管辖的每条街道至少一次,然后回到邮局。
请为他选择一条路线,使其所行路程尽可能短。
如何找到这条最短的路线,本文将逐步分析讨论这个问题。
与上述问题类似的是一个哥尼斯堡七桥问题。
在18世纪,东普鲁士有个城市叫哥尼斯堡,普瑞格尔河横贯其境,河中有两个美丽的小岛,全城有七座桥将河的两岸与河中两岛沟通,市民们喜欢四处散步,于是便产生这样的问题:是否可以设计一种方案,使得人们从自己家里出发,经过每座桥恰好一次,最后回到家里。
热衷于这个有趣问题的人们试图解决它,但没有人能给出答案,后来数学家欧拉证明了这样的散步是不可能的。
下面我们把上述七桥问题转化为图论问题:一个连通图G由有限结点与连接这些结点的若干条互不相交的边组成,能否做一条连续的曲线,使得这条曲线走过所有的边恰好一次。
定义经过图G的每条边恰好一次的迹称为图G 的欧拉迹。
图 G 的环游是指经过图 G 每条边至少一次的闭途径,欧拉环游是指经过图 G 每条边恰好一次的环游。
一个图若包含欧拉环游,则这个图称为欧拉图。
定理 1 一个非空连通图是欧拉图当且仅当它没有奇点。
证明必要性:设图 G 是一个欧拉图,C 是图 G 中一个欧拉环游,其起点(也是终点)为 u。
对于 Av∈V(G),v 必在 C 上出现。
因 C 每经过 v 一次,就有两条与 v 关联的边被使用。
因为欧拉环游包含图 G 的每条边,所以对于所有的v≠u,d(v)都是偶数。
类似的,由于 C 开始终止于u,所以d(u)也是偶数。
所以,图 G 没有奇点。
充分性:无妨设ν(G)>1.因 G 连通且无奇点,故δ(G)≥2,因而必含有圈.当ν(G)=2 时,设仅有的两点为 u、v,则 u、v 间必有偶数条边,它们显然构成欧拉回路.假设ν(G)=k 时,结论成立.当ν(G)=k+1 时,任取 v∈V(G).令 S={v 的所有关联边}.记S 中的边为e1、e2、…、em,其中 m=d(v)为偶数.记 G'= G \ v。
数学建模中国邮递员问题求解算法
1. 邮递员问题求解算法
若此连通赋权图是Euler 图,则可用Fleury 算法求Euler 回路,此回路即为所求;对于非Euler 图,1973年,Edmonds 和Johnson 给出下面的解法:
设G 是连通赋权图,则
(i )求)}2(m od 1)(),(|{0=∈=v d G V v v V ;
(ii )对每对顶点0,V v u ∈,求),(v u d (),(v u d 是u 与v 的距离,可用Floyd 算法求得);
(iii )构造完全赋权图||0V K ,以0V 为顶点集,以),(v u d 为边uv 的权; (iv )求||0V K 中权之和最小的完美对集M ;
(v )求M 中边的端点之间的在G 中的最短轨;
(vi )在(v )中求得的每条最短轨上每条边添加一条等权的所谓“倍边”(即共端点共权的边);
(vii )在(vi )中得的图'G 上求Euler 回路即为中国邮递员问题的解。
2. 多邮递员问题求解
邮局有)2(≥k k 位投递员,同时投递信件,全城街道都要投递,完成任务返回邮局,如何分配投递路线,使得完成投递任务的时间最早?我们把这一问题记成kPP 。
KPP 的数学模型如下:
),(E V G 是连通图,)(0G V v ∈,求G 的回路k C C ,,1 ,使得
(i ) )(0i C V v ∈,k i ,,2,1 =,
(ii ) min )(max )(1=∑∈≤≤i C E e k
i e w ,
(iii )
k i i G E C E 1)()(==。
中国邮递员问题——欧拉巡回
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
威廉王迷宫
c
f
b
d e
g
l
i
j
h
k
x
a
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
要求1)的解法2(续)
扫雪车行驶规则: 1. 从起点出发,优先选择未作业过的路段; 2. 到达交差路口时,若身后路面的两个车道都已 铲且前面还有未作业过的路段,或前方路段都 未作业过,则驶入最靠右边的路段继续作业; 否则,身后路面只铲了一个车道,应掉头铲另 一个车道。 3. 行驶到一头不通的道路尽头应掉头,在反向车 道上作业。
求添加的重复边权和近可能小; 2) 在G*中求一条欧拉巡回。
走两条重复边相当于原图的边走两遍。
结论:若连通图G正好有两个奇次顶点u,v,沿u到v 的一条最短路径添加重复边得到欧拉图G*, 则G*的 欧拉巡回便是G的最佳巡回。
求解中国邮递员问题的算法
最小权对集法(Edmonds) 设G是连通加权图。 1) 求G的所有奇次顶点之间的最短路径及其
迷宫任务:从迷宫入口处出发,每个走廊都要搜索,最后 再从入口出来.
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
要求1)的解法2(续)
迷宫法则: 1)沿着未走过的通道尽可能远地走下去,走到死胡 同或那里已无末走过的走廊可选时,沿原路返回; 2)到达路口,若有未走过的走廊时,沿这一走廊尽 可能远地走下去,…,最后即可按索退全部走廊 和厅室,再由入口处出迷宫.
法在有向图上求出有向欧拉巡回。
v1
10
v2
6
v3
6
8
v4 5
3 v5
v6
v7
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V2
V5 V2
现V在5 ,我们是
不是已经解决
V3
V4
(a)
V3
了V哥桥4 尼问斯题V2 堡?七
V3
(b)
(c)
由定理13-1.1及推论13-1.1.1容易看出:
a) 是欧拉图; b) 不是欧拉图,但存在欧拉道路; c) 既不是欧拉图,也不存在欧拉道路。
2020/3/1
计算机学院
10
有向图的欧拉道路、欧拉图
Gk=G-{e1,e2,…,ei}中的桥;
3. 当Gk为零图时,算法结束;否则,返回2。
2020/3/1
计算机学院
14
例13-1.5
在右图所示的欧拉图中,某 人用算法求G中的欧拉回路时,
v1
走了简单的回路:
e8
v2e2v3e3v4e14v9e10v2e1v1e8v8e9v2
设G=<V,E>是一个欧拉图 即如果ei+1是割
1. 任取v0∈V,令P0=v0;
边,同时还有其 它边与vi相关联,
2. 设P0=v0e1v1e2…eivi,按下则面不的能方选法ei+从1
GK=E-{e1,e2,…,ei}中选取ei+1:
1) ei+1与vi相关联;
2) 除非无别的边可选取,否则ei+1不应该为
证明: “”
由于在回路C 中边不可能重
设G是Euler图,则G必然存复在出一现条包含所有边
(也包含所有结点)的回路C,对uV,u必然在
C中出现一次(可出现多次),每出现u一次,都
关联着G中的两条边,而当u又重复出现时,它又
关联着G中的另外的两条边,(为什么?)
因而u每出现一次,都将使得结点u的度数增
b(乙)
a(甲) c
解
,仅有两个度数为奇数的结点b,c,因而存
在从b到c的欧拉通路,蚂蚁乙走到c只要走一条欧拉通路,
边数为9条。而蚂蚁甲要想走完所有的边到达c,至少要
先走一条边到达b,再走一条欧拉通路,因而它至少要走
10条边才能到达c,所以乙必胜。
2020/3/1
计算机学院
13
Fleury算法(构造Euler回路)
D
b3
b4 b7
2020/3/1
B
计算机学院
3
Euler图
定义13-1.1 设G是一个无孤立结点的图,包含
G的每条边的简单道路(回路)称为该图的一条
欧拉道路(回路)。具有欧拉回路的图称为欧
拉图。 规定平凡图为欧拉图。
为什么?
显然,每个欧拉图必然是连通图。
因此,一条欧拉道路(回路)是经过图中每 边一次且仅一次的道路(回路)。
冯伟森
Email:fws365@ 2020年3月1日星期日
主要内容
Euler图及其应用
① 欧拉道路(回路)的定义 ② 如何判别欧拉图 ③ 一个图含有欧拉道路的条件 ④ 连通有向图G中含有有向欧拉道路和回路的充
要条件 ⑤ Fleury算法 ⑥ Euler图的应用(中国邮递员问题算法)
G-E(C)仍然无奇数度结点。
?
由于G是连通的,C中应至少存在一点v,使G-
E(C)中有一条包含v的回路C′。(见示意图)
2020/3/1
计算机学院
7
C
v
C'
这样,就可以构造出一条由C和C′组成的 G的回路,其包含的边数比C多,与假设矛盾。 因此,C必是Euler回路,结论成立。
2020/3/1
计算机学院
8
推论13-1.1.1非平凡连通图G=<V,E>含有欧拉道 路当且仅当G仅有零个或者两个奇数度结点。
证明:“” 设G具有一注意条:Eu若le有r道两路个L奇,则在L中除起 点和终点外,其余每个度结数点结都点与,偶则数它条们边相关联,所
以,G中仅有零个(Eule是r回G路中)每或条者欧两拉个通奇数度结点。
▪ 图 (c) 中 有 欧 拉 回 路 v1v2v3v4v5v6v7v8v2v4v6v8v1 因而(c)是欧拉图。
2020/3/1
计算机学院
12
例13-1.4
甲、乙两只蚂蚁分别位于右图 中的结点a,b处,并设图中的边长 度是相等的。甲、乙进行比赛:从 它们所在的结点出发,走过图中的 所有边最后到达结点c处。如果它们 的速度相同,问谁先到达目的地?
类似于无向图的讨论,对有向图我们有以下 结论: 定理13-1.2 ⅰ)有向连通图G含有有向欧拉道路,当且仅当
除了两个结点以外,其余结点的入度等于出度, 而这两个例外的结点中,一个结点的入度比出 度大1,另一个结点的出度比入度大1。 ⅱ)有向连通图G含有有向欧拉回路,当且仅当G 中的所有结点的入度等于出度。
“”
路的端点。
⑴若 G没有奇度数结点,则结论显然成立;
⑵若G有两个奇度数结点u和v,则G+uv是Euler图,从而
存在Euler回路C。从C中去掉边uv,则得到一条简单
道路L(起点u和终点v),且包含了G的全部边,即L是
一条Euler道路。
2020/3/1
计算机学院
9
例13-1.2
V1
V1
V1
V4
加2度,若u在通路中重复出现j次,则deg(u)=2j。
即u的度数必为偶数。
2020/3/1
计算机学院
6
“”
设连通图G的结点的度数都是偶数,则G必
含有简单回路(可对结点个数进行归纳证明) 。
设C是一条包含G中边最多的简单回路:
⑴ 若C已经包含G中所有的边,则C就是Euler回
路,结论成立。
⑵ 若C不能包含G中所有的边,则删边子图 Why
2020/3/1
计算机学院
4
例13-1.1
v1
v2
v5
v3 v4 a)
v1
v1
v2
v5
v4
v3 v4 b)
v2 c) v3
图a是欧拉图;图b不是欧拉图,但存在欧拉道 路;图c不存在欧拉道路。
2020/3/1
计算机学院
5
定理13-1.1 无向连通图G=<V,E>是欧拉图当
且仅当G的所有结点的度数都为偶数。
2020/3/1
计算机学院
2
哥尼斯堡七桥问题
哥尼斯堡城市有一条横贯全城的普雷格尔(Pregel) 河,城的各部分用七座桥联接,每逢假日,城中居民进 行环城逛游,这样就产生了一个问题:能不能设计一次 “遍游”,使得从某地出发对每座跨河桥只走一次,而 在遍历了七桥之后却又能回到原地?
A
b1
b2
b5
C
b6
同样,有向Euler图的结点度数都为偶数;含有有 向Euler道路的图仅有零个或者两个奇度数结点。
2020/3/1
计算机学院
11
例13-1.3
V2
V2
V1
V2
V3
V1
V3 V1
V3
V8V4ຫໍສະໝຸດ V4V4V7
V6
V5
(a)
(b)
(c)
▪ 图a)存在一条的欧拉道路:v3v1v2v3v4v1;
▪ 图(b)中存在欧拉回路v1v2v3v4v1v3v1,因而(b) 是欧拉图;