基于MPI并行蚁群算法实现.docVIP

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

基于MPI并行蚁群算法实现   摘要:蚁群算法是新兴的仿生进化算法,具有并行计算、正反馈等特点,与其它各种启发式算法相比该算法具有明显的优越性。该文将实现蚁群算法的并行化,并用来求解TSP问题,结果证明能显著提高蚁群算法的收敛速度。   关键词:蚁群算法;并行;TSP;MPI   中图分类号:TP18文献标识码:A文章编号:1009-3044(2012)12-2863-02   1蚁群算法   蚁群算法是在现实世界的蚁群行为的基础上提出来的。现实世界中的各种蚂蚁、蜜蜂等有群居习惯的昆虫,个体昆虫行为虽然很简单,但是由数量众多的个体所组成的群体却能显现出相当复杂有序的群体行为[1-3]。科学家通过仔细的观察发现,蚂蚁和蚂蚁之间经过信息素等自身分泌的物质进行消息传递。运动中的蚂蚁可以在走过的路径上留下信息素,并且这种信息素能影响其他蚂蚁对路径的选择,这样信息素就对蚁群行为的影响形成所谓的正反馈现象[4],该条路径走过上的蚂蚁越多,信息素浓度就越高,后面的蚂蚁选择该路径的可能性就越大。蚂蚁和蚂蚁之间能够通过这种信息素的交流,找到一条从蚁巢到达食物的最短路径。   2并行蚁群算法   关于并行蚁群算法文献[5]中提出PAPI算法,该算法中为了减少处理器之间通信次数,从而增加处理器用于计算的事件,采取了让蚁群在运行固定次数之后才进行信息素的交流办法,得到了比较好的加速比。文献[6]中使用了一种最简单的并行蚁群算法,各蚁群在运算时候没有信息交流,这样各个蚁群之间是独立进行的,并且实现了MMAS蚁群算法,从算法结果上来看,该方法体现了一定的效率。文献[7]中对ACS做了并行实现,使用的是数据并行的方法,把一个蚁群中的所有蚂蚁平分为q个子蚁群,然后使用q个处理器来并行计算,所有的子蚁群都有自己的数据结构,使用的是相同的蚁群算法,该算法使用了局部和全部的信息素更新方法,在一定的迭代次数后利用蚁群搜索到的最好路径对信息素矩阵进行更新。   2.1并行蚁群基本思路   蚁群算法并行化的基本思路是把n只蚂蚁分为numprocs个蚁群,每个蚁群分配1个处理机。每个子蚁群中的蚂蚁个数可以相等,也可以不相等,如果处理机性能相同,一般令各子蚁群的蚂蚁个数相等。初始化完成后,由每个蚁群分别进行解的搜索,根据并行策略进行蚁群之间的通信,每个蚁群根据从其它蚁群获取的有关信息,对本蚁群的状态进行修改。当达到算法的终止条件时,由其中1个处理机收集各蚁群的最优解,并输出所找到的全局最优解。   2.2并行蚁群算法描述   BEGIN   系统初始化;   1)初始化MPI库,使用MPI_Comm_rank()   获取进程号myid,MPI_Comm_size()获取   参与计算的进程数numprocs;   2)蚂蚁总的数量初始化为n,蚁群的迭代次数为D;   3)设置蚁群算法的基本参数;   4)各个蚁群进程中设置每只蚂蚁的初始位置;   5)初始化最优路径长度;   WHILE(蚁群迭代次数3算法实现   以湖南人文科技学院曙光TC4000超级计算机群为运行平台。曙光TC4000是基于Linux的超级服务器系统,由1个管理登陆节点、10个计算节点共65个节点组成,节点全部采用64位双路六核CPU架构势。软件环境是Linux Suse 10sp2,并行开发环境为MPI,编译环境为C。   为了验证并行算法的效率,使用来自于国际通用的TSP数据库TSPLIB中的Ei151, Ei176,Eil101这3个实例,分别用并行蚁群算法和串行蚁群算法程序在曙光TC4000上运行30次,得到各项数据的平均值,如表1所示。      从表1我们可以看到,并行蚁群算法能显著加快收敛速度,减少执行时间;3个实例的结果都得到了较为理想的加速比,而且,随着问题规模不断的扩大,加速比逐渐提高。   但是也看到算法得到的结果与TSPLIB公布的最优解还有一定的差距,并行蚁群算法的效率有待于进一步的提高,以后的工作将要从并行的策略入手,提出改进措施来解决蚁群容易陷入局部最优的问题。   参考文献:   [1] Kennedy J, Eberhart R C.Swarm Intelligence.San Francisco, CA: Morgan Kaufmann Publishers, 2001.   [2] Bonabeau E, Dorigo M, Theraulaz G.Swarm Intelligence: From Natural to Artificial Systems.Santa Fe Institute in the Scien- ces of the Complexity,Oxford University Pre

文档评论(0)

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

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

1亿VIP精品文档

相关文档