MATLAB遗传算法规划机器人路径(栅格)源码
#网上路径规划的代码很多,但是简单栅格路径的规划问题,各位大佬都懒得写,小弟为你奉上,敬请食用(此代码是根据大佬的源码改写而成,由于不知大佬链接,所以就不放了,但是大佬是开源的)
主要包括以下几个部分
text1.m主函数
chack.m边界检测函数
calfitvalue.m适用度函数
crossover.m交叉函数
mutation.m变异函数
poppinit.m初始化族群
select.m
best.m
运行结果如图
链接: link.
图片:
带尺寸的图片:
代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%函数名称:主函数text1.m
%%入口参数:无
%%出口参数:无
%%说明:无
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
pc=0.7; %交叉概率
pm=0.006; %变异概率
[x,y]=popinit(500,10); %产生初始种群
D=calfitvalue(x,y); %计算种群适应度
for i=1:1:200 %设置进化代数
[newx,newy]=selection(x,y,D); %选择
[newx,newy]=crossover(newx,newy,pc); %交叉
[newx,newy]=mutation(newx,newy,pm); %变异
D=calfitvalue(newx,newy); %重新计算适应度
[newx,newy]=selection(newx,newy,D); %选择 保证交叉变异后的种群都不经过障碍物
D=calfitvalue(newx,newy); %重新计算适应度 选择之后的种群适应度也已经发生变化。所以必须重新计算
[bestx,besty,bestfit]=best(newx,newy,D); %选择最佳个体
bbestx(i,:)=bestx; %保存最佳个体
bbesty(i,:)=b