TSP实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TSP实验报告

2012 年 第一 学期研究生课程考核 (实验报告、研究报告) 考 核 科 目:算法分析与复杂性理论 学生所在学院:计算机科学与技术学院 学生所在学科:计算机应用技术 姓 名: 学 号: 学 生 类 别: 研究生 一、实验目的 通过TSP算法的具体实现,加深对算法复杂分析的理解。 通过TSP算法的具体实现,提高对NP完全问题的认识。 通过TSP算法的具体实现,理解不确定性算法。 通过TSP算法的具体实现,理解不确定性算法。 二、实验环境 实验平台:Visual C++ 6.0 编程语言:C++ 编程电脑配置: 三、实验内容描述 TSP(Travelling Salesman Problem)又称货郎担或巡回售货员问题,在运筹学、管理科学及工程实际中具有广泛的用途。及工程实际中具有广泛的用途。TSP问题是组合优化中的著名难题,一直受到人们的极大关注。由于其NP难题性质,至今尚未完全解决。此问题可以抽象描述为: 给出一个n个顶点网络(有向或无向),要求找出一个包含所有n个顶点的具有最小耗费的环路。其中,任何一个包含所有n个顶点的环路被称作一个旅行。 对于旅行商问题,顶点表示旅行商所要旅行的城市(包括起点)。边上权值给出了在两个城市旅行所需的路程。旅行表示当旅行商游览了所有城市后再回到出发点时所走的路线。 四、实验原理 许多研究表明,应用蚁群优化算法求解TSP问题优于模拟退火法、遗传算法、神经网络算法、禁忌算法等多种优化方法。 为说明该算法,引人如下的标记: m表示蚁群中蚂蚁的数量;表示城市i和城市j之间的距离;表示t时刻位于城市i的蚂蚁数,显然应满足,表示t时刻在ij连线上的信息数量。在算法的初始时刻,将m只蚂蚁随机地放到n座城市上,此时各路径上的信息量相等,设。每只蚂蚁根据路径上保留的信息量独立地选择下一个城市。在时刻t,蚂蚁k从城市i转移到城市j 的概率为 其中,表示蚂蚁走下一步允许选择的所有城市,列表 纪录了当前蚂蚁k所走过的城市,当所有n个城市都加入到中时,蚂蚁k便完成了一次循环,此时蚂蚁走所走过的路径便是问题的一个解。是一个启发式因子,表示蚂蚁从城市i转移到城市j的期望程度,在蚂蚁算法中,通常取 城市ij之间距离的倒数。α和β分别表示路径上信息量和启发示因子的重要程度。 当所有蚂蚁完成一次循环后,各路径上的信息量要根据下面的公式进行调整: 其中表示路径上信息的蒸发系数;表示信息的保留系数;表示本次循环路径ij上信息的增量。 表示第k只蚂蚁在本次循环中留在路径ij上的信息量,如果蚂蚁k没有经过路径,则的值为零,表示为 其中,Q为常数,表示第k只蚂蚁在本次循环中所走过的路径的长度。 五、实验结果与实验分析 a280: 公布最优解:2579 eil51: 公布最优解:426 eil76: 公布的最优解:538 Eil101: 公布的最优解:629 kroA100: 公布的最优解:21282 通过分析运算结果,我看到编写的程序的执行结果和目前公布的最优值之间还存在着较大的差距。分析原因,主要是因为没有解决好路径的交叉。 六、复杂度分析 假设:n是城市数量,m是蚂蚁数量,T是迭代次数 时间复杂度 time=n*(n-1)*m*T/2 m一般是n的2/3,那就让m=n*2/3 T一般是n的倍数,那就让T=k*n 于是 time=n*(n-1)*n*2/3*n*k/2 time=n*(n-1)*n*n*k/3 n-无穷大的时候,(此时k会远小于n) time就约等于 n^4 空间复杂度 space=3*nxn+n*m space=3*n*n+n*n*2/3 space=n*n*(3+2/3) n-无穷大的时候,space约等于n^2 因为我是非计算机专业学生,所以编程能力很差,一开始对于这些问题根本无从下手,于是自己又重新学习了遍谭浩强的C编程书,后来又学习了一下VC++,但是对于VC++还是不太熟悉,多亏了同学和我们组的组员的帮助,再加上借鉴已完成同学的程序,并且这些同学给予了耐心的知道,使我的编程能力有了很大的提升,最后能把自己的平台勉强完成很是感谢大家,在以后的学习中希望我们互帮互助共同进步,我会加倍努力,提升自己。

文档评论(0)

kakaxi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档