异构蚁群算法与进化学习消防策略
异构蚁群算法在旅行商问题中的应用
在解决旅行商问题(TSP)时,引入了异构蚁群算法(H - ACO)。该算法中的人工蚂蚁具有与传统同构方法不同的行为特征,这与现实中蚂蚁种群的多样性相呼应。
算法性能对比
进行了HAS与AS、HMMAS与MMAS的Wilcoxon秩和检验,以比较它们在不同TSP实例中的最佳成本。具体的p值如下表所示:
| TSP | HAS vs AS | HMMAS vs MMAS |
| — | — | — |
| eil51 | 0.0143 | 0.8796 |
| kroA100 | 2.03e - 06 | 0.3078 |
| d198 | 2.87e - 08 | 1.27e - 04 |
从表中可以看出,HAS在所有三个实例中找到的最佳成本明显优于AS。而HMMAS在eil51和kroA100实例中,与MMAS相比,最佳成本的差异不显著。这可能是因为这两个实例属于小规模问题,基础算法MMAS本身表现较好,且HMMAS中只有单个代理修改信息素,限制了整体的异构优势。不过,在d198.tsp实例中,HMMAS与MMAS相比,最佳成本的差异具有统计学意义。
算法优势分析
异构方法在蚁群算法中显著提高了性能,尤其是在蚁群系统(Ant System)上表现更为明显。这可能是因为每只蚂蚁对信息素轨迹的贡献更大,凸显了多样性的影响。而HMMAS的收益较小,是因为基础算法MMAS性能更好,能找到更接近最优解的结果,且只有最优蚂蚁参与信息素更新,降低了种群多样性对算法进程的影响。
通过改变alpha和beta值,发现尽管先前的研究建议了一系列最优的α和β值,但由于这些参数依赖于具体问题,确定特定值并非易事。而异构方法能够有效地探索参数空间,同时优化问题,对参数设置具有鲁棒性,克服了这一难题。记录最佳性能的alpha和beta值,既支持了Dorigo和Stutzle建议的参数值,也凸显了这些参数设置并非在所有情况下都是最优的。此外,发现alpha和beta参数设置的不同分布,表明算法对这些参数具有敏感性,且这些分布在多个问题规模的测试中保持稳定。
进化学习消防策略
在动态环境中,消防问题可以通过网格图中的简单离散变体进行建模。在每个时间步,火势会蔓延到所有相邻的单元格,而消防员可以在同一时间间隔内平均阻止c个单元格被火势蔓延。
问题背景与目标
在运动规划、在线算法或计算几何等领域,许多重要常数的上下界之间存在差距。例如,在著名的k - 服务器问题中,竞争比的最佳已知下界是k,上界是2k - 1;L2 - 可见性在简单多边形中的VC - 维目前处于[6, 14]区间。通过简单而高效的进化或遗传方法来缩小或消除这些差距,是一种具有挑战性的方法。
在消防问题中,已知当c > 1.5时,消防员能够成功围住火势;而当c ≤ 1.5时,没有策略能够阻止火势蔓延。对于c = 2的情况,可以通过整数线性规划(ILP)获得最优策略。本文旨在研究是否可以通过进化算法找到或接近这些阈值和/或最优策略。
离散网格环境中的火势围堵
在一个无限的网格图中,每个顶点代表一个单元格,边连接相邻的单元格。火势从(0, 0)开始蔓延,目标是围住火势,使损失的单元格数量有限且最小。消防员在每个时间步可以阻止的单元格数量由渐近预算c ≥ 1决定,即到时间步t时,总共可以阻止⌊c × t⌋个单元格。
例如,当c = 2.7时,在第一个时间步,消防员阻止⌊1 × 2.7⌋ = 2个单元格;在第二个时间步,阻止⌊2 × 2.7 - 2⌋ = ⌊3.4⌋ = 3个单元格;在第三个时间步,阻止⌊3 × 2.7 - 5⌋ = ⌊3.1⌋ = 3个单元格;在第四个时间步,阻止⌊4 × 2.7 - 8⌋ = ⌊2.8⌋ = 2个单元格,从而成功围住火势。
为了使用进化方法解决这个问题,需要定义一个通用策略的形式化描述,以及一个用于比较策略的适应度函数。直观上,一个好的策略应该:
- 从靠近火势的位置开始。
- 构建一个(或多或少)相连的受保护单元格链,试图包围火势。
以下是策略的定义:
- 一个策略由一个起始点(i, j)和一系列方向{North, NorthEast, East, …}组成,每个方向还包含是扩展链的前端(F)还是后端(B)的信息。简而言之,策略由起始点和一对对(X, Y)表示,其中X ∈ {N, NE, E, …},Y ∈ {F, B}。
例如,对于固定的起始单元格(0, - 1),序列((N, F), (NE, F), (SE, B), (SE, F), (E, B))的应用方式如下:
- 通过(N, F),将(0, - 1)向北扩展到单元格(0, 0),该单元格成为新的前端单元格。
- 通过(NE, F),相对于新的前端单元格,阻止东北方向的单元格(1, 1)。
- 通过(SE, B),对于当前链的后端单元格(0, - 1),将后端扩展到东南方向的单元格(1, - 2),依此类推。
这种策略不包含下一个顶点被保护的时间信息,而是在允许保护额外顶点时应用序列中的下一个元组。每个时间步保护的顶点数量基于银行账户的概念,初始有一个预算,每次保护一个顶点,预算减少1,预算必须保持正数且总是被充分耗尽。火势蔓延一步后,预算增加固定量c。例如,c = 2意味着在任何时间步都可以保护两个顶点;对于c = 1.5,保护的顶点数量在1和2之间交替。
graph TD;
A[开始] --> B[初始化预算];
B --> C{是否允许保护顶点};
C -- 是 --> D[应用策略元组];
D --> E[保护顶点,预算减1];
E --> F{预算是否为正};
F -- 是 --> C;
F -- 否 --> G[火势蔓延,预算增加c];
G --> C;
C -- 否 --> G;
在后续的实验中,对于c = 2的情况,简单的进化规则能够极快地获得最优策略;对于c ≥ 1.7的情况,仍能获得接近最优的围堵结果;而对于c < 1.6的情况,该方法失败。这些结果为进一步研究保护高速公路的问题提供了测试场景。
异构蚁群算法与进化学习消防策略
保护高速公路的消防策略探索
在前面火势围堵问题的基础上,提出了一个新的问题,即对于给定的保护预算 c,任务不再是围堵火势,而是防止火势尽快蔓延到高速公路。目前,这个设置的理论结果和固定阈值仍然未知。通过进化方法来探索不同预算 c < 1.5 时合理的策略。
实验思路与目的
通过进化算法进行实验,尝试了解在不同预算 c 值下,是使用靠近火势的单个屏障更合理,还是在远离火势、靠近高速公路的位置构建(多个)屏障更可取。实验的重点是通过进化方法获得一些思路和见解,并且先进行实验,后续再寻找正式的证明。
实验结果与推测
在实验过程中,发现与火势围堵问题类似,那些从远离原点开始保护顶点的策略表现不如从靠近火势位置开始的策略。同样,多个不相连的屏障(最终可能会连接起来)效果也不佳,一般不相连的策略最终会趋向于构建一个相连的屏障。
根据实验结果推测,当预算 c 较小时,靠近高速公路构建多个屏障可能会分散资源,导致每个屏障都不够坚固,容易被火势突破。而靠近火势构建单个屏障,虽然可能面临火势快速蔓延的压力,但能够集中资源,更有可能有效地阻止火势向高速公路蔓延。然而,当预算 c 相对较大时,构建多个屏障可能会提供更多的缓冲区域,增加阻止火势的机会。
| c 值范围 | 可能的合理策略 | 推测依据 |
|---|---|---|
| c 较小 | 靠近火势构建单个屏障 | 集中资源,避免分散导致屏障薄弱 |
| c 相对较大 | 靠近高速公路构建多个屏障 | 提供更多缓冲区域,增加阻止火势机会 |
graph LR;
A[c 较小] --> B[靠近火势构建单个屏障];
C[c 相对较大] --> D[靠近高速公路构建多个屏障];
总结与展望
异构蚁群算法在旅行商问题中展现出了对传统同构方法的优势,通过引入具有不同行为特征的人工蚂蚁,有效地提高了算法性能,并且对参数设置具有鲁棒性。而在消防问题中,进化学习方法在火势围堵问题上取得了一定的成果,能够快速获得 c = 2 时的最优策略,对于 c ≥ 1.7 也能得到接近最优的结果。在保护高速公路的问题上,虽然目前理论结果和固定阈值未知,但通过进化实验获得了一些有价值的策略见解。
未来,可以进一步深入研究异构蚁群算法中 alpha 和 beta 参数的最佳分布,以更好地发挥算法的性能。在消防问题方面,继续优化进化算法,尝试找到保护高速公路问题的理论阈值和正式证明。同时,可以将这些方法应用到更多类似的动态环境问题中,探索其更广泛的应用潜力。
总之,简单、目标导向的进化策略为解决动态运动规划问题提供了一种有效的途径,尤其是在涉及阈值问题的场景中,有望为更多领域的问题解决提供新的思路和方法。
超级会员免费看

被折叠的 条评论
为什么被折叠?



