- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
旅行售货员问题
TSP :
某售货员到若干城市去推销商品,已知各城市之间的路
程(或旅费)。他要选定一条路线,经过每个城市一遍最后
回到驻地的路线,使得总的路程(或总旅费)最小。
设G=(V, E)是一个带权图。
图中各边的费用(权值)为正。图中一条周游路线是包括V
中所有顶点的回路。一条周游路线的费用是该路线上所
有边的费用之和。所谓旅行售货员问题就是要在图G中找
出一条最小费用的周游路线。
考虑TSP的递归回溯算法
Try(s){ 线路上的第s个结点
做挑选候选者的准备; 这里只需依次考察n–1个结
while (未成功且还有候选者){ 点,即for (i=2; i=n; i++)下
挑选下一个候选者next ; 一个候选就是i
结点i尚未在路线中
if (next可接受) { 若新线路更好,就用
且总耗费值不大。
就是将结点i放入路
记录next ; 新线路取代老线路。
线中并修改耗费值
if (满足成功条件) {成功并输出结果}
else Try(s+1); 这里无所谓成功与否,
s = = n
if (不成功) 删去next的记录; }}
因为每一条周游路线
return 成功与否} 都要进行比较。
TSP的递归回溯算法
Try(s){
for (i = 2; i = n; i++)
if (Accept(i)) {
Record(s, i) ;
if (s = = n)
if (better) TakeNewPath( ) ;
else Try(s+1);
Move-off(s, i)}
return }
求解TSP的数据结构
用数组C[n][n]存放n个城市间的费用值。
用数组P[n]记录已经找到的费用最小的周游
路线,C为其相应的费用,C初值为∞。
用数组N[n]记录目前正在寻找的周游路线,
NC为其相应的费用;
如果NC+C[N[n]][1]小于C ,则路线N更佳,
于是P[] = N[] ,C = NC+C[N[n]][1]。
如果结点next不是N 中已有的结点,且C大于
NC+C[N[i]][next] ,则结点next是可接受的。
TSP的递归程序Try
Try(s){ 数组T[]表示结点i尚未被选
for (i = 2; i = n; i++)
if (Accept(i)) {
(C NC+C[N[s]][i] T[i]) {
Record(s, i) ;
if (s = = n)
if (better) TakeNewPath( ) ;
(C NC+C[N[s]][1]) TakeNewPath( );
else Tr
您可能关注的文档
最近下载
- 2022年西藏自治区专升本考试大学政治模拟试题含解析.doc VIP
- 法官入额考试执行真题及答案.doc VIP
- 图像处理技术规范.docx
- 2025年广东省《保密知识竞赛必刷50题》考试题库及参考答案【满分必刷】带题目详解.docx VIP
- 水产品食品货物质量保证措施及配送方案.docx VIP
- 高中教学课件:1-4-1用空间向量研究直线、平面的位置关系.pptx
- GBZ-70-2015-职业性尘肺病的诊断.pdf VIP
- 室内消火栓系统安装施工工艺与质量标准.docx VIP
- 骨科护理品管圈主题.pptx
- 37.2023【康养小镇】江苏常州市孟河生态康旅小镇总体策划-125页.pptx VIP
文档评论(0)