MATLAB源码-遗传算法的栅格法机器人路径规划实现(复制源码可直接运行).docx

MATLAB源码-遗传算法的栅格法机器人路径规划实现(复制源码可直接运行).docx

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB 源码遗传算法的栅格法机器人 路径规划实现(复制源码可直接运行) 新建一个脚本,将源码复制进去,可以直接运行。 Figure 1 文件(E) 编辑(E) 查看(Y) 插入(I) 工具(I) 桌面(D) 窗口(W) 帮助(H) X N 台 口 田 国 路径长度 perlenth=1,persmooth=7的优化曲线图 路径长度 迭代次数 CSDN@ 千歌叹尽执夏 坐标y 坐标y Figure 2 文件(F) 编辑(E) 查看(V) 插入(I) 工具(T) 桌面(D) 窗口(W) 帮助(H) Y 国 国 1234567891011121314151617181920 坐标x %基于遗传算法的栅格法机器人路径规划的MATLAB 实现 clc; clear; %输入数据,即栅格地图 G=[00000000000000000000; 00100000000000000000; 00100011100000000000; CSDn@ 干歌叹宋执夏 00000011100000000000; 00000011100000000000; 01110000000000000000; 01110011100000000000; 00000011101011000000; 01110000001011000000; 00000000000000000000; 00000001101111000000; 00000001100000000000; 00000000000111011110; 00000000001000000000; 00110000001111111110; 00110011101000000000; 00000011101000000110; 00000000000000100110; 00000000000000100000; 00000000000000000000]; p start =0;%起始序号 p end =399;%终止序号 NP =200;%种群数量 max gen =50;%最大进化代数 percross =0.8;%交叉概率 permutate =0.2;%变异概率 perlenth =1;%路径长度比重 persmooth =7;%路径顺滑度比重 %init path =[]; z =1; new popl ={};%元胞类型数组,啥都可以存,类似C 语言中的结构 new pop2 ={}; [y,x]=size(G);% x =20,y =20, 行数和列数 %起点所在列(从左到右编号1.2.3...) xstart =mod(p start, x)+1; %起点所在行(从上到下编号行1.2.3...) ystart =fix(p start / x)+1; %终点所在列、行 xend =mod(p end,x)+1;% mod 函数取余函数,前除以后取余数 yend =fix(p end /x)+1;% fix 函数取整函数,四舍五入取整数 %种群初始化第一步,必经节点,从起始点所在行开始往上,在每行中挑选一个 自由栅格,构成必经节点 pass num = yend-ystart +1;%等于地图总共的行数,表示 pop =zeros(NP,pass num);% pop初始化置零,等于最大迭代次数*地图总行 数的矩阵,表示所有可能的路径 for globall i =1:NP pop(global1 i,1)= p start;%循环NP 次,把起点放入pop 首列 globall j =1; for global iyk = ystart+1:yend-1%除去起点和终点 globall j = globall j +1; can =[];%每一行无障碍的点组成 can 数组 for global ixk =1:x global ino =(global ixk -1)+(global iyk -1)* x;%给每个栅 格编序号 ifG(global iyk, global ixk)==0 can =[can global ino];%把无障碍的点加入 can 数组中 end end can num =length(can);% can 数组的长度 index =randi(can num);%产生随机的整数 pop(global1 i,global1 j)=can(index);% 每一行表示的一条路径中加入一个 无障碍的点 end pop(global1 i,end)=

文档评论(0)

zhanghaoyu888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档