美文网首页
蚁群算法

蚁群算法

作者: ZhSong | 来源:发表于2020-04-16 18:01 被阅读0次

蚁群可以在不同的环境下,寻找到达实物源的最短路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。这种信息机制就是在蚂蚁走过的路径上,会留下”信息素“,而这些信息素就形成了一种正反馈的机制,当然信息素会随着时间的流逝,逐渐消失。这种正反馈会最终帮助蚁群找到一条到达实物源的路径。利用这种机制,就可以找到图结构中的最短路径。

蚁群系统的模型

包含的元素:

  • 图中的结点,初始结点和目标结点
  • 智慧的蚂蚁
  • 信息素 \tau (在图结构中体现为边上的数字)

蚂蚁是如何在一个分叉口做选择的呢?

  • 选择某一条路的可能性 = 这条路上的信息素数量/所有可能路线上的信息素数量的总和

蚂蚁是如何在更新信息素数量的呢?
\tau(e) = \left\{ \begin{array}{**lr**} (1-\rho)\cdot \tau(e) \ \ \ 如果该路径没有被走过 & \\ (1-\rho)\cdot \tau(e) + 新的信息素 \ 如果该路径被走过 & \end{array} \right.
在公式中:

\rho, 0\le \rho \le1 是蒸发率,也就是信息素消失的速率

\tau(e)是在路径e上的信息素总量

如果蚂可以记住已经走过的路,那么就会根据下面这个公式选择:
选择某一条路径的可能性 = \left\{ \begin{aligned} &0 ,如果这条路已经走过\\ & 当前路径的信息素/所有不存在于已经走过的路的信息素之和 , 如果这条路还没走过\\ \end{aligned} \right.
如果蚂蚁可以记住已经走过的路径,而且还能知道没走过的路的路径长度,那么就会根据下面这个公式选择
选择某一条路径的可能性 = \left\{ \begin{aligned} &0 ,如果这条路已经走过\\ & \frac{[\tau(e)]^\alpha\cdot[\eta(e)]^\beta}{\sum_{e' = (u,v'),v'\notin M_k}[\tau(e')]^\alpha\cdot[\eta(e')]^\beta} \\ \end{aligned} \right.
\tau(e)是某条路径上的信息素总数

\eta(e)是某条路径长度的倒数

\alpha\beta是平衡因子

求和符号下面的那一串是想表达e'是未走过的内容

相关文章

  • TSP解决之道——蚁群算法

    参考 蚁群算法java实现以及TSP问题蚁群算法求解 蚁群算法原理与应用讲解 蚁群算法原理与应用1-自然计算与群体...

  • 蚁群算法简单介绍

    蚁群算法的基本原理 蚁群算法(Ant Colony Optimization, ACO)是通过模拟蚂蚁觅食的原理,...

  • 蚁群算法

    https://blog.csdn.net/kwame211/article/details/80347593

  • 蚁群算法

    简述 在蚂蚁种群中,蚂蚁间相互交流的方式是通过一种名为信息素的物质,它可以是蚂蚁行动时留下的物质,可以被其他蚂蚁所...

  • 蚁群算法

    伪代码解释(TSP):1.首先初始化启发值和信息素浓度2.进入一个大循环:(1)首先随机初始化一个开始节点,其他节...

  • 蚁群算法

    蚁群可以在不同的环境下,寻找到达实物源的最短路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。这种信息...

  • TSP问题—蚁群算法(ACO)

    TSP问题—蚁群算法(ACO) 蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo...

  • awesome 蚁群算法

    蚁群算法介绍(以TSP问题为例)

  • 蚁群算法aoc

    function [R_best,L_best,L_ave,Shortest_Route,Shortest_Len...

  • 蚁群算法代码

网友评论

      本文标题:蚁群算法

      本文链接:https://www.haomeiwen.com/subject/giydvhtx.html