- 364
- 0
- 约6.55千字
- 约 27页
- 2021-01-21 发布于湖北
- 举报
蚁群算法的基本原理及其应用 专 业:控制理论与控制工程 年 级:2009级 姓 名:吕坤 学 号指导老师:赵明旺 蚁群算法 蚁群算法的原理、特点 蚁群算法的模型 蚁群算法的研究及应用 蚁群算法的提出 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。 Macro Dorigo 蚁群现象:在蚁群寻找食物时,它们总能找到一条从食物到巢穴之间的最优路径,并且能随着环境的变化而变化的搜索新的最优路径。 Nest Food Obstacle 图1 蚂蚁正常行进,突然环境改变,增加了障碍物 Nest Food Obstacle 图2 蚂蚁以等同概率选择各条路径 紧接着,随着时间的增加 较短路径信息素浓度高,选择该路径的蚂蚁逐渐增多 图3 蚂蚁选路过程示例 E A B D H C E A B D H C d=0.5 d=0.5 d=1 d=1 30ants 30ants 15ants 15ants 15ants 15ants t=0 E A B D H C 30ants 30ants 20ants 20ants 10ants 10ants t=1 Nest Food Obstacle 图4 蚂蚁最终绕过障碍物找到最优路径 蚁群算法原理 蚂蚁在寻找食物源时,能在其走过的路上释放一种特殊的分泌物——信息素 (随着时间的推移该物质会逐渐挥发), 后来的蚂蚁选择该路径的概率与当时这条路径上该物质的强度成正比. 当某路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多,后来蚂蚁选择该路径的概率也越高,更增加了该路径的信息素强度。 而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制, 通过这种正反馈机制,蚂蚁最终可以发现最短路径。 特别地,当蚂蚁巢穴与食物源之间出现障碍物时,蚂蚁不仅可以绕过障碍物,而且通过蚁群信息素轨迹在不同路径上的变化,经过一段时间的正反馈,最终收敛到最短路径上。 蚁群算法的特点 (1)其原理是一种正反馈机制或称增强型学习系统;它通过信息素的不断更新达到最终收敛于最优路径上; (2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实际蚂蚁的一种简单模拟,它融进了人类的智能; (3)它是一种分布式的优化方法;不仅适合目前的串行计算机,而且适合未来的并行计算机; (4)它是一种全局优化的方法;不仅可用于求解单目标优化问题,而且可用于求解多目标优化问题; (5)它是一种启发式算法;计算复杂性为 其中NC 是迭代次数,m 是蚂蚁数目,n 是目的节点数目。 (1)参数初始化。令时间 和循环次数 ,设置最大循环次数 ,将m 只蚂蚁置于 n(mn)个城市上 ,令有向图上每条边 (i,j)的初始化信息量 ,其中 表示常数,且初始时刻 。 (2)循环次数 。 (3)蚂蚁数目 。 (4)蚂蚁个体根据状态转移概率公式(后面介绍)计算的概率选择城市 j并前进, (5)修改禁忌表指针,即选择好之后将蚂蚁移动到新的城市,并把该城市移动到该蚂蚁个体的禁忌表中。 (6)若集合C 中城市未遍历完,即 km,则跳转到第(3)步,否则执行第(7)步。 (7)更新每条路径上的信息量,计算公式将在后面介绍。 (8)若满足结束条件,即如果循环次数 ,则循环结束并输出程序计算结果,否则清空禁忌表并跳转到第(2)步。 蚁群算法求解的一般步骤 蚁群算法流程图 禁忌表:与真实蚁不同,人工蚁群系统具有记忆功能。为了满足蚂蚁必须经过所有n个不同的城市这个约束条件,为每只蚂蚁都设计了一个数据结构,成为禁忌表。用来记录了t时刻蚂蚁已经经过的城市,不允许该蚂蚁在本次循环中再经过这些城市。当本次循环结束后禁忌表被用来计算该蚂蚁所建立的解决方案。之后禁忌表清空蚂蚁又可以自由地选择。 蚁群算法相关符号的定义 m ——蚂蚁个数; n —— 结点(顶点)个数; —— 边弧 的能见度(visibility), 或称局部启发因子,一般取 , 表示路径 之间的长度;(由城市i转移到城市j的可见度亦称启发信息) —— 边弧 的信息素轨迹强度(intensity); —— 蚂蚁k 于弧上 留下的单位长度轨迹信息素数量;
原创力文档

文档评论(0)