Ant System: An Autocatalytic Optimizing Process-Ant 系统:自动催化优化过程

标题

Ant 系统:自动催化优化过程

摘要

提出了分布式计算、正反馈和构造性贪婪启发式的组合作为随机优化和问题解决的新方法。正反馈可以快速发现非常好的解决方案,分布式计算可以避免过早收敛,贪婪启发式有助于程序在搜索过程的早期阶段找到可接受的解决方案。将所提出的方法应用于经典的旅行商问题表明,该系统可以快速提供非常好的(即使不是最优的)解决方案。我们报告了许多模拟结果并讨论了算法的工作原理。还给出了有关如何将此方法应用于各种优化问题的一些提示。

关键字

结论

研究背景

1. Introduction

在本文中,我们探讨了许多简单智能体的交互中全局属性的出现。特别是,我们对所谓的“蚂蚁”上的搜索活动的分布感兴趣,即使用非常简单的基本动作来简化计算工作的并行化的代理。我们的工作受到对真实蚂蚁行为的研究的启发 ([5],[6],[12]),其中感兴趣的问题之一是了解像蚂蚁这样几乎失明的动物如何设法建立最短路径从它们的栖息地到食物来源并返回。研究发现,用于在个体之间交流有关路径的信息并用于决定去往何处的媒体由信息素路径组成。一只移动的蚂蚁会在地面上放置一些信息素(数量不同),从而通过这种物质的痕迹来标记它所遵循的路径。虽然孤立的蚂蚁基本上是随机移动的,但遇到先前铺设的踪迹的蚂蚁可以检测到它并以很高的概率决定跟随它,从而用自己的信息素强化踪迹。出现的集体行为是一种自催化行为,其中蚂蚁跟踪一条踪迹的次数越多,该踪迹就越有吸引力。因此,该过程的特点是正反馈循环,其中蚂蚁选择路径的概率随着先前选择相同路径的蚂蚁数量的增加而增加。

我们将在下一节中定义的算法是从人工蚁群研究中得出的模型,因此我们将我们的系统称为 Ant 系统,并将算法称为 Ant 算法。由于我们对模拟蚁群不感兴趣,但在使用人工蚁群作为优化工具时,我们的系统将与真实(自然)的蚁群有一些重大差异:人工蚂蚁将有一些记忆,它们不会被遗忘。完全失明,并且会生活在时间离散的环境中。尽管如此,我们相信蚁群比喻可以作为一种有用的教学工具来解释我们的想法。

使用蚂蚁系统进行实验所获得的结果是观察到蚂蚁相互作用中存在协同效应。事实上,当解决问题的蚂蚁数量增加时,所获得的解决方案的质量就会提高,直至达到最佳点(详细信息请参见第 5.2 节)。

定义任何分布式系统的一个要点是通信过程的定义。在我们的算法中,一组蚂蚁通过修改问题表示进行通信,因为在解决问题的任何步骤中,每只蚂蚁都会给出其活动的迹象,这将改变未来做出相同决策的概率。这个想法是,如果在给定的时刻,一只蚂蚁必须在不同的选项之间进行选择,并且实际选择的选项结果特别好,那么在未来,该选择将显得比以前更理想。当经验尚未积累到问题结构中时,我们还为蚂蚁提供启发式指导计算过程的早期阶段。随着蚂蚁获得并在问题表示中记忆的经验增加,这种启发式方法自动失去重要性。

本文提出的第二个但同样重要的结果是自催化过程作为优化和学习方法的可行性。 “单蚂蚁”自催化过程通常很快就会收敛到一个糟糕的次优解决方案。幸运的是,许多自催化过程的相互作用可以导致快速收敛到包含许多好的解决方案的解决方案空间的子空间,从而使搜索活动快速找到一个非常好的解决方案,而不会陷入其中。换句话说,所有蚂蚁不是收敛到一个解,而是收敛到一个解的子空间;此后,他们继续寻找最佳解决方案的改进。

在目前的理解阶段,我们没有任何收敛证明或找到最佳解决方案所需时间的限制。然而模拟有力地支持了上述推测。我们还相信我们的方法是一种非常有前途的方法,因为它具有通用性(它可以应用于许多不同的问题),并且因为它可以有效地找到解决难题的非常好的解决方案。

论文的结构如下:第2节包含当前实现的算法的描述以及应用问题的定义:由于算法结构部分反映了问题结构,因此我们将它们放在一起介绍。第 3 节和第 4 节描述了将所提出的算法应用于所选问题的三种略有不同的方法。第 5 节广泛报告了使用先前介绍的算法进行的实验。在第 6 节中,我们讨论分布式算法的属性,并展示如何将其应用于其他优化问题。结论、相关和进一步的工作包含在第 7 节中。

