中国邮递员问题——欧拉巡回分解共24页文档

合集下载

CH6-10 中国邮递员问题

CH6-10 中国邮递员问题

☐图的存储表示;☐顶点的度数;☐图的连通性;☐顶点间的最短路径;☐欧拉图的判断,欧拉回路输出;问题描述:一个邮递员从邮局出发走遍每条街道,最后返回邮局,找到一条最短的行走线路?最短欧拉回路!问题提出:我国数学家管梅谷先生在20世纪60年代提出一笔画游戏✈✈满足“一笔画”:☐凡是由偶点组成的连通图,一定可以一笔画成.画时可以把任一偶点为起点,最后一定能以这个点为终点画完此图☐凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成.画时必须把一个奇点为起点,另一个奇点终点☐其他情况的图都不能一笔画出实例:一个邮递员投递信件要走的街道如图所示,图中的数字表示各条街道的千米数,他从邮局出发,要走遍各街道,最后回到邮局。

怎样走才能使所走的行程最短?全程多少千米? 2 1 2111怎么样使非欧拉图变为欧拉图?除去奇点!添加边或删除边。

怎么样除去奇点?这里应该采用的办法?重复某些边(添加边)2 1 23分析:图中共有8个奇点,不可能不重复地走遍所有的路。

必须在8个奇点间添加4条线,才能消除所有奇点,从而成为能从邮局出发最后返回邮局的一笔画。

当然要在距离最近的两个奇点间添加一条连线,图中虚线所示,共添加4条连线,这4条连线表示要重复走的路,显然,这样重复走的路程最短,全程34千米。

走法不唯一邮局2 1 2111 2 1 23☐建立街区无向网的邻接矩阵;☐求各顶点的度数;☐求出所有奇度点;☐图的连通性判断;☐求出每一个奇度点到其它奇度结点的最短路径;☐根据最佳方案添加边,对图进行修改,使之满足一笔画;☐对图进行一笔画,并输出;其一:“添加”哪些边?☐“添加”的边所依附的顶点必须均是奇度顶点☐“添加”的边必须是已有的边,也就是有的边不止走一次其二:如何选择代价最小的边?☐奇数顶点之间的最短路径☐Dijstra算法☐Floyd算法其三:输出一笔画?☐FE算法(F leury E uler)V4U1U6V3U5U2V1U4V2U31111111222222533V4V3V1V241.求奇度点的最短路径2.构造奇度点间的完全加权图3.求图的最佳(总权最小)完备匹配M={1,4;2,3}4.求1和4之间的最短轨V1 U1 V4;2和3之间的最短轨V2 U4 V3;5. 加同权边即可一个实例如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配给定一个图G ,M 为G 边集的一个子集,如果M 满足当中的任意两条边都不依附于同一个顶点,则称M 是一个匹配1.求奇度点的最短路径2.构造奇度点间的完全加权图3.求图的最佳(总权最小)完备匹配M={1,4;2,3}4.求1和4之间的最短轨V1 U1 V4;2和3之间的最短轨V2 U4 V3;5. 加同权边即可给定一个图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配1.取G 中的起始顶点V 0,令P 0=V 02.假设沿着P i = v 0e 1v 1e 2v 2…e i v i 走到顶点vi ,按下面方法从E(G)-{e 1,e 2,…,e i }中选e i+1①e i+1与v i 相关联;②除非没有别的边可供选择,否则e i+1不应该是G i =G-{e 1,e 2,…,e i }中的桥3.当2不能再进行时算法停止V4V1V2V5V6V7V8V3V4V1V2V5V6V7V8V3总结步骤1.求图G中奇度结点集合V0={v};2.对V0中的每个顶点对u,v,用Dijkstra算法求距离d(u,v);3.构造加权完全图;4.求加权图的总权最小的完备匹配M;5.在G中求M中同一边的结点间的最短轨;6.把G中在上一步求得的每条最短轨之边变成同权倍边,得到欧拉图G1;7.用FE算法求G1的一条欧拉回路W,W即为解;举例:邮递员要从邮局出发,走遍左下图(单位:千米)中所有街道,最后回到邮局,怎样走路程最短?全程多少千米?其二:如何选择代价最小的边?☐奇数顶点之间的最短路径☐Dijstra算法☐Floyd算法☐最小生成树的方法☐Prim算法☐Kruskal算法奇度结点间最短路径计算➢如果只有两个奇度结点,那么最短路径就是原来每条街道代价加上两个奇度顶点之间的最短代价之和;➢如果有多个奇度结点,要进行不同的组合。

