中国邮递员问题欧拉巡回
中国邮路问题及解决方案
中国邮路问题及解决方案中国邮递员问题一个邮递员送信,要走完他负责投递的全部街道(所有街道都是双向通行的且每条街道可以经过不止一次),完成任务后回到邮局,应按怎样的路线走,他所走的路程才会最短呢?解决方案1、图论建模由于街道是双向通行的,我们可以把它看成是赋权无向连通图,将路口模型为点,街道模型为边,街道的长度就是每条边的权值,问题转化为在图中求一条回路,使得回路的总权值最小。
1.1最理想的情况若图中有欧拉回路,因为欧拉回路通过所有的边,因此任何一个欧拉回路即为此问题的解。
1.2若G只有两个奇点Vi,Vj则有从Vi到Vj的欧拉迹,从Vj回到Vi则必须重复一些边,使重复边的总长度最小,转化为求从Vi到Vj的最短路径。
算法:1)找出奇点Vi,Vj之间的最短路径P;2)令G’ = G + P;3)G’为欧拉图,G’的欧拉回路即为最优邮路。
1.3一般情况,奇点数大于2的时,邮路必须重复更多的边。
Edmonds算法(匈牙利算法)思想:步骤:1)求出G所有奇点之间的最短路径和距离;2)以G的所有奇点为结点(必为偶数),以他们之间的最短距离为节点之间边的权值,得到一个完全图G1;3)将M中的匹配边(Vi,Vj)写成Vi与Vj之间的最短路径经过的所有边集合Eij;4)令G’ = G U { Eij | (Vi,Vj)属于M},则G’是欧拉图,求出最优邮路。
2、具体模块实现2.1最短路径用 Dijkstra算法计算Dijkstra算法是一种最短路径算法,用于计算一个节点到其它所有节点的最短路径。
2.1.1算法思想:按路径长度递增次序产生最短路径算法:把V分成两组:1)S:已求出最短路径的顶点的集合2)V-S=T:尚未确定最短路径的顶点集合将T中顶点按最短路径递增的次序加入到S中,保证:1)从源点V0到S中各顶点的最短路径长度都不大于从V0到T中任何顶点的最短路径长度2)每个顶点对应一个距离值S中顶点:从V0到此顶点的最短路径长度T中顶点:从V0到此顶点的只包括S中顶点作中间顶点的最短路径长度2.1.2求最短路径步骤1)初始时令 S={V0},T={ 其余顶点},T中顶点对应的距离值若存在<V0,Vi>,d(V0,Vi)为<V0,Vi>弧上的权值;若不存在<V0,Vi>,d(V0,Vi)为∝2)从T中选取一个其距离值为最小的顶点W且不在S中,加入S3)对S中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值缩短,则修改此距离值;重复上述步骤2、3,直到S中包含所有顶点,即W=Vi为止2.2图的连通性测试检测用户输入的图是否是连通图,不是的话没办法求解,提醒用户重新输入。
行遍性问题
先将奇次顶点配对,要求最佳配对,即点对之间距 离总和最小.再沿点对之间的最短路径添加重复边 得欧拉图G*,G*的欧拉巡回便是原图的最佳巡回.
算法步骤:
1、用Floyd算法求出的所有奇次顶点之间的最短路径 和距离.
2、以G的所有奇次顶点为顶点集(个数为偶数), 作一完备图,边上的权为两端点在原图G中的最 短距离,将此完备加权图记为G1.
定义: 设图G =(V,E),ME,若M的边互不相邻, 则称M是G 的一个匹配.
若顶点v与M的一条边关联,则称v是M—饱和的 设M是G的一个匹配,若G的每个顶点都是M—饱 和的,则称M是G的理想匹配.
割边的定义:
设G连通,eE(G),若从G中删除边e后,图G-{e} 不连通,则称边e为图G的割边.
欧拉图
定义1: 设G=(V,E)是连通无向图
1、经过G的每边至少一次的闭通路称为巡回. 2、经过G的每边正好一次的巡回称为欧拉巡回(圈). 3、存在欧拉巡回的图称为欧拉图. 4、经过G的每边正好一次的道路称为欧拉道路.
v1
e1
v2
e4
e5 e2
v4
e3
v3
欧拉道路:v1e1v2e2v3e5v1e4v4e3v3 巡回:v1e1v2e2v3e5v1e4v4e3v3e5v1
v1
e1
v2
割边 v5
e4
e5 e2
v4
e3
e6 v3
e7
e8
v7 e9
v6
G的边e是割边的充要条件是e不含在G的圈中.
中国邮递员问题-算法
1、G是欧拉图 此时G的任何一个欧拉巡回便是最佳巡回.问 题归结为在欧拉图中确定一个欧拉巡回.
环游与欧拉环游
(一)图的概念
几个基本概念:
图:由若干个不同的点与连接其中某些顶点的边所组成的图 形,称为图 图有二要素:“点”和“边”: “点”表示对象,“边”反映对象之间的关 G(V , E ) 系。
5
(一)图的概念
进一步的概念:
6
(一)图的概念
环游与欧拉环游:
7
(二)欧拉环游及弗莱里算法
七桥问题:
流经哥尼斯堡的普雷格河的河湾有两个小岛,七座桥连接 了两岸和小岛(如图1),当地流传一个游戏:要求在一次散 步中恰好通过每座桥一次。
但是要注意,一个图存在欧拉环游,如果方法不对, 仍然可能找不到具体的欧拉环游。
10
(二)欧拉环游及弗莱里算法
弗莱里算法:
11
(二)欧拉环游及弗莱里算法
弗莱里算法求欧拉环游的实例:
以A为起点
A(~)B
A(~)BA
A(~)BAC
… A(~)BACD A(~)BACDE A(~)BACDEC A(~)BACDECBE(~)DA
数学建模理论与实践
—— 基于图论的数学建模
1
基于图论的数学建模
一、欧拉环游问题与中国邮递员问题 二、最小生成树模型
三、最短路模型
2
一、欧拉环游问题与中国邮递员问题
(一)图的概念 (二)欧拉环游及弗莱里算法
(三)中国邮递员问题
3
(一)图的概念
问题的提出: 现实生活中,我们经常碰到一些现象,如:在一 群人中有些人互相认识,有些人互相不认识。又如: 某航空公司在100个城市之间建立若干航线,某些 城市间有直达航班,而另一些城市间没有直达航班 等等。以上现象都有共同内容:一是有研究的“对 象”,如人,城市等;二是这些对象之间存在着某 种关系:如互相认识,有直达航班等。为了表示这 些对象以及对象之间的关系,我们将“点”代表 “对象”,“边”表示“对象之间的关系”,引出 了“图”这个概念。
关于中国邮递员问题和欧拉图应用
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;
第三章 行遍性问题
(3)用Edmonds算法求出最小权理想匹配M, 得到奇次顶点的最佳配对. (4)在G中沿配对顶点之间的最短路径添加重 复边得欧拉图G*; (5)用Fleury算法求出G*的欧拉环游,这即为 G的最优环游. 注:奇偶点图上作业法: (1)把G中次数为奇数的顶点两两配对.任选G 中连接每对顶点的一条道路,路上的边都添加 重复边,从而得到G的赋权欧拉母图G*; (2)如果G*中关于G的某一条边添加上的重复 边不只一条,则成对地删除重复边,直至最多有 一条重复边为止;
v1 51 v5 51 36 35 13 v4 2
v4
2
v1 35 v3
51
21
v6 v3 21 v2 70 v5 13 v6 70
v2
注:1.可以给出旅行推销员问题的解的下界的 一个估计式.任选加权完全图Kp的一个顶点v,用 克拉斯科(Kruskal)算法求出Kp-v的最优树T.设 C是最优的(即权最小的)H圈,显然C-v也是Kp-v 的一个支撑树(一个连通图G的一个连通无圈生 成子图),因此:w(T)≤w(C-v) 设边a和边b是Kp中与v关联的各条边之中权 最小和权次小的两条边,显然有: w(T)+w(a)+w(b)≤w(C) 上式给出w(C)的下界的一个估计式. 2.关于最小生成树的求法.
二边逐次修正法: (1)任取初始H圈:C0=v1v2…vi…vj…vnv1 (2)对所有的i,j, 1<i+1<j<n,若: w(vi,vj)+w(vi+1,vj+1) <w(vi,vi+1)+w(vj,vj+1) 则在C0中删去边(vi,vi+1)和(vj,vj+1),而加入 边(vi,vj)和(vi+1,vj+1),形成;1vj+1…vnv1 (3)对C重复步骤(2),直到条件不满足为止,最 后得到的C即为所求.
中国邮递员问题——欧拉巡回
案例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) |) 注意到上述两算法都是在连通欧拉图中 求欧拉回路的算法. 求欧拉回路的算法.
中国邮递员问题的求解实例
中国邮递员问题的求解实例前面已经讲过,对于欧拉图,可以直接用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。
中国邮递员问题小论文
中国邮递员问题摘要:一名邮递员带着要分发的邮件从邮局出发,经过要分发的每个街道,送完邮件后又返回邮局.如果他必须至少一次走过他管辖范围内的每一条街道,如何选择投递路线,使邮递员走尽可能少的路程.这个问题是由我国数学家管梅谷先生(山东师范大学数学系教授)在1962年首次提出的,因此在国际上称之为中国邮递员问题本文主要介绍了中国邮递员问题的基本分析、求解中国邮递员问题的方法以及有关欧拉回路的算法实现。
关键词:中国邮递员欧拉图欧拉回路一、中国邮递员问题的分析中国投递员问题是1960年我们从生产实际中提出的一个数学问题,它是从下述实际问题中抽象出来的:“一个投递员应该怎么选择一条线路,才能既把所有由他负责的信件都送到,而所走的路程又最短”。
在我们开始研究中国投递员问题以前,国外有人研究过所谓旅行售货员的问题,即:“一个售货员要到n个城市去售货,问他应该选择怎样的一条线路,才能既走遍所有城市,并且走的路程最短”。
这是一个著名的难题.当n较大时,即使使用大型电子计算机,也很难解决。
投递员面临的问题显然可以归纳为旅行售货员问题,事实上,只要把投递员必须送的每一个地点看成是一个城市就行了.但是一般来说,投递员每次要到约二、三百个地点送信,如果归纳为旅行售货员问题来解决,将是一个规模很大的问题,是无法解决的.但是,在仔细分析了投递员面临的问题后,我们发现这个问题具有一定的特点,即需要送信的地点一般都是比较密集的排列在街道上的,因此,实际上,我们称这个问题为“最短投递线路问题”,1965年后国外称之为“中国投递员问题”(这个问题是我国数学家管梅谷先生在20世纪60年代提出来的)用图论的语言来描述就是在一个带权图G中,能否找到一条回路C,使C包含G的每条边至少一次且C的长度最短?如若他所管辖的街道构成一欧拉回路,则这欧拉回路便是所求路径。
如若不然,即存在度数为奇数的顶点,必然有些街道需要多走至少一遍,这时用中国邮路问题算法可求出最短路径。
中国邮递员问题
管梅谷
管梅谷教授。 上海市人。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
解决这样的问题,可以采用奇偶 点图上作业法:如果在配送范围 内,街道中没有奇点,那么他就 可以从配送中心出发,走过每条 街道一次,且仅一次,最后回到 配送中心,这样他所走的路程也
中国邮递员问题算法
G-E(C)仍然无奇数度结点。
?
由于G是连通的,C中应至少存在一点v,使G-
E(C)中有一条包含v的回路C′。(见示意图)
2019/7/8
计算机学院
7
C
v
C'
这样,就可以构造出一条由C和C′组成的 G的回路,其包含的边数比C多,与假设矛盾。 因此,C必是Euler回路,结论成立。
2019/7/8
计算机学院
类似于无向图的讨论,对有向图我们有以下 结论: 定理13-1.2 ⅰ)有向连通图G含有有向欧拉道路,当且仅当
除了两个结点以外,其余结点的入度等于出度, 而这两个例外的结点中,一个结点的入度比出 度大1,另一个结点的出度比入度大1。 ⅱ)有向连通图G含有有向欧拉回路,当且仅当G 中的所有结点的入度等于出度。
计算机学院
16
显然,当这个图是欧拉图时,任何一条欧拉回路都 符合要求;当这个图不是欧拉图时,所求回路必然要重复 通过某些边。
对此,管梅谷曾证明,若图的边数为m,则所求回 路的长度最小是m,最多不超过2m,并且每条边在其中 最多出现两次。中国邮递员问题,一般为在带权连通图 中找一条包括全部边的且权最小的关回键路是。:复制哪些边?
V6
d(V2,V5)=3, d(V3,V5)=4
G
各路径:V1V2(3),V3V5(4)—7
V1V3(5),V2V5(3)—8
V1
V1V5(4),V2V3(2)—6
∴两条长度最短P1=V1V7V5,P2=V2V3
3.构造G’的任一E图就是中国邮递员 V6
问题的解。
G′
V2
3
2
1 3
3 6
V3
3
V7
7
欧拉回路与中国邮递员问题
欧拉回路与中国邮递员问题一、欧拉回路所谓欧拉回路与哥尼斯堡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。
中国邮递员问题——欧拉巡回
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 即是所求欧拉回路。
邮递员问题与旅行商问题讨论
3.1 定义基础 i) 遗传算法:是一种基于生物自然选择与遗传机理的随机搜索算
法。 ii) 蚁群算法:是一种全新的通过模拟自然界蚂蚁寻径的行为的进化
算法 iii)模拟退火法:是一种模拟熔化状态下物体由逐渐冷却至最终达结
晶状态这一物理过程的近似全局优化算法。 3.2 问题描述
TSP 问题(Traveling Salesman Problem),即旅行商问题, 是数学领域中著名问题之一。假设有一个旅行商人要拜访 N 个城 市,他必须选择所要走的路径,路径的限制是每个城市只能拜访 一次,而且最后要回到原来出发的城市。路径的选择目标是要求 得 的 路 径 路 程 为 所 有 路 径 之 中 的 最 小 值 。即 :给定一个完全无向带 权图 G=(V,E),其每条边(u,v)∈E 有一非负整数权值 w(u,v)。要求 找出 G 的一条经过每个顶点一次且仅经过一次的回路,使得该回路上 所有边的权值之和尽可能地小。从图论的角度来看,该问题实质是在 一个带权完全无向图中,找一个权值最小的哈密顿回路使得我们能够 通过这些城市至少一次。
关键词:欧拉图、欧拉回路、最小权数、遗传算法、蚁群算法、
模拟退火算法
1 :引 言
中国邮递员问题和旅行商问题都是著名图论问题。它们在现实生 活中也很重要的意义。中国邮递员问题最早是由管梅谷首先提出并进 行研究的,国际上现在统称之为中国邮递员问题。该问题具有很强的 现实意义。早期关于中国邮递员问题的讨论总是基于无向图展开的, 事实上,由于单行线或上下行路线的坡度等原因,这一问题有时必须 借助于有向图来进行研究和解决。到目前为止,对中国邮递员问题的 研究主要是从图论角度展开的,给出的多数都是各种启发式算法或递 推算法。如果中国邮递员问题中的图是欧拉图,那么欧拉回路就是最 优回路。但一般情形下中国邮递员问题的相关图不是欧拉图,最优回 路包含某些边至少两次。这时求最优回路的思想是:在图 G 中添加 一些重复边使新图 G*成为欧拉图,且使得所有添加的重复边的权和 最小。再由 G*的欧拉回路得到 G 的最优回路。本文也沿袭了以往的 方法,从欧拉图方面进行研究,试图得出当中国邮递员问题的图为欧 拉图时的最短路径,从而得出中国邮递员问题的最优解。
中国邮递员问题——欧拉巡回
案例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)经过每个顶点至少一次的权最小的闭通路称 为最佳推销员回路.
一般说来,最佳哈密尔顿圈不一定是最佳推销员回路, 同样最佳推销员回路也不一定是最佳哈密尔顿圈.
(2)假定道路 wi=v0e1v1e2…eivi 已经选好,则从 E\{e1,e2,…,ei}中选
一条边 ei+1,使: a)ei+1 与 vi 相关联
b)除非不能选择,否则一定要使 ei+1 不是 Gi=G[E-{e1,e2,…,ei}]
的割边.
(3)第(2)步不能进行时就停止.
v1
e1
v2 e10
63 C3 3
3
D1 3 E
44
D2
图中各点上方框的数,表示该点到E的最短距离。图中 红箭线表示从A到E的最短路线。
从引例的求解过程可以得到以下启示:
①对一个问题是否用上述方法求解,其关键在于能否将问 题转化为相互联系的决策过程相同的多个阶段决策问题。
所谓多阶段决策问题是:把一个问题看作是一个前后关 联具有链状结构的多阶段过程,也称为序贯决策过程。如下 图所示:
决策
状态
状态
1
决策 状态
2
决策
状态
状态
n
②在处理各阶段决策的选取上,不仅只依赖于当前面临 的状态,而且还要注意对以后的发展。即是从全局考虑解决 局部(阶段)的问题。
值为 64.
返回
哈密尔顿图
定义 设 G=(V,E)是连通无向图. (1)经过 G 的每个顶点正好一次的路径,称为 G 的一条
行遍性问题
定义 在加权图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)}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求欧拉图欧拉巡回的算法
Hierholzer算法也适合于有向欧拉图,只要将其中的 闭道路改为有向闭道路即可。
求解中国邮递员问题的算法
一般解法 设G是连通加权图。 1) 对G添加重复边,使G成为欧拉图G*, 且要 求添加的重复边权和近可能小; 2) 在G*中求一条欧拉巡回。 走两条重复边相当于原图的边走两遍。 结论:若连通图G正好有两个奇次顶点u,v,沿u到v 的一条最短路径添加重复边得到欧拉图G*, 则G*的 欧拉巡回便是G的最佳巡回。
2)有向欧拉巡回:经过G的每条弧正好一次的有向巡回。 3)有向欧拉图:存在有向欧拉巡回的有向图。 4)有向欧拉道路:经过G的每条弧正好一次的有向道路。 5)最佳有向巡回:加权连通有向图的边权总和最小的有 向巡回。
基本概念与基本结论
有向图的情形
结论一:弱连通有向图D是有向欧拉图的充要条件是 D的任何奇次顶点的出次等于入次。
求解中国邮递员问题的算法
最小权对集法(Edmonds) 设G是连通加权图。 1) 求G的所有奇次顶点之间的最短路径及其 长度; 2) 以G的所有奇次顶点为顶点集作一完全图, 各条边上的权赋为两端点在原图中的最短路径长度, 得到一个加权完全图,记为G1;求G1的最小权理想 匹配M, 得到奇次顶点的最佳配对; 3)在G中,沿最佳配对奇次顶点间的最短路径 添加重复边得欧拉图G*,G*的欧拉巡回即为所求。
结论二:弱连通有向图D有以u为起点,v为终点的有 向欧拉道路的充要条件是:u的出次比入次多1, v的 出次比入次少1, 其余顶点的出次等于入次。
求欧拉图欧拉巡回的算法
Fleury算法 设G是欧拉图。 V(G) = {v0,v1,…,vn} , E(G) = {e1,e2,…,em} 1) 任选顶点为v0 ,置途径W= v0 。 2) 设途径W= v0 e1v1… ei vi已经选定,则按下述条件 从E - {e1,e2,…, ei}中选取ei+1。 (a) ei+1与vi相关联。 (b) 除非没有别的选择,否则一定要使ei+1不是 G - {e1,e2,…, ei}的割边。 3 ) 当第2步不能执行时,算法停止。 停止后,W 即是所求欧拉回路。
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
v1
10 v4 8 v7 4 3
v2
6
v3 5
6
v6
5
7
3
v5
4
2 v8 3
5
v12
9
6
v11 1 1 v13 v14
v9 1 v10 2
v15
案例2:铲雪车的行驶路线问题
铲雪车的行驶路线问题(MCM 90B题) 下页 地图中实线表示马里兰州(Maryland)咸克 米克市(w5comico)清除积雪区域的双车道道路,虚 线是州高速公路。雪后,两辆扫雪车从地图*号标出 的两点的每一地点以西约4英里处出发清扫道路上的 积雪。试为两车找出有效的路径。扫雪车可以通过 高速公路进出市内道路。
求欧拉图欧拉巡回的算法
Hierholzer算法 设G是欧拉图。 1) 任选顶点为v0 ,以 v0为 起点,生成一个闭道路T0, i0; 2) 在Ti上选择一个顶点vi,要求vi有不在Ti上的关联 边;在图G-E(Ti)中构造以vi为起点的闭道路T’,将T’ 插入到Ti的顶点vi处,形成一个更长的闭道路 Ti+1=TiT’; 3 ) 若E(Ti+1)=E(G), 则停止;否则i i+1, 返回2)。 停止后, Ti+1 即是所求欧拉回路。
v7 4
3
2 v8
3
v11 1 1 v13 v14
基本概念与基本结论
无向图的情形
设G=(V,E)是连通无向图。
1)巡回:经过G的每边至少一次的封闭路线。
2)欧拉巡回:经过G的每边正好一次的巡回。 3)欧拉图:存在欧拉巡回的图。 4)欧拉道路:经过G的每边正好一次的道路。 5)最佳巡回:加权连通图的边权总和最小的巡回。
深度优先搜索法遍历求解 威廉王迷宫
b
l d c f g i j
e
x
h
k
a
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解 要求1)的解法2(续)
扫雪车行驶规则: 1. 从起点出发,优先选择未作业过的路段; 2. 到达交差路口时,若身后路面的两个车道都已 铲且前面还有未作业过的路段,或前方路段都 未作业过,则驶入最靠右边的路段继续作业; 否则,身后路面只铲了一个车道,应掉头铲另 一个车道。 3. 行驶到一头不通的道路尽头应掉头,在反向车 道上作业。
基本概念与基本结论
无向图的情形
结论一:连通图G是欧拉图的充要条件是G无奇次顶 点。
结论二:连通Biblioteka G有欧拉道路的充要条件是G最多有 两个奇次顶点。 结论三:任何无向图的奇次顶点数目必为偶数。
基本概念与基本结论
有向图的情形
设G=(V,E)是弱连通有向图。
1)有向巡回:经过G的每条弧至少一次的有向封闭路线。
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解 要求1)的解法2(续)
迷宫法则: 1)沿着未走过的通道尽可能远地走下去,走到死胡 同或那里已无末走过的走廊可选时,沿原路返回; 2)到达路口,若有未走过的走廊时,沿这一走廊尽 可能远地走下去,…,最后即可按索退全部走廊 和厅室,再由入口处出迷宫.
案例1:双车道公路扫雪模型
6 8 v4 5 7 4 3 3 v5
5 4
9 6 v9 1 v10 2 v15
v6 5 v12
v7
2 v8
v11 1 1 v13 v14
3
案例1:双车道公路扫雪模型
深度优先搜索法遍历求解
要求1)的解法2 还可用深度优先搜索法(迷宫法则),遍历所有边,且 每边正好来回各走一次。 迷宫任务:从迷宫入口处出发,每个走廊都要搜索,最后 再从入口出来.
精品课件!
精品课件!
案例2:铲雪车的行驶路线问题
铲雪车的行驶路线问题(MCM 90B题)
返回
案例1:双车道公路扫雪模型
问题 某地区的双车道公路如图1的图G(单 位是千米),路上积满了雪 。一辆扫雪车从 v1点出发,扫除公路上的所有积雪,最后回 到v1 。 要求1) 请你为扫雪车选择一条路径,使它 经过的总路程最短。 要求2) 现在先进的喷气扫雪车只需沿公 路一侧行驶,就能清除两个车道的积雪。如 果改用喷气扫雪车来扫雪,再请你为它选择 一条路径,使它经过的总路程最短。
案例1:双车道公路扫雪模型
10
v4 v2 5 3 v5
v1
6 v6 5
6
v3
5
8
v7 4
7
2 v8 3
4
9 6
v12
3
v11 1 1 v13 v14
v9 1 v10 2 v15
案例1:双车道公路扫雪模型
hierholzer算法求解
要求1)的解法1 由于是双车道,因此可将每条边看成来回两条 异向弧,此时,图是有向欧拉图,可用hierholzer算 法在有向图上求出有向欧拉巡回。 10 v2 6 v3 v1
主要内容
原始模型 基本概念与基本结论
求欧拉图欧拉巡回的算法
求解中国邮递员问题的算法
案例:铲雪车的行驶路线问题
原始模型
问题:一位邮递员从邮局选好邮件去投递,他必须经过 他所管辖的每条街至少一次,然后回到邮局,如何选择 一条总行程最短的路线? v2 10 6 v3 v1 6 v6 5 v12 v4 8 5 7 3 v5 4 9 6 5 v9 1 v10 2 v15