(完整版)遗传算法c语言代码_第1页
(完整版)遗传算法c语言代码_第2页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、遗传算法代码#iiiclude<stdio.h>#iiiclude<stiing.h>#include<stdlib.h>#iiiclude<math.h>#iiiclude<tmie.h>definecities10城市的个数defineMAXX00迭代次数#definepc0.8交配概率#definepm0.05变异概率definenum10种群的人小intbestsolution;/最优染色体intdistancecitiescities;/城市之间的距离stmctgroup染色体的结构intcitycities;/城市的顺序i

2、iitadapt;/适应度double在种群中的幸存概率groupnum,grouptempnum;随机产生10个城市之间的相互距离voidinit()intij;memset(distance,0,sizeof(distance);srand(uiisigned)tune(NULL);fbr(i=O;i<cities;i+)fbr(j=i+l;j<citiesJ+)distanceij=randQ%100;distanceji=distanceij;printf(”*城市的距离矩阵如下*林*曲);fbi(i=O;i<cities;i+)fog=0J<cities;j+

3、)priiitf(,%4dH,distanceij);随机产生初试群voidgroupproduceQmtiJtkflag;fbi(i=O;i<num:i+)/初始化for(j=Oj<citiesj+)groupi.cityj=-l;srand(uiisigned)tune(NULL);fbi(i=O;i<num:i+)血(J=Oj<citi亡s;)t=rand()%cities;flag=l;foi(k=0;k<j;k+)if(gioupi.citvk=t)flag=O;break:if(flag)gioupi.city|j=t;J+;pnntf(M*初始种群如

4、下*“r);fbi(i=O;i<num:i+)fbi(j=0j<cities;j+)pimtf(,%4d,groupi.city|j);pnurffE);评价函数,找出最优染色体voidpmgjiaQmtij;iiitnl,ii2;mtsumdistance.biggestsum=O;doublebiggestp=O;fbi(i=O;i<num:i+)sumdistance=O;foi(j=lj<cities;j+)nl=groupi.citylj-l;n2=groupi.cityj;sumdistance-r=distancenln2;groupi.adapt=sum

5、distance;每条染色体的路径总和biggestsum+=sumdistance;种群的总路径fbi(i=O;i<num:i+)groupi.p=1-(double)gioup(i.adapt/(double)biggestsum;biggestp+=groupi.p;fbi(i=O;i<num:i+)groupi.p=gioupi.p/biggestp;求最佳路劲bestsolution=0;fbi(i=O;i<num:i+)if(gioupi.p>gioupbestsolution.p)bestsolution=i;选择voidxuanzeQiiitijtemp

6、;doublegradientnmny/梯度概率doublexuaiizenum;/选择染色体的随机概率iiitxuaiinum;/选择了的染色体初始化梯度概率fbi(i=O;i<num:i+)gradienti=O.O;xiianz亡i=00;gradient0=gioup0.p;fbr(i=1;i<num:i+)gradienti=gradienti-1+groupi.p;srand(unsigned)tune(NULL);随机产生染色体的存活概率fbi(i=O;i<num:i+)xuanzei=(rand()%100);xuanzei/=100;选择能生存的染色体fbi

7、(i=0;i<num:i+)fbr(j=0J<numj+)if(xuaiizei<gradientj)xuani=j;第i个位置存放第j个染色体break;拷贝种群fbi(i=0;i<num:i+)grouptenip1.adapt=gioupi.adapt;grouptempi.p=groupi.p;=0切<cities;j+)giouptenipi.citv|j=groupi.cityj;数据更新fbi(i=0;i<num:i+)temp=xuani;gioupi.adapt=grouptemptemp.adapt;group1.p=grouptempt

8、emp.p;=0切<cities;j+)groupi.cityj=grouptemptenip.cityj;变异voidbianyiQintij;mtt;mttemp1,temp2.point;doublebianyipnum;/染色体的变异概率mtbianyiflagnum;/染色体的变异情况fbi(i=O;i<num:i+)初始化bianyiflagi=O;随机产生变异概率srand(uiisigned)tune(NULL);fbi(i=O;i<num:i+)bianyipi=(rand()%100);bianyipi/=100;确定可以变异的染色体t=0;for(i=0

9、;i<num;i+)if(biaiivipi<pm)biaiiviflagi=l;t+;变异操作,即交换染色体的两个节点srand(uiisigned)tiine(NULL);for(i=0;i<num;i+)if(biaiiviflagi=1)templ=rand()%10:temp2=rand()%10:pomt=groupicitytemp1;groupi.citytemp1=gioupi.citytemp2;group1citytemp2=pomt;Kumain()宀sysrclnncoor3C=)八charchoice;do宀hljhImogloupp【oducc();PE匹lapTo-whila+十八MAXX)宀xuailzcgblallyoPE四la(x1M-.*蛰EEfbl(li-07-llul】Li+)pnmf(=*4d=gloupEcltyu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论