蚁群算法

这里写自定义目录标题


基于TSP问题的基本蚁群算法:

TSP求解中,假设蚁群算法中的每只蚂蚁是具有以下特征的简单智能体:

每次周游,每只蚂蚁在其经过的支路(i,j)上都留下信息素。

‚蚂蚁选择城市的概率与城市之间的距离和当前连接支路上所包含的信息素余量有关。

ƒ为了强制蚂蚁进行合法的周游,直到一次周游完成后,才允许蚂蚁游走已访问过的城市(这可由禁忌表来控制)。

基本蚁群的两个过程:

(1)状态转移

(2)信息素更新

路径构建
AS中的随机比例规则;对于每只蚂蚁k ,路径记忆向量 按照访问顺序记录了所有k已 经经过的城市序号。设蚂蚁k当前所在城市为i, 则其选择城市j作为下一个访问对象的概率为:

这里m是蚂蚁个数, ρ是信息素的蒸发率,规定0≤ ρ≤1, 在AS中通常设置为 ρ =0.5,Δτij是第k只蚂蚁在它经过的 边上释放的信息素量,它等于蚂蚁k本轮构建路径长度的 倒数。Ck表示路径长度,它是Rk中所有边的长度和。蚁群算法_第1张图片
蚁群算法_第2张图片
蚁群算法_第3张图片

在这里插入图片描述首先生成随机城市距离数据
图像
蚁群算法_第4张图片
图像为
蚁群算法_第5张图片
蚁群算法_第6张图片原始参数
蚁群算法_第7张图片
修改后的参数
蚁群算法_第8张图片
图像
蚁群算法_第9张图片
蚁群算法_第10张图片
计算过程:
(1)根据具体问题设置多只蚂蚁,分头并行搜索。
(2)每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。
(3)蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。
(4)每只蚂蚁只能走合法路线(经过每个城市1次且仅1次),为此设置禁忌表来控制。
(5)所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。
(6)更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。
(7)达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解。

信息因子:
lpha:信息素程度重要因子。反映了蚂蚁在移动过程中所积累的信息量在指导蚁群搜索中的相对程度。
beta:启发函数重要程度因子。反映了启发式信息中先指导蚁群搜索过程中的相对重要程度,反映的事蚁群寻优过程中先验性和确定性因素的作用强度。
rto:信息素挥发因子。表示信息素的消失水平,关系到蚁群算法的全局搜索能力和收敛速度。

实验观察得出:
1.以初始值1为标准,当随着alpha的值增大,收敛速度也在增快。但当alpha的值过大时迭代效果的变化已经不明显了。其值越大,蚂蚁选择以前走过的路径概率大,搜索随机性减弱。值过小,等同于贪婪算法,使搜索过早陷入局部最优。
2.以初始值5为标准,beta的值减小时收敛效果不好。beta的值增大收敛速度也提高,但容易陷入局部最优。过小时,容易陷入随机搜索,找不到最优解。
3.以初始值1为标准,rto向上向下调整后收敛速度都提高了。

蚁群算法特点

蚁群算法是一种基于多主体的智能算法,不是单个蚂蚁行动,而是多个蚂蚁同时搜索,具有分布式的协同优化机制。
本质上属于随机搜索算法(概率算法),具有概率搜索的特征。
是一种全局搜索算法,能够有效地避免局部最优。
(1)较强的鲁棒性——稍加修改即可应用于其他问题;
(2)分布式计算——本质上具有并行性;
(3)易于与其他启发式算法结合

你可能感兴趣的:(蚁群算法)