合作协同进化算法CCEAs(Cooperative Co-Evolution Algorithm)

**

合作协同进化算法CCEAs

**

1.概述

        CCEAs(合作协同进化算法)是一个求解大规模优化问题的算法,该算法采取“分而治之”的策略。对于一个优化问题,依变量分解成若干组问题,分组优化,且各分组间进行合作协同,共同完成整个问题的优化。
        复杂问题分解为子问题,子问题在进化的子种群中解决,个体的评估依赖于子种群间的合作,由各子种群的代表性个体组合而得完整的解决方案。个体在子种群的适应度由其在完整解决方案的参与来评估。
        CCEAs优于传统EA:
        a.问题分解后可通过并行计算提速,提高优化效率;
        b.子问题在子种群独立解决,方法多样;
        c.分解成子模块,增加对模块错误的鲁棒性;
        d.正确的分解能够减缓决策变量的迅速增加。

2.CCGA

        CCGC,循环的方式解决优化子问题,每个子问题分配同样多的计算资源。
在这里插入图片描述
【算法过程】:
n:变量数,N:子种群规模.
b:当前优化解,:适应值.
Step1问题分解,n维解向量分解为n个1维子部分;
Step2随机初始化子种群P和解向量b;
Step3进化(循环);
    3.1生成后代子种群§,每个子问题都含进化算子
    3.2个体适应值评估
计算子种群个体适应值:
If CCGA-2
If then
        3.3更新解向量
If ,then .
        3.4选择下一代子种群:.

3.问题分解策略与变量关联学习方法

变量分组策略:
A.静态变量分组:每组变量数相等且固定.
B.随机变量分组:每组变量数可以动态修改,变量随机选择.
C.基于交互学习的变量分组:变量关联分组,组件变量不相关.
D.基于领域知识的变量分组:以领域知识为依据进行变量分组.
E.重叠和层次变量分组:多个分组共享一个变量,组间关联小.
F.混合变量分组:多种分组策略组合,对某些特定问题效果更好.

4.CCEAs协作者选择策略

策略涉及两个主要因素:协作者选择压力,协作者池规模。
单目标优化问题SOPs的协作者选择策略。
多目标优化问题MOPs的协作者选择策略。

5.个体适应值分配与子问题资源分配

A.个体适应值分配:依据个体与其他子种群在组成完整解决方案时的协作程度.
a.以多个完整解决方案的适应值来评估个体适应值,可以取最佳值、平均值或最差值.
b.Pareto dominance techniques(帕累托优势技术),以双亲个体适应值的加权平均值估计后代个体的适应值.
c.启发式估计方法.
B.子问题计算资源分配.
a. Round-Robin strategy(循环策略),每个子问题分配等量计算资源,应用最为广泛.
b.子问题计算资源不均衡分配.

6.CCEAs的实现

CCEAs以元启发式算法实现:调整“分而治之”的策略,提高性能.
以元启发式算法DE和PSO(最广泛使用)实现的CCEAs适用连续优化问题.
以ACO为基础的CCEAs适用组合优化问题.
CCEAs以并行方式实现:多目标优化,提高效率.

7.CCEAs的标准测试问题与理论分析

A.CCEAs标准测试问题
早期:连续优化函数,Rastrigin,Schwefel,Griewangk和Ackley问题.
简化测试:pseudo-Boolean problems(伪布尔问题).
逐步引进一些大规模优化问题,博弈论、多机器人系统、N-K景观问题.
B.CCEAs理论分析
针对伪布尔问题
C.CCEAs控制参数
子部分数目:取决于问题本身和变量分组策略.
子种群规模:
计算资源分配:适应值评估数量,U in CCFR,平衡因子.

8.CCEAs的病理分析

错误的问题分解会产生不可估测的病理性问题.
算法本身具有不确定性因素,对协作者的不同选择可能会产生迥异的问题解决方案.

9.CCEAs的应用

A.连续优化问题:处理不可行个体(惩罚函数),子种群保持多样性.
B.组合优化问题:旅行商问题,路径规划问题,着色问题等.

10.总结与展望

1).子问题优化器.
2).BCD数学算法(与CCEAs样式相近).
3).CCEAs理论分析(初级阶段).
4).模拟具有不同类型生态关系的物种的共同进化.
5).将进化博弈论EGT用于研究CCEAs.

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
协同进化算法(Cooperative Coevolutionary Algorithm,简称CCEA)是一种解决问题的计算方法,其主要思想是将一个问题分成多个子问题,然后将每一个子问题分配给不同的个体去求解。CCEA在解决一些复杂问题的时候有着很好的效果,然而,在传统的CCEA中,每个个体所处理的子问题是相对独立的,这种处理方式可能会导致全局最优解的丢失,因此引入基于协同进化的优化方法可以避免这种情况的发生。 Matlab(Matrix Laboratory)是一种数学软件,主要用于科学计算、数据可视化以及数值分析等领域。Matlab可以对矩阵进行计算,可以进行图形绘制和数据分析,并且可以开发自己的程序。由于Matlab有着丰富的函数库和大量的工具箱,因此在科学计算和数据分析方面有着广泛的应用。 基于Matlab的协同进化算法(Cooperative Coevolutionary Algorithm based on Matlab,简称MATLAB-CCEA)可以将Matlab和CCEA技术结合起来,来解决一些复杂的问题,在MATLAB-CCEA中,每个个体可以通过传递信息来协同进化,这样可以避免出现子问题之间相互独立的情况,从而使得总体的性能有所提升并且有可能突破瓶颈。 总之,MATLAB-CCEA 是一种高效的计算方法,可以用来解决一些复杂的问题,如多目标优化问题及带约束问题,它的应用范围非常广泛,例如自动控制、电力系统、机械制造、通信工程等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值