ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:16.84KB ,
资源ID:20558353      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20558353.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(遗传算法程序Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

遗传算法程序Word格式文档下载.docx

1、void mutation(void);void revise(void); /* avoid obstacle*/void judge(void); /* whether inside or outside obstacle*/void sort_newpop(void);void sort_oldpop(void);int random(int n) return (rand() % n);double objfunc(double x) double f; f=0*x1+1*x2; /* whether the x2 is needed*/ return(f);int pop_size,

2、maxgen,gen,mN+1,mt, sign=-1; double pc,pm,uxN+1,lxN+1;POP oldpopMAX_POP,newpopMAX_POP;void main(void) int i; mp.mpop.eval = 9999; gen=0; srand( (unsigned)time( NULL ) );、 ofstream fout1(f01.dat); initialize(); for(i = 1; i = pop_size; i+) newpopi = oldpopi; do gen+; generation(); statistics(newpop);

3、 sort_newpop(); fout1gen =gen ; for (i=1;i=20;i+) fout1vnewpopi.evalendlendl; select();select oldpopi = newpopi; while(genmaxgen); coutbest chromosome =mp.it coutv (= mt;mp.mpop.chromi;)f ( cout.flags(ios:fixed); /*以定点方式显示float*/ cout.precision(6); /*当格式为ios:fixed时,精度为6*/mp.mpop.x1,mp.mpop.x2mp.mpop

4、.eval fout1.close();void initialize(void) initdata(); mt=26; initpop(); statistics(oldpop);void initdata(void) pop_size=1900; pc=0.40; pm=0.70; maxgen=400;void initpop(void) int i,j; i+) for(j = 1; j stati.eval) minpop = stati.eval; npop = i; if(mp.mpop.eval statnpop.eval) mp.it = gen; mp.mpop = sta

5、tnpop;sign=signgen=number=npopstatnpop.chromj;statnpop.x1statnpop.x2statnpop.evalvoid generation(void) crossover(); mutation(); newpopi.x1 = decode1(newpopi.chrom); newpopi.x2 = decode2(newpopi.chrom); newpopi.eval = objfunc(newpopi.x); judge () ;void select(void) int i=1,j=1,t=1; POP tempMAX_POP; s

6、ort_oldpop(); while (t = pop_size ) /*sort newpop*/ if (oldpopi.eval=newpopj.eval) tempt+=oldpopi+; else tempt+=newpopj+;i newpopi=tempi;void crossover(void) int i,j,fl,cpop,pos,tmpMAX_STRING; double rMAX_POP; ri = (double) rand()/RAND_MAX; for(fl = 0,i = 1; if(fl = 0) & (ri = pc) cpop = i; fl = 1;

7、else if(fl = 1) &= pc) pos = random(mt-1)+1; for(j = pos+1; j+) tmpj = newpopcpop.chromj; newpopcpop.chromj = newpopi.chromj; newpopi.chromj = tmpj; fl = 0;void mutation(void) int i,j,cpop,pos1,pos2,tmp,pos; double r; POP tempopMAX_POP; r = (double) rand()/RAND_MAX; if (r = pm) pos = random(mt)+1; /

8、* ? */ newpopi.chrompos = random(10); pos = random(mt)+1; for (j = 1;= 3; tempop1.chromj=newpopi.chromj; for (j = 4;= 5 ; tempop1.chromj=newpopi.chromj+21; for (j = 6;= 9 ; tempop1.chromj=newpopi.chromj-2; for (j = 10;= 15 ; tempop1.chromj=newpopi.chromj+7; for (j = 16;= 24 ; tempop1.chromj=newpopi.

9、chromj-8; for (j = 25;= 26 ; pos1 = random(5)+1; /*1-5*/ pos2 = random(5)+1; tmp = tempop1.chrompos1; tempop1.chrompos1 = tempop1.chrompos2; tempop1.chrompos2 = tmp; pos1 = random(10)+6; /*6-15*/ pos2 = random(10)+6; pos1 = random(9)+16; /*16-24*/ pos2 = random(9)+16; pos1 = random(2)+25; /*25-26*/

10、pos2 = random(2)+25; newpopi.chromj= tempop1.chromj;= 5; newpopi.chromj+21= tempop1.chromj;= 9; newpopi.chromj-2= tempop1.chromj;= 15; newpopi.chromj+7= tempop1.chromj; for (j = 16;= 24; newpopi.chromj-8= tempop1.chromj; for (j = 25;= 26;void revise(void) /* obstacle avoidance */ switch(j) case 4: c

11、ase 5: case 6: case 7: case 17: case 18: case 19: case 20: case 21: case 22: if(0 = oldpopi.chromj)&(oldpopi.chromj = 5 ) /*inside obstacle*/ oldpopi.chromj= random(4)+6; break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16:= oldpopi.chromj) & (oldpopi.chromj = 7 ) ol

12、dpopi.chromj=random(2)+8; case 23: case 24:= 4 ) oldpopi.chromj= random(5)+5; case 1: case 2: case 3: case 25: case 26: oldpopi.chromj= random(10); default: break;void judge(void) /* whether inside or outside obstacle*/= newpopi.chromj) & (newpopi.chromj newpopi.eval = 9999;= 3 ) newpopi.eval = 9999

13、;void sort_newpop(void) /*newpop+oldpop from best to worst*/ int i,j,k; i+) /*sort newpop*/ minpop = newpopi.eval; k=i+1; for (j=k;j newpopj.eval) minpop = newpopj.eval; temp1 = newpopj; newpopj = newpopi; newpopi = temp1; void sort_oldpop(void) /*newpop+oldpop from best to worst*/ minpop = oldpopi.eval; oldpopj.eval) minpop = oldpopj.eval; temp1 = oldpopj; oldpopj = oldpopi; oldpopi = temp1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1