1、2 要求求出问题最优解,若得不出最优解,请分析原因;3 对实验中的几个算法控制参数进行仔细定义,并能通过实验选择参数的最佳值; 4 要求界面显示每次迭代求出的局部最优解和最终求出的全局最优解。四 数据结构请说明染色体个体和群体的定义方法。struct RanSeTi /染色体的个体的定义方法 int citycities; /基因的排列(即城市的顺序,路径的组织) int adapt; /记录适应度 double p; /记录其在种群中的幸存概率 RanSeTi num, RanSeTi tempnum; /用数组来存储染色体群体方法五 实验算法1 说明算法中对染色体的编码方法,适应度函数定义
2、方法1) 染色体的编码方法:即为染色体个体定义过程中生成的基因排列(路径中城市的顺序) int citycities; int adapt; double p;2) 适应度函数定义方法:评价函数即适应度函数,在遗传算法中用来计算一个染色体优劣的函数。在进行遗传操作和种群进化的时候,每个染色体的适应值是决定它是否进入下一轮种群进化的关键因素。适应值高的函数被选作新一代个体的可能性就会大。 TSP问题中适应度函数常取路径长度的倒数(或倒数的相关函数),如: 其中,N是个调节参数,根据实验情况进行确定。for(i=0;inum;i+) sumdistance=0; for(j=1;jcities;j
3、+) n1= RanSeTi i.cityj-1; n2= RanSeTi i.cityj; sumdistance+=distancen1n2; RanSeTi i.adapt=sumdistance; /每条染色体的路径总和 biggestsum+=sumdistance; /种群的总路径 2 采用的选择、交叉、变异操作算子的具体操作1)选择操作我们定义f(xi)为第i(i=1,2,3.popsize)个染色体的适应度,则每个个体被选中的概率是: 本题中具体使用的是期望值方法/初始化梯度概率 for(i=0; gradienti=0.0; xuanzei=0.0; gradient0=gr
4、oup0.p; for(i=1; gradienti=gradienti-1+groupi.p; srand(unsigned)time(NULL); /随机产生染色体的存活概率 xuanzei=(rand()%100); xuanzei/=100; /选择能生存的染色体 for(j=0; if(xuanzeipoint2) /保证point1=point2 temp=point1; point1=point2; point2=temp; memset(map1,-1,sizeof(map1); memset(map2,-1,sizeof(map2); /断点之间的基因产生映射 for(k=p
5、oint1;k=point2;k+) map1grouptemp1.cityk=grouptemp2.cityk; map2grouptemp2.cityk=grouptemp1.cityk; /断点两边的基因互换 for(k=0;point1; temp=grouptemp1.cityk; grouptemp1.cityk=grouptemp2.cityk; grouptemp2.cityk=temp; for(k=point2+1; /处理产生的冲突基因 for(kk=point1;kkkk+) if(grouptemp1.cityk=grouptemp1.citykk) grouptem
6、p1.cityk=map1grouptemp1.cityk; if(grouptemp2.cityk=grouptemp2.citykk) grouptemp2.cityk=map2grouptemp2.cityk; temp1=temp2+1;3)变异操作TSP问题中,经常采取的变异操作主要有:位点变异、逆转变异、对换变异、插入变异。/随机产生变异概率 bianyipi=(rand()%100); bianyipi/=100; /确定可以变异的染色体 t=0; if(bianyipipm) bianyiflagi=1; t+; /变异操作,即交换染色体的两个节点 if(bianyiflagi=1) temp1=rand()%10; temp2=rand()%10; point=groupi.citytemp1; groupi.citytemp1=groupi.citytemp2; groupi.citytemp2=point;3 实验中采用的算法参数的最佳选择值是多少 #define cities 10/30 /城市的个数#define MAXX 150 /迭代次数#define pc 0.72 /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1