一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子详解

觉得有用的话,欢迎一起讨论相互学习~Follow Me

参考文献
衷心感谢武汉科技大学张凯教授的精心培育和指导

交叉算子cross operator

  • 交叉算子和变异算子的区别在于,交叉算子 必须从两个或以上子代中继承到有用的遗传物质 否则只能称为是某种变异算子。
  • 重组/交叉算子的设计应考虑其表示形式,使重组不总是灾难性的。
  • 重组应产生有效的染色体

Introduction

  • SBX是模拟二进制编码的遗传算法中的单点交叉 ,对于后者简单示意图如下图所示:
    模拟二进制交叉算子详解

交叉前后解码实数值的平均相等

p1+p22=c1+c22\frac{p_1+p_2}{2}=\frac{c_1+c_2}{2}
模拟二进制交叉算子详解

交叉前后解码实数值差的商略等于1

  • 思想即为子代会离其父代较近(传播因子β\beta定义为子女与父母之间距离的比值)
  • Spread Factor β=c1c2p1p2\beta=|\frac{c_1-c_2}{p_1-p_2}|

但是Spread Factor也会大于或者小于1或者等于1

模拟二进制交叉算子详解
模拟二进制交叉算子详解

  • 基于此,考虑一个长度为15的二进制编码的个体,之间随机挑选所有可能的分割位点进行单点变异后的子代和父代计算的β\beta数值
    模拟二进制交叉算子详解

Proposed methods

  • 针对使用二进制编码的单点交叉具有的Average Property 和 Spread Factor Property ,使用概率密度函数的方式在实数中也对此进行模拟。 --使用实数进行操作有效的避免了
  • Hamming cliffs汉明悬崖 即10000和01111(二进制) 16和15在10进制中看似只相差一位,但是如果使用二进制表示的单点变异需要同时改变5位
  • fixed precision固定精度 二进制表示十进制数通过位数表示精度,即如果需要表示的小数点后的位数增加,则使用的二进制编码长度也增加
  • bound variables有界变量 对于固定长度的染色体,其能表示的变量范围是有界限的,超出长度的部分表示不出
  • Average Property 解码后的平均值是守恒的
  • Spread Factor Property 子代的差和父代的差的比表示为传播因子,这个值大致等于1

反解出子代

根据

  1. c1+c2=p1+p2c_1+c_2=p_1+p_2
  2. c1c2p1p2=β|\frac{c_1-c_2}{p_1-p_2}|=\beta
    ==>
    c1=1/2(p1+p2)1/2β(p2p1)c_1=1/2(p_1+p_2)-1/2\beta(p_2-p_1)
    c2=1/2(p1+p2)+1/2β(P2p1)c_2=1/2(p_1+p_2)+1/2\beta(P_2-p_1)
  • 如果能够随机生成不同的β\beta,那么就能根据父代生成不同的子代

通过概率密度函数拟合β\beta

模拟二进制交叉算子详解

  • 更大的分布指标n意味着子代和父代更接近。
    模拟二进制交叉算子详解
  • 通过概率密度求出分布函数
    模拟二进制交叉算子详解

总结

模拟二进制交叉算子详解

相关文章:

  • 2021-06-03
  • 2021-07-23
  • 2022-12-23
  • 2022-12-23
  • 2023-01-06
  • 2021-11-30
  • 2022-03-01
猜你喜欢
  • 2021-06-10
  • 2022-01-17
  • 2021-06-19
  • 2021-05-31
  • 2021-05-17
  • 2022-12-23
相关资源
相似解决方案