ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:24.48KB ,
资源ID:14706745      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14706745.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(遗传算法应用实例精品毕业设计完整版文档格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

遗传算法应用实例精品毕业设计完整版文档格式.docx

1、交叉算子与变异算子的作用都在于重组染色体基因,以生成新的个体。遗传算法的运算过程如下:步1(初始化) 确定种群规模,交叉概率,变异概率和终止进化准则;随机生成个个体作为初始种群;置。NcPmP(0)X0t.步2(个体评价) 计算评估中各个体的适应度。步3(种群进化) 3.1. 选择(母体) 从中运用选择算子选择出对母体()。/2MMN.3.2. 交叉 对所选择的对母体,以概率执行交叉,形成个中间个体。M3.3. 变异 对个中间个体分别独立以概率执行变异,形成个候选个体。3.4. 选择(子代) 从上述所形成的个候选个体中依据适应度选择出个个体组成新一代种群。 N步4(终止检验) 如已满足终止准则

2、,则输出中具有最大适应度的个体作为最优解,终止计算,否则置并转步2。 1tt.以上运算过程只是遗传算法的多种实现方式中的一种,根据实际问题的不同,遗传算法的实现也是多种多样的。遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出优点,适用于解决复杂、困难的全局优化问题。一个优化问题被称为是复杂的,通常指它具有下述特征之一:(1)目标函数没有明确解析表达(如非数值优化问题)。(2)目标函数虽有明确表达,但不可能恰好估值(如大部分最优控制问题、金融优化问题)。(3)目标函数有极多的峰值(如计算、组合优化问题)。 DNA(4)多目标优化,即目标函数是向量值。一个优化问题被称为是困难的,则通常是指

3、:或者目标函数不连续、不可微、高度非线性,或者优化问题是困难的组合问题。f对于这些复杂、困难的优化问题,已知的优化方法或者根本不可用,或者可用但不有效。相比之下,遗传算法不但保证可用,而且常常显得更为有效。但是,我们必须注意到,一个通用而又较少依赖于目标函数值与其他辅助信息的算法不可能比专用且充分利用目标函数值与相关辅助信息的算法更为有效,而当一个问题有某些辅助信息可供使用时,舍弃应用本来可供应用的信息而去应用于这些信息无关的算法也不是一个聪明的选择。所以,遗传算法一般来说并不适宜应用于通常的数值优化问题(例如连续可微的数学规划问题),或者说,当应用于这样的问题时,遗传算法并不总能显示其优越性

4、。01234567-20-15-10-505101520接下来,我们通过一个求解简单函数的最小值点的问题来初步展示遗传算法的具体实现方法:问题1:求函数在区间上的最小值点。 ()11sin(6)7cos(5)fxxx.0,2x.上图为函数在区间上的曲线图像,可以看出,该函数有多个极值点,如果使用其他的搜寻方法,很容易陷入局部最小点,而不能搜寻到真正的全局最小点,但遗传算法可以较好地弥补这个缺陷。遗传算法的具体实现如下:1.问题分析。对于本问题,自变量可以抽象为个体的基因组,即用二进制编码表示;函数值可以抽象为个体的适应度,函数值越小,适应度越高。xx()fx关于二进制编码方式,在精度允许的范围

5、下,可以将区间内的无穷多点用间隔足够小的有限点来代替,以降低计算量同时保证精度损失不大。如用16位二进制数来表示该区间的点,相邻点的间隔仅为,相邻点的函数值的变化幅度已经很小,由此带来的精度损失完全可以接受。516209.58751021.另一个问题是普通的二进制编码方式可能具有较大的汉明(Hamming)距离,例如15和16的二进制表示为01111和10000,从15到16必须改变所有位,这种缺陷将降低遗传算法的搜索效率。采用格雷编码(Gray Encoding)可以避免这一缺陷。格雷码的特点是任意两个连续的两个整数的编码值之间只有一个位是不同的,其他位都完全相同。格雷编码的原理如下:设有二

6、进制串,对应的格雷串,则从二进制编码到格雷编码的变换为。12nbbb12naaa11,1,1iiibiabbi.从格雷编码到二进制编码的变换为。1()mod2iijjba例如,0-15的格雷码如下表所示:0 1 2 3 4 5 6 7 0000 0001 0011 0010 0110 0111 0101 0100 8 9 10 11 12 13 14 15 1100 1101 1111 1110 1010 1011 1001 1000 2.根据遗传算法的运算过程编写程序。% f(x) = 11sin(6x) + 7cos(5x), 0 = x = 2 * pi L = 16;N = 32;M

7、= 48;T = 100;Pc = 0.8;Pm = 0.03;for i = 1 : 1 : N x1(1, i) = rand() * 2 * pi; x2(1, i) = uint16(x1(1, i) / (2 * pi) * 65535); grayCode(i, :) = num2gray(x2(1, i), L);end for t = 1 : T y1 = 11 * sin(6 * x1) + 7 * cos(5 * x1); for i = 1 : M / 2 a, b = min(y1); grayCodeNew(i, :) = grayCode(b, :); grayCo

8、deNew(i + M / 2, : y1(1, b) = inf; end p = unidrnd(L); if rand() Pc for j = p : L temp = grayCodeNew(i, j); grayCodeNew(i, j) = grayCodeNew(M - i + 1, j); grayCodeNew(M - i + 1, j) = temp; M for j = 1 : Pm grayCodeNew(i, j) = 1 - grayCodeNew(i, j); x4(1, i) = gray2num(grayCodeNew(i, :); x3 = double(

9、x4) * 2 * pi / 65535; y3 = 11 * sin(6 * x3) + 7 * cos(5 * x3); a, b = min(y3); x1(1, i) = x3(1, b);) = grayCodeNew(b, : y3(1, b) = inf;x1 y1 = 11 * sin(6 * x1) + 7 * cos(5 * x1) 3.结论分析。程序运行结果为:最小值点为。 1.8486,()17.8340xfx.下面针对上面的问题,讨论遗传算法中一些初始化参数的设定方法及其影响。(1)编码长度。使用二进制编码时,通常由对问题的求解精度决定,编码长度越长,可期望的最优解的

10、精度也就越高,但应注意过大的会增大运算量。L(2)种群规模。种群规模表示每一代种群中所含个体数目。当取值较小时,可提高遗传算法的运算速度,但却降低种群的多样性,容易引起遗传算法早熟,出现假收敛;而当取值较大时,又会使得遗传算法效率降低。一般建议的取值范围是。NNN20100(3)交叉概率。在遗传算法中交叉算子被认为是主要搜索算子,因而一般取较大值。一般说,较大的容易破坏群体中已形成的优良模式,是搜索的随机性太大,而较小的使发现新个体(特别是优良新个体)的速度太慢。另外,比较理想的的方式是非一致地使用交叉概率,例如在遗传算法的前期使用较大的,后期降低以保留优良个体。cP0.40.99(4)变异概

11、率。较大的变异概率使遗传算法在整个搜索空间中大步跳跃,而小的变异概率使遗传算法聚焦于特别区域作局部搜mPmP索。一般在不使用交叉算子的情形(演化策略(Evolution Strategy)算法,进化程序(Evolution Programming)算法),变异算子作主要搜索算子,取较大值(); 而在与交叉算子联合使用的情形(遗传算法),通常取较小值()。mP0.410.00010.5(5)终止进化代数。遗传算法不同于传统优化算法,它很难有明确的搜索终止准则(特别是对于非数值优化问题),于是通常需指定一个终止进化代数来终止算法,一般设。一般来说,事先指定通常只能找到给定问题的在给定时限内所能寻求

12、的相对满意解,但不一定是问题的最优解或较高精度的近似解。为了获得较高精度解,通常可依据种群适应度的稳定情况来实时调整的设置。T100,1000T.总体来说,以上参数的确定并没有明确的准则可依据,需要根据实际问题的特点以及算法的运行情况进行实时的调整,以搜索获得更为满意的最优解。-505-50500.20.40.60.81接下来,我们用遗传算法来求解一个更为复杂的函数最值问题。问题2:求Schaffer函数的最大值点:222121222212sin0.5(,)0.5,55,1,210.001()ixxfxxxixx.根据遗传算法的一般运算过程编写MATLAB程序如下:L = 32;N = 60;M = 80;Pc = 0.6;Pm = 0.02; x10(1, i) = unidrnd(2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1