收藏 分享(赏)

基于改进遗传算法的路径规划MATLAB实现.doc

上传人:weiwoduzun 文档编号:3114579 上传时间:2018-10-03 格式:DOC 页数:6 大小:15.07KB
下载 相关 举报
基于改进遗传算法的路径规划MATLAB实现.doc_第1页
第1页 / 共6页
基于改进遗传算法的路径规划MATLAB实现.doc_第2页
第2页 / 共6页
基于改进遗传算法的路径规划MATLAB实现.doc_第3页
第3页 / 共6页
基于改进遗传算法的路径规划MATLAB实现.doc_第4页
第4页 / 共6页
基于改进遗传算法的路径规划MATLAB实现.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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)=randperm(t-1);endfor k=1:1:2000 %进化代次数 kif mod(k,10)=1kendpop=lujingdis(pop);c=15;%选择淘汰个数pop=lujingselect(pop,c);p=rand;if p=pcpop=lujingcross(pop);endif p=pmpop=

2、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=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;%过程点坐标% x=1

3、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-1x1(i)=x(I(i);y1(i)=y(I(i);endx(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 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

4、0 1 1 1 0 0 0 11 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 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

5、 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 11 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

6、 1 1 1 1 11 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 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 11 1 0 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 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

7、1 1 01 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 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 01 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 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1

8、 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 1 11 0 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 1 1 1 1 1 1 1 1 0 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 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 11 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 11

9、 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 10 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1;%31*31 栅格%a = 1 1 1 1 1 1 1 1 1 11 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 11 1 1 1 1 1 1 1 1 0 1 1 1 1 1

10、1 1 1 1 1 0 1 1 1 1 1 0 0 1 1;%11*11 栅格b = a;b(end+1,end+1) = 0;colormap(0 0 0;1 1 1),pcolor(b)axis image xy;%绘制栅格图hold on;figure(1);plot(x,y,-or);适应度函数程序:lujingdis.mfunction pop=qiujuli(pop)s,t=size(pop);for i=1:1:sdd=0;for j=1:1:t-2dd=dd+lujingcalculate(pop(i,j),pop(i,j+1);endpop(i,t)=dd;End距离计算程序

11、:lujingcalculate.mfunction d=juli(m,n)x=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;%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)2+(y(m)-y(n)2);选择算子程序:lujingselect.mfunction pop=select(pop,k)s

12、,t=size(pop);m11=(pop(:,t);m11=m11;mmax=zeros(1,k);mmin=zeros(1,k);num=1;while numk+1a,mmax(num)=max(m11);m11(mmax(num)=a;num=num+1;endnum=1;while numk+1b,mmin(num)=min(m11);m11(mmin(num)=a;num=num+1;endfor i=1:kpop(mmax(i),:)=pop(mmin(i),:);End交叉算子程序:lujingcross.mfunction pop=cross(pop)s,t=size(pop

13、);pop1=pop;for i=1:2:sm=randperm(t-3)+1;crosspoint(1)=min(m(1),m(2);crosspoint(2)=max(m(1),m(2);for j=1:crosspoint(1)while find(pop(i,crosspoint(1)+1:crosspoint(2)=pop(i,j)zhi=find(pop(i,crosspoint(1)+1:crosspoint(2)=pop(i,j);y=pop(i+1,crosspoint(1)+zhi);pop(i,j)=y;endendfor j=crosspoint(2)+1:t-1whi

14、le find(pop(i,crosspoint(1)+1:crosspoint(2)=pop(i,j)zhi=find(pop(i,crosspoint(1)+1:crosspoint(2)=pop(i,j);y=pop(i+1,crosspoint(1)+zhi);pop(i,j)=y;endendendpop=lujingdis(pop);for i=1:sif pop1(i,t)pop(i,t)pop(i,:)=pop1(i,:);endEnd变异算子程序:lujingmutate.mfunction pop = mutate(pop)s,t=size(pop);pop1=pop;fo

15、r i=1:2:sm=randperm(t-3)+1;mutatepoint(1)=min(m(1),m(2);mutatepoint(2)=max(m(1),m(2);mutate =round(mutatepoint(2)-mutatepoint(1)/2-0.5);for j=1:mutatezhong=pop(i,mutatepoint(1)+j);pop(i,mutatepoint(1)+j)=pop(i,mutatepoint(2)-j);pop(i,mutatepoint(2)-j)=zhong;endendpop=lujingdis(pop);for i=1:sif pop1(i,t)pop(i,t)pop(i,:)=pop1(i,:);endend

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作计划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报