多目标优化蚁群算法的matlab_经典优化算法 | 蚁群算法解析

点击上方“计算机视觉cv”即可“进入公众号”

重磅干货第一时间送达

蚁群算法基本思想

蚁群算法的基本原理来源于自然界中蚂蚁觅食的最短路径问题。根据昆虫学家的观察,发现自然界的蚂蚁虽然视觉不发达,但它可以在没有任何提示的情况下找到从食物源到巢穴的最短路径,并且能在环境发生变化(如原有路径上有了障碍物)后,自适应地搜索新的最佳路径。蚂蚁是如何做到这一点的呢?

原来,蚂蚁在寻找食物源时,能在其走过的路径上释放一种蚂蚁特有的分泌物一信息激素一也可称之为信息素,使得一定范围内的其他蚂蚁能够察觉到并由此影响它们以后的行为。当一些路径上通过的蚂蚁越来越多时,其留下的信息素也越来越多,以致信息素强度增大(当然,随时间的推移会逐渐减弱),所以蚂蚁选择该路径的概率也越高,从而更增加了该路径的信息素强度,这种选择过程被称之为蚂蚁的自催化行为。由于其原理是一种正反馈机制.因此,也可将蚂蚁王国理解为所谓的增强型学习系统。

在自然界中,蚁群的这种寻找路径的过程表现为一种正反馈过程,“蚁群算法”就是模仿生物学蚂蚁群觅食寻找最优路径原理衍生出来的。

蚁群算法数学模型

应该说前面介绍的蚁群算法只是一种算法思想,要是想真正应用该算法,还需要针对一个特定问题, 建立相应的数学模型。现仍以经典的TSP问题为例,来进一步阐述如何基于蚁群算法来求解实际问题。

对于TSP问题,为不失一般性,设整个蚂蚁群体中蚂蚁的数量为m,城市的数量为n,城市i与城市j之间的距离为 (i,j=1,2,…,n),t时刻城市i与城市j连接路径上的信息素浓度为(t)。初始时刻,蚂蚁被放置在不同的城市里,且各城市间连接路径上的信息素浓度相同,不妨设(0)=(0)。然后蚂蚁将按一定概率选择线路,不妨设为t时刻蚂蚁k从城市i转移到城市j的概率。我们知道,“蚂蚁TSP”策略会受到两方面的左右,首先是访问某城市的期望,另外便是其他蚂蚁释放的信息素浓度,所以定义:

3d651b1265101f9c43e2ba979810a58e.png

其中, 为启发函数,表示蚂蚁从城市i转移到城市j的期望程度:(k=1, 2, …, m)为蚂蚁k待访问城市集合,开始时,中有n一1个元素,即包括除了蚂蚁k出发城市的其他多有城市, 随着时间的推移,中的元素越来越少,直至为空;a为信息素重要程度因子,简称信息度因子。其值越大,表示信息影响强度越大;为启发函数重要程度因子,简称启发函数因子,其值越大,表明启发函数影响越大。

在蚂蚁遍历城市的过程中,与实际情况相似的是,在蚂蚁释放信息素的同时,各个城市间连接路径上的信息素的强度也在通过挥发等方式逐渐消失。为了描述这一特征,不妨令p(0

306f09e1321f7ddbbdd9bc048042031f.png

其中,为第k只蚂蚁在城市i与城市j连接路径上释放信息素而增加的信息素浓度;为所有蚂蚁在城市i与城市j连接路径上释放信息素而增加的信息素浓度。

一般的值可由ant cycle system模型进行计算:

d674d815f1a0461aabb3f060156ad6b2.png

其中,Q为信息素常数,表示蚂蚁循环一次所释放的信息素总量;为第k只蚂蚁经过路径的总长度。

蚁群算法流程

用蚁群算法求解TSP问题的算法流程如下图所示,具体每步的含义如下:

  • 步骤1:对相关参数进行初始化,包括蚁初始化群规模、信息素因子、启发函数因子、信息素、挥发因子、信息素常数、最大迭代次数等,以及将数据读人程序,并对数据进行基本的处理,如将城市的坐标位置,转为城市间的矩阵。
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值