遗传算法求解f(x)=xcosx+2的最大值

遗传算法求解f(x)=xcosx+2的最大值

ID:16036164

大小:106.50 KB

页数:16页

时间:2018-08-07

遗传算法求解f(x)=xcosx+2的最大值_第1页
遗传算法求解f(x)=xcosx+2的最大值_第2页
遗传算法求解f(x)=xcosx+2的最大值_第3页
遗传算法求解f(x)=xcosx+2的最大值_第4页
遗传算法求解f(x)=xcosx+2的最大值_第5页
资源描述:

《遗传算法求解f(x)=xcosx+2的最大值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、遗传算法求解f(x)=xcosx+2的最大值其中在尺度变换部分应用到了类似模拟退火算法部分,所有变量均使用汉语拼音很好懂//中国电子科技集团公司//第一研究室//呼文韬//hu_hu605@163.com//随机初始种群//编码方式为格雷码//选择方法为随机遍历//采用了精英保存策略//采用了自适应的交叉率和变异率//采用了与模拟退火算法相结合的尺度变换//采用了均匀交叉法#include#include#include#include#

2、include#include#include#defineIM12147483563#defineIM22147483399#defineAM(1.0/IM1)#defineIMM1(IM1-1)#defineIA140014#defineIA240692#defineIQ153668#defineIQ252774#defineIR112211#defineIR23791#defineNTAB32#defineNDIV(1+IMM1/NTAB)#defi

3、neEPS1.2e-7#defineRNMX(1.0-EPS)#definezhizhenjuli0.005#definePI3.14159265358#defineT0100000//温度要取得很高才行。#definezhongqunshu1200#definezuobianjie-2000#defineyoubianjie2000unsignedintseed=0;//seed为种子,要设为全局变量voidmysrand(longinti)//初始化种子{seed=-i;}longa[1];//doublehu

4、ndun;//doublec=4;//设置全局变量structindividual{unsigned*chrom;//染色体;doublegeti;//变量值doubleshiyingdu;//目标函数的值;doublefitness;//变换后的适应度值;};individual*zuiyougeti;//精英保存策略intzhongqunshu;//种群大小individual*nowpop;//当前代individual*newpop;//新一代doublesumfitness;//当代的总适应度fitnes

5、sdoublesumshiyingdu;//当代的总适应度shiyingdudoublemaxfitness;//最大适应度doubleavefitness;//平均适应度doublemaxshiyingdu;//最大适应度doubleavgshiyingdu;//平均适应度floatpc;//交叉概率floatpm;//变异概率intlchrom;//染色体长度intmaxgen;//最大遗传代数intgen;//遗传代数//函数intflipc(double,double);//判断是否交叉intflipm(d

6、ouble);//判断是否变异intrnd(intlow,inthigh);//产生low与high之间的任意数voidinitialize();//遗传算法初始化voidpreselectfitness();//计算sumfiness,avefitness,maxfitnessvoidgeneration();doublesuijibianli();//产生随机遍历指针intfuzhi(float);//选择要复制的个体voidcrossover(individual,individual,individual&

7、,individual&);//交叉voidbianyi(individual&);//变异voidmubiaohanshu(individual&);//计算适应度voidchidubianhuan(individual&);//对shiyingdu进行尺度变换赋给fitnessdoubleran1(long*);//随机数初始voidbianma(doublebianliang,unsigned*p);//编码doubleyima(unsigned*p);voidguanjiancanshujisuan();/

8、/计算shiyingdu,根据shiyingdu计算sumshiyingdu,对shiyingdu进行尺度变换变成fitness,根据fitness计算sumfitness,avefitness,maxfitnessvoidjingyingbaoliu();voidglp(intn,ints,int*,int(*)[1],float(*)[1]);//glp

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

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

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