遗传算法与优化问题(重要-有代码)【精品毕业设计】(完整版) 联系客服

发布时间 : 星期一 文章遗传算法与优化问题(重要-有代码)【精品毕业设计】(完整版)更新完毕开始阅读4a0d30120a1c59eef8c75fbfc77da26925c596c3

要说明的是:附录11的算法与这里不完全相同.为保证收敛性,附录11的算法作了修正,采用了最佳个体保存方法(elitist model),具体内容将在后面给出介绍.

由初始群体的入选概率我们淘汰掉a3,再加入a2补足成与群体同样大小的种群得到newpop(1)如下:

newpop(1)={

<1101011101001100011110>, %% a1 <1000011001010001000010>, %% a2 <1000011001010001000010>, %% a2 <0110101001101110010101>} %% a4 (5)交叉

交叉也就是将一组染色体上对应基因段的交换得到新的染色体,然后得到新的染色体组,组成新的群体(Matlab程序参见附录9).

我们把之前得到的newpop(1)的四个个体两两组成一对,重复的不配对,进行交叉.(可以在任一位进行交叉)

<110101110 1001100011110>, <1101011101010001000010> 交叉得:

<100001100 1010001000010>, <1000011001001100011110>

<10000110010100 01000010>, <1000011001010010010101> 交叉得:

<01101010011011 10010101>, <0110101001101101000010>

通过交叉得到了四个新个体,得到新的群体jchpop (1)如下: jchpop(1)={

<1101011101010001000010>, <1000011001001100011110>, <1000011001010010010101>, <0110101001101101000010>}

这里采用的是单点交叉的方法,当然还有多点交叉的方法,不过有些烦琐,这里就不着重介绍了. (6)变异

变异也就是通过一个小概率改变染色体位串上的某个基因(Matlab程序参见附录10).

现把刚得到的jchpop(1)中第3个个体中的第9位改变,就产生了变异,得到了新的群体pop(2)如下:

pop(2)= {

<1101011101010001000010>, <1000011001001100011110>,

<1000011011010010010101>,

<0110101001101101000010> }

然后重复上述的选择、交叉、变异直到满足终止条件为止. (7)终止条件

145