蚂蚁算法求解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文档。上传文档
查看更多
PAGE PAGE 1 蚂蚁算法求解TSP问题 指导教师:李正学 系 别:应用数学系 班 级:2003级06班 姓 名:王源 学 号:200312082 蚂蚁算法求解TSP问题 摘 要 蚂蚁算法是通过蚂蚁觅食而发展出的一种新的启发算法,该算法已经成功的解决了诸如TSP问题。本文简要学习探讨了蚂蚁算法和TSP问题的基本内容,尝试解决一个实例问题并给出C语言算法。 关键词 蚂蚁算法;TSP问题。 1 蚂蚁算法与TSP问题 1.1 蚂蚁算法 蚂蚁算法(Ant Colony Algorithm) 是由意大利学者M.Dorigo ,V. Manierio ,A. Collorni等人于二十世纪九十年代提出的一种新型的模拟进化算法。受到人们对自然界中真实蚁群集体行为研究成果的启发,考虑到蚁群搜索食物的过程与旅行商问题的相似性,利用蚁群算法求解旅行商问题(Traveling Salesman Problem, TSP ) 、指派问题(AssignmentProblem)和调度问题( Scheduling Problem) ,取得了一些比较满意的实验结果。蚁群算法是一种适应性好、鲁棒性强,具有正反馈结构的并行算法。这些初步研究已显示出蚁群算法在求解复杂优化问题(特别是离散优化问题)方面的一些优越性,证明它是一种很有发展前景的方法。蚂蚁算法在各个领域的应用,说明该算法有着广泛的适应性,但由于该算法出现的较晚,对其研究还处于起步阶段,远不如遗传算法、人工神经网络和模拟退火算法那样成熟。算法的很多特性,如算法的收敛性,参数的设定都来自于大量实验统计结果,目前对该算法理论研究有待进一步加强。 经过研究发现,蚂蚁在觅食的过程中通过一种称之为信息素(Pheromone)的物质相互传递信息。更具体地,蚂蚁在运动过程中能够在其所经过的路径上留下信息素,而且在运动过程中能够感受到这种信息素的存在及其强度,并以此指导自己的运动方向。蚂蚁倾向于朝着信息素浓度高的方向前进,因此,由大量蚂蚁组成的蚁群的行为便表现出一种信息的正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。蚁群就是通过个体之间这种信息交换机制来彼此协作达到搜索食物的目的。 设有甲、乙两只蚂蚁从蚁穴A出发,分别沿AC 和ABC 路径同时在C 处发现食物,又同时沿原路返回(设二者速度一样),同时在路上留下信息素,信息素随着向四周散发其浓度会不断下降。因AC 路径较短,故当蚂蚁甲返回蚁穴A 时,A C 上留下两次信息素,而乙蚂蚁则因为ABC 路径较长,此时才到达D 点,则AD路径上只留下一次信息素。故该段上信息素的浓度比A C路径上的低。而蚂蚁总是倾向于信息素浓度比较高的路径(AC),这条路径就是蚁穴A 与食物C 之间的最短路径。如图1 所示。 图1 蚁群通过信息交换与互相协作找到从蚁穴到食物源的最短路径的机制显然可以被借鉴来求解各种与最优路径相关的组合优化问题。Colorni和Dorigo等人在研究该问题的基础之上提出了一类模拟自然界蚁群觅食行为的模拟进化算法——蚁群算法。 对于进一步复杂的情况,图2形象说明了蚁群寻找最优路径的过程。30只蚂蚁从A点出发,要到达E点,有两条路径可走, ACDE和AHDE,其中BHD 长为2, BCD长为1 , t = 0时刻,蚂蚁在节点B随机选择 图2 路线,而在t = 1时刻,因为BCD 较BHD 短,故在BCD上留下的信息素浓度大,所以在c)中,更多的蚂蚁选较短的路径,留下的信息素会更多,从而吸引更多的蚂蚁选择此路径,最终所有蚂蚁都选择较短的那条路径。 蚂蚁算法在解决很多组合问题(combinato rial p roblem s)上都取得比较理想的效果。其中有两个比较著名的组合问题,QA P 问题(Quadraic AssignmentProblem) 和JSP 问题(Job- Shop Scheduling Problem) 作相应调整的蚂蚁算法可以比较好地解决这两个组合问题。 另外, 将蚂蚁算法对实际问题的解决也取得一定的进展,如大规模集成电路中的综合布线以及电信网络中的路由等方面的应用。 1. QAP 问题 QA P 问题的目标函数可以用一个nxn 的对称矩阵来描述。蚁群算法基于它和TSP 问题这方面的相似性来解决问题的。QA P 问题的目标函数矩阵S 通过距离向量D 和流向量F的组合组成, 。蚂蚁根据可见度信息来选择下一个节点, 其中。矩阵S 的元素值用作启发因子。 2. JSP 问题 JSP 问题可以用一个加权图描述。每条边的权值用参数对{Sk1, Gk1}表示。信息Sk1和可见度Gk1是通过最长进程时间或者最

文档评论(0)

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

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

1亿VIP精品文档

相关文档