常用基础理论知识

自催化[7],即正反馈,过程是一个自我强化的过程,其方式会导致非常快速的收敛,如果不存在限制机制,则会导致爆炸。

尽管所选择的名称让人想起[9]和[10]中提出的禁忌搜索,但我们的方法和禁忌搜索算法之间存在实质性差异。我们在这里提到:(i)不存在任何愿望函数,(ii)禁忌列表中记录的元素的差异,禁忌搜索情况下的排列,我们案例中的节点(我们的算法是构造性启发式算法,这不是禁忌搜索的情况)。

2. The Ant system

我们在本节中介绍通过许多本地交互的简单代理来分布式解决难题的方法。我们将蚂蚁称为简单的交互代理,将对抗算法称为我们定义的算法类。我们首先描述蚂蚁算法的一般特征,然后介绍其中的三种算法,称为蚂蚁密度、蚂蚁数量和蚂蚁周期。

为了测试蚂蚁算法,我们决定将其应用于著名的旅行商问题(TSP)[15],与其他启发式方法获得的结果进行比较[11]:模型定义受到问题结构的影响,但是我们将在第 6 节中提示,可以使用相同的方法来解决其他优化问题。我们强调,选择 TSP 是因为它作为启发式基准的普遍存在:我们对新启发式的提出以及它与其他启发式的比较感兴趣,而不是直接提出(至少在本文中)一种更有效的 TSP 解决方案(事实上,它已经针对许多问题得到了最佳解决)比此处介绍的顺序更高)。

给定一组 n 个城镇,TSP 问题可以描述为找到访问每个城镇一次的最小长度封闭旅行的问题。

我们称 dij 为城镇 i 和 j 之间的路径长度;对于欧几里德 TSP,dij 是 i 和 j 之间的欧几里德距离(即 dij=[(xi-xj)2+ (yi-yj)2]1/2 )。 TSP 问题的一个实例由加权图 (N,E) 给出,其中 N 是城镇集,E 是城镇之间的边集,按距离加权。

设 bi(t) (i=1, …, n) 为 t 时刻城镇 i 中蚂蚁的数量,并令蚂蚁的总数为:

每只蚂蚁都是一个简单的代理,具有以下特征:

  • 当从城镇 i 前往城镇 j 时,它在边缘 (i,j) 上铺设了一种称为轨迹的物质;
  • 它选择要去的城镇的概率是城镇距离和连接边缘上存在的路径数量的函数;
  • 为了迫使蚂蚁进行合法的旅行,在旅行完成之前,禁止向已经访问过的城镇过渡(请参阅下面的禁忌列表)。

设 τij(t) 为时间 t 时边缘 (i,j) 上的尾迹强度。在算法的每次迭代中,轨迹强度变为

其中 ρ 是一个系数,使得 (1 - ρ) 代表尾气蒸发量,

Δτij k (t,t+1) 是第 k 只蚂蚁在时间 t 和 t+1 之间放置在边缘 (i,j) 上的尾迹物质(真实蚂蚁中的信息素)每单位长度的数量。

系数ρ必须设置为<1的值,以避免无限制的轨迹累积(见注1)。时间 0 处的轨迹强度 τij(0) 应设置为任意选择的小值(在我们的实验中,为每个边缘 (i,j) 选择相同的值)。

为了满足一只蚂蚁访问 n 个不同城镇(n 个城镇游览)的约束,我们为每只蚂蚁关联一个名为 tabu list 的数据结构,它会记住截至时间 t 已经访问过的城镇并禁止蚂蚁访问在旅行结束之前再次进行。当一次旅行完成后,禁忌列表被清空,蚂蚁可以再次自由地选择它的路线。

我们将 tabuk 定义为包含第 k 只蚂蚁的禁忌列表的向量,tabuk(s) 为第 k 只蚂蚁的禁忌列表中的第 s 个元素(即,ant k 在本次旅行中访问的第 s 个城镇)。

我们将可见性 ηij 称为数量 1/dij,并将第 k 只蚂蚁从城镇 i 到城镇 j 的转移概率定义为

其中 allowed = {j: j∈tabuk} 并且其中 α 和 β 是允许用户控制轨迹与可见性的相对重要性的参数。因此,转移概率是可见性(这表示应该以高概率选择附近的城镇,从而实现贪婪的建设性启发式)和路径强度(这表示如果在边缘(i,j)上有很多那么这是非常理想的,从而实现自催化过程)。

