关于遗传算法的实验报告.pdf

上传人:赵** 文档编号:21163872 上传时间:2022-06-18 格式:PDF 页数:6 大小:280.42KB
返回 下载 相关 举报
关于遗传算法的实验报告.pdf_第1页
第1页 / 共6页
关于遗传算法的实验报告.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《关于遗传算法的实验报告.pdf》由会员分享,可在线阅读,更多相关《关于遗传算法的实验报告.pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、关于遗传算法得实验报告关于遗传算法得实验报告一、实验目得:一、实验目得:理解与掌握遗传算法得应用及意义,能用一门自己擅长得语言实现遗传算法得基本功能 ,在此基础上进一步理解与巩固对遗传算法得重要,以便在今后得学习与工作中能有效得运用与借鉴! 需要指出得就是遗传算法并不就是能保证所得到得就就是最佳得答案但通过一定得方法可以将误差控制在一定得范围内!二、实验原理与题目二、实验原理与题目: :1、遗传算法就是一种基于空间搜索得算法,它通过自然选择、遗传、变异等操作以及达尔文得适者生存得理论,模拟自然进化过程来寻找所求问题得答案。其求解过程就是个最优化得过程。一般遗传算法得主要步骤如下:(1)随机产生

2、一个确定长度得特征字符串组成得初始种群。()对该字符串种群迭代地执行下面得步骤a 与步骤 b,直到满足停止准则为止:计算种群中每个个体字符串得适应值;应用复制、交叉与变异等遗传算子产生下一代种群。(3)把在后代中表现得最好得个体字符串指定为遗传算法得执行结果,即为问题得一个解。2、通过编码、设置种群、设置适应度函数、遗传操作、解码产生需要得解。(x)=x*s(x)1,0,2,求解 f(x)得最大值与最小值。三、实验条件三、实验条件硬件:微型计算机。语言:本实验选用得为 C+语言。四、实验内容:四、实验内容:建造针对 f(x)得遗传算法程序,然后进行运行求解。五、实验步骤五、实验步骤: : 、1

3、确定基本功能:本实验就是实现f()得最大值与最小值得求解。2、 对 f(x)进行编码:用一个二进制矢量表示一个染色体,由染色体来代表变量x 得实数值,这里精度取小数点后6 位数,变量 x 得域长为 2,整个区间被分为 2100000 个等长得区间。由于 210000 在3 位二进制数得表示范围呢,所以,编码长度为3 位。3、 设计适应度函数:由于要求 f(x)得最值,所以适应度函数可根据 f(x)做适当得改变。最大值:(x)=n(x)+5;最小值:f(x)=(si(x)+5);4、针对 f()得设计并且实现遗传算法程序:遗传操作主要包括复制、交叉与变异。复制就是直接将父代遗传给子代,即根据个体

4、得适应度函数值所度量得优劣程度决定它在下一代就是被淘汰还就是被遗传。交叉从能进入下一代得个体中选出两个,将两者得部分码值进行交换。变异就是根据变异概率选出一个个体 ,随机对其某位编码进行改变。复制由voidSelectin_operatn(llag);实现;交叉由voiCossver_oeaton();实现;变异由oidMution-operation();实现。5、 设计初始种群:默认设置为50 个随机产生得 23 位字节得染色体。 、调试交叉与变异概率:在常用得交叉与变异概率范围内,结果随交叉与变异得概率得改变而改变,之间差异相对来说不太明显7、 实验参数:实验中主要得参数有遗传代数、群体

5、规模、交叉概率、变异概率。实验结果:求最大值:求最小值:程序主要代码如下(后台代码):cassGvectrtrin Pop;veostrinSuP; doul Pc; doublePm; n NmIta; Num_Populton;double ptiml_ax_X_Souton;dobl Optim_i_Solon; double OptimlM_Function_laue; duble Optima_MiFntion_alue; string Optial_Iiial;vecor nPa;/ lt finess;public:GA()c=0、25;Pm=、0; Num_opulaion=5

