欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年遗传算法实验报告.docx

    • 资源ID:72869615       资源大小:91.49KB        全文页数:9页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年遗传算法实验报告.docx

    遗传算法实验报告专业:自动化姓名:张俊峰学号:13351 067摘要:遗传算法,是基于达尔文进化理论发展起来的一种应用广泛、 高效的随机搜索与优化方法。本实验运用遗传算法来实现求函数最大 值的优化问题,其中的环节涉及初始化群体、个体评价、选择运算、 交叉运算、变异运算、终止条件判断。该算法具有覆盖面大、减少进 入局部最优解的风险、自主性等特点。此外,遗传算法不是采用拟定 性原则而是采用概率的变迂规则来指导搜索方向,具有动态自适应的 优点。关键词:串集最优化评估 迭代 变异一:实验目的熟悉和掌握遗传算法的运营机制和求解的基本方法。遗传算法是一种基于空间搜索的算法,它通过自然选择、遗传、变异等操作 以及达尔文的适者生存的理论,模拟自然进化过程来寻找所求问题的答案。其求 解过程是个最优化的过程。一般遗传算法的重要环节如下:(1)随机产生一个拟定长度的特性字符串组成的初始种群。(2)对该字符春种群迭代地执行下面的环节a和环节b,直到满足停止准则 为止:a计算种群中每个个体字符串的适应值;b应用复制、交叉和变异等遗传算子产生下一代种群。(3)把在后代中表现的最佳的个体字符串指定为遗传算法的执行结果,即)®dou b leva r iatio n 5 4 ;/变异of o r(int i= 0 ;i<5;i+)0 for (in t j=0j<4; j +)v ariat i on i j=(rand() % 1 0 0)*0. 01;afor(int i=0; i< 5 ; i +)s for(int j=O;j< 4 ;j+)。 i f( v ar i ationi川<。/)arriU=(-5000+ r and()%l 0 000)*0. 0 001;oco u t« "新群体:M« e ndl;° f o r(int i=0; i<5;i+)gfo r (in t j=0;j<4; j +)cout«setio s f lags( i o s : 1 eft)<<s e tw(8)«a r r i j << " cout«e n d 1;0)-for (ini i=0; i<5; i+ + )重新评价double s um=0;。 for ( i n t j=0; j <4;j+)g sum+= a r r i j * a rr|ijj;g result i =l/(sum+l);® f or (in t i=0; i<5;i+)r e sul t li=r e s ult i;»sort(resu 1 t 1, re s u 1 t 1+ 5 );test_ r e s u 1 t=result 1 4 ;if (tes t _re s u 1 t>b e s t _ r e suit) best_r e s u 1 t=tes t resu 1 t;coutV V”适应值计算,更新 b est_ r es u 1 t : " «bcst_resu 1 t « e n dl;a t es t _num+;。s y stem(" p a u se1');r eturn 0 ;)为问题的一个解。二:实验规定已知函数 y =f ( x 1, x 2, x 3, x 4) =1 / ( x i2+ x 22+x32+ x 42+ 1 ),其中-5 Wxi, x 2, x3, xW 5,用遗传算法求y的最大值。三:实验环境操作系统:Mi c r osoft Windo w s 7软件:M i crosoft V i sua I s tud io 2023四:实验原理与环节1、遗传算法的思想生物的进化是以集团为主体的。与此相相应,遗传算法的运笄对象是由M个 个体所组成的集合,称为群体。与生物一代一代的自然进化过程相类似,遗传算 法的运算过程也是一个反复迭代过程,第t代群体极为P (t),进过一代遗传和 进化后,得到第t+1代群体,他们也是由多个个体组成的集合,记做P(t+1)。这 个群体不断地通过遗传和进化操作,并且每次都按照有优胜劣汰的规则将适应度 较高的个体更多地遗传到下一代,这样最终在群体中将会得到一个优良的个体 X,它所相应的表现性X将达成或接近于问题的最优解。2、算法实现环节、产生初始种群:产生初始种群的方法通常有两种:一种是完全随机的方 法产生的,适合于对问题的解无任何先验知识的情况;另一种是将某些先验知识 转变为必须满足的一组规定,然后在满足这些规定的解中再随机地选择样本,t=0, 随机产生n个个体形成一个初始群体P (t),该群体代表优化问题的一些也许解 的集合;适应度评价函数:按编码规则,将群体P (t)中的每一个个体的基因码 所相应的自变量取值代入目的函数,算出其函数值f, in, 2,,n,千越大,表 达该个体有较高的适应度,更适合于f所定义的生存环境,适应度f为群体进化 提供了依据;选择:按一定概率从群体P(t)中选出m个个体,作为双亲用于繁殖后代,产 生新的个体加入下一个群体P (t+1)中。此处选用轮盘算法,也就是比例选择 算法,个体被选择的概率与其适应度成正比。交叉(重组):对于选中的用于繁殖的每一个个体,选择一种交叉方法,产 生新的个体;此处采用生成随机数决定交叉的个体与交叉的位置。变异:以一定的概率Pm从群体P (t + 1)中随机选择若干个个体,对于选 中的个体随机选择某个位置,进行变异;对产生新一代的群体返回环节再进行评价,交叉、变异如此循环往复, 使群体中个体的适应度和平均适应度不断提高,直至最优个体的适应度达成某一 限值或最优个体的适应度和群体的平均适应度不再提高,则迭代过程收敛,算法 结束。五:实验结果实验结果的显示取决于判断算法终止的条件,这里可以有两种选择:1、在程 序中设定迭代的次数;2在程序中设定适应值。本实验是在程序中实脸者输入需 要迭代的次数来判断程序终结的。C:UsersAdministratorDesktop程序作业 遗传算法Debug 传真法.exeEKC:UsersAdministratorDesktop程序作业遗传算:iDebug 港传真法.exe初始化:C0 1.2724-0.40420.51641.5115C1 1.50040.667-0.37790.6987C2 0.7610.98132.65621.252?|C3 0.3962.41621.02460.1571C4 2.46051.76460.38860.5001初蛉化后关 |阿箝萍应适应税出 琏代的次数算,最大值best_result : 0.231103 s 10弟1次迭d q 新群体:1.2724-0.4042 0.106820.,6987B.21160.667-0.3779 1.51151.50040.4995-0.37790.13170.7610.98132.65620.331.2724 二0.4042 0.51641.5115适应值计算,更新best_result : 0.305324第2雄新新群体:1.27240.98132.65620.330.761-0.40420.06820.69871.27240.30240.06820.698?1.2724-0.40420.0682-0.1499-0.2407-0.40420.06820.6987适应值计算,事新best_result: 0.583381博3年彩_二0.25030.0242-0.1065-0.3216 0.1102 -0.3216-0.3216exe02值春4 11应10群4310.适 10.新群体:-0.16830.25030.0242-0.1065-0.2407-0.4042-0.1145-0.2913-0.32160.1620.0242-0.1065-0.3216-0.40420.02420.3077-0.3216-0.0550.0242-0.1065适应值计算,更新best_result: 0.906698-0.38550.0242-0.1065-0.40420.02420.30770.25030.02420.3077-0.40420.0242-0.1065-0.38550.02420.3077-0.38550.0242-0.1065-0.4042-0.1145-0.2913-0.38550.0242-0.1065适应值计算,更新best_result: 0.906698 请按卷意蕤继赛第9次迭代:新群体:-0.3216-0.1683-0.1683-0.3216二0.4042 -0.1145 -0.2913算,更新best_resuit : 0.906698代:六:实验小结在实验过程中,我觉得发现算子的选择对实验结果有一定限度的影响,所以除 了采用PPT上的算子选取外,也同样尝试了其他的算子选择方法。1、选择算子、排序选择方法。基于个体按适应度大小的排序来分派个体被选中的 概率,这种算法与轮盘算法的思绪差不多。、保存最佳个体策略。由于选择、交配、变异等操作的随机性,当代最 优秀的个体也许会被破坏,所以可以采用保存当代最优秀的个体,参与到下一代 的选择过程中。但是总的来说,轮盘算法还是选取选择算子最有效、最常用的算法。2、交叉算子、单点交叉。是指在个体编码串中随机设立一个交叉点,在该店互换配 对的两条染色体上的基因。、两点交叉与多点交叉。在选择交叉算子的过程中,单点交叉是最简朴 的方法,又称简朴交叉,两点甚至多点交叉,是交配两点之间的染色体,比单点交 义的适应性更高,但是程序略复杂。本实险采用的是均匀交叉,在选定位置后每一位基因都以相同的概率进行 交叉。附上实验代码(v i sual studio 2023环境下运营)#in c lude< i ostr e am>#in c lude<ctime>#include<iomanip># inc 1 ude <al g orithm>us i n g name space std;int m a i n ()(srand (time(O);d o uble ar r5 4; /初始化ocoutV"初始化:"<< e nd 1 ;« f or (ini i =0; i < 5 ; i +)0 c out« " C"«i«"gfor(int j=0;jv4;j+) (a rr i j =(-5 000 + r and()% 100000)*0. 0 00 1 );。 cou t <<se t io s flags(io s :left)<<s e tw(8)« a r r i j«""0« co u t <<en d 1;d o ubl e res u lt5; d o u b 1 e be s t_resul t ; dou b le resu 1 tl5 ;/ /适应值计算f or (int i= 0 ;i< 5 ;i+)0 gd o uble s u m=0;4or(int j=0;j<4; j + + )s um+=arrij *ar r ;。r e su 1 t i = 1 / (sum+1);for(int i=0;i< 5 ;i+)。resultli =re suit i;s ort(r e s ul t l,r e sultl+5);°b e st_re s u 1 t= r esultl 4 ; cout« "初始化后进行适应值计算,最大值 b e st_r e suit:"< <be s t_result<<en d 1;®int n;coutV<”请输入需要迭代的次数:H ; c i n » n ;int test_ n u m= 1 ;dou b 1 c te s t resu 1 t;ovhilc(tc s t_ n um<=n)(3 c out«""«test_n u mVv"次迭代:"<<endl;d o u b 1 e sum _ res u I t =0 ; double pec e nta g e 5J;选择fbr(int i= 0 ;i<5;i+)s u m_result+=resu 1 ti;for( i nt i=0; i <5;i+)pece n t age i =r e s u 1 t i / s um_res u It;d ouble a; d o ub 1 e a r r 1 54;ofor (in t i= 0 ;i<5; i +)° f or(int j =O;j<5;j+)-ar r 1 i j= a irij;4o r(int i =0;i<5; i +)»a=(ran d () % 1 0 0)*0.01;if (a<=pecenta g e 0)« of or ( i ntj=0;j<4;j+)arrij=arrl 0j;«if(a>pec e n tage0&&a<=( p ece n t ag e O+pecentagel)a »fo r (in t j=0; j <4;j+)0rrij =ar r 1 1 j;if (a> (p e ccn t age0 + p ec e nt a g c 1 )&& a <= (p e ce n t agclOJ+pcc e nt a ge 11+pece n tage 21)® »for(int j=0; j<4; j +)woe»arri j =arrl21 j ;Mif(a>(pec e nta g e0+ p ecenta g e 1 +pece ntage 2 )&&a<=( p e c e n tage 0+ pecen t age 1 +pe c ent a g e 2+pecenta g e 3)f o r(int j=0; j <4; j +)0 6arr i j =a r rl3 j ;i f( a >(pecentageO+pece n t a g e 1 + p e c entage2+p e c entage3 )&& a < = (pec e ntag e 0+p e cen t age I +pece n tage 2 4-pece n tag e 3+ p ecentag e |4)2fo r (int j=0; j <4;j+)«*ar r i j=a r r 1do u ble maling_ p e c e ntage = 0.88; d oub 1 e m a ting51 ; i n t nu m ;doubl etend4= 0 ;交配4or(int i=0;i<5; i +)ma t inglij=( r a nd()%100) *0.0 1 ;)for(i n t i =0; iV5;i+)。 if (mat i ng i <=0.88)ao o fo r (in t k=i+l; k < 5 : k +)SOO 。 -if (matin gk<=0.88&& ar r i0!=a rrk 0)0000 18。 onum= ran d()%3;a fo r (int l=n u m+ 1 ;1<4; 1+)«»t end 1 =a r r i L 1 ;。 ®for(int m= n um+ 1 ;m< 4 ;m+)83 oa r r =ar r k m;。<»arr km=ten d m;&OOO |2),。mati n gk =1;br e ak;

    注意事项

    本文(2023年遗传算法实验报告.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开