算法描述
EP 是 L. J. Fogel 于20世纪60年代在人工智能研究中提出的一种有限状态机进化模型,在此模型中机器的状态基于分布的规律进行编译。
D. B. Fogel 在90年代拓广了 EP 思想,使它可处理实数空间的优化问题,并在变异运算中引入了正态分布变异算子,这样 EP 就变成了一种优化搜索工具,并在很多实际问题中得到了应用。
EP 模拟生物种群层次上的进化,因此在进化过程中主要强调生物种群行为上的联系,即强调种群层次上的行为进化而建立父、子代间的行为链,意味着好的子代才有资格生存,而无论其父代如何,适于选择子代。
算法流程
对算法流程的解释
①个体表现型X : X = (x1, x2, ┉┉ ,xn, σ1,σ2, ┉┉ σn),其中x1 ┉┉ xn为个体表现的分量,σ1 ┉┉ σn为个体表现分量的变异参数;
②群体规模N : 为改算法中包含的个体数;
③随机产生初始群体 : 在个体表现型X中对于个体 xi 初始化为再该分量中范围内随机取值,σi 根据 N(0, 1)产生,并计算该个体的适应值;
④对 Xi 进行变异得到 Xi‘ : 可根据如下公式进行变异;
⑤对 Xi’ 进行可行性检查,计算适应值 : 对 Xi‘ 中的各个分量在取值范围内进行判断,若不符合取值范围,处理方法可见下一节,若符合,计算该个体的适应值;
⑥从2N个个体中选择N个个体 : 方法采用随机型q-竞争法,详细请参看下一篇博文;
一些问题的解释
①个体变异不成功: 可采用三种方法:(1)重新变异直至可行; (2)从解空间中随机选取一个可行解代替; (3)选择当代中的最优解代替;
②变异公式: 变异公式可根据实际情况略作修改,如:将 + 改为 - ;
代码示例
示例代码求取 f(x) = x1 * x1 + x2 * x2 在区间(-1000, 1000)的最小值。