1752.遗传算法及其代码实现

1752.遗传算法及其代码实现

ID:30383211

大小:6.11 MB

页数:189页

时间:2018-12-29

1752.遗传算法及其代码实现_第1页
1752.遗传算法及其代码实现_第2页
1752.遗传算法及其代码实现_第3页
1752.遗传算法及其代码实现_第4页
1752.遗传算法及其代码实现_第5页
资源描述:

《1752.遗传算法及其代码实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、遗传算法及其应用实例遗传算法(GeneticAlgorithm)是由美国Michigan大学的Holland教授(1969)提出,后经由DeJong(1975),Goldberg(1989)等归纳总结所形成的一类模拟进化算法。遗传算法搜索最优解的方法是模仿生物的进化过程,即通过选择与染色体之间的交叉和变异来完成的。遗传算法主要使用选择算子、交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群Xt()。(1)选择算子:是模拟自然选择的操作,反映“优胜劣汰”原理。它根据每一个个体的适应度,按照一定规则或方法,从t代种群Xt()中选择出一些优良的个体(或作为

2、母体,或让其遗传到下一代种群Xt(1))。(2)交叉算子:是模拟有性繁殖的基因重组操作,它将从种群Xt()所选择的每一对母体,以一定的交叉概率交换它们之间的部分基因。(3)变异算子:是模拟基因突变的遗传操作,它对种群Xt()中的每一个个体,以一定的变异概率改变某一个或某一些基因座上的基因值为其他的等位基因。交叉算子与变异算子的作用都在于重组染色体基因,以生成新的个体。Page1of20遗传算法的运算过程如下:步1(初始化)确定种群规模N,交叉概率P,变异概率P和终止进化准则;随cm机生成N个个体作为初始种群X(0);置t0。步2(个体评价)计算评估Xt(

3、)中各个体的适应度。步3(种群进化)3.1.选择(母体)从Xt()中运用选择算子选择出M/2对母体(MN)。3.2.交叉对所选择的M/2对母体,以概率P执行交叉,形成Mc个中间个体。3.3.变异对M个中间个体分别独立以概率P执行变异,形成Mm个候选个体。3.4.选择(子代)从上述所形成的M个候选个体中依据适应度选择出N个个体组成新一代种群Xt(1)。步4(终止检验)如已满足终止准则,则输出Xt(1)中具有最大适应度的个体作为最优解,终止计算,否则置tt1并转步2。以上运算过程只是遗传算法的多种实现方式中的一种,根据实际问题的不同,遗传算法的实现也是

4、多种多样的。Page2of20遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出优点,适用于解决复杂、困难的全局优化问题。一个优化问题被称为是复杂的,通常指它具有下述特征之一:(1)目标函数没有明确解析表达(如非数值优化问题)。(2)目标函数虽有明确表达,但不可能恰好估值(如大部分最优控制问题、金融优化问题)。(3)目标函数有极多的峰值(如DNA计算、组合优化问题)。(4)多目标优化,即目标函数是向量值。一个优化问题被称为是困难的,则通常是指:或者目标函数f不连续、不可微、高度非线性,或者优化问题是困难的组合问题。对于这些复杂、困难的优化问题,已知的优

5、化方法或者根本不可用,或者可用但不有效。相比之下,遗传算法不但保证可用,而且常常显得更为有效。但是,我们必须注意到,一个通用而又较少依赖于目标函数值与其他辅助信息的算法不可能比专用且充分利用目标函数值与相关辅助信息的算法更为有效,而当一个问题有某些辅助信息可供使用时,舍弃应用本来可供应用的信息而去应用于这些信息无关的算法也不是一个聪明的选择。所以,遗传算法一般来说并不适宜应用于通常的数值优化问题(例如连续可微的数学规划问题),或者说,当应用于这样的问题时,遗传算法并不总能显示其优越性。Page3of20接下来,我们通过一个求解简单函数的最小值点的问题来初步展

6、示遗传算法的具体实现方法:问题1:求函数fx()11sin(6)7cos(5)xx在x[0,2]区间上的最小值点。20151050-5-10-15-2001234567上图为函数fx()11sin(6)7cos(5)xx在x[0,2]区间上的曲线图像,可以看出,该函数有多个极值点,如果使用其他的搜寻方法,很容易陷入局部最小点,而不能搜寻到真正的全局最小点,但遗传算法可以较好地弥补这个缺陷。遗传算法的具体实现如下:1.问题分析。对于本问题,自变量x可以抽象为个体的基因组,即用二进制编码表示x;函数值fx()可以抽象为个体的适应度,函数值越小,适

7、应度越高。关于二进制编码方式,在精度允许的范围下,可以将区间内的无Page4of20穷多点用间隔足够小的有限点来代替,以降低计算量同时保证精度损失不大。如用16位二进制数来表示该区间的点,相邻点的间隔仅为2059.587510,相邻点的函数值的变化幅度已经很小,由此带来1621的精度损失完全可以接受。另一个问题是普通的二进制编码方式可能具有较大的汉明(Hamming)距离,例如15和16的二进制表示为01111和10000,从15到16必须改变所有位,这种缺陷将降低遗传算法的搜索效率。采用格雷编码(GrayEncoding)可以避免这一缺陷。格雷

8、码的特点是任意两个连续的两个整数的编码值之间只有一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。