资源描述:
《基于改进遗传算法的路径规划MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于遗传算法的路径规划MATLAB实现主程序:clearall;closeall;t=23;%过程点个数=t-1s=500;%种群规模pc=0.90;%交叉概率pm=0.20;%变异概率pop=zeros(s,t);fori=1:spop(i,1:t-1)=randperm(t-1);endfork=1:1:2000%进化代次数kifmod(k,10)==1kendpop=lujingdis(pop);c=15;%选择淘汰个数pop=lujingselect(pop,c);p=rand;ifp>=pcpop=lujingcross(pop);endif
2、p>=pmpop=lujingmutate(pop);Endendpopmin(pop(:,t))J=pop(:,t);fi=1./J;[Oderfi,Indexfi]=sort(fi);%安排fi从小到大BestS=pop(Indexfi(s),:);%使BestS=E(m),m即是属于max(fi)的IndexfiI=BestS;x=[23610141722202325302825212916181591165];y=[526142927242822263030171315413316227];%过程点坐标%x=[12346911108964];%
3、12个过程点的坐标%y=[12348101195212];fori=1:1:t-1x1(i)=x(I(i));y1(i)=y(I(i));endx(t)=x(I(1));y(t)=y(I(1));a=[1111111111111111111111111111111101111111011111101111011111111111110111111111111111011100011111111111111111111111111111111111111111111011111111111111111111111011111111111111111111
4、111111111111111111110111111111111111111111111111111111111111111111111111011111111111111111111111111111111111111111111111110111111111111111111111111111111111111111111111111111101111111111110111111101111111111111111111111111111111111111111111111111111111011111111111111111111111111
5、111111111111110111111111101111111111111111111111111111111111111111111011111111111101111111111111111111111111111101111111111110111111111111111101111111111111111111111111111101111111111111111111111110111111111110111111111011111111111111111111111111111111111111111111011111111111111
6、11111111111111111111111111011111111111111111111111111111111111111011111111111111101111111111111111111011111111111111111111111111111111011111111011111101111111111111];%31*31栅格%a=[1111111111111001110010100111110011110110111111111111111111111001101111111111111011111111110111110011]
7、;%11*11栅格b=a;b(end+1,end+1)=0;colormap([000;111]),pcolor(b)axisimagexy;%绘制栅格图holdon;figure(1);plot(x,y,'-or');适应度函数程序:lujingdis.mfunction[pop]=qiujuli(pop)[s,t]=size(pop);fori=1:1:sdd=0;forj=1:1:t-2dd=dd+lujingcalculate(pop(i,j),pop(i,j+1));endpop(i,t)=dd;End距离计算程序:lujingcalcula
8、te.mfunction[d]=juli(m,n)x=[2361014172220232530