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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(实验一 基于某遗传算法地函数优化Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验一 基于某遗传算法地函数优化Word下载.docx

1、因为 2840029,所以编码所用的二进制串至少需要9位。编码:二进制串(b8b7b6b1b0)与 -2, 2 内实数的一一映射:b8b7b6b1b0二进制串 a= 其对应的十进制数为:转化到 -2, 2 内的实数为:产生初始群体: pop1= , % a1001000010, % a2110000000, % a3110000101 % a4转化成 -2, 2 之间的十进制数即为:pop1=0.24,-1.48,1.01,1.05(2)定义适应函数和适应值由于目标函数 f(x) 在 -2, 2 内的值有正有负,所以必须通过建立适应函数与目标函数的映射关系,保证映射后的适应值非负,而且目标函数

2、的优化方向应对应于适应值增大的方向,也为以后计算各个体的入选概率打下基础。定义适应函数 :为了便于计算,这里的 Fmin 采用了一个特定的输入值,如果取 Fmin=-1,则 f(x)=1 对应的适应值为 g(x)=2。上述随机产生的初始群体,取 Fmin=-1,则它们的目标函数值和适应值分别为:f(pop1)= -0.02, 4.73, -4.06, -4.30g(pop1)= -1.02, 3.73, - 5.06,-5.30(3)确定选择标准1 用适应值比例来作为入选概率。2 设给定的规模为400的群体 pop=a1, a2, ., a400,个体 ai 的适应值为 g(ai),则其入选概

3、率为)上述随机产生的初始群体,它们的入选概率分别为:p(pop1)=g(pop1)/sum(g(pop1)=0,1,0,0(4)产生种群3 将入选概率大的个体选入种群,淘汰概率小的个体,并用概率最大的个体补入种群,得到与原群体大小同样的种群。4 在上述随机产生的初始群体中,淘汰掉 a3,再加入 a2,得到新的种群(选择):newpop1=交叉:5 交叉也就是将一组染色体上对应基因段的交换得到新的染色体,然后得到新的染色体组,组成新的群体。6 将前面得到的 newpop1 的四个个体两两配对,重复的不配对,进行交叉(可以在任一位进行交叉):变异:变异就是通过一个小概率改变染色体位串上的某个基因。

4、7 现把 jchpop1 中第 3 个个体中的第 5 位改变,就产生了变异,得到了新的群体 pop2 :pop2=,010000101101000010然后对新的种群重复上述的选择、交叉、变异,直到满足终止条件为止。(5)实验结果:6、附录(Matlab函数)%遗传算法主函数%q: 输出最佳个体自变量值%迭代次数为400function q=GA()global best_in;global g_value;%初始化initilize();%初始化最佳个体的适应函数值for i=1:400 g_value = 0.;end%迭代开始for k=1:1:100 fitness(); %适应函数操

5、作 calculate();%对出现概率小的个体进行淘汰,并保留最佳个体best_in的信息 %计算每一次迭代中最佳个体的适应函数值aa,并赋给g_value(i) aa=0.; for j=1:9 aa = aa+best_in(j).*2(j-1); end g_value(k)=aa; selection();%选择操作 crossover();%交叉操作 mutation();%变异操作 plotGA();%打印算法迭代过程%获得最佳个体变量值q = 0.;for j=1: q = q+best_in(j).*2(j-1);q = -2+q*4./(29-1);q=-q2-4*q+1;

6、%结果展示fprintf(最大值为:%3.2fn,q);clear i;clear j;clear q;%调用函数 1%初始化种群 pop% 种群大小 400% 染色体长度 9%rand求随机数%round取整function initilize()global pop; pop(i,j)=round(rand);%函数调用 2%计算出适应函数值g(x)%原函数f(x)=-x2-4x+1%取Fmin=-1%g(x)=-x2-4x%value是pop种群中每个个体的适应值%并将value中小于零的数都赋值为零function fitness()global value; value(i) = 0

7、.; if pop(i,j)=1 value(i)= value(i)+pop(i,j)*2(j-1); value(i)=-2.+ value(i)*4./(29-1); value(i)=-value(i)*value(i)-4.*value(i); if value(i)value(i) max=i+1;best_in(j)=pop(max,j);% 求所有value值的总和加到table中求出平均值avg1,再求出均值个体的出现概率avg if i=1 table(i)=table(i)+value(i); else table(i)=table(i-1)+value(i);avg1=

8、table(400)./400;avg=avg1./table(400);%求value中每个个体出现的概率并且保留在popl中 popl(i)=value(i)./table(400); if popl(i)avg pop(i,j)=best_in(j);clear k;clear temp;clear max;clear avg1;%函数调用 4%将popl(i)=0的个体除去,并补上其相邻的不为0的pop%将新产生的群pop_new最终复制到popfunction selection()pop_new(400,9)=0.; if popl(i)=0 pop_new(i,j)=best_i

9、n(j); else pop_new(i,j)=pop(i,j); pop(i,j)=pop_new(i,j);clear m;clear n;%函数调用 5%单点交叉操作%pop_size: 种群大小%chromo_size: 染色体长度%cross_rate: 交叉概率function crossover()global pop%设置交叉概率为0.6cross_rate=0.6;2: if(rand cross_rate) cross_pos = round(rand * 9); if or (cross_pos = 0, cross_pos = 1) continue; for j=cr

10、oss_pos: temp = pop(i,j); pop(i,j) = pop(i+1,j); pop(i+1,j) = temp;clear cross_pos;%函数调用 6%单点变异操作 变异概率function mutation()%设置变异概率为0.01mutate_rate=0.01; if rand mutate_rate mutate_pos = round(rand*9); if mutate_pos = 0 pop(i,mutate_pos) = 1 - pop(i, mutate_pos); pop(i,j)=pop(i,j);clear mutate_rate;%迭代次数400function plotGA()x=1:100;plot(x,g_value);ylabel(g(x);xlabel(xtitle(最佳个体迭代情况clear x

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

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