遗传算法(大作业)

遗传算法(大作业)

ID:42134295

大小:315.35 KB

页数:6页

时间:2019-09-08

遗传算法(大作业)_第1页
遗传算法(大作业)_第2页
遗传算法(大作业)_第3页
遗传算法(大作业)_第4页
遗传算法(大作业)_第5页
资源描述:

《遗传算法(大作业)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、遗传算法求最大值(大作业)09电子(2)班郑周皓E09610208题目:函数厶(兀,y)二0.9*exp((U+(」+»)+0999*exp[-+(」-》〔1020(x,y在J0到10之间),利用遗传算法求函数的最大值及对应的位置。要求:种群数N=50,交叉位数n/2,即个体位数的一半,且位置自行设计,变异位数自定,x,y分辨率为0.0001。效果比较:交叉个数=20,28,36,44变异个数=1,5,10,15解:问题分析:对于本问题,只耍能在区间卜10,,10]中找到函数值最大的点a,b,则函数f(x,y)的最大

2、值也就可以求得。于是,原问题转化为在区间[J0,10]屮寻找能使f(x,y)取最大值的点的问题。显然,对于这个问题,任一点"yW[-10,10]都是可能解,而函数值/W二si门x/x也就是衡量x能否为最佳解的一种测度。那么,用遗传算法的眼光来看,区间[40,10]就是一个(解)空间,x就是其中的个体対象,函数值朋)恰好就可以作为x的适应度。这样,只要能给出个体x的适当染色体编码,该问题就可以用遗传算法来解决。自变量x,y可以抽象为个体的基因组,即用二进制编码表示x,y;函数值f(x,y)可以抽象为个体的适应度,函数值

3、越小,适应度越高。遗传算法步骤:算法流程生成初始种群计算适应度选择•复制交叉变异生成新一代种群1第1步在论域空间U上定义一个适应度函数/(x),给定种群规模/V,交叉率几和变异率Pm,代数八取适度函数为/(x)=sinx/x,种群规模N=50,用popsize表示。x,y的精度为0.0001・交叉率(crossoverrate):参加交叉运算的染色体个数占全体染色体总数的比例,记为Pc,取值范围一般为0.4〜0.99,根据要求本例中选为20/50、28/50、36/50、44/50。变异率(mutationrate)

4、:发生变异的基因位数所占全体染色体的基因总位数的比例,记为Pm,取值范围一般为0.0001〜0.1,根据要求本例中选为1/50>5/50、10/50、15/50。最大换代数:本题中取100次第2步随机产生U中的N个染色体Si,s2,Sn,组成初始种群S={slfS2,…,Sn},置代数计数器t=l;第3步计算S中每个染色体的适应度f();笫4步若终止条件满足,则取5中适应度最大的染色体作为所求结果,算法结朿。第5步按选择概率P(x’)所决定的选中机会,每次从S中随机选定1个染色体并将其复制,共做N次,然后将复制所得的

5、/V个染色体组成群体S】;第6步按交叉率几所决定的参加交叉的染色体数c,从Si中随机确定c个染色体,配对进行交叉操作,并用产生的新染色体代替原染色体,得群体S2;第7步按变异率卩.所决定的变异次数从S2中随机确定m个染色体,分别进行变异操作,并用产生的新染色体代替原染色体,得群体勺;第8步将群体S?作为新一代种群,即用卩代替S,t=t+l,转步3;传算法matlab编程%由于原函数变量的取值包含负数,所以我们现对原函数变形,使得变量取值范围为正数,X=x-10;Y=y-10oo/z.,z、nn(兀一5)~+(y—5)

6、~八「(x—15)2+(_y—15)~%f(x,y)=0.9*exp(-——~)+0.999*exp[--——]JLkJ厶V/%编程方法同上,但是根据要求精度为0.0001,将x的值用一个18位的二值形式表示为二值问题,一个18位的二值数提供的分辨率是每为(20-0)/(2A18-1)^0.0001,满足题目的要求。%将变量域[0,20]离散化为二值域[0,262143],x=0+20*b/262143,其中b是[0,262143]屮的一个二值数。计算目标函数值%calobjvalue.m函数的功能是实现目标函数的

7、计算%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算function[objvalue]=calobjvalue(pop)tempi=decodechrom(pop,1,18);%将pop每行转化成十进制数temp2=decodechrom(pop,19,18);x二temp广20/262143;%将二值域中的数转化为变量域的数y=temp2*20/262143;objvalue=0.9*exp((x-5).A2/10+(y-5).A2/10)+0.9999*exp(-(x-15).A2/2

8、0-(y-15).A2/20);%计算目标函数值主程序%遗传算法主程序clearelfpopsize=50;%群体大小chromlength=36;%字符串长度(个体长度)pcc=[20/50,28/50,36/50,44/50,20/50];pmm=[1/50,5/50,10/50,15/50,1/50];pop=initpop(popsiz

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。