码迷,mamicode.com
首页 > 编程语言 > 详细

初识遗传算法

时间:2015-05-09 14:39:03      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

遗传算法的实现主要包含以下7个重要问题:

1、染色体的编码

2、群体初始化

3、适应值评估

4、选择种群

5、种群交配

6、种群变异

7、算法流程

下面分别简单的介绍

1、染色体编码

  解决问题解的表示就是染色体的编码方式,编码方式的选择会对后面的操作造成重要影响,常用的比较简单的编码方法

二进制编码方法(Binary Representation)和浮点数编码方法(Float Point Representation)

2、群体初始化

  采用随机数初始化的方法,对染色体的每一维变量进行初始化赋值。

3、适应值评价

  评估函数用于评估各个染色体的适应值,进而区分优劣,评估函数常常根据问题的优化目标来确定。

4、选择算子

  遗传算法的传统选择算子的作用 是根据适应值函数的值从种群中选出优秀的个体, 包括轮盘赌选择锦标赛选择

5、交配算子

  交配算子是获取新的优秀个体的重要手段,两个父体通过交配操作交换各自优秀的基因,从而获得更加优秀的个体。

交配算子有:部分匹配交配、顺序交配(OX交配)、循环交配和边重组等。

6、变异算子

   变异操作发生在某个染色体的某个基因上,它将可变性引入群体中,增强了群体的多样性,从而提供了从局部最优

中跳出来的一种手段。变异方法也是一个随机的、盲目的变异,因此需要使用比较小的变异概率(pm)来控制以避免造

成种群的破坏。经常使用的变异算子有“基于位置的变异”和“基于次序的变异”。

7、算法流程

  step1:初始化规模为N的群体,其中染色体的每个基因的值采用随机数产生。当前进化代数g=0

  step2:采用评估函数对群体所有染色体进行评价,计算每个染色体的适应值,保存适应值最大的染色体best。

  step3:采用合适的选择算法对群体的染色体进行选择操作,产生同规模的种群。

  step4:按给定的交配概率从种群中选择染色体进行交配,没有交配的染色体直接复制进入新的种群。

  step5:按给定的变异概率对新种群染色体的基因进行变异操作,变异后的染色体取代原有染色体进入新群体,未变异

的染色体直接进入新群体。

  step6:变异后的新种群取代原有群体,重新计算染色体的适应值,若群体最大适应值高于best的适应值,则群体最大

适应值对应的染色体替代best。

  step7:当前进化代数g加1,如果g达到规定的最大进化代数或者best达到规定的误差要求,算法结束,否则返回step3

 

在后面的博客中会写遗传算法的应用,初步决定是解方程和TSP问题。

初识遗传算法

标签:

原文地址:http://www.cnblogs.com/catcher1994/p/4489730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!