TSP问题的遗传算法试验报告_第1页
TSP问题的遗传算法试验报告_第2页
TSP问题的遗传算法试验报告_第3页
TSP问题的遗传算法试验报告_第4页
TSP问题的遗传算法试验报告_第5页
全文预览已结束

下载本文档

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

文档简介

1、精品文档TSP问题的遗传算法实验报告一实验题目TSP问题的遗传算法实现二实验目的熟悉和掌握遗传算法的基本概念和基本思想;加深对遗传算法的理解,理解和掌握遗传算法的各个操作算子;理解和掌握利用遗传算法进行问题求解的基本技能。三实验要求1 以10/30个结点的TSP问题为例,用遗传算法加以求解;2掌握遗传算法的基本原理、各个遗传操作和算法步骤;3能求出问题最优解,若得不出最优解,请分析原因;4要求界面显示每次迭代求出的局部最优解和最终求出的全局最优解。 四数据结构请说明染色体个体和群体的定义方法。typedef structint colonyPOPSIZECITY_NUM+1;城市种群,默认出发

2、城市编号为0,则城市编号的最后一个城市还应该为0 每CITY_NUM个城市的排列组合为一个染色体double fitnessPOPSIZE;/ 路径适应值double DistancePOPSIZE;/ 路径实际长度int BestRootingCITY_NUM+1;/最优城市路径序列double BestFitness;/最优路径适应值double BestValue;最优路径长度TSP,*PTSP;五实验算法1说明算法中对染色体的编码方法,适应度函数定义方法;染色体的编码方法:09 一个排列组合为一条染色体。适应度函数的定义方法:取路径长度的倒数。void CalFitness(PTSP

3、city,int m) int i,j,t=0;int start,end;for(i=0;iDistancei=0;for(j=1;jcolonyij-1;end=city-colonyij;city-Distancei=city-Distancei+CityDistancestartend;)city-fitnessi=N/(city-Distancei);)2采用的选择、交叉、变异操作算子的具体操作;void Select(PTSP city)/选择算子int i,j;double sum=0,r,t;double pPOPSIZE,qPOPSIZE+1;int copeyPOPSIZE

4、CITY_NUM+1;q0 = 0;for (i=0;ifitnessi;for (i=0;ifitnessi/sum;qi+1 = qi+pi;)for (i=0;iPOPSIZE;i+)t = rand()%(10000);r = t/10000;for (j=0;jPOPSIZE;j+)if (rcolonyj;break;)for (i=0;icolonyi = *copeyi;改进启发式算法) void AOX(PTSP city,int n,int m)/精品文档(int ACITY_NUM-1,BCITY_NUM-1;int i,j;int k=1+CROSS_NUM,t=1+C

5、ROSS_NUM;for (i=0;icolonyni+1;Bi = city-colonymi+1;for (i=3;icolonyni-2 = Bi;city-colonymi-2 = Ai;for (i=0;iCITY_NUM-1;i+)(for (j=0;jcolonynk+ = Ai;for (j=0;jcolonymt+ = Bi;判重int check1(int r,int n)/ (int i;for (i=0;in;i+)if (ri = rn) (return true;精品文档return false;)void Cross(PTSP city,double pc)/交叉

6、概率是pint i;int r20;for (i=0; iPOPSIZE*pc;i+)ri = rand()%(POPSIZE);while (check1(r,i)ri = rand()%(POPSIZE);)for (i=0;icolonynr;city-colonynr = city-colonynt;city-colonynt = c;)void Mutation(PTSP city,double pm)/变异概率是pmint i;int r20;for (i=0; iPOPSIZE*pm;i+)精品文档ri = rand()%(POPSIZE);while (check1(r,i)ri = rand()%(POPSIZE); XCH(city,ri);3实验中采用的算法参数的最佳选择值是多少。由于我是随机抽取参加交叉的染色体,没有选择性的抽取那些适应度大的染色体,故交叉率pc很难确定最佳最佳值。我的取值是:POPSIZE = 20 PCROSS = 0.6 PMUTATION =

温馨提示

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

评论

0/150

提交评论