中国邮递员问题算法

合集下载

数学建模中国邮递员问题求解算法

数学建模中国邮递员问题求解算法

邮递员问题求解算法
若此连通赋权图是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

归纳中国邮递员问题.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 的边重复一次。

第六节 中国邮递员问题

第六节 中国邮递员问题
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
(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)等。

邮递员问题在实际中有很多应用,比如快递员的路线规划、物流配送等。

解决这个问题可以提高物流效率,减少成本。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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) 是欧拉图;
相关文档
最新文档