一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子详解
衷心感谢武汉科技大学张凯教授的精心培育和指导 以下内容包含老师授课内容,欢迎大家报考武汉科技大学计算机科学与技术学院信息安全系
交叉算子cross operator
- 交叉算子和变异算子的区别在于,交叉算子 必须从两个或以上子代中继承到有用的遗传物质 否则只能称为是某种变异算子。
- 重组/交叉算子的设计应考虑其表示形式,使重组不总是灾难性的。
- 重组应产生有效的染色体
Introduction
- SBX是模拟二进制编码的遗传算法中的单点交叉 ,对于后者简单示意图如下图所示:
交叉前后解码实数值的平均相等
交叉前后解码实数值差的商略等于1
- 思想即为子代会离其父代较近(传播因子β定义为子女与父母之间距离的比值)
- Spread Factor
但是Spread Factor也会大于或者小于1或者等于1
- 基于此,考虑一个长度为15的二进制编码的个体,之间随机挑选所有可能的分割位点进行单点变异后的子代和父代计算的β数值
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
反解出子代
根据
- ==>
- 如果能够随机生成不同的,那么就能根据父代生成不同的子代
- 如果能够随机生成不同的β,那么就能根据父代生成不同的子代
通过概率密度函数拟合β
- 更大的分布指标n意味着子代和父代更接近。
- 通过概率密度求出分布函数