蚂蚁算法所基于的自然隐喻是蚁群的隐喻。 真正的蚂蚁能够通过利用信息素信息,在不使用视觉线索的情况下找到从食物来源到它们的巢穴的最短路径。 行走时,蚂蚁会在地面上沉积信息素,并且可能会跟随其他蚂蚁先前沉积的信息素。 在图一中,我们展示了一种蚂蚁利用信息素找到两点之间最短路径的方法。
考虑图 1(
真实蚂蚁的上述行为启发了蚂蚁系统,一种由一组人工蚂蚁通过沉积在图边上的信息素交换信息来协作解决问题的算法。蚂蚁系统已应用于如下组合优化问题:
- 旅行商问题 (
$TSP$ ) - 二次分配问题
本文中介绍的算法蚁群系统 (
- i 状态转换规则提供了一种直接的方法来平衡新边的探索和先验知识的利用,以及关于问题的累积知识
- ii 全局更新规则是仅适用于属于最佳蚂蚁旅行的边
- iii 在蚂蚁构建解决方案时,应用了局部信息素更新规则(简称局部更新规则)
非正式地,$ACS$ 的工作方式如下:蚂蚁最初定位在根据一些初始化规则(例如,随机)选择的城市上。每只蚂蚁通过重复应用随机贪婪规则(状态转换规则)来构建一个游览路线(即
下面通过以下三方面来介绍
- 状态转换规则
- 全局更新规则
- 局部更新规则
在
其中
$q$ 是均匀分布在的$[0,1]$ 之间随机数,$q_0$ 是一个在$[0,1]$ 之间取值的参数,$S$ 是根据公式(2)中给出的概率分布选择的随机变量,在选择时选择概率最大的城市。
其中称
$η(i,j)$ 为能见度,其值取$1/d(i,j)$ ,即两座城市之间路径长度的倒数,且该值在算法运行期间不会被修改。其中$allowed_i^k = {N - tabu_i^k}$,指除去第
$k$ 只蚂蚁已经走过的城市,即第$k$ 只蚂蚁的禁忌表中含有的城市,更简单的记法,可以记作第$k$ 只蚂蚁所在城市$i$ 还能访问的城市集合。$β$ 是控制轨迹与可见性的相对重要性的参数。 因此,转移概率是可见性(表示应该以高概率选择附近城镇,从而实施贪婪的建设性启发式)和时间$t$ 的路径强度(表示直到时间$t$ 如果在路径$(i,j)$ 上有了更多的信息素累积,那么它是非常可取的,因此实现了自催化过程)。
由(1)和(2)产生的状态转换规则称为伪随机比例规则。 与之前的随机比例规则一样,此状态转换规则有利于向由短边连接并具有大量信息素的节点转换。
参数
在 ACS 中,仅允许全局最好的蚂蚁(即从试验开始构建最短路径的蚂蚁)沉积信息素。 这种选择与伪随机比例规则的使用一起,旨在使搜索更加定向:蚂蚁在算法当前迭代中找到的最佳游览的邻域中进行搜索。 全局更新是在所有蚂蚁完成它们的旅行后进行的。 通过公式(3)的全局更新规则更新信息素:
其中
$\Delta τ(r,s)$ 为对应路径$(r,s)$ 上的信息素增量,计算公式如公式(4)所示。
其中
$\alpha(\alpha \in (0,1))$ 是信息素衰减参数,$L_{gb}$ 是从试验开始的全局最佳游览的长度。 与蚂蚁系统的情况一样,全局更新旨在为较短的旅行提供更多的信息素。 等式 (3) 规定只有那些属于全局最佳旅行的边才会得到强化。 我们还测试了另一种称为迭代最佳的全局更新规则,与上面称为全局最佳的规则相反,后者在(3)中使用$L_{ib}$ (试验当前迭代中的最佳游览的长度)。 此外,对于迭代最佳,接受强化的边是属于当前迭代的最佳路径的边。 实验表明,两种方案的差异很小,略偏向于$global-best$ ,因此在以下实验中使用。
- 从上面应该找到关键点,作者通过大量实验更加倾向于使用全局最优游览长度进行更新,而非当前最优游览长度。
- 需要特别注意,全局最优是从一开始到后续迭代最优秀的路径(有可能不止一条)
在构建 TSP 的解决方案(即游览)时,蚂蚁通过公式(5)的局部更新规则访问边缘并改变其信息素:
其中
$\rho$ 是一个参数,取值范围为$\rho\in(0,1)$ 。
在文章中,作者对
经过作者的测试,结果为:$Ant-Q$ 与
$ACS$ 的效果差异并不显著,此外$ACS$ 本地更新规则比$Ant-Q$ 需要更少的计算。
$\beta=2$ $q_0=0.9$ $\alpha=\rho=0.1$ $τ_0=(n\cdot L_{nn})^{-1}$
其中
$L_{nn}$ 是最近邻启发式产生的旅行长度,通俗来讲,就是按照贪婪的方式,每次都选择对应城市距离最短的那个城市相连接的路径长度。当你思考的时候会发现,通过该方式得到的路径长度并不唯一,它一定程度取决于一开始放置的起点城市。
[1]Dorigo M, Gambardella L M. Ant colony system: a cooperative learning approach to the traveling salesman problem[J]. IEEE Transactions on evolutionary computation, 1997, 1(1): 53-66.