6、0;NumItrat100; oid GA_it(); voidrossveOperatin(); oi Selet_Operion(); Muatio_eration();vidEaluaton(bool);doubleFuncion(doble);vd Extree_ue(bool); idLuna_perion(bol); vid Dila(ol,int); voidisplayM(); nd e maxa naluvoid A:Extremeale(blfla)i(fg)Optimal_Mx_FuntionVle=-100;Otia_Min_cton_Value=100;ele fr(

7、vector:itertor ierPo、bg();er!Po、end();+it)dblt=0、5; dubl Decum10;*string p=*ite;* r(iti=(*ir)、lngh()-1;i=0;-i)=*2; Dcum1+((*ier)i-4)*;Dcum1=DcNum1*(*P)/ValueOfSrng);/ cutDecNm1 ; doube Temp=Fnction(DecNum);/ 求函数值/ coutTendl;f(flag) / fin th maimum if(TempptimlMa_Fution_Vlaue)Opiml_Mx_untionVlue=mp;

8、OptimlMx_X_SolutioDecNum;OtimaIidua*ier;/ ftnes=ep+5;ele /find temm if(TmpOtal_Min_Funton_Valu)/Intializ e Popuationsoi GA:A_Iit()for(i ix=0;ixxNm_Populaion;+x)sting Sing; in =ran()%;Oimal_Min_FunctinVlTmp;Optimal_Indiidu*ie; Optimal_Min_X_Soluin=eNm1;/ finess=Tem5; for(int i=0;i23;i)Ring、psh_back(n

9、d+48); Pop、uh_bc(ing); STRi、lar();/ fo(vector:itertor irPo、bgin();ie!Pop、ed();+itr) / cou*iterendl;/Sect OpeatiovodGA::Set_peratn()/ 随机选择个体 oubl rn、0001*(rand()10000);fr(vct:ierator er=LuP、ei();ier!=LnPa、en();+ite) if(rn:ieatr =LunPn、begi();iter!=unPan、end();+iter)i(rnd=*iter) strngSRig=(Pp、bein()+(

10、iter-LunPan、begn());oube rd1=0、00*(rand()%000);f(vtr:itetor ite1=Lna、begin();ter1!= SuPop、ushack(*(Pop、egin()+(itr-LnPan、bn(); /out(Pp、begi()+(it-LunPan、bin())endl;break;nPa、d();+ier1)if(nd1*iter1) sng Sig1=*(P、begn()+(t1-uP、begi(); it nd2rand()%23; har Tep; or(n irnd2;iing、lngth();+i) TempSTRngi; T

11、RigiSRn1i; TRing1i=Tep; bPop、p_back(STRing); brek; SuPp、sh_back(STRig1); /Mton Oraionvid :Mution_Ortio()/ 选择个体进行突变操作oul rnd=、000*(nd()%100); eak; for(vetor::itat ter=LunP、beg();iter!=Lnan、end();+r) i(rnd=*ter) / outMtatined;/auatin Operationvoi GA:Evalution(bol fla) rand(tim(NULL); Pp、clar(); GA_Iit

12、(); xrmeValu(flag); Disla(fag,0);*/ srnd(time(NULL));*/or(i i=;i=NmItraon;+) LunPanOerain(flag); sin Ring=*(P、begi()+(ter-Pn、begin())); int rd1and()23;i(SRingnd1=0) STRingrnd0; STinrn1=1; elseSbPp、push_bck(STRng);ea; /fr(ecto:teaor itr=nPan、begin();ter!=Luan、end();+ter) cutterend;or(nt =0;u_platin;j

13、+)/*srand(time(NULL);/ dble rnd0、000*(rand()%1000);/ coutrndedl; if(rdP)Mution_prton();/ couttaion;else if(d(PcP))+; Crossover_Opeation();/ cutCrsoerendl; else/ coutSlctionend; elect_eration(); / or(vcorstin:itrto tr=ubPo、ben();ter!=SubPop、/ cout*iternl;/coutel;end();+iter)/cou:terator ter=Pop、ein(),iter1=Subop、begn();i* itr=*iter1; /fr(vctorstring::ierato ir=Pop、bgn();ter!=p、en();/ cut*itrendl;e!=Pop、end();iter,+ier1)+iter)/ ubPop、clear(); unPan、clear(); xtrme_Value(flg); play(flag,i); if(lag) cotMnimum: Optia_Mi_unctin_Valeendl;coutxmm: ptmal_Functon_Vlaeed; lse

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com