遗传算法-编码

2021/5/10 14:55:16

本文主要是介绍遗传算法-编码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

编码是建立 基因型 与 表现型 的映射关系

 

编码原则

完备性(completeness):问题空间的所有解都能表示为所设计的基因型;

健全性(soundness):任何一个基因型都对应于一个可能解;

非冗余性(non-redundancy):问题空间和表达空间一一对应

 

二进制编码

解决常规问题最常用的编码方式

编码原则

二进制的位数由 解空间 大小决定,如 解空间为 0-10,则 编码位数为 3 位 111=12

 

优缺点

优点-简单

编码、解码操作简单;

交叉、变异便于实现;

缺点-变化剧烈且不连续

二进制编码,随机改变一个位置的数字,可能带来几十(2^4=16)甚至上百(2*10=128)的变化,这使得搜索过程变化剧烈,故而

变异过程不连续;

局部搜索(小范围搜索)能力较差;

不适合高精度问题;

一句话,个体长度较短时,无法满足精度要求;个体长度较长时,增加解空间的搜索难度

 

浮点数编码

编码原则

根据业务自行设定,一个个体可以是一个浮点数,也可以是多个,如 1.2-3.2-5.3-7.2-1.4-9.7

 

优点

适用于数值比较大的解

适用于精度较高的解

适用于解空间较大的情况

 

摘录他人

  1. 改善了遗传算法的计算复杂性,提高了运算交率
  2. 便于遗传算法与经典优化方法的混合使用
  3. 便于设计针对问题的专门知识的知识型遗传算子
  4. 便于处理复杂的决策变量约束条件

 

交叉变异的特点

如果是 多个浮点数,基本和二进制的 单点交叉、多点交叉 等雷同,

如果是 单个浮点数,有其方式,也很灵活,

  // 如交叉:随机产生介于 父亲和母亲 间的一个数,(5.5,7, 6.3),

  // 如变异:随机加上一个 (-1, 1)之间的一个数

 

符号编码

摘录他人

  1. 符合有意义积术块编码原则
  2. 便于在遗传算法中利用所求解问题的专门知识
  3. 便于遗传算法与相关近似算法之间的混合使用。

 

 

实值编码

根据实际情况编码

 

 

 

参考资料:

https://www.jianshu.com/p/ae5157c26af9  超详细的遗传算法(Genetic Algorithm)解析

https://blog.csdn.net/u010451580/article/details/51178225/



这篇关于遗传算法-编码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程