运筹学课件4.8 中国邮递员问题

运筹学课件4.8 中国邮递员问题
(重复走),使其变为偶数而成欧拉图。 中国邮递员问题是要求所加边的权之和最小。
三、求解中国邮递员问题的奇偶点图作业法
在奇点间加边,构造初始可行方案。 寻找改进可行方案:在两奇点间检查所有链,若
某链的长度小于已加重复边的长度,则在该链的 每边加上重复边,去掉原重复边。 重复以上步骤,直到任意两奇点间加重复边的链 是最短的为止。
从中选出总路长最小的组合方案。 也可以由奇点构成偶图,求最小匹配得到
最优解。
一个四奇点的例子
v2
3 v3 2
4
4
v1
3 2 23
v6
4
v4 5
v5
习题
P.267,习题9 P.268,习题10:图9-10(A)、(B)
求解中国邮递员问题:例子
v2
1 2
v3 4
5 1
v1
3 22v6Βιβλιοθήκη 6 v4 3 2v5
例子的初始可行解
v2
5
1 2
v3 4
5 1
v1
3 22
v6
6 v4 3 2
2
v5
例子的修正解
v2
1
1 2
v3 4
5 1
v1
3 22
v6
6 v4 3 2
2
v5
四、奇偶点作业法的改进方法
奇偶点作业法的瓶颈是需检查太多的链 可以首先求出任意一对奇点之间的最短路,
第六节 中国邮递员问题
哥尼斯堡七桥问题与欧拉图 中国邮递员问题 求解中国邮递员问题的奇偶点图作业法 奇偶点图作业法的改进方法
一、哥尼斯堡七桥问题与欧拉图
哥尼斯堡七桥问题
欧拉图与一笔画问题
A
A
C

关于中国邮递员问题和欧拉图应用

关于中国邮递员问题和欧拉图应用
完整的算法流程如下:
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) |) 注意到上述两算法都是在连通欧拉图中 求欧拉回路的算法. 求欧拉回路的算法.

中国邮递员问题

中国邮递员问题

管梅谷
管梅谷教授。 上海市人。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
解决这样的问题,可以采用奇偶 点图上作业法:如果在配送范围 内,街道中没有奇点,那么他就 可以从配送中心出发,走过每条 街道一次,且仅一次,最后回到 配送中心,这样他所走的路程也

中国邮递员问题

中国邮递员问题

6
5
3 4
v5 4
v9
3 v8 4
v1
9
v4
4
v7
v3 5 v2 5
v1
2
v6 4
3
6
4
v5
4
v9
3 v8
4
9
v4
4
v7
运筹学
判定标准1: 在最优邮递路线上,图中的每一条 边至多有一条重复边。
判定标准2 : 在最优邮递路线上,图中每一个 圈的重复边总权小于或等于该圈总权的一半。
例8.12 求解下图所示网络的中国邮路问题,图中数 字为该边的长。
v3 2 v6 4 v9
5
3
v2
6 v5
5
4
3
4
v8
4
v1
9
v4
4
v7
v3 2 v6 4 v9
A
C
D
B
二、 奇偶点图上作业法 (1)找出图G中的所有的奇顶点,把它们两两配 成对,而每对奇点之间必有一条通路,把这条通路 上的所有边作为重复边追加到图中去,这样得到的 新连通图必无奇点。 (2)如果边e=(u,v)上的重复边多于一条,则 可从重复边中去掉偶数条,使得其重复边至多为一 条,图中的顶点仍全部都是偶顶点。 (3)检查图中的每一个圈,如果每一个圈的重 复边的总长不大于该圈总长的一半,则已经求得最 优方案。如果存在一个圈,重复边的总长大于该圈 总长的一半时,则将这个圈中的重复边去掉,再将 该圈中原来没有重复边的各边加上重复边,其它各 圈的边不变,返回步骤(2)。
运筹学
中国邮递员问题
一、 欧拉回路与道路 定义8.18 连通图G中,若存在一条道路,经过每 边一次且仅一次,则称这条路为欧拉道路。若存 在一条回路,经过每边一次且仅一次,则称这条 回路为欧拉回路。 具有欧拉回路的图称为欧拉图。 定理8.7 一个多重连通图G是欧拉图的充分必要 条件是G中无奇点。 推论 一个多重连通图G有欧拉道路的充分必要 条件是G有且仅有两个奇点。

