posts - 12,  comments - 54,  trackbacks - 0
前不久写了一个遗传算法解决论文里边的问题,忙完了,整理出来,写在这边。
遗传算法的简介,从别的地方转载过来的。如果对遗传算法有所了解了,就不要看了,如果是第一次听说遗传算法的,不妨进来转转。

以下将在第二部分写遗传算法的数据结构定义,第三部分写遗传算法的一系列算子的具体算法,第四部分写根据风险模型做的改进工作。


from URL:http://www.jgchina.com/ednns/ednnsbk/6.2.htm 有删改
遗传算法的基本概念

遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。

Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。

Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质; 所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下 来。

由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:

一、串(String)

它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。

二、群体(Population)

个体的集合称为群体,串是群体的元素

三、群体大小(Population Size)

在群体中个体的数量称为群体的大小。

四、基因(Gene)

基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。

五 、基因位置(Gene Position)

一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。

//以下五到九可以不看

六、基因特征值(Gene Feature)

在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。

七、串结构空间SS

在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。

八、参数空间SP

这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。

九、非线性

它对应遗传学中的异位显性(Epistasis)

//

十、适应度(Fitness)

表示某一个体对于环境的适应程度。

遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。

遗传算法的原理

遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些 假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体” 群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

一、遗传算法的目的

典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:

考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有

bi{0,1}L        (3-84)

给定目标函数f,有f(bi),并且

0<f(bi)<

同时
f(bi)f(bi+1)

求满足下式

max{f(bi)|bi{0,1}L}            (3-85)

的bi

很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。

遗传算法的基本原理

长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:

1.选择(Selection)

这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代 的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。

2.交叉(Crossover)

这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。

3.变异(Mutation)

这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。

遗传算法的原理可以简要给出如下:

choose an intial population

determine the fitness of each individual

perform selection

repeat

    perform crossover

    perform mutation

    determine the fitness of each individual

    perform selection

until some stopping criterion applies

这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。



posted on 2008-06-15 20:19 Wang Feng 阅读(4729) 评论(2)  编辑 收藏 引用 所属分类: Numerical C++

FeedBack:
# re: 遗传算法系列 (1)遗传算法的基本概念
2008-06-17 12:04 | 长江三峡
学习  回复  更多评论
  
# re: 遗传算法系列 (1)遗传算法的基本概念
2013-03-16 09:43 |
@长江三峡
你研究过NSGA2遗传算法么  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(4)

随笔分类

随笔档案

Link List

搜索

  •  

最新评论

阅读排行榜

评论排行榜