用回溯法解决旅行商问题_第1页
用回溯法解决旅行商问题_第2页
用回溯法解决旅行商问题_第3页
用回溯法解决旅行商问题_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.宁夏师范学院数学与计算机科学学院算法分析与设计实验报告实验序号:11 实验项目名称:用回溯法解决旅行商问题 学号姓名专业、班实验地点指导教师时 间2014.06.23一、实验目的及要求(1) 理解算法复杂度的概念(2) 掌握算法复杂度计算的方法二、实验设备(环境)及要求1、环境要求:硬件:PC(PII以上,128M以上内存)、因特网接入;软件:Windows XP操作系统、Office2003、多媒体播放软件。三、实验内容与步骤#include#define N 4double cc,/当前路径费用 bestc;/当前最优解费用double aN+1N+1;/邻接矩阵,存放图的信息int b

2、estxN+1;/当前最优解int xN+1;/当前解void inputAjac()int i,j;printf(输入大于0.0的值表示有边,小于0.0表示无边:n);for(i=1;i=N;i+)for(j=i+1;j0.0&axNx10.0)if(bestccc+axN-1xN+axNx1)int j;for(j=1;j=N;j+)bestxj=xj;bestc=cc+axN-1xN+axNx1;elseint j;for(j=i;j0.0)if(bestccc+axi-1xj+axjx1)int temp;cc+=axi-1xj;temp=xi;xi=xj;xj=temp;backtr

3、ack(i+1);temp=xi;xi=xj;xj=temp;cc-=axi-1xj;double tsp()/初始化int i;for(i=1;i=N;i+)xi=i;cc=0.0,bestc=-1.0;inputAjac();backtrack(2);return bestc;void output() int i;for(i=1;i=N;i+)printf(%4d,bestxi); printf(n);void main()printf(走%d个城市最少路费为:%lf,N,tsp();printf(走法为:);output();四、实验结果与数据处理五、分析与讨论 旅行售货员问题的解空间

4、是一棵排列树。 在递归算法 backtrack中,当i=n时,当前扩展结点时排列树的叶结点的父结点。此时算法检测图G是否存在一条从顶点xn-1到顶点xn的边和一条从顶点xn到顶点1的边。如果这两条边都存在,则找到一条旅行售货员回路。此时,算法还需判断这条回路的费用是否优于当前已找到的最优回路的费用bestc。如果是,则必须更新当前最优值bestc和当前最优解bestx。当in时,当前扩展结点位于排列树的第i-1层。图G中存在从顶点xi-1到顶点xi的边时,x1:i构成图G的一条路径,且当x1:i的费用小于当前最优值时算法进入排列树的第i层;否则,将剪去相应的子树。算法中用变量cc记录当前路径x1:i的费用。算法效率:如果不考虑更新bestx所需的计算时间,则算法backtrack需要O(n-1)!)计算时间。由于算法backtrack在最坏情况下可能需要更新当前最优解O(n-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论