基于改进遗传算法的路径规划MATLAB实现_第1页
基于改进遗传算法的路径规划MATLAB实现_第2页
基于改进遗传算法的路径规划MATLAB实现_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、基于遗传算法的路径规划 MATLAB实现主程序:clear all;close all;t=23;%过程点个数=t - 1s=500;%种群规模pc=0.90;%交叉概率pm=0.20;%变异概率pop=zeros(s,t);for i=1:spop(i,1:t-1)=ra ndperm(t-l);endfor k=1:1:2000%进化代次数kif mod(k,10)=1kendpop=luji ngdis(pop);c=15;%选择淘汰个数pop=luji ngselect(pop,c);p=ra nd;if p>=pcpop=luji ngcross(pop);endif p>

2、;=pmpop=luji ngmutate(pop);End endpop min( pop(:,t) J=pop(:,t); fi=1./J;Oderfi,I ndexfi=sort(fi);BestS=pop(l ndexfi(s),:);l=BestS;%安排fi从小到大%使 BestS=E(m),m 即是属于 max(fi)的 Indexfix=2 3 6 10 14 17 22 20 23 25 30 28 25 21 29 16 18 15 9 11 6 5 ; y=5 26 14 29 27 24 28 22 26 30 30 17 13 15 4 13 3 1 6 2 2 7;

3、%过程点坐标% x=1 2 3 4 6 9 11 10 8 9 6 4; %12 个过程点的坐标% y=1 2 3 4 8 10 11 9 5 2 1 2;for i=1:1:t-1 x1(i)=x(l(i);y1(i)=y(l(i); end x(t)=x(I(1);y(t)=y(I(1);a = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 0 1 11 1 1 1 1 1 1 1 11 0 1 1 1 1 1 1 11 1 1 1 1 1 1

4、 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 0 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 10 1 1 1 1 1 1 0 11 1 1 1 1 1 0 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1

5、 1 1 1 1 11 1 1 0 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 11 1 11 1 11 1 11 1 11 1 10 1 11 1 11 1 1;%31*3 栅格%a = 1 1 1 1 1 1 1 1 1 11 0100111110 0111101101 1111111111 1111111111 0011011111 1111111101 1111111110 111110011;%11*11 栅格b = a;b(e nd+1,e nd+1) = 0;coIorm ap(0 0 0;1 1

6、 1),pcolor(b) axis image xy;%绘制栅格图 hold on;figure(1);plot(x,y,'-or');适应度函数程序:luji ngdis.mfun cti on pop=qiujuli(pop)s,t=size(pop);for i=1:1:sdd=0;for j=1:1:t-2dd=dd+luji ngcalculate(pop(i,j),pop(i,j+1);endpop(i,t)=dd;End距离计算程序:luji ngcalculate.mfunction d=juli(m,n)x=2 3 6 10 14 17 22 20 23 2

7、5 30 28 25 21 29 16 18 15 9 11 6 5 ; y=5 26 14 29 27 24 28 22 26 30 30 17 13 15 4 13 3 1 6 2 2 7; %x=1 2 3 4 6 9 11 10 8 9 6 4;% y=1 2 3 4 8 10 11 9 5 2 1 2;d=sqrt(x(m)-x(n)F2+(y(m)-y(n)F2);选择算子程序:luji ngselect.mfun cti on pop=select(pop,k)s,t=size(pop);m11=(pop(:,t);m11=m11'mmax=zeros(1,k);mmi

8、n=zeros(1,k);num=1;while num <k+1a,mmax( nu m)=max(m11);m11(mmax( nu m)=a;num=nu m+1;endnum=1;while num <k+1b,mmi n(nu m)=mi n( m11);m11(mmi n(nu m)=a;num=nu m+1;endfor i=1:kpop(mmax(i),:)=pop(mmi n(i),:);End交叉算子程序:luji ngcross.m fun cti on pop=cross(pop)s,t=size(pop);pop仁pop;for i=1:2:sm=ran

9、dperm(t-3)+1;crosspoi nt(1)=mi n( m(1),m(2);crosspoi nt(2)=max(m(1),m(2);for j=1:crosspoi nt(1)while fin d(pop(i,crosspo in t(1)+1:crosspo in t(2)=pop(i,j) zhi=fi nd(pop(i,crosspoi nt(1)+1:crosspoi nt(2)=pop(i,j); y=pop(i+1,crosspoi nt(1)+zhi);pop(i,j)=y;endendfor j=crosspo in t(2)+1:t-1while fin d(

10、pop(i,crosspo in t(1)+1:crosspo in t(2)=pop(i,j) zhi=fi nd(pop(i,crosspoi nt(1)+1:crosspoi nt(2)=pop(i,j); y=pop(i+1,crosspoi nt(1)+zhi);pop(i,j)=y;endendendpop=luji ngdis(pop);for i=1:sif pop1(i,t)vpop(i,t)pop(i,:)=pop1(i,:);endEnd变异算子程序:luji ngmutate.mfun cti on pop = mutate(pop)s,t=size(pop);pop仁pop;for i=1:2:sm=ran dperm(t-3)+1;mutatepoi nt(1)=mi n( m(1),m(2);mutatepoi nt(2)=max(m(1),m(2);mutate =roun d(mutatepoi nt(2)-mutatepoi nt(1)/2-0.5); for j=1:mutatezhon g=pop(i,mutatepo in t(1)+j)

温馨提示

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

评论

0/150

提交评论