理论教育 旅行售货员问题探究

旅行售货员问题探究

时间:2023-06-01 理论教育 版权反馈
【摘要】:,vn中某一个城市如v1出发,到其他n-1个城市推销产品,每个城市都必须访问到并且只访问一次最后回到v1,如何安排他的旅行路线使总距离最短,就是旅行售货员问题或货郎担问题。旅行售货员问题虽然能用整数规划、动态规划等方法求解,但是当n较大时求解就不一定有效。旅行售货员所走的路线就是一个由n个城市构成的交通图G的一个Hamilton回路,旅行售货员问题就是寻找一个总距离最小的Hamilton回路。

旅行售货员问题探究

一个推销商从n个城市v1,v2,…,vn中某一个城市如v1出发,到其他n-1个城市推销产品,每个城市都必须访问到并且只访问一次最后回到v1,如何安排他的旅行路线使总距离最短,就是旅行售货员问题或货郎担问题。

旅行售货员问题虽然能用整数规划动态规划等方法求解,但是当n较大时求解就不一定有效。一种可行的方法是求最小的Hamilton回路。下面介绍一下Hamilton回路。

设图G=[VE],若一个回路H过每个点一次且仅一次,则称HG的一个Hamil-ton回路。与点vi相关联的边数称为点的次(degree),记为dvi),次为奇数的点称为奇点,次为偶数的点称为偶点。若G中任意两个点vivj满足dvi)+dvj)≥nn为图G的点数并且n≥3),则G中存在Hamilton回路。

旅行售货员所走的路线就是一个由n个城市构成的交通G的一个Hamilton回路,旅行售货员问题就是寻找一个总距离最小的Hamilton回路。下面用例题介绍一种求满意解(不一定最优)的修正方法。

978-7-111-46552-2-Chapter07-90.jpg

图7-27

【例7.9】 某电动汽车公司与学校合作,拟定在校园内开通无污染无噪声的“绿色交通”路线。图7-27是某大学教学楼和学生宿舍楼的分布图,其中C、F之间是两条单向通道,边上的数字为汽车通过两点间的正常时间(min)。电动汽车公司如何设计一条路线,使汽车通过每一处教学楼和宿舍楼一次后总时间最少。

解 1)显然图7-27存在Hamilton回路,将图表示成距离矩阵C,顺序为AB,…,F,两点间没有边连接的时间为∞。

2)类似解指派问题(匈牙利算法)的第一步,每行每列分别减去该行该列最小元素,得到矩阵C1C1C的解相同。

978-7-111-46552-2-Chapter07-91.jpg

3)采用最近城市法(nearest neighbor heuristic),在C1中取一个初始Hamilton回路H1,起步可以从任意点开始,不妨从v1出发,下一步到离v1最近的点v2,依次取v3v6,v5v4v1,回路H1={v1v2v3v6v5v4v1}的距离为:

CH1)=1.6+2.6+2.5+2.8+3+4=16.5(www.daowen.com)

4)修正回路H1。在矩阵C1中从v1v2的距离c12=0最短,去掉C1的第一行第二列,为避免出现子回路v1→v2v1,令c21=∞得到矩阵C2。在C2中第一行减去最小元素1,第一列减去最小元素0.3得到矩阵C3

978-7-111-46552-2-Chapter07-92.jpg

C3中,按最近城市法v2下一步应达到v3,从C3看出最后一个点不能是v5v6,下一步v3不能选v4只能选v5v6,如果依次选v5v6v4v1不能构成Hamilton回路,如果依次选v6、v5、v4v1则回路与H1相同,没有改进。

因此在C3中,v2下一步应达到v6,取回路H2={v1,v2v6v5v3v4v1},距离为:

CH2)=1.6+4.2+2.8+1.5+2.2+4=16.3

5)与第4)步一样,去掉C3中第一行和第五列,并且令c61=∞(C3中已是∞),得到矩阵C4。矩阵C4中每行每列都有零,在C4中找一个与H1、H2不同的Hamilton回路,有两条不同的回路{v1v2v6v5v4,v3v1}和{v1v2v6v3v5v4v1},取第一条回路H3={v1v2v6v5v4v3v1},即v6下一步达到v5,距离为:

CH3)=1.6+4.2+2.8+3+2.2+1.8=15.6

978-7-111-46552-2-Chapter07-93.jpg

去掉C4中第四行第四列,得到矩阵C5C5中不存在H1H2H3不同的回路,H3为最小的Hamilton回路。

电动汽车公司的行车路线是A→B→F→E→D→C→A,汽车在校园行驶一圈需要15.6min。

从例题的计算看出,最后结果很大程度上依赖于前面走过的路线,如第一步从某个点出发到另一个点确定后,就不能再变动,其结果可能不是最小Hamilton回路。在例7.14中,由矩阵C1第一步从v2开始到v1取一个Hamilton回路,最后结果就与例题结果不同。开始可以取不同的Hamilton回路,重复计算几次,从中筛选较优的结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