matlab中邮递员问题实例,中国邮递员问题的求解实例.doc

中国邮递员问题的求解实例

中国邮递员问题的求解实例

前面已经讲过,对于欧拉图,可以直接用Fleury算法找出一条欧拉巡回路线;对于半欧拉图,可以先求出奇点u和v之间的最短路径P,令,则G *为欧拉图,然后用Fleury算法来确定一个G *的欧拉巡回,它就是G的最优巡回。

当G有2n个奇点(n>1),可以用Edmonds算法解决,步骤如下:

(1) 用Floyd算法求出所有奇点之间的最短路径和距离矩阵。

(2) 用匈牙利法或0-1规划法求出所有奇点之间的最佳配对。

(3) 在原图上添加最佳配对所包含的两两顶点之间的最短路得到欧拉图G *。

(4) 用Fleury算法确定一个G *的欧拉巡回,这就是G的最优巡回。

以上步骤的关键是找出2n个奇点的最佳配对,举例如下。

例 图3一条巡回。21026171117163332324432493031342214402188928934232819850313264832310261981524535232210851313625342739820923396362221414523332486531145021121330637254281053333825264121812212182723825241095432372357452542313191993924291845535361808109289241617199402132432563540180910112352517252354127263265736376481010161632615143604227313065837384681156414271522217432630271593741184125131482814212194428294146042411063136203822919203444528332356140417921467253301918332462934181624039198157825231182614447343341816714219322021308483039432解:该图有42个顶点和62条边,有26个顶点为奇点,因而不是欧拉图,为了寻找最优巡回,需要先求26个奇点的最佳配对。

先用Floyd算法求出所有42个顶点之间的最短路距离和路径。程序如下:

E=[1 2 1026

1 4 402

…………… 注:每一行代表一条边(两个顶点和边长),此处省略59行

40 39 198];

for i=1:42

for j=1:42

if j==i

a(i,j)=0;

else

a(i,j)=inf;

end

end

end

for 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);

然后求26个奇点的最优配对,这可以用Lingo求解,编写程序如下:

MODEL:

SETS:

dot/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;

ENDSETS

DATA:

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 1687

254 668 1173 1462 1751 198 181 402 1140 1418 2113 453 601 945 1635 2175 2284 597 1941 2355 868 1463 1498 2104

414 919 1208 1497 1732 435 148 886 1164 1859 679 347 691 1381 1921 2030 8

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值