遗传算法简介

把计算机科学与进化论结合起来的尝试始于50年代末,但由于缺乏一种通用的编码方案
,人们只能依赖变异而非交配来产生新的基因结构,故而收效甚微。到60年代中期,美
国Michigan大学的John Hol-land在A.S.Fraser和H.J.Bremermann等人工作的基础
上提出了位串编码技术。这种编码既适于变异操作,又适于交配(即杂交)操作,并且
强调将交配作为主要的遗传操作。随后,Holland将该算法用于自然和人工系统的自适应
行为的研究中,并于1975年出版了其开创性著作“Adaptation in Natural
andArtificialSystems”.之后,Holland等人将该算法加以推广,应用到优化及机器学
习等问题中,并正式定名为遗传算法。遗传算法的通用编码技术和简单有效的遗传操作
为其广泛、成功的应用奠定了基础。
  Holland的遗传算法常被称为简单遗传算法(SGA),其操作对象是一群二进制串(
称为染色体、个体),即种群(population)。在此,每个染色体都对应问题的一个解
。从初始种群出发,采用基于适应值比例的选择策略在当前种群中选择个体,使用杂交
和变异来产生下一代种群。如此一代代演化下去,直到满足期望的终止条件。需要指出
的是,目前的遗传算法已不再局限于二进制编码。Z.Michalewicz将不同的编码策略(
即不同的数据结构)与遗传算法的结合称为演化程序(Evolution Program)。

    典型的遗传算法的核心过程可以如下描述为:

  { 

      随机初始化种群P(0)={x1,x2,-,xn},t:=0;

      计算P(0)中个体的适应度;

      while(不满足终止条件)do 

    {     
            根据个体的适应度以及选择策略,计算种群内个体的选择概率pi;

    根据pi从中选择N1(≤N)个个体进行遗传操作(复制、杂交及变异等),用N1个后
代换掉P(t)中N1个较差的个体,生成新种群P(t+1);

    计算P(t+1)中个体的适应度,t=t+1;

          } 
    }
  关于遗传算法的有关基本理论和有关算法中的一些过程的意义(如:复制过程,杂
交过程等)和一些具体的名词(如:变异率等)以及各参数的选取方法,请参阅文献[6
~8]。
  遗传算法本身即是一种全局随机搜索方法,可以采用一定的方式来设计遗传算法以
保证其收敛到全局最优解。这样可以克服基于迭代原理的各种数值方法对适用问题的局
限以及无法保证可以收敛到全局最优解的缺点。对于需要进行全局优化和难于进行解析
处理的问题,遗传算法通常能够发挥其优势。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值