进化算法(EP)

算法描述

        EP 是 L. J. Fogel 于20世纪60年代在人工智能研究中提出的一种有限状态机进化模型,在此模型中机器的状态基于分布的规律进行编译。

        D. B. Fogel 在90年代拓广了 EP 思想,使它可处理实数空间的优化问题,并在变异运算中引入了正态分布变异算子,这样 EP 就变成了一种优化搜索工具,并在很多实际问题中得到了应用。

        EP 模拟生物种群层次上的进化,因此在进化过程中主要强调生物种群行为上的联系,即强调种群层次上的行为进化而建立父、子代间的行为链,意味着好的子代才有资格生存,而无论其父代如何,适于选择子代。

算法流程

[plain]  view plain  copy
 print ?
  1. 初始化(个体表现型X, 群体规模N, 迭代次数G等)  
  2. 随机产生初始群体并计算适应值(含N 个个体)   
  3. while (not done)  
  4. {  
  5.     for(i = 1; i < N; i++)  
  6.     {  
  7.         对Xi进行变异得到Xi'   
  8.         对Xi进行可行性检查  
  9.         计算xi的适应值   
  10.     }  
  11.     从2N 个个体中选择N 个个体   
  12. }   
  13. 输出结果   

对算法流程的解释

        ①个体表现型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)的最小值。

        示例代码下载地址: http://download.csdn.net/detail/joe_lq/9131119

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值