关于如何计算 Δτij k (t,t+1) 以及何时更新 τij(t) 的不同选择会导致蚂蚁算法的不同实例化。在接下来的两节中,我们将介绍用作我们想法的实验测试平台的三种算法,即蚂蚁密度、蚂蚁数量和蚂蚁周期。

研究内容、成果

3. The Ant-density and Ant-quantity algorithms

在蚂蚁密度模型中,每次蚂蚁从 i 到 j 时,每个长度单位都会在边缘 (i,j) 上留下 Q1 的踪迹;在蚂蚁数量模型中,从 i 到 j 的蚂蚁对于每个长度单位都会留下数量 Q2/dij 的踪迹。

因此,在蚂蚁密度模型中:

在蚂蚁数量模型中我们有:

从这些定义可以清楚地看出,当蚂蚁从 i 到 j 时,边缘 (i,j) 上轨迹强度的增加与蚂蚁密度模型中的 dij 无关,而与蚂蚁数量模型中的 dij 成反比。模型(即,Antquantity 模型中的蚂蚁更需要较短的边缘,从而进一步增强等式(2)中的可见性因子)。

那么蚂蚁密度和蚂蚁数量算法是:



换句话说,算法的工作原理如下。在零时刻,发生初始化阶段,在此期间,蚂蚁被定位在不同的城镇上,并且在边缘上设置踪迹强度的初始值。每个蚂蚁禁忌列表的第一个元素被设置为等于起始城镇。此后,每只蚂蚁从城镇 i 移动到城镇 j,选择要移动到的城镇的概率为两个意愿度量的函数(参数为 α 和 β):第一个(称为 Trail - τij)给出了有关有多少蚂蚁的信息。过去的蚂蚁选择了相同的边缘 (i,j),第二个(称为visibility - ηij)表示城镇越近就越理想(设置 α = 0,我们获得具有多个起点的随机贪婪算法,设置 α = 0 且 β -> ∞ 我们得到确定性经典模型)。

每次蚂蚁移动时,它在边缘 (i,j) 上留下的踪迹都会被累加到过去在同一边缘上留下的踪迹。当每只蚂蚁移动时,根据公式(1)和(2),使用新的轨迹值计算转移概率。

经过n-1次移动后,每只蚂蚁的禁忌列表将被填满:计算并记忆m只蚂蚁找到的最短路径,并且所有禁忌列表都被清空。迭代此过程,直到巡视计数器达到最大(用户定义)循环数 NCMAX 或所有蚂蚁进行相同的巡视(我们将最后一种情况称为单路径行为:它表示算法停止搜索替代方案的情况)解决方案,请参见第 5.1 节)。

通过检查算法,我们发现计算复杂度表示为蚂蚁数量 m、城镇数量 n 和循环数 NC(其中一个循环是一次完整的旅行)的函数,为 Ο(NC.(m. n2+n3))。事实上,对于蚂蚁数量和蚂蚁密度算法,我们都有:


在我们的实验中,参见第5节,我们发现蚂蚁的最佳数量是m=c1.n,其中c1是一个小常数(实验最佳值为c1=1)。因此总体复杂度为Ο(NC.n3)。 NC 很可能是 n 的函数 (NC=NC(n))。我们在 5.7 节中研究了 NC 函数的形式。

4. The Ant-cycle algorithm

在这种情况下,我们引入了与之前两个系统的主要区别。这里 Δτij k 不是在每一步中计算的,而是在完整的循环(n 步)之后计算的。 Δτij k (t,t+n) 的值由下式给出:

其中Q3是常数,Lk是第k只蚂蚁的行程长度。这对应于蚂蚁数量方法的改编,其中轨迹在整个周期结束时更新,而不是在每次移动之后更新。我们期望该算法比之前定义的蚂蚁密度和蚂蚁数量具有更好的性能,因为这里使用了有关结果值(即旅行长度)的全局信息。


并且 ρ1 与 ρ 不同,因为方程不再每一步都更新,而是仅在一次循环(n 步)之后更新。

那么蚂蚁循环算法就是:



如果我们在 NC 循环后停止算法(请记住 NC 可能是 NC(n) ),则 Ant 循环算法的复杂度为 Ο(NC.n2.m)。事实上我们有:

同样对于蚂蚁循环算法,我们发现城镇数量和最佳蚂蚁数量之间存在线性关系。因此算法的复杂度为Ο(NC.n3)。

5. Computational results

