当前位置:
文档之家› 人工智能07蚁群算法及其应用
人工智能07蚁群算法及其应用
蚁群算法的特征
算法优点: • (1)求解问题的快速性——由正反馈机 制决定 • (2)全局优化性——由分布式计算决定, 避免蚁群在寻优空间中过早收敛 • (3)有限时间内答案的合理性——由贪 婪式搜索模式决定,使能在搜索过程的早 期就找到可以接受的较好解
蚁群算法的基本思想
开始
算法流程图:
初始化
迭代次数 Nc=Nc+1
第七章 蚁群算法及其应用
蚁群算法的背景
• 20世纪50年代中期创立了仿生学,人们从 生物进化的机理中受到启发。提出了许多 用以解决复杂优化问题的新方法,如进化 规划、进化策略、遗传算法等,这些算法 成功地解决了一些实算法的背景
• 仿生算法 • 集群智能算法 • 概率型算法
(六)一种新的自适应蚁群算法 AACA
特点:将ACS中的状态转移规则改为自适应伪随机 比率规则,动态调整转移概率,以避免出现 停滞现象。
说明:在ACS的状态转移公式中,q0 是给定的常数; 在AACA中,q0 是随平均节点分支数ANB而变 化的变量。ANB较大,意味着下一步可选的城市较 多,q0 也变大,表示选择信息素和距离最好的边的 可能性增大;反之减小。
(七)基于混合行为的蚁群算法 HBACA
特点:按蚂蚁的行为特征将蚂蚁分成4类,称为4个子蚁 群,各子蚁群按各自的转移规则行动,搜索路径,每迭 代一次,更新当前最优解,按最优路径长度更新各条边 上的信息素,如此直至算法结束。
蚂蚁行为——蚂蚁在前进过程中,用以决定其下一步移 动到哪个状态的规则集合。
1、蚂蚁以随机方式选择下一步要到达的状态。
蚁群算法的背景
• 概念原型 各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始
寻找食物。 当一只找到食物以后,它会向环境释放一种挥发性分泌物
pheromone (称为信息素,该物质随着时间的推移会逐渐挥发消失, 信息素浓度的大小表征路径的远近)来实现的,吸引其他的蚂蚁过 来,这样越来越多的蚂蚁会找到食物。
▲蚁群系统(ACS)
▲最大-最小蚂蚁系统(MMAS)
▲基于优化排序的蚂蚁系统
(ASrank) ▲最优最差蚂蚁系统(BWAS) ▲一种新的自适应蚁群算法(AACA) ▲基于混合行为的蚁群算法(HBACA)
• 一般蚁群算法的框架主要有三个组成部分: 1. 蚁群的活动; 2. 信息素的挥发; 3. 信息素的增强;
蚁群算法的提出
• 简化的蚂蚁寻食正反馈过程
蚂蚁从A点出发,速度相同,食物在D点,可能随机选择路线 ABD或ACD。假设初始时每条路线分配一只蚂蚁,每个时间单位行 走一步,本图为经过9个时间单位时的情形:走ABD的蚂蚁到达终 点,而走ACD的蚂蚁刚好走到C点,为一半路程。
蚁群算法的提出
本图为从开始算起,经过18个时间单位时的情形: 走ABD的蚂蚁到达终点后得到食物又返回了起点A,而 走ACD的蚂蚁刚好走到D点。
有些蚂蚁并没有像其它蚂蚁一样总重复同样的路,他们会另 辟蹊径,如果另开辟的道路比原来的其他道路更短,那么,渐渐 地,更多的蚂蚁被吸引到这条较短的路上来。
最后,经过一段时间运行,就可能会出现一条最短的路径被 大多数蚂蚁重复着。
蚁群算法的提出
• 算法的提出 蚁群算法(Ant Colony Optimization,
蚁群算法的基本思想
• 4、每只蚂蚁只能走合法路线(经过每个城 市1次且仅1次),为此设置禁忌表来控制。 • 5、所有蚂蚁都搜索完一次就是迭代一次, 每迭代一次就对所有的边做一次信息素更新, 原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。 • 6、更新信息素包括原有信息素的蒸发和经 过的路径上信息素的增加。 • 7、达到预定的迭代步数,或出现停滞现象 (所有蚂蚁都选择同样的路径,解不再变化), 则算法结束,以当前最优解作为问题的解输出。
蚂蚁 2、蚂蚁以贪婪方式选择下一步要到达的状态。 行为 3、蚂蚁按信息素强度选择下一步要到达的状态。
(三)最大最小蚂蚁系统 MMAS
特点
1、每次迭代后,只对最优解所属路径上的信 息素更新。
2、对每条边的信息素量限制在范围 min , max
内,目的是防止某一条路径上的信息素量远 大于其余路径,避免过早收敛于局部最优解。
关于 min , m的ax 取值,没有确定的方法,有的
书例子中取为0.01,10;有的书提出一个在最大 值给定的情况下计算最小值的公式。
若按以上规则继续,蚁群在ABD路线上再增派一只蚂蚁(共3 只),而ACD路线上仍然为一只蚂蚁。再经过36个时间单位后,两 条线路上的信息素单位积累为24和6,比值为4:1。
若继续进行,则按信息素的指导,最终所有的蚂蚁会放弃ACD路 线,而都选择ABD路线。这也就是前面所提到的正反馈效应。
蚁群算法的提出
蚁群算法的提出
• 基本原理
蚁群算法是对自然界蚂蚁的寻径方式进行模似 而得出的一种仿生算法。
蚂蚁在运动过程中,能够在它所经过的路径上 留下一种称之为信息素(pheromone)的物质进行信 息传递,而且蚂蚁在运动过程中能够感知这种物 质,并以此指导自己的运动方向,因此由大量蚂 蚁组成的蚁群集体行为便表现出一种信息正反馈 现象:某一路径上走过的蚂蚁越多,则后来者选 择该路径的概率就越大。
3 目标值控制规则,给定优化问题(目标最小化)的一个下界和一 个误差值,当算法得到的目标值同下界之差小于给定的误差值时, 算法终止。
TSP应用举例
TSP应用举例
TSP应用举例
TSP应用举例
TSP应用举例
TSP应用举例
改进的蚁群优化算法
改进的 蚁群算法
▲最优解保留策略蚂蚁系统(带精
英策略的蚂蚁系统ASelite)
人工蚁群 VS 自然蚁群
蚁群算法的特征
蚁群算法采用了分布式正反馈并行计算机制, 易于与其他方法结合, 并 具有较强的鲁棒性。 • (1)其原理是一种正反馈机制或称增强型学习系统;它通过信息素 的不断更新达到最终收敛于近似最优路径上; • (2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实际蚂蚁 的一种简单模拟,它融进了人类的智能; • (3)它是一种分布式的优化方法;不仅适合目前的串行计算机,而 且适合未来的并行计算机; • (4)它是一种全局优化的方法;不仅可用于求解单目标优化问题, 而且可用于求解多目标优化问题; • (5)它是一种启发式算法;计算复杂性为 O(NC*m*n2),其中NC 是迭 代次数,m 是蚂蚁数目,n 是目的节点数目。
蚁群算法的提出
假设蚂蚁每经过一处所留下的信息素为一个单位,则经过36 个时间单位后,所有开始一起出发的蚂蚁都经过不同路径从D点取 得了食物,此时ABD的路线往返了2趟,每一处的信息素为4个单位, 而 ACD的路线往返了一趟,每一处的信息素为2个单位,其比值为 2:1。
寻找食物的过程继续进行,则按信息素的指导,蚁群在ABD路线 上增派一只蚂蚁(共2只),而ACD路线上仍然为一只蚂蚁。再经 过36个时间单位后,两条线路上的信息素单位积累为12和4,比值 为3:1。
蚁群算法的数学模型
第二步:选择路径路径 在t时刻,蚂蚁k从城市i转移到城市j的概率为:
蚁群算法的数学模型
蚁群算法的数学模型
蚁群的规模和停止规则
第四步:输出结果 若未达到终止条件则转步骤二,否则,输出目 前的最优解。
• 蚁群大小: 一般情况下蚁群中蚂蚁的个数不超过TSP图中节点的个数。
• 终止条件: 1 给定一个外循环的最大数目,表明已经有足够的蚂蚁工作; 2 当前最优解连续K次相同而停止,其中K是一个给定的整数,表示 算法已经收敛,不再需要继续;
ij
——精英蚂蚁在边
ij上增加的信息素量;
——精英蚂蚁个数;
Lgb ——当前全局最优解路径长度。
(二)蚁群系统 ACS
1、状态转移规则——伪随机比率规则
特点
设 q0 (0,1)为常数, q (0,1)为随机数,
如果 q [τij (t )]α
q0 [ηij (t
,则蚂蚁转移的下一座城市是使 )]β取最大值的城市;若 q q0 ,
蚂蚁k=1
蚂蚁k=k+1
按照状态转移概率公式选择 下一个元素
修改禁忌表
结束
N
K>=蚂蚁总数m?
Y
按照公式进行 信息量更新
输出程序计 算结果
Y N
满足结束条件?
蚁群算法的基本思想
以TSP问题为例: • 1、根据具体问题设置多只蚂蚁,分头并行 搜索。 • 2、每只蚂蚁完成一次周游后,在行进的路 上释放信息素,信息素量与解的质量成正比。 • 3、蚂蚁路径的选择根据信息素强度大小 (初始信息素量设为相等),同时考虑两点之 间的距离,采用随机的局部搜索策略。这使得 距离较短的边,其上的信息素量较大,后来的 蚂蚁选择该边的概率也较大。
仍按转移概率确定。 一般,q0取值较大。
2、全局更新规则——只有精英蚂蚁才允许释放 信息素,即只有全局最优解所属的边才增加
信息素。
3、局部更新规则——蚂蚁每次从城市 i转移到
城市 后j ,边 i, j上 的信息素适当减少。
规则1和2都是为了使搜索过程更具有指导性,即使 蚂蚁的搜索主要集中在当前找出的最好解邻域内。规则 3则是为了使已选的边对后来的蚂蚁具有较小的影响力, 以避免蚂蚁收敛到同一路径。
蚁群算法的数学模型
• TSP算例分析
旅行商问题(TSP)
给定n个城市和两个两个城市之间的距离, 要求确定一条经过所有城市仅一次的最短路 径。
第一步:初始化 将m只蚂蚁随机放到n个城市,每只蚂蚁的禁忌表为蚂蚁当前所在 城市,各边信息素初始化为c。 禁忌表体现了人工蚂蚁的记忆性,使得蚂蚁不会走重复道路,提 高了效率。
• 人工蚁群算法
基于以上蚁群寻找食物时的最优路径选择问题, 可以构造人工蚁群,来解决最优化问题,如TSP问题。
人工蚁群中把具有简单功能的工作单元看作蚂蚁。 二者的相似之处在于都是优先选择信息素浓度大的路 径。较短路径的信息素浓度高,所以能够最终被所有 蚂蚁选择,也就是最终的优化结果。