APP下载

概率型演算法之蚁群演算法

消息来源:baojiabao.com 作者: 发布时间:2024-11-29

报价宝综合消息概率型演算法之蚁群演算法

蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的概率型算法。这种算法具有分布计算、资讯正反馈和启发式搜寻的特征,本质上是进化算法中的一种启发式全域性优化算法。

算法原理

蚁群算法是模拟自然界中蚂蚁的群体行为。用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的资讯素量较多,随着时间的推进,较短的路径上累积的资讯素浓度逐渐增高,选择该路径的蚂蚁个数也愈来愈多。最终所有的蚂蚁都会选择最短路径 ,此时对应的便是待优化问题的最优解。

算法规则

1、觅食规则

蚂蚁感知范围是一个3*3的格子,也就是说,这个格子中有食物就直接过去。

2、移动规则

蚂蚁会朝着资讯素浓的地方移动,如果没有感知到资讯素,就会按著惯性一直走下去。

3、避障规则

蚂蚁在遇到障碍物的时候会选择随机方向移动,同时遵循上面两个规则。

4、资讯素规则

蚂蚁在刚发现食物的时候挥洒的资讯素会多,距离越远,资讯素越少。

算法流程

1、对相关引数进行初始化,包括蚁群规模、资讯素因子、启发函式因子、资讯素挥发因子、资讯素常数、最大迭代次数等,以及将资料读入程式,并进行预处理。

2、随机将蚂蚁放于不同出发点,对每个蚂蚁计算其下个访问位置,直到有蚂蚁访问完所有位置。

3、计算各蚂蚁经过的路径长度,记录当前迭代次数最优解,同时对路径上的资讯素浓度进行更新。

4、判断是否达到最大迭代次数,若否,返回步骤2;是,结束程式。

5、输出结果,并根据需要输出寻优过程中的相关指标,如执行时间、收敛迭代次数等。

在使用该算法时,首先生成一定数量的蚂蚁,让每只蚂蚁形成初始解,再从问题的初始状态出发,根据"激素"浓度来选择下一个要转移的路径,直至建立起一个解,并根据路径的好坏释放一定浓度的激素,之后再开始新的解。

算法特点

1、采用正反馈机制,使得搜寻过程不断收敛,最终逼近最优解。

2、每个个体可以通过释放资讯素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯。

3、搜寻过程采用分散式计算方式,多个个体同时进行平行计算,大大提高了算法的计算能力和执行效率。

4、启发式的概率搜寻方式不容易陷入区域性最优,易于寻找到全域性最优解。

算法应用

算法应用于其他组合优化问题,如旅行商问题、指派问题、Job—shop排程问题、车辆路由问题、图着色问题和网络路由问题等。最近几年,该算法在网络路由中的应用受到越来越多学者的关注,并提出了一些新的基于蚂蚁算法的路由算法。

2020-02-04 04:59:00

相关文章