我们实现了这三种算法,并通过实验研究了它们的相对优点和缺点。由于我们尚未对模型进行数学分析,从而得出每种情况下的最佳参数设置,因此我们进行了多次模拟来收集统计数据。在这个阶段我们发现 Ant-cycle 优于其他两种算法。因此,我们试图通过分析基本算法的几种变体的影响来加深对它的理解,例如为每只蚂蚁定义独特的起点和不同的起点,增加找到最佳路线的蚂蚁的重要性或在计算中添加噪音的概率。这些结果将在下一小节中进行描述,并与 TSP 的替代启发法进行简要比较。

5.1 Parameters setting

这里考虑的参数是那些直接或间接影响公式(2)中概率计算的参数:α、β、ρ、Qh(h=1、2、3)。蚂蚁的数量 m 始终被设置为等于城市的数量 n。我们测试了每个参数的几个值,其他参数均为​​常数(参数的默认值为α=1、β=1、ρ=0.7、Qh=100;在每个实验中仅更改一个值),每个设置进行十多次模拟,以获得有关平均进化的一些统计信息。测试的值为:αε{0, 0.5, 1, 5},βε{0, 1, 2, 5, 10, 20},ρε{0.3, 0.5, 0.7, 0.9, 0.999} 和 Qhε{ 1、100、10000};由于算法对 α 和 β 显示的灵敏度不同,因此已在不同的值集上对 α 和 β 进行了测试。在小规模问题上获得的初步结果已在[3]和[4]中提出;除非另有说明,此处报告的测试基于 Oliver30 问题,这是 [13] 中描述的 30 个城市问题,使用遗传算法找到了长度为 424.635 的游览.蚂蚁系统也经常获得相同的结果,并且也可以产生更好的结果。为了能够与其他方法进行比较(参见第 5.6 节),行程长度均以实数和整数 的形式计算。所有测试均针对 NCMAX = 5000 次循环进行,并对十次试验进行平均。

除了旅行长度之外,我们还对研究单路径行为感兴趣,即所有蚂蚁进行相同旅行的情况:这表明系统已停止探索新的可能性,因此实现了最佳旅行远不会再有任何改善。事实上,通过一些参数的设置,我们观察到,在几个周期之后,尽管算法具有随机性,但所有蚂蚁都遵循相同的路线:这是由于构成该路线的边缘上的踪迹级别比所有其他路线高得多。这种高路径级别使得蚂蚁选择不属于旅行的边缘的概率非常低。

三种算法对参数表现出不同的敏感性。

蚂蚁密度显示 β 的行程长度单调递减,直至 β=10。在此值之后,平均长度开始增加。

对其他参数的检验表明,α在1左右为最佳值

ρ 应设置得尽可能高.


并且系统受 Q1 的影响很小,永远无法显着改善标准条件下获得的非常不令人满意的解决方案。数量 Qh (h=1,2,3) 的重要性对所有三种算法都没有影响。

Ant-密度的实验表明,该系统仅在 β≥2 时进入单路径行为,通常在前 200-300 个周期内。

蚂蚁数量对参数表现出不同的敏感度; β还是很重要的,如下表:


其中平均行程长度随着β的增加而减少,直至β=20。同样在这种情况下,过高或过低的 α 都会使性能恶化,但对轨迹的轻微敏感性 (α=0.5) 可以改善标准配置 (α=1) 获得的结果。


对 ρ 的测试表明,对过去的经验保持强烈记忆是一个很好的策略,就像在蚂蚁密度中一样,因为更高的 ρ 会产生更好的结果。
蚂蚁数量比蚂蚁密度更容易出现单路径行为,事实上,我们观察到 α≥1 和 β≥1 时的单路径行为。在所有其他情况下,系统继续进行探索活动。

Ant-cycle 获得的结果表明,α 的最佳范围在 1 左右,β 在 2 到 5 之间,ρ 在 0.5 左右。

对于 β,测试的平均值为:

对于 α:


对于 ρ:


仅当α≥2时,蚂蚁循环才进入单路径行为;在所有其他情况下,我们总是观察到对不同替代方案的持续探索,即使在超过 NCMAX=5000 个周期之后也是如此。

在这三种算法中,ρ 是唯一具有性质不同行为的参数。其最佳值在蚂蚁密度和蚂蚁数量中尽可能高(即非常接近1),并且在蚂蚁周期中ρ=0.5。这个事实可以解释如下:蚂蚁密度和蚂蚁数量仅使用严格的局部信息,即可见性 ηij(定义为局部)和 τij 在这些情况下也是局部的,因为不包含有关最终结果的任何信息蚂蚁的巡演长度把它埋在了过去。因此,每条边上的踪迹数量是局部贪婪规则的直接结果。相反,在 Ant-cycle 算法中,实际铺设的路径是总行程长度的函数(参见公式(5)),因此该算法使用有关局部移动序列结果的全局信息。换句话说,在前两种算法中,τij 只是 ηij 的强化,而在 Ant-cycle 中,由于总行程长度的全局信息用于计算要存放的路径数量,τij 代表了一种不同类型的关于 ηij 的信息。

