CCGDE3 - 2013

CCGDE3 - 2013

Use of Cooperative Coevolution for Solving Large Scale Multiobjective Optimization Problems

L. M. Antonio and C. A. C. Coello, “Use of cooperative coevolution for solving large scale multiobjective optimization problems,” 2013 IEEE Congress on Evolutionary Computation, Cancun, 2013, pp. 2758-2765, doi: 10.1109/CEC.2013.6557903.

算法的主要思想

利用 CC 框架(Cooperative Coevolution、合作协同进化)中的分治(divide-and-conquer)技术应用到多目标中,原始的 CC 框架总结如下:

CCGDE3 - 2013_第1张图片

一个循环由所有子组件的一个完整演化组成,其主要思想是将高维问题分解为几个低维的子组件,并在预定义的周期内协同演化这些子组件。在这个简陋的流程图中,值得注意的是两点:

  1. 如何将决策变量分组
  2. 选取一个怎样的 EA 作为优化器去优化每个子组件

下文将从这两方面进行展开。

一、RG(Random Grouping、随机分组)

一开始,将决策变量 x ⃗ \vec{x} x (D维)等大小地分成 S(m维) 个子组件(subcomponents),每个子组件都是由一组随机的决策变量创建的。同时,生成 S 个子种群(物种、species),每个个体拥有 NP 个个体。这 S 个物种与 S 个子组件以随机地方式一一对应。

如图所示:
CCGDE3 - 2013_第2张图片


二、GDE3(第三代广义差分算法)

该论文简单介绍了一下 GDE3: GDE3 is the third version of the so-called Generalized Differential Evolution (GDE) algorithm , which is able to deal with multiple objectives.

据本人观察,使用该算法作为优化器的目的是为了在论文后与 GDE3 作一个对比实验,验证使用了 CC 的算法比起原算法在处理 LSMOP 时确实在性能上有提升。


三、算法流程

流程如下:

  1. 在变量分组后,算法对每个物种的个体均随机初始化。

  2. 然后,该算法执行循环,每个子种群的进化在给定的代数中完成,直到达到停止条件。

  3. 最后,全局非支配解(即,关于所有子总体),构成算法的结果。

伪码如下:
CCGDE3 - 2013_第3张图片
图示如下:
CCGDE3 - 2013_第4张图片
这里稍微解释一下:一次循环是指 S 个物种都发生了进化,共进行了给定最大代数的循环

合作发生在以下两种情况:

  1. 第一代:因整个系统是混乱无序的,故从每个物种中随机选取一个个体作为合作者协作形成一个完整的解集,并在目标函数中进行评估(evaluate),然后,评估的结果被分配回被评估的个体。
  2. 之后的每一代:从上一代物种 P1 - PS 中的最佳非支配组中随机选取一个个体(共有 S 个最佳非支配组,每个组选取一个个体,共 S 个个体)作为合作者对产生的子物种Q1 - Q2 进行评估

图示如下:
CCGDE3 - 2013_第5张图片


四、缺点分析

论文的主要意义是第一个提出了专为处理 LSMOP 的算法,现在来看算法本身是有很多不足的呀 ╮(﹀_﹀)╭

主要如下:

  1. 分组方法太过粗糙:随机变量分组与静态变量分组,在处理变量的相互作用上基本毫无成效~
  2. 优化器许是受到时代的局限性,采取了 GDE3~
  3. 算法初始化时对变量进行分组,在算法的整个循环过程都是以 m 个物种进行优化

五、写在最后

本文大概过了一遍 CCGDE3,想看原文的同学请从文章开头的引用中使用 sci-hub 自行下载哦!

而对于文末的缺点分析,2016年提出的 MOEA/D-RDG,对所述的三点都进行了改进,是罕有的在层次上有明显递进关系的算法。当然,关于 MOEA/D-RDG 还有一趣事,是与另一个算法的“爱恨情仇”,但这里空白的地方太小,写不下,遂待下文分解 ╮(╯▽╰)╭

你可能感兴趣的:(大规模多目标进化优化算法)