141/ 3 遗传算法的计算步骤例 1:设2( )20
5f xxx,求max( ),[ 1,2]f xx.(1)编码和产生初始群体首先第一步要确定编码的策略, 也就是说如何把1到 2 这个区间内的数用计算机语言表示出来.编码时要注意以下三个原则:完备性:问题空间中所有点(潜在解)都能成为GA 编码空间中的点(染色体位串)的表现型;健全性: GA 编码空间中的染色体位串必须对应问题空间中的某一潜在解;非冗余性:染色体和潜在解必须一一对应.这里我们通过采用二进制的形式来解决编码问题,将某个变量值代表的个体表示为一个 {0 ,1} 二进制串.当然,串长取决于求解的精度.如果要设定求解精度到六位小数,由于区间长度为2( 1)3,则必须将闭区间[ 1,2] 分为63 10等分.因为21622209715223 1024194304所以编码的二进制串至少需要22 位.将一个二进制串 (b21b20b19⋯b1b0)转化为区间 [ 1,2] 内对应的实数值很简单,只需采取以下两步:1)将一个二进制串( b21b20b19⋯b1b0)代表的二进制数化为10 进制数:2121 2019102100()(2 )'iiib b bb bbx2)'x对应的区间 [ 1,2] 内的实数:12)1(2'122xx例如,一个二进制串a=表示实数 0
637197.'x =(1000101110110101000111)2=2288967 637197
01232288967122x二进制串 ,,则分别表示区间的两个端点值 -1 和 2.利用这种方法完成了遗传算法的第一步——编码,这种二进制编码的方法完全符合上述的编码的三个原则.首先我们来随机的产生一个个体数为4 个的初始群体如下:pop(1)={ ,%% a1 ,%% a2 ,%% a3 } %% a4 化成十