评论

启发式优化算法理论及应用 | 蚁群算法的应用(二)

原标题:启发式优化算法理论及应用 | 蚁群算法的应用(二)

本书系统、全面地介绍了用于求解最优化问题的10种智能启发式算法的基本思想、设计原理及应用案例,分别为遗传算法、蚁群算法、模拟退火算法、禁忌搜索算法、大邻域搜索算法、变邻域搜索算法、迭代局部搜索算法、粒子群算法、人工免疫算法及人工神经网络。

第3章介绍了蚁群算法的思想及特点,并重点分析了蚁群算法在旅行商问题及函数极值问题中的应用。

01

蚁群算法在函数极值问题中的应用

本案例的寻优函数如下:

求解步骤如下:

步骤1:初始化蚂蚁只数m=300,最大迭代次数iter_max=80,信息素挥发因子Rho=0.9,转移概率常数P0=0.2,局部搜索步长step=0.05。

步骤2:随机产生蚂蚁初始位置,计算适应度函数值,设为初始信息素,计算状态转移概率。其计算公式如下:

其中,max(Tau)表示信息素的最大值,Tau(i)表示蚂蚁i的信息素,P(iter,i)表示第iter次迭代蚂蚁i的转移概率值。

步骤3:进行位置更新,当状态转移概率小于转移概率常数时,进行局部搜索,搜索公式为new=old+r1·step·λ,其中new为待移动的位置,old为蚂蚁当前位置,r1为[-1,1]的随机数,step为局部搜索步长,λ为当前迭代次数的倒数;当状态转移概率大于转移概率常数时,进行全局搜索,搜索公式为new=old+r2·range,其中r2为[-0.5,0.5]的随机数,range为自变量的区间大小。

通过判断待移动位置的函数值与当前位置函数值的大小来确定是否更新蚂蚁当前的位置,并利用边界吸收方式进行边界条件处理,将蚂蚁位置界定在取值范围内。

步骤4:计算新的蚂蚁位置的适应度值,判断蚂蚁是否移动,更新信息素,

更新公式为Tau=(1-Rho)·Tau+f,其中Rho为信息素挥发因子,Tau为信息素,f为目标函数值。

步骤5:判断是否满足终止条件。若满足,则结束搜索过程,输出优化值;若不满足,则继续进行迭代优化。

具体MATLAB代码见附录4。

02

参考书籍

返回搜狐,查看更多

    责任编辑:

    平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
    阅读 ()
    大家都在看
    推荐阅读