运筹学 中国邮递员问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§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 的边重复一次。对于每一个p i 而且除两端点外,其它点
保持原奇偶性,即此时图中无奇点。再将添加边多于1条的边, 成对删去, 仍保持点 的奇偶性。由命题2,存在伪Euler 圈。将添加的边组成一个可行集,由命题3检验 是否为最优,如果非最优的,则存在一圈不满足命题3, 将该圈中非重复边重复一次, 重复边删去一次,图的各点奇偶性不变。
5.管氏算法
计算步骤:
c 如果G 中没有奇点,则存在Euler 圈,停止计算。否则,设G 的奇点为v 1 , v 2 , …, v 2k , 转
d 。
d 对每一个1≤ i ≤k , 将v 2i − 1 至v 2i 的链p i 上的边重复一次,转
e 。
e 除原边外,将添加的重边成对删去,转
f 。
f 对每一个圈,计算有重边的权之和ω1以及无重边的权之和ω2。若前者均不大于后者, 则停止计算,获最优伪Euler 圈。否则,在出现重边权之和大于无重边权之和的所 有圈上,删去重边同时在无重边上添加一重边,转e 。
对于例5,我们有
(找奇点、消奇点)
v3 ,v6 , v2 ,v7
v8
(去重边、检查)
圈v2 v3 v7 v6 v2
v8
(调整)
v8