量化交易软件下载:赫兹量化中种群优化算法---蚁群优化

1. 概述

比利时研究人员马可·多里戈(Marco Dorigo)创建了一个数学模型,科学地描述了蚁群中集体智慧的过程。 他于 1992 年在他的博士论文中发表,并将其作为算法实现。

蚁群优化(ACO) 是一种基于种群的随机搜索方法,可解决各种组合优化问题。 ACO 的核心是信源动作(stigmergy)的概念。 1959年,皮埃尔-保罗·格拉塞特(Pierre-Paul Grasset)发明了信源动作 理论来解释白蚁筑巢的行为。 Stigmergy 由两个希腊词组成:stigma - 信源,和 ergon - 动作。

规范定义是一种间接互动类型,经与环境的相互作用,在种群成员之间,依时间扩展。 换言之,其中一个代理者留下了踪迹、或以某种方式修改了现场位置,如此其它代理者在进入其区域时会收到一些信息。 在蚂蚁的情况下,信源动作是信息素。 蚂蚁在觅食过程中的沟通就是一个示例:蚂蚁彼此相互间接交流,在地面上留下信息素踪迹,从而影响其它蚂蚁的决策过程。 个体蚂蚁之间的这种简单交流形式导致了整个蚁群的复杂行为和能力。

蚂蚁是群居昆虫,它们按领地生活。 蚂蚁的行为是由寻找食物的意图所控制。 在觅食时,它们在领地漫游。 蚂蚁反复从一个地方漫游到另一个地方寻找食物,当它爬动时,它会在地面上沉积一种叫做信息素的有机化合物。 因此,蚂蚁是利用信息素踪迹相互交流。

当一只蚂蚁发现了食物,它会携带尽可能多的食物。 返回时,它会沿途沉积信息素,具体取决于食物的数量和品质。 结果就是,其它蚂蚁可以遵循这条路线。 信息素水平越高,选择这条特定路径的概率就越高,通过特定路径的蚂蚁越多,这条路线上留下的信息素就越多。

我们来看下面的例子。 假设有两条途径可以从蚁群获取食物。 首先,地面上没有信息素。 如此,选择这两条路径的概率相等(50%)。 我们假设两只蚂蚁分别选择了这两条不同的觅食路径。 这两条路径的距离是不同的。 走较短路线的蚂蚁会先于另一只蚂蚁到达食物。 当它找到食物时,它会带走一些食物并返回蚁群。 为了追溯返回的路径,它会在地面上沉积信息素。 走较短路径的蚂蚁会更早到达蚁群。

当第三只蚂蚁想出去寻找食物时,它会根据地面上的信息素水平选择距离较短的路径。 因为较短的路径比较长的信息素较浓,所以第三只蚂蚁将遵循信息素较浓的路径。 当蚂蚁沿着更长的路径返回蚁群时,更多的蚂蚁已经迈上了信息素含量更高的路径。 然后,当另一只蚂蚁试图从蚁群到达目的地(食物)时,它会发现每条路径都有相同的信息素水平。 那么它会随机选择其中之一。 一遍遍地重复这个过程,一段时间后,较短的路径将比其它路径获得更多的信息素,且蚂蚁走这条路径的概率会更高。

ACO 算法是一种群体智能算法。 依据蚁群的觅食过程进行建模,利用蚁群的内部数据传输机制建立各种环境下的最短路径。 路径上残留的信息素浓度越高,蚂蚁选择这条路径的可能性就越大。 与此同时,信息素的浓度随着时间的推移而减弱。 因此,由于蚁群的行为,蚂蚁通过反馈机制不断学习和优化,从而判定最短的觅食路径。 ACO 算法广泛用于路径规划。

2. 算法原理

