蚁群算法
4.蚁群算法应用
信息素更新规则
1.蚁群算法简述 2.蚁群算法原理
最大最小蚂蚁系统
3.蚁群算法改进
4.蚁群算法应用
最大最小蚂蚁系统(MAX-MIN Ant System,MMAS)在基本AS算法的基础 上进行了四项改进: (1)只允许迭代最优蚂蚁(在本次迭代构建出最短路径的蚂蚁),或者至今 最优蚂蚁释放信息素。(迭代最优更新规则和至今最优更新规则在MMAS 中会被交替使用)
p( B) 0.033/(0.033 0.3 0.075) 0.081 p(C ) 0.3 /(0.033 0.3 0.075) 0.74 p( D) 0.075 /(0.033 0.3 0.075) 0.18
用轮盘赌法则选择下城市。假设产生的 随机数q=random(0,1)=0.05,则蚂蚁1将会 选择城市B。 用同样的方法为蚂蚁2和3选择下一访问 城市,假设蚂蚁2选择城市D,蚂蚁3选择城 市A。
蚁群算法
1.蚁群算法简述 2.蚁群算法原理 3.蚁群算法改进 4.蚁群算法应用
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
4.蚁群算法应用
蚁群算法(ant colony optimization, ACO),又称蚂蚁 算法,是一种用来在图中寻找优 化路径的机率型算法。 由Marco Dorigo于1992年在他 的博士论文中提出,其灵感来源 于蚂蚁在寻找食物过程中发现路 径的行为
4.蚁群算法应用
例给出用蚁群算法求解一个四城市的TSP 3 1 2 3 5 4 W dij 1 5 2 2 4 2
假设蚂蚁种群的规模m=3,参数a=1,b=2,r=0.5。 解:
满足结束条件?
否 对每只蚂蚁,随机选择一个 出发城市 i=1 否 i<n (城市数)? 是 状态转移规则 信息素局部更新规则 i=i+1
一个里程碑式的作品,
信息素全局更新规则 结束
1.蚁群算法简述 2.蚁群算法原理
蚁群系统
3.蚁群算法改进
4.蚁群算法应用
(1)使用一种伪随机比例规则(pseudorandom proportional) 选择下城市节点,建立开发当前路径与探索新路径之间的平衡。
步骤3:信息素更新。
计算每只蚂蚁构建的路径长度:C1=3+4+2+1=10, C2=4+2+1+3=10,C3=2+1+5+4=12。更新每条边上的 信息素:
k AB (1 r ) AB AB 0.5 0.3 (1/10 1/10) 0.35 3 k 1 3
如果只使用至今最优更新规则进行信息素的更新,搜索的导向性很强,算法会很快收 敛到Tb附近;反之,如果只使用迭代最优更新规则,则算法的探索能力会得到增强,但 收敛速度会下降。实验结果表明,对于小规模的TSP问题,仅仅使用迭代最优信息素更新 方式即可。随着问题规模的增大,至今最优信息素规则的使用变得越来越重要。
1.蚁群算法简述 2.蚁群算法原理
蚁群算法改进
3.蚁群算法改进
4.蚁群算法应用
1.蚁群算法简述 2.蚁群算法原理
精华蚂蚁系统(EAS)
3.蚁群算法改进
4.蚁群算法应用
思想:对算法从开始到目前为止找到的最优路径实施一种额外的强化手段 信息素更新规则
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
4.蚁群算法应用
步骤2.3:当前蚂蚁1所在城市i=B,路径记忆向量 R1=(AB),可访问城市集合J1(i) ={C, D}。计算蚂蚁1选 择C,D作为下一城市的概率:
a b C : BC BC 0.31 (1/ 5) 2 0.012 B a b 1 2 D : 0.3 (1/ 4) 0.019 BD BD p(C ) 0.012 /(0.012 0.019) 0.39 p( D) 0.019 /(0.012 0.019) 0.61
当信息素浓度也被限制在一个范围内以后,位于城市i的蚂蚁k选择城市j作为下一城 市的概率也将被限制在一个区间内。算法有效避免了陷入停滞状态(所有蚂蚁不断 重复搜索同一条路径)的可能性。
1.蚁群算法简述 2.蚁群算法原理
最大最小蚂蚁系统
3.蚁群算法改进
4.蚁群算法应用
最大最小蚂蚁系统(MAX-MIN Ant System,MMAS)在基本AS算法的基础 上进行了四项改进: (3)信息素初始值为信息素取值区间的上限,并伴随一个较小的信息素蒸发 速率。
有效地利用系统进入停滞状态后的迭代周期继续进行搜索,使算法具有更强的全局 寻优能力。
1.蚁群算法简述 2.蚁群算法原理
蚁群系统
3.蚁群算法改进
4.蚁群算法应用
开始 初始化每条边上的信息素量0 是
1997年,蚁群算法的创始人 Dorigo在“Ant colony system: a cooperative learning approach to the traveling salesman problem”一文中提出了一 种具有全新机制的ACO算 法——蚁群系统(Ant Colony System,ACS), 进一步提高了ACO算法的性 能。 ACS是蚁群算法发展史上的
用轮盘赌法则选择下城市。假设产生的随机数 q=random(0,1)=0.67,则蚂蚁1将会选择城市D。 用同样的方法为蚂蚁2和3选择下一访问城市,假设 蚂蚁2选择城市C,蚂蚁3选择城市C。
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
4.蚁群算法应用
步骤2.4:实际上此时路径已经构造完毕,蚂蚁1构建 的路径为(ABDCA)。蚂蚁2构建的路径为(BDCAB)。 蚂蚁3构建的路径为(DACBD)。
1.蚁群算法简述 2.蚁群算法原理
基本蚂蚁算法模型
3.蚁群算法改进
4.蚁群算法应用
TSP问题
旅行商问题,即TSP问题假设有一个旅行 商人要拜访n个城市,他必须选择所要走 的路径,路径的限制是每个城市只能拜 访一次,而且最后要回到原来出发的城 市。路径的选择目标是要求得的路径路 程为所有路径之中的最小值。
arg max jJ (i ) (i, j ) , (i, j)b , if q q0 k j otherwise S ,
q0是一个[0, 1]区间内的参数,当产生的随机数q≤q0时,蚂 蚁直接选择使启发式信息与信息素量的指数乘积最大的下城市节点, 我们通常称之为开发(exploitation);反之,当产生的随机数 q>q0时ACS将和各种AS算法一样使用轮盘赌选择策略,我们称之 为偏向探索(bias exploration)。 通过调整q0,我们能有效调节“开发”与“探索”之间的平 衡,以决定算法是集中开发最优路径附近的区域,还是探索其它的 区域。
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
4.蚁群算法应用
蚁群优化的本质在于: 选择机制:信息素越多的路径,被选择的概率越大。 更新机制:路径上面的信息素会随蚂蚁的经过而增长, 同时也随时间的推移逐渐挥发消失。 协调机制:蚂蚁间通过环境中的信息素来协同工作。 蚁群算法的寻优包含两个基本过程: 蚂蚁构建解:通过使一群蚂蚁并行异步访问邻近点, 逐步建立优化问题的解。 更新信息素:依据蚂蚁所构建的解修改空间内的信息 素浓度。
3.蚁群算法扩展
4.蚁群算法应用
这条路好远, 少产生信息素
这条路好近,多 产生点信息素
跟着信息素多 的准没错
食物
我走我自 己的路
该走那条 路呢?
蚁群觅食行为图
蚂蚁在寻找食物的过程中往往是随机选择路径的,但它们能感知当前 地面上的信息素浓度,并倾向于往信息素浓度高的方向行进。信息素由蚂 蚁自身释放,是实现蚁群内间接通信的物质。由于较短路径上蚂蚁的往返 时间比较短,单位时间内经过该路径的蚂蚁多,所以信息素的积累速度比 较长路径快。因此,当后续蚂蚁在路口时,就能感知先前蚂蚁留下的信息, 并倾向于选择一条较短的路径前行。 不难看出,有大量蚂蚁组成的群体的集体行为表现出了一种信息正反 馈现象:某条路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大, 蚂蚁个体之间就是通过这种信息的交流来达到搜索食物的目的,由于其他 路径上的信息素会随着时间蒸发,最终所有的蚂蚁都在最优路径上行进。
步骤1:初始化。首先使用贪心算法得到路径 (ACDBA),则Cnn=f(ACDBA)=1+2+4+3=10。 求得0=m/Cnn=3/10=0.3。初始化所有边上的信 息素ij=0。
1.蚁群算法简述 2.蚁群算法原理
3.蚁群算法改进
4.蚁群算法应用
步骤2.1:为每只蚂蚁随机选择出发城市, 假设蚂蚁1选择城市A,蚂蚁2选择城市B, 蚂蚁3选择城市D。
基本蚁群算法的特点
3.蚁群算法改进
4.蚁群算法应用
1.蚂蚁算法是一种并行的优化算法。 蚂蚁搜索食物的过程彼此独立,只通过信息素进行间接的交流。并行计算可以 显著减少计算时间。 2. 蚂蚁算法是一种正反馈算法。 一段路径上的信息素水平越高,就越能够吸引更多的蚂蚁沿着这条路径运动, 这又使得其信息素水平增加。正反馈的存在使得搜索很快收敛。 3. 蚂蚁算法的鲁棒性性能较好。 相对于其它算法,蚂蚁算法对初始路线的要求不高。也就是说,蚂蚁算法的搜 索结果不依赖于初始路线 的选择。 4. 蚂蚁算法的搜索过程不需要进行人工的调整。 蚂蚁算法可以在不需要人工干预的情况下完成从初始化到得到整个结果的整个 计算过程 缺点: 需要较长的计算时间,容易停滞 所有路径的信息素增量,会导致错误的引导 适用小规模的系统
k AC (1 r ) AC AC 0.5 0.3 (1/12) 0.16 k 1