刘海军 蚁群算法原理及其应用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蚁群算法原理及其应用 报告人:刘海军 报告内容 1 ACO原理 2 应用实例TSP Macro Dorigo 蚁群算法原理 在自然界中,蚂蚁个体从洞穴出发寻找事物源,在找到事物之后返回蚁巢时,会在所经过的路径上留下一种称为“信息素”的物质。蚁群算法的信息交互主要是通过信息素来完成的。蚂蚁在运动的过程中,在没有“视觉”的情况下,能够感知这种物质的存在和强度。初始阶段,环境中没有信息素的遗留,蚂蚁寻找事物完全是随机选择路径,随后寻找该事物源的过程中就会受到先前蚂蚁所残留的信息素的影响,其表现为蚂蚁在选择路径时趋向于选择信息素浓度高的路径,同时信息素是一种挥发性化学物,会随着时间的推移慢慢的消逝。如果每只蚂蚁在单位距离留下的信息素相同,那对于较短路径上残留的信息素浓度就相对较高,这被后来的蚂蚁选择的概率就大,从而导致这条短路径上走的蚂蚁就越多,而经过的蚂蚁越来,该路径上残留的信息素也将更多,这样使得整个蚂蚁的集体行为构成了信息素的正反馈过程,从而找到比较短的路径。 蚁群算法抽象模型 蚂蚁在运动过程中根据各条路径上的信息量决定转移方向,用禁忌表来记录蚂蚁所走过的结点,其在选择过程中做动态调整。 搜索过程中蚂蚁根据各条路径上的信息量和路径的启发信息来计算转移概率。 为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一步或者完成一次搜索循环后要对残留信息进行更新成立,因此引入信息素挥发机制,模拟人脑的记忆,会随时间的推移而逐渐淡化甚至忘记。 信息素更新机制 信息素根据下式进行更新 其中 状态转移规则 一只位于节点r的蚂蚁通过应用下式给出的规则选择下一个将要移动到的城市s 其中,S根据下列公式得到 状态转移规则 q是在[0,1]区间均匀分布的随机数 q0的大小决定了利用先验知识与探索新路径之间的相对重要性。 上述状态转移规则被称为伪随机比例规则 特点:倾向于选择短的且有着大量信息素的边作为移动方向 蚁群算法的应用:TSP问题 TSP思路 TSP思路 代码(1):数据初始化 m 31; C [1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1004; 4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695;3715 1678; 3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2367; 3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975]; Nc_max 10; alpha 1; beta 5; rho 0.5;%0 rho 1,表示路径上信息素的衰减系数Q 100;%蚂蚁释放的信息素量 代码(1):数据初始化 n size C,1 ;%表示TSP问题的规模,亦即城市的数量 D ones n,n ;%记录城市之间的距离 for i 1:n for j 1:n if i j D i,j sqrt C i,1 -C j,1 ^2+ C i,2 -C j,2 ^2 ; end D j,i D i,j ; end end eta 1./D;%启发式因子,这里设为城市之间距离的倒数 pheromone ones n,n ;%信息素矩阵,这里假设任何两个城市之间路径上的初始信息素都为1 tabu_list zeros m,n ;%禁忌表,记录蚂蚁已经走过的城市,蚂蚁在本次循环中不能再经过这些城市。 %当本次循环结束后,禁忌表被用来计算蚂蚁当前所建立的解决方案,即经过的路径和路径的长度 Nc 0;%循环次数计数器 routh_best zeros Nc_max,n ;%各次循环的最短路径 length_best ones Nc_max,1 ;%各次循环最短路径的长度 代码(2):形成初始解 while Nc Nc_max %将m只蚂蚁放在n个城市上 rand_position []; %[]为空矩阵 for i 1:ceil m/n %ceil数值函数功能为朝向无穷大方向取整 rand_position [rand_position,randperm n ]; % p randperm n 返回1:n的一个随机排列 end tabu_list :,1 rand_position 1:m ;%将蚂蚁放在城市上之后的禁忌表. %m只蚂蚁按概率函数选择下一座城市,在本次循环中完成各自的周游 for j 2:n for i 1:m city_visited

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档