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

遗传算法简介

时间:2018-06-01 00:13:30      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:初始化   步骤   修改   随机   优化问题   矩阵   产生   二进制   最大   

遗传算法(GA)是一种受进化论启发而发明的算法。

对于一个优化问题,遗传算法的思路是通过编码将解空间映射到编码空间,

在编码空间内进行“优胜劣汰”的自然选择,

迭代次数足够多时,群体将会收敛到适应度最大的点。

 

举例说明:

对于一个典型的优化问题,求闭区间【a, b】上f(x)最小值。

1.首先,将解空间【a,b】通过编码函数F映射到编码空间,比如长度为B的二进制编码。

2.初始化种群Chrom,种群中个体数目为N,每个个体是长度为B的二进制串。Chrom是N*B的矩阵。

3.在群体Chrom内进行【选择,重组,变异】操作,产生子代

4.子代插入群体Chrom,得到新的Chrom。如果不够迭代次数,回到第3步。

5.得出种群Chrom中最优的个体,解码,输出。

 

解空间和编码空间之间的映射关系,只需要定义编码空间到解空间的映射F-1即可进行后续的算法。

 

选择:从种群中选择部分(或全部)个体,选择的依据是个体的适应度

重组:从选择步骤中的个体,按一定概率(与个体的适应度有关)配对,配对后交叉编码

变异:按照较小的概率(变异概率一般很小),随机修改部分个体的编码

 

适应度,目标值:

 需要最小化的函数f(x)的函数值,就是目标值。

根据目标值计算适应度。比如,最小化问题,函数值越小适应度应该越高。

遗传算法简介

标签:初始化   步骤   修改   随机   优化问题   矩阵   产生   二进制   最大   

原文地址:https://www.cnblogs.com/tangjicheng/p/9119672.html

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