欧拉回路与中国邮递员问题

欧拉回路与中国邮递员问题

欧拉回路与中国邮递员问题一、欧拉回路所谓欧拉回路与哥尼斯堡7桥问题相联系的.在哥尼斯堡7桥问题中,欧拉证明了不存在这样的回路,使它经过图中每条边且只经过一次又回到起始点.与此相反,设G (V ,E )为一个图,若存在一条回路,使它经过图中每条边且只经过一次又回到起始点,就称这种回路为欧拉回路,并称图G 为欧拉图.在一个图中,连接一个节点的边数称为该节点的度数.对欧拉图,我们有下列结果:定理1 对连通图G (V ,E ),下列条件是相互等价的:(1)G 是一个欧拉图;(2)G 的每一个节点的度数都是偶数;(3)G 的边集合E 可以分解为若干个回路的并.证明 :()()12⇒ 已知G 为欧拉图,则必存在一个欧拉回路.回路中的节点都是偶度数. ()()23⇒ 设G 中每一个节点的度数均为偶数.若能找到一个回路C 1使G=C 1,则结论成立.否则,令G 1=G\C 1,由C 1上每个节点的度数均为偶数,则G 1中的每个节点的度数亦均为偶数.于是在G 1必存在另一个回路C 2.令G 2=G 1\C 2,···.由于G 为有限图,上述过程经过有限步,最后必得一个回路C r 使 G r =G r-1\C r 上各节点的度数均为零,即C r =G r-1.这样就得到G的一个分解 G C C C r =⋅⋅⋅12 .()()31⇒ 设G C C C r =⋅⋅⋅12 ,其中i C (I=1,2,…,r )均为回路.由于G 为连通图,对任意回路i C ,必存在另一个回路j C 与之相连,即i C 与j C 存在共同的节点.现在我们从图G 的任意节点出发,沿着所在的回路走,每走到一个共同的节点处,就转向另一个回路,···,这样一直走下去就可走遍G 的每条边且只走过一次,最后回到原出发节点,即G 为一个欧拉图.利用定理1去判断一个连通图是否为欧拉图比较容易,但要找出欧拉回路,当连通图比较复杂时就不太容易了.下面介绍一种求欧拉回路的算法.二、弗罗莱算法算法步骤如下:(1)任取起始点v v R 00,;→(2)设路)},({,),,({),,({1211201r r i i r i i i v v e v v e v v e R -⋅⋅⋅=已选出,则从E\},,,{21r e e e ⋅⋅⋅中选出边1+r e ,使1+r e 与r i v 相连,除非没有其它选择,G e r r \{}+1仍应为连通的.(3)重复步骤(2),直至不能进行下去为止.定理2 连通的有向图存在欧拉回路的充分必要条件是对任意节点,进入该节点边数(进数)与离开该点的边数(出数)相等下面给出此算法的matlab程序:function myeuler%求出一个图的欧拉回路n=input('输入起点')result=[n];a=load('D:\data.txt');%边权矩阵while length(result)~=length(find(a>0&a<99999999))n=result(length(result));temp=a(n,:);p=find(temp>0&a<99999999);if length(p)==0sprintf('不是euler图')breakendresult=[result,p(1)];a(n,p(1))=0;endresult三、中国邮递员问题一名邮递员带着要分发的邮件从邮局出发,经过要分发的每个街道,送完邮件后又返回邮局.如果他必须至少一次走过他管辖范围内的每一条街道,如何选择投递路线,使邮递员走尽可能少的路程.这个问题是由我国数学家管梅谷先生(山东师范大学数学系教授)在1962年首次提出的,因此在国际上称之为中国邮递员问题.用图论的述语,在一个连通的赋权图G(V,E)中,要寻找一条回路,使该回路包含G中的每条边至少一次,且该回路的权数和最小.也就是说要从包含G的每条边的回路中找一条权数和最小的回路.如果G是欧拉图,则很容易由弗罗莱算法求出一个欧拉回路,但是若G不是欧拉图,即存在奇度数的节点,则中国由递员问题的解决要困难得多.本节的主要目标是给出在有奇度数节点的连通图中寻找最小权数的回路的方法.首先注意到,若图G有奇数度节点,则G的奇数度节点必是偶数个(握手定理).把奇数度节点分为若干对,每对节点之间在G中有相应的最短路,将这些最短路画在一起构成一个附加的边子集E .令G/ =G+E/,即把附加边子集E/叠加在原图G上形成一个多重图G/,这时G/中连接两个节点之间的边不止一条.显然G/是一个欧拉图,因而可以求出G/的欧拉回路.该欧拉回路不仅通过原图G中每条边,同时还通过E/中的每条边,且均仅一次.邮递员问题的难点在于当G的奇数度节点较多时,可能有很多种配对方法,应怎样选择配对,能使相应的附加边子集E/的权数ω(E/ )为最小?为此有下列定理.定理3 设G(V,E)为一个连通的赋权图,则使附加边子集E/的权数ω(E/)为最小的充分必要条件是G+E/中任意边至多重复一次,且G+E/中的任意回路中重复边的权数之和不大于该回路总权数的一半.程序实现步骤如下:(1)求出奇数度的点和它们之间任意两点之间的最短距离Matlab程序:function [s,S]=mypostmana=load(‘D:\data.txt’);%也可以直接给出%为了方便我假设我将边权矩阵保存在D盘中%具体情况可以相应修改b=sparse(a);%构造稀疏矩阵Dist=graphallshortestpaths(b);%求出途中任意两点的最短距离s=[];%奇数度的点for k=1:size(a,1)p1=find(a(k,:)>0&a(k,:)<99999);p2=find(a(:,k)>0&a(:,k)<99999);%找出每一个点的出度和入度if mod(p1+p2,2)==1s=[s,k];endendS=Dist(s,s);(2)求出奇数点两两组合权和最小的组合因为使用lingo求解此问题相对简单,因此使用此软件求解Lingo参变量约束条件如下:Lingo程序如下:model:sets:!这里假设有6个奇数度的点;!具体问题作出相应调整即可;city/1..5/;citys(city,city):x,w;endsetsdata:w=@ole('D:\data.xls',w);!将边权矩阵保存在以上地址;enddatamin=@sum(citys:w*x);@for(citys:@bin(x));@for(city(i):x(i,i)=0;);@for(citys(i,j):x(i,j)=x(j,i););@for(city(i):@sum(city(j):x(i,j))=1;@sum(city(j):x(j,i))=1;);(3)利用弗洛来算法求解欧拉回路Matlab程序:function mypostman1x=load('D:\data1.txt');%由lingo软件得到[s,S]=mypostman;a=load('D:\data.txt');%边权矩阵[m,n]=find(x==1);for k=length(s)a(s(m(k)),s(n(k)))=S(m(k),n(k));path=graphshortpath(s(m(k)),s(n(k)),sparse(a))endn=input('输入起点')result=[n];while length(result)~=length(find(a>0&a<99999999))n=result(length(result));temp=a(n,:);p=find(temp>0&a<99999999);if length(p)==0sprintf('不是euler图')breakendresult=[result,p(1)];a(n,p(1))=0;endresult。

中国邮递员问题

中国邮递员问题

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)的解法1 由于是双车道,因此可将每条边看成来回两条 异向弧,此时,图是有向欧拉图,可用hierholzer算 法在有向图上求出有向欧拉巡回。 10 v2 6 v3 v1 6 v6 5 v12 8 v4 5 7 v7 4 3 3 v5 4 9 6 5 v9 1 v10 2 v15
2 v8 3
v11 1 1 v13 v14
基本概念与基本结论
无向图的情形
设G=(V,E)是连通无向图。 G=(V,E)是连通无向图 是连通无向图。 1)巡回:经过G的每边至少一次的封闭路线。 巡回:经过G的每边至少一次的封闭路线。 2)欧拉巡回:经过G的每边正好一次的巡回。 欧拉巡回:经过G的每边正好一次的巡回。 3)欧拉图:存在欧拉巡回的图。 欧拉图:存在欧拉巡回的图。 4)欧拉道路:经过G的每边正好一次的道路。 欧拉道路:经过G的每边正好一次的道路。 5)最佳巡回:加权连通图的边权总和最小的巡回。 最佳巡回:加权连通图的边权总和最小的巡回。
求欧拉图欧拉巡回的算法
Fleury算法 Fleury算法 是欧拉图。 设G是欧拉图。 V(G) = {v0,v1,…,vn} , E(G) = {e1,e2,…,em} 1) 任选顶点为v0 ,置途径W= v0 。 任选顶点为v 置途径W= 2) 设途径W= v0 e1v1… ei vi已经选定,则按下述条件 设途径W= 已经选定, 中选取e 从E - {e1,e2,…, ei}中选取ei+1。 相关联。 (a) ei+1与vi相关联。 除非没有别的选择,否则一定要使e (b) 除非没有别的选择,否则一定要使ei+1不是 G - {e1,e2,…, ei}的割边。 的割边。 3 ) 当第2步不能执行时,算法停止。 当第2步不能执行时,算法停止。 停止后, 即是所求欧拉回路。 停止后,W 即是所求欧拉回路。