在 ACO 中,一组称为人工蚂蚁的软件代理者为给定的优化问题寻找良性解决方案。 为了应用 ACO,优化问题将转换为在加权图形上查找最佳路径的问题。 人工蚂蚁(以下简称蚂蚁)逐渐构建沿图形移动的解决方案。 构建解决方案的过程是随机的,并且取决于信息素模型 — 与图形组件(节点或边线)相关的一套参数,其值在执行过程中会由蚂蚁修改。

我们研究旅行推销员问题的算法。 我们有一组位置(城市)和它们之间的距离。 问题是找到一条最短长度的封闭路径,每个城市只访问一次。 一组相关联城市,再配合一组图形顶点而定义的图形称为构造图。 由于有可能从任意给定城市移动到任意其它城市,因此构造图是完全连接的,顶点数等于城市数。 我们将顶点之间的边线长度与其所代表城市之间的距离设定成正比,并将信息素值和启发式值与图形连线相关联。 信息素值在运行时发生变化,体现蚁群的累积经验,而启发式值是与问题相关的值。

蚂蚁按以下方式构造解决方案。 每只蚂蚁从一个随机选择的城市(构造图形顶点)开始。 然后,在每个构造步骤中,它沿着图形的边线移动。 每只蚂蚁保存其路径的记忆内存,并在后续步骤中不选择通往已访问过顶点的边线。 一旦蚂蚁在遍访了图形的所有顶点后,即构建了一个解决方案。 在每个构造步骤中,蚂蚁按概率选择下一个通向尚未访问顶点的边线。 概率规则基于信息素值和启发式信息:与边线相关的信息素和启发式值越高,蚂蚁选择该特定边线的概率就越高。 一旦所有的蚂蚁都完成了它们的旅程,随即就会更新边线的信息素。 每次信息素值的初值都会按一定百分比减少。 重复此过程,直到满足终止准则。

基于信息素的交流是自然界中广泛采用的最有效的沟通方式之一。 信息素由蜜蜂、蚂蚁和白蚁等社会性昆虫用于代理者之间的交流。 由于其可行性,人工信息素也已被应用于多机器人和群体机器人系统。 我们能如何理解我们的蚂蚁真的找到了最短路线呢? 这是一个很棒的测试用例:所有点排列成一个圆圈。 对它们来说,最短的路径永远是一样的 — 圆圈。

首个 ACO 算法被称为蚂蚁系统,旨在解决旅行推销员问题,其目标是找到往返多个相连城市的最短路径。 普通算法相对简单,基于一组蚂蚁,每只蚂蚁完成绕所有城市的可能路径之一。 在每一步,蚂蚁都会根据一些规则选择一条从一个城市到另一个城市的路径:

  1. 它应该每个城市只访问一次;

  2. 选择遥远城市的可能性较小(可见性);

  3. 在两个城市之间的边界上铺设的信息素踪迹越密集,选择这条边界的可能性就越大;

  4. 一条路径完成后,如果路径较短,蚂蚁会在经过的所有边线沉积更多的信息素;

  5. 每次迭代后,信息素踪迹蒸发。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图例 1. 五个节点的可能路径示例

3. 修订版

已知的 ACO 算法的若干种最流行的变体。 我们来研究一下:

蚂蚁系统(AS)。 蚂蚁系统是第一个 ACO 算法。

蚁群系统(ACS)。 在蚁群系统算法中,原始的蚂蚁系统在三个方面进行了修改: 1. 边线选择偏向于因循沿袭(即有利于选择信息素较多的最短边线的概率); 2. 在构建解决方案时,蚂蚁应用局部信息素更新规则来改变它们所选边线的信息素水平; 3. 在每次迭代结束时,只有最佳蚂蚁才能应用修改后的全局信息素更新规则来更新踪迹。

精英蚂蚁系统。 在这个算法中,全局最佳解决方案在每次迭代后(即使未曾重新访问该踪迹)将信息素与所有其它蚂蚁一起沉积在其踪迹上。 精英策略的目标是导引所有蚂蚁的搜索,从而构造包含当前最佳路线链接的解决方案。