所有三种算法在计算的早期阶段都主要使用贪婪启发式来指导搜索,但只有 Ant-cycle 在计算运行时可以开始利用 Trail 值 τij 中包含的全局信息。这解释了 Ant-cycle 的更好性能和 ρ=0.5 的值:算法需要有可能忘记过去获得的部分经验,以便更好地利用新传入的全局信息。在蚂蚁密度和蚂蚁数量中,这种遗忘能力既没有必要也没有用,因为在搜索过程中不存在可以利用全局信息的“第二阶段”:两种算法总是继续使用基于贪婪的相同策略启发式。

我们还研究了 Ant-cycle 算法对于参数 α 和 β 的不同组合的行为(在这个实验中,每次运行在 2500 个循环后停止,即每只蚂蚁完成 2500 次旅行后)。结果如图 1 所示。我们确定了三个不同的区域:对于高值的 α 和不太高的 β 值,算法很快进入单路径行为,而没有找到很好的解决方案(这种情况由图 1 中的符号 ■ 表示);如果我们没有给予踪迹足够的重视(即,我们将 α 设置为较低的值),或者我们对贪婪规则给予太高的重要性(将 β 设置为较高的值),那么算法将无法在以下情况中找到很好的解决方案:实验中使用的循环数(这种情况使用的符号是 ∞)。对于中心区域(使用的符号是 ✖)中的 α 和 β 值,找到了非常好的解决方案。在这种情况下,我们发现不同的参数组合(即(α=1,β=1),(α=1,β=2),(α=1,β=5),(α=0.5,β=5) )) 导致相同的性能水平:在大约相同的周期数内获得相同的结果(Oliver30 问题上已知的最短循环)。


本实验得到的结果与我们对算法的理解是一致的:α值较高意味着踪迹非常重要,因此蚂蚁倾向于选择其他蚂蚁过去选择的边缘。在 β 的值变得非常高之前都是如此:在这种情况下,即使边缘上有大量踪迹,蚂蚁也总是有很高的概率选择另一个非常接近的城镇。

高值 β 和/或低值 α 使得该算法与随机多重贪婪算法非常相似。

在图 2 中,我们展示了使用通过实验确定的 Ant-cycle 算法的最佳参数值集(α=1,β=2,ρ=0.5,Q3=100)发现的新的最佳tour5。该巡演结果的长度为 423.74,并且相对于 [20] 中发布的最佳巡演呈现出两个反演。


Ant-cycle算法的主要优点可以概括为以下几点:

  • 在参数最优性范围内,算法总是找到一个非常好的解决方案,大多数时候比使用遗传算法找到的最佳解决方案更好;
  • 该算法很快就能找到好的解决方案(见图 3);然而,它不会进入单路径行为(其中所有蚂蚁都选择找到的最佳路径),即。蚂蚁们继续寻找新的可能更好的旅行;
  • 我们对Ant-cycle算法针对维度递增的问题进行了测试,发现参数最优值对问题维度的敏感性非常低。


在 Oliver30 问题上,Ant-cycle 达到了之前最著名的结果 [20],其频率在统计上高于其他两种算法,并且总体而言,识别好旅行的速度要快得多;而且,它是唯一能够识别新的最优旅游的。

我们在 Eilon50 和 Eilon75 问题 [8] 上对算法进行了部分测试,运行次数有限,周期数限制为 NCMAX=3000。在这些限制下,我们从未获得最著名的结果,但这两个问题都保持了快速收敛到令人满意的解决方案。

5.2 Number of ants

进行了一组实验,以评估蚂蚁数量对求解过程效率的影响。在本例中,测试问题涉及在均匀分布的点的 4x4 网格中寻找游览:这是一个具有先验已知最佳解决方案的问题(如果我们将边长设为 10,则为 160,见图 4)。


