通用编码介绍
1.二进制代码:
(1)定义:二进制编码方式是使用二进制符号集{0,1},其个体基因型为二进制编码符号串。二进制编码符号串的长度与问题要求的精度有关。
(2)例:0x1023,精度为1,m代表二进制码的长度。建议2m-11000(与精度有关)2m-1。M=10
那么X:0010101111可以代表一个个体,其对应的问题空间的值为x=175。
(3)优点和缺点
优点:符合最小字符集原则,便于用模式定理分析;
缺点:连续函数离散化时映射错误。
2.格雷码编码
(1)定义:格雷码码是指两个连续整数对应的码之间只有一个码点不同,其他码点完全相同。它是二进制编码方法的变体。
十进制数字0-15之间的二进制代码和相应的格雷码编码如下。
二进制代码是:0000,0001,0010,001 1,0100。0101,0110,0111,
1000,1001,1010,1011,1100,1101,1110,1111;
格雷码是:0000,0001,0011,0010,0110,0111,0101,0100,
1100,1101,1111,1110,1010,1011,1001,1000。
(2)示例:对于间隔[0。1023],两个相邻的整数X1=175和X2=176可以通过使用10位二进制码表示为X11:00101111和X22: 001010000,通过使用相同长度的格雷码可以分别表示为X21: 00101111和X22:00101000。
(3)优点:增强了遗传算法的局部搜索能力,便于连续函数的局部控制搜索。
3.浮点(实数)编码
(1)定义:浮点编码是指个体的每个基因值用一定范围内的浮点数表示,个体的编码长度等于其决策变量的个数。因为这种编码方法使用决策变量的真值,所以也称为真值编码方法。
(2)示例:
(3)优点:实数编码是遗传算法中求解连续参数优化问题常用的编码方法,在表示连续渐变问题时具有较高的精度和优势。
4.排列和编码
编码,又称序列编码,是针对一些特殊问题的特定编码方法。编码使问题简洁易懂。这种编码方法将元素排列在一个有限的集合中。如果集合中有m个元素,那就是m!一种排列方法,当m不大的时候,m!不会太大。疲惫可以解决问题。当m较大时,m!会变得很大,穷举法就会失效,而遗传算法在解决这类问题上有优势。比如在求解TSP问题时,使用置换编码是自然合理的。
5.其他编码方法
多参数级联编码等