多父体杂交演化算法
多父体杂交演化算法(Multi-Parent Crossover Evolutionary Algorithm,MMEA)
算法流程
(1)初始化种群population。
(2)从种群中随机选取M个点,从反射算子、压缩算子、扩张算子中随机选择一种多父体杂交算子,从这M个点中通过执行选定的多父体杂交算子生成一个新个体。如果新个体好于群体中的最差个体,则用新个体取代最差个体。
(3)如果满足终止条件,则输出群体中的最优解作为优化问题的解,算法终止,否则继续执行(2)。
多父体杂交演化算法是一种稳态淘汰算法,每一代只淘汰最差的个体,从而可以很好地保持种群多样性,里面不容易陷入局部最优。
主要的3个多父体杂交算子产生流程
(1)从种群中随机选择M个个体组成popM;
(2)从popM中找到一个最差的个体Xw;
(3)把除去Xw后的M-1个个体的质心称为Xp:
Xp = (sum(popM) – Xw)/(M-1)
(4)找到Xw相对于Xp的反射点Xr:
Xr = 2*Xp – Xw
得到的新个体Xr的算子叫做反射算子。
(5)找到Xp相对于Xr的反射点Xz:
Xz = 2*Xr – Xp
(6)在Xp和Xr之间随机取一点,称为Xc,这样得到新个体Xc的算子叫做压缩算子。
(7)在Xz和Xr之间随机取一点,称为Xe,这样得到新个体Xc的算子叫做扩张算子。
M取为4一般可以有较好效果。