欢迎来到天天文库
浏览记录
ID:58690801
大小:358.06 KB
页数:21页
时间:2020-10-08
《遗传算法求函数极值.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、智能优化算法第一次作业--------------遗传算法洪文杰S151000853问题:用遗传算法求解f(x)=xsin(10π*x)+2.0的最大值,x取[-1,2].一、分析:遗传算法基本思路二、实例简介1.产生初始种群s1=13(01101)s2=24(11000) s3=8 (01000)s4=19(10011)2.计算适应度假定适应度为f(s)=s^2,则f(s1)=f(13)=13^2=169f(s2)=f(24)=24^2=576f(s3)=f(8)=8^2=64f(s4)=f(19)=19^2=3613. 选择
2、染色体的选择概率为:染色体的累计概率为:根据上面的式子,可得到:例如设从区间[0,1]中产生4个随机数: r1=0.450126, r2=0.110347 r3=0.572496, r4=0.98503 4.交叉基本遗传算法(SGA)叉算子采用单点交叉算子。单点交叉运算5. 变异6. 至下一代,适应度计算→选择→交叉→变异,直至满足终止条件三、解决问题四、实验结果源代码:/*问题:用遗传算法求解f(x)=xsin(10π*x)+2.0的最大值,x取[-1,2].*//*洪文杰2016-3-9.智能优化算法第一次作业*
3、/#include//#includ#include#include#include#includeusingnamespacestd;#defineNUMBER50//种群规模#defineGENE_NUMBER10000//迭代次数intUnit[NUMBER][30];//初始种群intUnit_choose[NUMBER][30];//选择、交叉、变异后的种群intNumber[NUMBER];//被选择的个体编号
4、floatFitness[NUMBER];//适应度floatselect_probability[NUMBER];//选择概率floataccumula_probability[NUMBER];//积累概率floatf_max=0.0;//最大值floatf_x=0.0;//最大值对应的自变量inthwj_coding(intstart,intend);//编码voidhwj_initial_population(intnum);//产生初始种群voidhwj_fitness(intnum);//适应度计算voidhwj_ch
5、oose();//选择个体inthwj_binary_search(intl,intr,floattemp);//查找选择//voidhwj_N_M(inta[],intb[],intN,intM);//从M个数中选N个不一样的数voidhwj_cross(intnum,floatcross);//交叉后的得到种群voidhwj_aberrance(intnum,floataberrance);//变异后的得到的种群voidhwj_max(intnum);//找到最适应的个体intmain(){intstrat,end;//区间
6、intNum;//编码大小floatcross=0.8;//交叉概率floataberrance=0.04;//变异概率intkey=1;cout<<"请输入求解区间:"<>strat>>end;Num=hwj_coding(strat,end);cout<<"Num:"<7、---------------2初始种群-----------------"<8、t<
7、---------------2初始种群-----------------"<8、t<
8、t<
此文档下载收益归作者所有