2023年TSP问题的遗传算法实验报告_第1页
2023年TSP问题的遗传算法实验报告_第2页
2023年TSP问题的遗传算法实验报告_第3页
2023年TSP问题的遗传算法实验报告_第4页
2023年TSP问题的遗传算法实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

TSP问题的遗传算法实验报告一实验题目TSP问题的遗传算法实现二实验目的熟悉和掌握遗传算法的基本概念和基本思想;加深对遗传算法的理解,理解和掌握遗传算法的各个操作算子;理解和掌握运用遗传算法进行问题求解的基本技能。三实验规定1以10/30个结点的TSP问题为例,用遗传算法加以求解;2掌握遗传算法的基本原理、各个遗传操作和算法环节;3能求出问题最优解,若得不出最优解,请分析因素;4规定界面显示每次迭代求出的局部最优解和最终求出的全局最优解。四数据结构请说明染色体个体和群体的定义方法。typedefstruct{ﻩintcolony[POPSIZE][CITY_NUM+1];//城市种群,默认出发城市编号为0,则城市编号的最后一个城市还应当为0每CITY_NUM个城市的排列组合为一个染色体 doublefitness[POPSIZE];//途径适应值 doubleDistance[POPSIZE];//途径实际长度 intBestRooting[CITY_NUM+1];//最优城市途径序列 doubleBestFitness;//最优途径适应值 doubleBestValue;//最优途径长度}TSP,*PTSP;五实验算法1说明算法中对染色体的编码方法,适应度函数定义方法;染色体的编码方法:0~9一个排列组合为一条染色体。适应度函数的定义方法:取途径长度的倒数。voidCalFitness(PTSPcity,intm){ﻩinti,j,t=0; intstart,end;ﻩfor(i=0;i<POPSIZE;i++){//求适应值 ﻩcity->Distance[i]=0;ﻩﻩfor(j=1;j<=CITY_NUM;j++){ﻩﻩﻩstart=city->colony[i][j-1];end=city->colony[i][j]; ﻩcity->Distance[i]=city->Distance[i]+CityDistance[start][end];ﻩﻩ} city->fitness[i]=N/(city->Distance[i]);ﻩ}}2采用的选择、交叉、变异操作算子的具体操作;voidSelect(PTSPcity){//选择算子ﻩinti,j;ﻩdoublesum=0,r,t; doublep[POPSIZE],q[POPSIZE+1];ﻩintcopey[POPSIZE][CITY_NUM+1];ﻩq[0]=0;ﻩfor(i=0;i<POPSIZE;i++)ﻩ sum+=city->fitness[i]; for(i=0;i<POPSIZE;i++)ﻩ{ﻩﻩp[i]=city->fitness[i]/sum;ﻩ q[i+1]=q[i]+p[i]; } for(i=0;i<POPSIZE;i++) { ﻩt=rand()%(10000); ﻩr=t/10000; for(j=0;j<POPSIZE;j++) ﻩﻩif(r<=q[j+1]) ﻩﻩ{ ﻩﻩ*copey[i]=*city->colony[j];ﻩﻩ ﻩbreak;ﻩﻩ } }ﻩfor(i=0;i<POPSIZE;i++) *city->colony[i]=*copey[i];}voidAOX(PTSPcity,intn,intm)//改善启发式算法{ﻩintA[CITY_NUM-1],B[CITY_NUM-1];ﻩinti,j; intk=1+CROSS_NUM,t=1+CROSS_NUM; for(i=0;i<CITY_NUM-1;i++)ﻩ{ﻩﻩA[i]=city->colony[n][i+1]; ﻩB[i]=city->colony[m][i+1];ﻩ} for(i=3;i<CROSS_NUM+3;i++) { ﻩcity->colony[n][i-2]=B[i]; ﻩcity->colony[m][i-2]=A[i];ﻩ} for(i=0;i<CITY_NUM-1;i++) { ﻩfor(j=0;j<CROSS_NUM;j++)ﻩ ﻩif(A[i]==B[j+3])ﻩ break; ﻩif(j==CROSS_NUM)ﻩﻩﻩcity->colony[n][k++]=A[i];ﻩ for(j=0;j<CROSS_NUM;j++)ﻩﻩ if(B[i]==A[j+3])ﻩ ﻩbreak;ﻩﻩif(j==CROSS_NUM) ﻩﻩcity->colony[m][t++]=B[i];ﻩ}}intcheck1(intr[],intn)//判重{ﻩinti; for(i=0;i<n;i++) if(r[i]==r[n])ﻩﻩ{ﻩﻩﻩreturntrue; ﻩ}ﻩreturnfalse;}voidCross(PTSPcity,doublepc){//交叉概率是pﻩinti; intr[20];ﻩfor(i=0;i<POPSIZE*pc;i++)ﻩ{ﻩﻩr[i]=rand()%(POPSIZE);ﻩ while(check1(r,i))ﻩ r[i]=rand()%(POPSIZE); }ﻩfor(i=0;i<POPSIZE*pc;i=i+2)ﻩﻩAOX(city,r[i],r[i+1]);}voidXCH(PTSPcity,intn)//对换变异{ﻩintr,t;ﻩintc; r=rand()%(CITY_NUM-1)+1; t=rand()%(CITY_NUM-1)+1;ﻩwhile(r==t) t=rand()%(CITY_NUM-1)+1;ﻩc=city->colony[n][r];ﻩcity->colony[n][r]=city->colony[n][t]; city->colony[n][t]=c;}voidMutation(PTSPcity,doublepm){//变异概率是pmﻩinti; intr[20]; for(i=0;i<POPSIZE*pm;i++) { ﻩr[i]=rand()%(POPSIZE); while(check1(r,i)) r[i]=rand()%(POPSIZE); ﻩXCH(city,r[i]);ﻩ}}3实验中采用的算法参数的最佳选择

温馨提示

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

评论

0/150

提交评论