2.2 遗传操作方面的改进
(1) 选择操作
在遗传进化的初始阶段,这个时候可能存在适应度较高的个体,根据轮盘赌选择方法,那么这些个体被选中的机率就会很大,从而会选择复制出相当数量的子代,这就容易导致种群的多样性丧失,种群中个体太单调,很难再进行遗传进化,所以也很难搜索到全局最优解。其次是在遗传进化的末了阶段,这个时候种群中的所有个体之间的差异不是很大,因而适应度也很接近,所以此时的轮盘赌选择方法已经无效,丧失了继续选择的功能,也就无法分辨种群中个体的好坏了。
所以对选择算子采取如下改进方式:将群体中的所有个体按照适应度由高到低进行排序,分成三等份,排在最前面1/3的个体复制两份,中间的1/3复制一份,最后面的1/3抛弃,这样一来种群数目还是没有改变。用这种方法来进行选择,可以将适应度比较低的个体直接淘汰掉,并且增加了适应度较好的个体的数目,从而在一定程度上解决了上述问题。
(2) 交叉操作与变异操作
交叉操作是遗传算法群体进化的主要途径,交叉算子的好坏直接影响到遗传算法的收敛速度的快慢。由于遗传算法优化模糊控制的特殊性,个体的前9位编码代表隶属函数,取值为实数;后49位代表控制规则,取值为整数,各自的含义和取值范围不同。如果按照通常的方法进行交叉,易产生一些不合理的病态个体,导致错误的规则,因此,在交叉方法上要区别对待,同时加以必要的限制。针对模糊控制的编码特点,本文采用分步单双点交叉方法,步骤如下:
首先,对于前9位编码进行单点交叉;然后对于后49位编码,在两个等位基因进行交换之前先判断其差值的绝对值是否小于2,若小于2,则采用双点交叉,否则不进行交叉操作。本文所采用的交叉算子如下[9]:
上页 1 2 3 4 5 下页