在这种情况下,如果可以在 2000 个周期内达到最佳值,我们确定了每种配置达到最佳值所需的平均周期数。正如已经说过的,本次测试与以下测试一样,仅针对 Ant-cycle 算法进行。结果如图5所示:横坐标是每组运行中使用的蚂蚁总数,纵坐标是所谓的单蚂蚁循环数,即达到最佳值所需的平均循环数,乘以所使用的蚂蚁数量(为了评估每只蚂蚁的效率,因此得名,并获得可比较的数据)。有趣的是:

  • 该算法始终能够识别任意数量 m ≥ 4 的蚂蚁的最优解;
  • 使用更多蚂蚁会产生协同效应,直到 n=m 给出的最优点;该最优点的存在是由于管理逐渐增多的蚂蚁所造成的计算负荷,导致随着蚂蚁数量的增加,以单蚂蚁周期测量的整体效率降低;
  • 对一组 r x r 网格问题(r = 4, 5, 6, 7, 8)的测试表明,蚂蚁的最佳数量接近城市数量(n≈m):该属性用于评估计算复杂度(参见第 3 节和第 4 节)。


第二组测试已随机分布在 16 个城市(16 个城市随机图)。我们再次发现,8-16 只蚂蚁可以达到最佳性能,蚂蚁的数量与要解决的问题的规模(以城市数量衡量)相当。

5.3 Which town should ants start from?

我们测试了t=0时刻所有蚂蚁都在同一个城市的情况和它们均匀分布的情况是否有区别7。我们将 Ant-cycle 应用于上一小节中描述的 16 个城市随机图和 4x4 网格,以及 Oliver30 问题。在所有情况下,均匀分布蚂蚁都会带来更好的性能。

在 16 个城市随机图的情况下,我们进行了 16 个实验(每个实验重复五次),其中所有蚂蚁在时间 t=0 时都位于同一个城市(在第一个实验中,所有蚂蚁都在城镇 1 上) ,在城镇 2 上的第二个,依此类推)。我们发现,在所有情况下,蚂蚁都能够识别最佳值,但它们平均需要 64.4 个周期,而均匀分布的蚂蚁则需要平均 57.1 个周期。

在 4x4 网格问题的情况下,实验表明平均需要 28.2 个周期才能确定最佳值,而在蚂蚁均匀分布的情况下需要 26.9 个周期(为了将此数据与图 5 中的数据进行比较,周期数必须乘以 16 即可得到单蚂蚁循环的次数)。

在 Oliver30 问题中,有 30 只蚂蚁从同一城市出发(使用最佳参数值进行运行),我们注意到蚂蚁永远无法识别最佳路径(找到的最佳路径的平均值:438.43),并且经过数百次循环后,所有蚂蚁都遵循一小部分旅行中的一个。

我们还测试了蚂蚁在城市中的初始均匀分布是否比随机分布表现更好。结果表明,尽管随机分布获得了稍好的结果,但两种选择之间几乎没有差异。

5.4 Elitist strategy 精英策略

我们将改进的算法称为精英策略(因为在某种程度上它类似于遗传算法中使用的精英策略,以概率 1 复制找到的最佳个体),其中在每个周期,轨迹都放置在属于迄今为止最好找到的旅行的边缘上由数量 e.Q3 /L* 加强,其中 e 是精英蚂蚁 8 的数量,L* 是最佳找到的旅行的长度。这个想法是,迄今为止确定的最佳旅行轨迹(L*)经过如此强化,将有可能引导所有其他蚂蚁向组成它的边缘进行搜索。

再次对 Oliver30 问题进行了测试(在 NCMAX = 2500 个循环后停止运行),并表明精英蚂蚁的数量存在一个最佳范围:低于该范围,增加其数量会导致发现更好的旅行和/或在较早发现的最佳游览中,在其上方,精英蚂蚁在搜索的早期阶段强制围绕次优游览进行探索,从而导致性能下降。图 6 显示了该行为明显的测试结果。

5.5 Noisy transition probability 噪声转移概率

我们在一些实验中使用了稍微不同的转换规则,包括噪声,由以下公式给出:


进行这组测试是为了评估公式(2’)相对于公式(2)计算转移概率的有用性。最初的想法是评估该过程相对于轨迹强度水平的鲁棒性,并看看是否可以避免早期收敛。事实证明,蚂蚁循环算法本质上满足了第二个目标,该算法自然不会呈现单路径行为。作为测试问题,我们使用 4x4 网格问题,我们注意到低噪声值不会妨碍最优值的识别——尽管它们也没有帮助——而较高的值会导致性能显着恶化。在图 7 中,我们显示了在不同噪声值下达到最佳值所需的平均周期数,每个值都经过 10 次测试。

5.6 Time required to find optimal solutions

第 4 节中介绍的算法复杂度 O(NC⋅n3) 并未说明达到最优值所需的实际时间。本节的实验致力于研究 NC 和 n 之间的关系,即 NC=NC(n)。表 I 报告了尺寸增加的类似问题的结果(如图 4 所示,边长设置为 10 的 r x r 网格)。有趣的是,对于64个城市的问题,Ant-cycle总能找到最优解。此外,找到它所需的周期数和实际使用的计算时间都比搜索空间的维度增长得慢,这再次表明该算法使用了非常有效的搜索策略。


