多父体杂交演化算法

多父体杂交演化算法(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一般可以有较好效果。



发表评论

You must be logged in to post a comment.