遗传算法的基本原理和方法 一、编码编码:把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法
解码(译码):遗传算法解空间向问题空间的转换
二进制编码的缺点是汉明悬崖(HammingCliff),就是在某些相邻整数的二进制代码之间有很大的汉明距离,使得遗传算法的交叉和突变都难以跨越
格雷码(GrayCode):在相邻整数之间汉明距离都为 1
(较好)有意义的积木块编码规则:所定编码应当易于生成与所求问题相关的短距和低阶的积木块;最小字符集编码规则,所定编码应采用最小字符集以使问题得到自然的表示或描述
二进制编码比十进制编码搜索能力强,但不能保持群体稳定性
动态参数编码(DynamicParemeterCoding):为了得到很高的精度,让遗传算法从很粗糙的精度开始收敛,当遗传算法找到一个区域后,就将搜索现在在这个区域,重新编码,重新启动,重复这一过程,直到达到要求的精度为止
编码方法:1、二进制编码方法缺点:存在着连续函数离散化时的映射误差
不能直接反映出所求问题的本身结构特征,不便于开发针对问题的专门知识的遗传运算算子,很难满足积木块编码原则2、格雷码编码:连续的两个整数所对应的编码之间仅仅只有一个码位是不同的,其余码位都相同
3、浮点数编码方法:个体的每个基因值用某一范围内的某个浮点数来表示,个体的编码长度等于其决策变量的位数
4、各参数级联编码:对含有多个变量的个体进行编码的方法
通常将各个参数分别以某种编码方法进行编码,然后再将他们的编码按照一定顺序连接在一起就组成了表示全部参数的个体编码
5、多参数交叉编码:将各个参数中起主要作用的码位集中在一起,这样它们就不易于被遗传算子破坏掉
评估编码的三个规范:完备性、健全性、非冗余性
二、选择遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取那些个体遗传到下一代群体中的一种遗传运算,用来确定重组或交叉