观察表 I,我们注意到找到最佳值所需的时间与找到最佳值所需的周期数乘以 n3(在本例中 n = 16, 25, 36, 49, 64)成正比,以这种方式确认了复杂性分析第 4 节中介绍。

5.7 Comparison with other approaches 与其他方法的比较

我们将 Ant-cycle 的结果与通过“Travel”包中包含的其他启发式方法在同一 Oliver30 问题上获得的结果进行了比较 [2]。该包将城市之间的距离表示为整数矩阵,因此,为了进行比较,我们在系统中实现了类似的表示。

结果如表二所示,其中第一列是每个启发式识别的最佳游览的长度,第二列和第三列是通过 2-opt(穷举探索)获得的相应第一列解决方案的改进分别是通过交换 2 个城市从基本排列获得的所有排列)和 Lin-Kernighan 启发式 [16]。

请注意 Ant-cycle 如何始终优于 2-opt,而其功效(即它在寻找非常好的解决方案方面的有效性)可以与 LinKernighan 进行比较(即使我们的算法需要更长的计算时间)。


作为所有测试的一般评论,我们想指出的是,给定良好的参数设置(例如 α=1、β=2、ρ=0.5、Q3=100、e=5),我们的算法一致地找到非常好的解决方案,对于 BAYG2912 来说是最佳解决方案,对于 Oliver30 来说是新的最著名的解决方案,并且很快就能找到令人满意的解决方案(它通常在不到 400 个周期内为 Oliver30 识别出长度为 423.74 的新的最著名解决方案,并且只需约 100 个周期即可达到 430 以下的值)。无论如何,探索仍在继续,因为每个周期中蚂蚁所遵循的旅行长度的非零方差以及蚂蚁旅行长度的平均值永远不会等于找到的最佳旅行的事实证明了这一点,但仍略高于它,这表明围绕最好发现的旅行已经过测试。

6. Discussion

上一节中给出的结果表明该算法可能是一种有效的优化工具。在本节中,我们尝试对算法的工作方式给出一些见解,并展示如何将其应用于其他 NP 难组合问题。

解释将该算法应用于 TSP 问题的效果的第一种方法如下。

考虑转移矩阵 p(t):每个元素 pij(t) 是在时间 t 从城镇 i 到城镇 j 的转移概率,如方程 (2) 所定义。在时间 t=0 时,每个 pij(0) 与 ηij 成正比,即,选择较近的城镇的概率较高。随着过程的发展,p(t) 根据 (1) 和 (2) 改变其元素。因此,这个过程可以看作是一种空间变形,其中由高流量边缘连接的城镇之间的距离缩短,相反,由低流量边缘连接的城镇之间的距离增加。从模拟中,我们观察到矩阵 p(t) 至少在参数的最优范围内收敛到非常接近静止的状态(即,转移矩阵 p(t) 的变化非常小)。当达到这种状态时,蚂蚁的行为取决于所获得的转移矩阵的类型。我们观察到两种情况:在最罕见的一种情况下,正如我们在第 5 节中看到的那样,仅针对特定的参数设置,每一行中只有一个转移概率显着高于零,因此所有蚂蚁在每一步都选择相同的边缘并且没有搜索新的旅行。相反,在最常见的情况下,大多数行都有两个(有时更多)值大于零的转换概率。在这些情况下,即使搜索空间的维度相对于初始情况大大减小,搜索也永远不会停止。例如,考虑图 8,它是随机生成的 10 个城镇问题的稳态转移矩阵,其中每个圆的面积与相应的转移概率值成正比。城镇 1 中的蚂蚁有很高的概率去城镇 5(接近 50%)或城镇 2(接近 35%),而选择任何其他边的概率很低(类似的分析也适用于任何其他地方的蚂蚁)城镇;例如,从城镇 9 和 0 出发,任何目的地都是同样可能的)。

解释算法工作原理的另一种方法是想象有某种概率叠加效应:每只蚂蚁如果被隔离(即如果 α=0),就会按照局部贪婪规则移动。这种贪心规则只能保证局部最优的移动,并且实际上总是会导致糟糕的最终结果。贪婪规则不起作用的原因是贪婪的局部改进会导致非常糟糕的最终步骤(蚂蚁被限制进行封闭的旅行,因此最终步骤的选择受到早期步骤的限制)。因此,一只受贪婪政策统治的蚂蚁所遵循的旅程是由一些非常好的部分和一些不好的部分组成的。如果我们现在考虑许多蚂蚁同时存在的影响,那么每只蚂蚁都会贡献一部分踪迹分布:好的路径组将被许多蚂蚁遵循,因此它们会收到大量的踪迹;选择不好的路径只是因为受到约束满足(记住禁忌列表),只有少数蚂蚁才会选择,因此它们上的踪迹仍然很低。

