蚁群算法

2020-04-16  本文已影响0人  ZhSong

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

蚁群系统的模型

包含的元素:

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

蚂蚁是如何在更新信息素数量的呢?
\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'是未走过的内容

上一篇 下一篇

猜你喜欢

热点阅读