遗传算法Matlab程序
fx11si
6x7cos5x0x2pi初始化参数L16编码为16位二进制数N32初始种群规模M48M个中间体,运用算子选择出M2对母体,进行交叉;对M个中间体进行变异T100进化代数Pc08交叉概率Pm003变异概率将十进制编码成16位的二进制,再将16位的二进制转成格雷码fori11N
x11ira
d2pix21iui
t16x11i2pi65535grayCodei
um2grayx21iLe
d开始遗传算子操作fort11Ty111si
6x17cos5x1fori11M2
abmi
y1找到y1中的最小值a,及其对应的编号bgrayCodeNewigrayCodeb将找到的最小数放到grayCodeNew中grayCodeNewiM2grayCodeb与上面相同就可以有M2对格雷码可以作为母体y11bi
f用来排除已找到的最小值e
dfori11M2pu
idr
dL生成一个大于零小于L的数,用于下面进行交叉的位置ifra
dPcPc是交叉概率
将选定的染色体的点后的基因进行交换forjp1L
tempgrayCodeNewijgrayCodeNewijgrayCodeNewMi1jgrayCodeNewMi1jtempe
de
de
d将全部染色体按概率进行变异fori11Mforj11Lifra
dPmPm为染色体变异的概率grayCodeNewijdec2bi
1bi
2decgrayCodeNewije
de
de
d第一代结束后生成的较优的染色体,得以保存然后进行下一代操作fori11Mx41igray2
umgrayCodeNewie
dx3doublex42pi65535y311si
6x37cos5x3fori11Nabmi
y3x11ix31bgrayCodeigrayCodeNewby31bi
fe
d
第1页共2页
f遗传算法Matlab程序e
dx1y111si
6x17cos5x1
第2页共2页
fr