中国邮递员问题——欧拉巡回

中国邮递员问题——欧拉巡回

案例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

行遍性问题

行遍性问题

定义 在加权图G=(V,E)中, (1)权最小的哈密尔顿圈称为最佳 圈. 最佳H圈 最佳 (2)经过每个顶点至少一次的权最小的闭通路称为最 最 佳推销员回路. 佳推销员回路 一般说来,最佳哈密尔顿圈不一定是最佳推销员回 路,同样最佳推销员回路也不一定是最佳哈密尔顿圈.
H回路,长22
最佳推销员回路,长4
算法步骤: 算法步骤:
(1)用 Floyd 算法求出的所有奇次顶点之间的最短路径和距离.
(2)以 G 的所有奇次顶点为顶点集(个数为偶数) ,作一完备图, 边上的权为两端点在原图 G 中的最短距离, 将此完备加权图记为 G1.
(3)用Edmonds算法求出G1的最小权理想匹配 最小权理想匹配M,得到奇次顶点的 最小权理想匹配 最佳配对.
返回
(二)推销员问题
流动推销员需要访问某地区的所有城镇,最后回到出 发点.问如何安排旅行路线使总行程最小.这就是推销 推销 员问题. 员问题 若用顶点表示城镇,边表示连接两城镇的路,边上的 权表示距离(或时间、费用),于是推销员问题就成为 在加权图中寻找一条经过每个顶点至少一次的最短闭通 路问题.
返回
二、推 销 员 问 题 (一)哈密尔顿图
定义 设G=(V,E)是连通无向图 1 2 3 经过G的每个顶点正好一次的路径,称为G的一条哈密尔顿路径 哈密尔顿路径. 哈密尔顿路径 经过G的每个顶点正好一次的圈,称为G的哈密尔顿圈 哈密尔顿圈或H圈. 哈密尔顿圈 含H圈的图称为哈密尔顿图 哈密尔顿图或H图. 哈密尔顿图 图
用 Floyd 算法求出ቤተ መጻሕፍቲ ባይዱ们之间的最短路径和距离:
2.以 v4、v7、v8、v9 为顶点,它们之间的距离为边权构造完备图 G1.
3.求出 G1 的最小权完美匹配 M={(v4,,v7),(v8,v9)}

中国邮递员问题——欧拉巡回共24页文档

中国邮递员问题——欧拉巡回共24页文档

6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
1、不要轻言放弃,否则对不起自己。
2、要冒一次险!整个生命就是一场冒险。走得最远的人,常是未能从岸边走远。-戴尔.卡耐基。
梦 境
3、人生就像一杯没有加糖的咖啡,喝起来是苦涩的,回味起来却有 久久不会退去的余香。
中国邮递员问题——欧拉巡回 4、守业的最好办法就是不断的发展。 5、当爱不能完美,我宁愿选择无悔,不管来生多么美丽,我不愿失 去今生对你的记忆,我不求天长地久的美景,我只要生生世世的轮 回里有你。
Thank you

中国邮递员问题欧拉巡回共25页文档

中国邮递员问题欧拉巡回共25页文档

60、人民的幸福是至高无个的法。— —西塞 罗
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根
中国递员问题欧拉巡回
56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
中国邮递员问题——欧拉巡回分解
41、俯仰终宇宙,不乐复何如。 42、夏日杯劝孤影。 45、盛年不重来,一日难再晨。及时 当勉励 ,岁月 不待人 。
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
相关文档
最新文档