LSHADE-SPACMA:混合CMA-ES半参数自适应LSHADE

文章目录

参考文献:LSHADE-SPACMA

LSHADE部分

具体请参见LSHADE

CMA-ES部分

具体请参见CMA-ES

SPA:对F和CR的半参数自适应

SPA部分包括两个过程:前一半周期对CR的自适应和后一半周期对F和CR的自适应

SPA第一部分

个体F通过高斯分布产生: F i = 0.45 + 0.1 ⋅ r a n d F_i=0.45+0.1\cdot rand Fi​=0.45+0.1⋅rand
个体CR通过高斯分布产生: C R i = r a n d n ( M c r i , 0.1 ) CR_i=randn(M_{cri},0.1) CRi​=randn(Mcri​,0.1)

SPA第二部分

个体F通过柯西分布产生: F i = r a n d c ( M F i , σ ) , σ = 0.1 F_i=randc(MF_i,\sigma),\sigma=0.1 Fi​=randc(MFi​,σ),σ=0.1
个体CR通过高斯分布产生: C R i = r a n d n ( M c r i , 0.1 ) CR_i=randn(M_{cri},0.1) CRi​=randn(Mcri​,0.1)

SPACMA:SPA与CMA-ES混合框架

首先引入几个新的参数:

  1. FCP:分割概率,决定个体产生子代的方式
  2. M F C P M_{FCP} MFCP​:存储FCP的记忆项
  • M F C P M_{FCP} MFCP​的自适应: M F C P , g + 1 = ( 1 − c ) M F C P , g + c ⋅ △ a l g 1 M_{FCP,g+1}=(1-c)M_{FCP,g}+c\cdot\bigtriangleup_{alg1} MFCP,g+1​=(1−c)MFCP,g​+c⋅△alg1​,c是学习速率, △ a l g 1 \bigtriangleup_{alg1} △alg1​是改进占比,它的计算方式如下:
  • △ a l g 1 = m i n ( 0.8 , m a x ( 0.2 , ω A l g 1 ω A l g 1 + ω A l g 2 ) ) \bigtriangleup_{alg1}=min(0.8,max(0.2,\frac{\omega_{Alg1}}{\omega_{Alg1}+\omega_{Alg2}} )) △alg1​=min(0.8,max(0.2,ωAlg1​+ωAlg2​ωAlg1​​)),这里要求FCP的值必须在[0.2,0.8]这个范围内
  • ω A l g 1 \omega_{Alg1} ωAlg1​表示属于第一部分所有个体的适应度差值的累加: ω A l g 1 = ∑ f ( x ) − f ( u ) \omega_{Alg1}=\sum f(x)-f(u) ωAlg1​=∑f(x)−f(u)

SPACMA改变了LSHADE参数自适应的方式和产生子代的方式,在LSHADE-SPACMA中,每个个体根据自身的FCP值决定是通过原始LSHADE方法还是通过CMA-ES的取样方法产生变异向量,此后两个子代种群会合并,在迭代过程中,算法会自动分配FCP的比值,以朝着最优化的方向前进,而SPA第一部分对F的钳制使得算法不容易过早收敛,

参数设置

  1. M C R , M F , M F C P M_{CR},M_{F},M_{FCP} MCR​,MF​,MFCP​初始化为0.5
  2. 记忆长度 H = 5 H=5 H=5
  3. 初始种群大小: N i n i t = 18 ∗ D i m N_{init}=18*Dim Ninit​=18∗Dim
  4. 外部集合大小: 1.4 ∗ N 1.4*N 1.4∗N

算法流程

  • 初始化参数
  • while
  • 从记忆项中随机选取一个值 r i f r o m [ 1 , H ] r_{i}from[1,H] ri​from[1,H]
  • 产生个体的CR,FCP,F值
  • 根据FCP值划分种群 [ P L S H A D E , P C M A ] [P_{LSHADE},P_{CMA}] [PLSHADE​,PCMA​]
  • 分别用LSHADE和CMA-ES产生突变向量 V L S H A D E , V C M A − E S V_{LSHADE},V_{CMA-ES} VLSHADE​,VCMA−ES​
  • 交叉产生试验向量 U G U_G UG​
  • 选择操作
  • 存储成功改进个体的CR,FCP,F值
  • 更新外部存档A
  • 更新记忆项 M C R , M F , M F C P M_{CR},M_{F},M_{FCP} MCR​,MF​,MFCP​
    LSHADE-SPACMA:混合CMA-ES半参数自适应LSHADE

实验结果分析

LSHADE-SPACMA:混合CMA-ES半参数自适应LSHADE

  • 低维度上SPACMA没有明显改善
  • 中等维度上SPA发挥了作用
  • 高维度上CMA发挥了作用

源代码

matlab code

上一篇:野火STM32学习(10)


下一篇:细菌框架图(IF5+)助力耐碳青霉烯的肺炎克雷伯菌研究