8.30 并行与分布式进化分布方式
目前的并行与分布式进化分布方式主要有种群式分布和维度分块式分布两种。
种群式分布
种群式分布是当前并行与分布式算法主要采用的分布方式[41-44,50-52,74-79] 。该分布方式将进化算法的种群分为若干个小种群(甚至将单独个体视为一个小种群);而后根据并行与分布式进化算法选用的分布式模型,将每个小种群分配给一个节点。每个节点负责更新所分配的种群,并与相关节点通信,交换信息。
在种群式分布方式中,每个个体是完整的,即包含所有维度的信息。每个节点在优化过程中,搜寻的仍然是优化问题的整个解空间。因而,面对高维度优化问题,该分布方式面临着以下挑战。
(1) 收敛速度过慢。随着优化问题维度的增长,问题的解空间往往呈指数式增长。由于每个节点的搜索空间仍然是优化问题的整个解空间,因此,并行与分布式进化算法即使采用每个节点维护一个种群的策略,也面临着收敛速度过慢的问题。
(2)容易陷入局部最优。随着维度的增加,优化问题解空间中的局部最优值的个数往往也呈指数式增加。由于每个节点的搜索空间不变,仍为整个解空间,因此每个节点陷入局部最优的概率相同,当大部分甚至全部节点陷入局部最优时,就很容易导致并行与分布式进化算法陷入局部最优。
维度分块式分布方式
为了突破种群式分布方式的局限性,研究者们最近提出了维度分块式分布方式。该方式主 要 利 用 了 协 同 进 化 算 法(CC,CooperativeCoevolution)的思想[80] 。协同进化算法是一种分治算法,它将一个高维度的问题降解为多个低维度子问题,而后每个子问题视为独立问题单独优化,其主要框架如图 5 所示。从图中可以看出,CC 算法主要由维度分组和协同进化两部分组成。
CC 算法假设每个子问题相互独立,因此这些子问题便可以独立优化,分别获得对应子空间的最优解;而后将各个子空间的最优解拼凑在一起,便可以得到优化问题完整的全局最优解。显然地,对于 CC 算法而言,算法的核心在于如何将高维度优化问题降解为独立不相关的子问题。理想情况下,一个好的降解算法应该将相关变量放在相同组,将不相关变量放在不同组,而后每组变量视为一个独立子问题。为此,在串行 CC 算法研究中,学者们提出了许多降解算法(DecompositionAlgorithms)。目前的降解算法大致分为动态降解算法[81-87]和固定降解算法[88-90] 两类。
• 动态降解算法将变量之间的相关性视为动态属性,在进化过程中动态执行,因此每次算法分组得到的结果可能不同。最简单的动态分组算法是文献 [82] 提出的随机分组算法。该算法在每次迭代优化前随机地将优化问题的维度分解为大小相同的若干组。为了提高将两个相关变量放入同一组的概率,文献 [83-84] 提出了动态调节分组个数的随机分组算法。进一步地,为了更好地划分分组,文献[85-86,91]在每次进化前根据历史进化信息对维度进行分组。
• 固定降解算法将变量之间的相关性视为静态属性,其一般先于协同进化操作执行,一旦分组确定之后,在整个协同进化过程中,分组信息将保持不变。目前,最典型的固定分组算法是文献 [88] 提 出 的 差 分 分 组 算 法(DG,DifferentialGrouping)。该算法通过两两变量之间的偏差分信息来检测变量的相关性。一旦变量的相关性确定之后,分组算法便根据相关性信息将变量分为不同的组,而后在协同进化过程中变量分组保持不变。DG只能检测变量间的直接相关性,而无法检测变量间接相关性。为克服该缺点,文献 [89-90] 扩展了 DG算 法, 分 别 提 出 了 XDG(Extended DifferentialGrouping) 和 GDG(Global DifferentialGrouping)算法,能够同时检测变量之间的直接相关性和间接相关性。
至于 CC 算法的第二个操作——协同进化,每个子问题被视为独立问题单独优化。具体地,针对每个子问题,进化算法维持一个种群优化该子问题。然而由于评估个体时,需要所有维度的信息,因此在优化过程中子问题与子问题之间需要交换信息,评估种群适应值,从而筛选个体。在目前的串行 CC 算法中,每个子问题优化过程中,除该子问题对应的维度外,其他维度的值都固定为全局最优解对应的维度值。
基于以上信息,可以看出,基于动态分组的CC 算法不适合用于并行与分布式进化算法,这是因为分组信息在进化过程中动态变化,因而导致并行模型的节点之间需要相互交换种群信息,以此才能根据上一代种群信息生成下一代个体。这种通信势必导致并行模型的通信量和通信时间大大增加,不利于并行与分布式进化算法的性能提升。因此,基于维度分块式的并行分布式进化算法主要采用固定分组算法。
结合岛屿式分布式模型,文献 [42,92] 提出了并行与分布式协同进化算法。该算法将每个变量单独成组,视为独立子问题,而后岛屿式模型中的每个节点负责一个子问题的优化。每个节点优化过程中,将其他节点所对应的维度信息固定;所有节点进化完成后,每个节点将优化得到的最优解发送给其他节点。
综上所述,可以看出维度分块式分布式方式具有以下三个特点。
(1)扩展性强。该分布方式通过对维度分块,将高维优化问题降解为低维优化问题。因此,理论上该分布方式可以处理任意维度的优化问题。
(2)收敛速度快。该分布方式将优化问题分解为低维优化问题;相应地,优化问题的解空间也被划分为多个低维的子空间。因此,在优化每个子问题时,每个节点所负责优化的种群都能快速地收敛到所对应子空间的最优解。
(3)对分组算法的依赖性强。由于每个子问题独立优化,分组算法的好坏直接影响着协同进化算法的性能。因此,该分布方式下的并行与分布式进化算法对分组算法有着比较强的依赖性。