智能优化算法之蚁群算法(1)

蚁群算法(ant colony algorithm) : 一种模拟进化算法

蚂蚁在觅食过程中能够在其经过的路径留下一种称为信息素的物质,并在觅食的过程中能感知这种物质的强度,并指导自己的行动方向,他们总是朝着该物质强度高的方向移动,因此大量蚂蚁组成的集体觅食就表现为一种对信息素的正反馈现象。(非常符合常识对吧,这就是智能优化算法的魅力)
蚁群算法寻优的快速性是通过正反馈式的信息传递和积累来保证的。而算法的早熟性收敛又可以通过其分布计算特征加以避免。

下面介绍五种蚁群算法的过程:(第一种较经典,后四种均为改进方法)

  1. 蚂蚁系统

     ①初始化 : 初始时刻,m只蚂蚁随机放置,(第一次迭代)各条路径上的信息素初始值相等,设τij(t) = τ0为信息素初始值,可设τ0 = m/Lm,Lm是由最近邻启发式方法构造的路径长度。
     ②状态转移 : 蚂蚁k(k = 1,2,...m)按照随机比例规则选择下一步要转移的城市,选择概率为
    

在这里插入图片描述

τij(t) 为边(i,j)上的信息素;
ŋij(t)是启发函数,表示蚂蚁从i到j的期望程度,其表达式为ŋij(t) = 1/dij,(dij为i到j的距离);
allowedk为蚂蚁k下一步被允许访问的点集合;
α为信息启发因子,反应蚂蚁在运动过程中所积累的信息素在指导蚁群搜索中的相对重要程度;
β为期望启发因子,反应启发式信息在指导蚁群搜索过程中的相对重要程度。

③禁忌表 : 为了不让蚂蚁选择已经访问过的地方,采用禁忌表的形式来记录蚂蚁k当前所走过的地方。
④信息素更新 : 信息素挥发+信息素释放
信息素更新公式如下

在这里插入图片描述

其中ρ为信息素挥发因子,且ρ∈(0,1),ρ的大小直接影响到蚁群的全局搜索能力及收敛速度。
ρ过小时,以前搜索过的路径再次被选择的可能性变大,容易出现局部收敛现象。
ρ过大时,算法有较强的随机性和全局搜索能力,但搜索能力降低。

根据信息素更新策略的不同,Dorigo(蚁群算法的提出者)曾给出三种不同的模型,分别称为Ant-Cycle模型、Ant-Quantity模型和Ant-Density模型其区别在于Δ τijk(t)的计
算方式不同。其中Ant-Cycle模型利用的是整体信息,及蚂蚁完成一个循环(每个蚂蚁都走过了所有地方)后更新所有路径上的信息素(全局更新);
Ant-Quantity模型和Ant-Density模型则利用的是局部信息,即蚂蚁完成一步后更新路径上的信息素(局部更新)。
Ant-Cycle Δ τijk(t) = Q/Lk (Lk是第k只蚂蚁的路径长度)
Ant-Quantity Δ τijk(t) = Q/dij(dij是i到j的距离)
Ant-Density Δ τijk(t) = Q(Q为信息素强度)

Q为自定义数值,其作用是充分利用全局信息反馈量,使算法在正反馈机制的作用下以合理的速度找到问题最优解。Q越大,越有利于算法的快速收敛,但当Q特别大时,虽然收敛速度很快,但其全局搜索能力变差,易限于局部最优解,故其计算性能也不稳定。
在这里插入图片描述在这里插入图片描述
(摘自 任瑞春.基于排序加权的蚁群算法[D].大连:大连海事大学,2006:16-17.)
我们上一章提过,智能优化算法具有随机性,参数选择依赖经验,就应用最多的Ant-Cycle模型而言,最好的经验结果是0≤α≤5;0≤β≤5;0.10≤ρ≤0.99;10≤Q≤10000(段海滨.蚁群算法原理及其应用[M].北京:科学出版社,2005)

⑤蚂蚁完成一次循环后,清空禁忌表,重新回到初始地点,准备下一次周游(循环)。

为了理解,附上解决相关问题的代码

%%TSP旅行商问题%%
%%算法:蚁群算法(蚂蚁系统+蚁周模型)%%

%%算法介绍:
%%①初始化 :初始化 : 初始时刻,m只蚂蚁随机放置。
%%②状态转移 : 蚂蚁k(k = 1,2,...m)按照随机比例规则选择下一步要转移的城
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值