我们已经看到,蚂蚁通过交换特定类型的信息(踪迹)进行合作,这些信息被存储在问题结构中。由于不需要直接通信,并且仅使用本地信息来做出决策,因此该算法非常适合并行化。我们目前正在为晶片机架构设计 Ant-cycle 的并行版本:我们打算为每个晶片机提供一组蚂蚁,并每 n 步合并每组蚂蚁留下的踪迹,以这种方式获得新的踪迹矩阵。然后我们将该矩阵重新分配给所有节点。

现在让我们考虑一下我们方法的一般性。我们相信Ant系统可以面临很多组合问题。为了将自催化算法应用于另一个组合问题,我们必须找到以下适当的表示:

  • 问题(表示为由许多简单代理搜索的图);
  • 自催化过程;
  • 允许对解决方案进行建设性定义的启发式(“贪婪力”);
  • 约束满足方法(即禁忌表)。

这已经针对三个著名的组合优化问题——可满足性(SAT)、二次分配(QAP)和作业车间调度(JSP)——每次都获得了可以有效处理相关问题的 Ant 系统的改编版本。尝试应用 Ant 系统时面临的最困难(且临时)的任务是为要解决的问题找到合适的图形表示以及作为启发式的贪婪力。这需要在 QAP 的情况下在每对节点之间引入许多边,在 JSP 的情况下需要再引入一个节点,在 SAT 的情况下在每对节点之间引入适当的约束。

潜在研究点

7. Conclusions, related work and future investigations

本文介绍了一种基于分布式自催化过程的新搜索方法及其在解决经典优化问题中的应用。我们的主要贡献是:

  • 我们引入积极反馈作为强大的搜索和优化工具
  • 我们展示了分布式系统中如何产生协同效应。

Ant系统使用许多简单的交互代理和基于正反馈的快速搜索算法,不会陷入局部极小值;此外,增加代理数量会对系统性能产生协同效应(直到达到上限)。

我们报告了许多模拟结果,说明了该方法的强大功能。此外,我们还提供了一个示例,说明该系统如何应用于其他优化问题:我们相信该方法可以扩展到更广泛的问题类别。

该模型的总体思想是一组代理,每个代理都受到贪婪力压制的自催化过程的引导。如果是单独的智能体,自催化过程和贪婪力都会倾向于使智能体以指数速度收敛到次优路径。当智能体相互作用时,贪婪力似乎可以为自催化过程提供正确的建议,并让它很快收敛到非常好的、通常是最优的解决方案,而不会陷入局部最优。我们推测,这种行为可能是由于代理在搜索过程中获得的信息用于修改问题表示,从而减少搜索过程所考虑的空间维度。即使没有巡演变得不可行,糟糕的巡演也变得极不可能,并且算法仅在良好解决方案的附近进行搜索。

相关工作可分为以下主要领域:
(i)社会性动物行为研究;
(ii) “自然算法”研究;
(iii) 随机优化。

正如已经指出的,对社会性动物行为的研究应被视为灵感的源泉和解释我们的想法的有用隐喻。我们相信,特别是如果我们有兴趣设计本质上并行的算法,对自然系统的观察可以成为宝贵的灵感来源。神经网络[19]、遗传算法[13]、进化策略[18]、免疫网络[1]、模拟退火[14]只是一些具有“自然风味”的模型。主要特征(至少部分由此类算法的成员共享)是自然隐喻的使用、固有的并行性、随机性和适应性、正反馈的使用、学习能力(即提高性能)以过去的经验为基础)。那么我们的算法就可以被认为是此类的新成员。 “自然优化”中的所有这些工作都可以插入到更一般的随机优化研究领域中,其中对最优性的追求是为了换取计算效率。

我们认为,可以沿着以下主要研究方向开展进一步的工作:

  • 对所提出模型的理论研究(收敛性、复杂性……);
  • 通过调查该算法可以解决哪些类别的问题来评估该方法的通用性;
  • 通过使用并行计算机在更大的问题上进行测试来评估该方法的可扩展性;
  • 研究我们的模型对人工智能的影响,特别是在模式识别和机器学习领域。

文献链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极生两鱼

要天天开心哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值