最大最小蚂蚁系统(MMAS)。 此算法控制每个踪迹上信息素的最大和最小数量。 只有最好的全局旅途、或最好的重复旅途才能在它们的踪迹中加上信息素。 为了避免搜索算法陷入停滞,每条踪迹上可能的信息素量范围限定在 [τ max, τ min] 区间。 所有边线都用 τ max 初始化,以便加快解决方案的探索。 当接近停滞时,踪迹被重新初始化为 τ max。

基于排位的蚂蚁系统(Asrank)。 所有解决方案都根据其长度进行排位。 只有固定数量的最佳蚂蚁才能更新它们的挑战。 对于每种解决方案的信息素沉积量进行加权,如此拥有较短路径的解决方案比较长路径的解决方案沉积的信息素更多。

并行蚁群优化(PACO)。 具有交流策略的蚁群系统(ACS)。 人工蚂蚁被分为若干组。 提议七种交流方法,来更新处理旅行推销员问题的 ACS 群组之间的信息素水平。

连续正交蚁群(COAC)。 COAC 信息素沉积机制,令蚂蚁能够协调、有效地搜寻解决方案。 通过运用正交设计方法,允许区域内的蚂蚁可以快速、有效地探索其所选区域,并具有增强的全局搜索能力和准确性。 正交设计方法和自适应半径调整方法,也可以扩展到其它优化算法,为解决实际问题提供更广泛的优势。

蚁群的递归优化。 这是一种递归形式的蚁群,它将整个搜索区域划分为若干个子域,并解决这些子域中的问题。 比较所有子域的结果,取少量最佳子域进入下一个级别。 与所选结果相对应的子域被进一步细分,并重复该过程,直到获得所需的精度。 该方法已在矫正地球物理反演问题上进行了测试,证明了其有效性。

上面研究的蚁群算法最初是为解决图形的优化问题而开发的。 将问题集成到此类算法中,并将问题条件作为算法参数给出 — 图形节点的坐标。 因此,基于 ACO 原理的算法是高度专业化的。 此类算法不适用于我们的任务,因为我们未采用固定坐标。 我们也许有任意坐标,包括类似的坐标。 为了解决交易金融产品领域的各种优化问题,包括训练神经网络,我们需要开发一种新的通用算法,如此它能够通过我们的特殊测试,即它应该是一个全新的 ACO。

我们研究一下算法的基本概念。 就像在规范版本中一样,我们将拥有一个蚁群。 我们不用信息素标记已踏过的路径,它们可以去多维空间中的任何地方,记住和保存路线。 对于连续的步骤,这似乎不合适,因为沿着同一路线前进的概率趋于零。 此外,根本不需要记忆节点,因为没有重复的顺序通道问题 — 有必要将问题从算法中摘出。 那好,我们应该怎么做呢? 在现阶段,完全不清楚这个概念的发展方向。

好吧,然后我们再次注意到将我们的新算法与规范算法区分开来的要点:

1. 空间中没有固定点。

2. 没有必要按一定的顺序通过路径。

3. 由于没有路径,因此无物需用信息素来标记。

然后,我们唤醒驻留脑海的蚁群的念头。 我们可以用信息素标记蚂蚁走过的点,而非它们走过的路径。 我们将适应度函数的值作为信息素数,设置到当前迭代中蚂蚁位置。 然后蚂蚁将不得不向信息素更多的坐标移动。 但当所有的蚂蚁都跑到一个点时,我们可能会遇到一个问题 — 该点的信息素肯定最多。 考虑到这些点都是优化函数的变量,故这不一定是问题的最佳解决方案。 我们还记得,在经典 ACO 中,节点路径的长度也很重要。 选择的路径越短越好。 故我们不得不计算从当前位置到蚂蚁前往地点的距离。 下一个地方是其它蚂蚁所在的地方,即我们接受蚂蚁以一定的随机性相互移动的概念。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值