• 遗传算法(GA)求解基于栅格地图的机器人最优路径规划,可以自行修改地图(提供MATLAB代码)


    通过栅格法建立栅格地图作为机器人路径规划的工作环境,采用遗传算法作为机器人路径搜索的规则.将所有机器人放置于初始位置.经过NC次无碰撞迭代运动找到最优路径.到达目标位置.为防止机器人在路径搜索过程中没有达到最大迭代次数时路径大小已不发生变化而陷入局部最优。

    一、部分代码

    close all;
    clear;
    clc;
    % 输入数据,即栅格地图.20行20列
    Grid=  [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
         0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
         0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
         0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
         0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 0 0;
         0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0;
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0;
         0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0;
         0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
         0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0;
         0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0;
         0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0; 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0;
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
    start_num = 0;    % 起点编号
    end_num = 399;    % 终点序号
    NP = 100;       % 种群数量
    max_gen = 300;  % 最大进化代数
    pc = 0.8;      % 交叉概率
    pm = 0.2;      % 变异概率
    a = 1;         % 路径长度比重
    b = 8;         % 路径顺滑度比重
    z = 1;         
    new_pop1 = {}; % 元胞数组,存放路径
    [y, x] = size(Grid);
    % 起点所在列(从左到右编号1.2.3...)
    start_column = mod(start_num, x) + 1; 
    % 起点所在行(从上到下编号行1.2.3...)
    start_row = fix(start_num / x) + 1;  %Y = fix(X) 将 X 的每个元素朝零方向四舍五入为最近的整数
    % 终点所在列、行
    end_column = mod(end_num, x) + 1;
    end_row = fix(end_num / x) + 1;
     
    %% 种群初始化step1,必经节点,从起始点所在行开始往上,在每行中挑选一个自由栅格,构成必经节点
    pass_num = end_row - start_row + 1;  %每条路径的节点个数
    pop = zeros(NP, pass_num);%生成种群数量*节点个数的矩阵,用于存放每个个体的路径
    

    二、部分结果

    三、完整 MATLAB代码

    遗传算法(GA)求解基于栅格地图的机器人最优路径规划,可以自行修改地图(MATLAB代码)

    点击main.m既可以运行,可以自行修改地图。

  • 相关阅读:
    深入理解java垃圾回收机制
    Linux驱动开发——(五)内核中断
    MongDB 远程连接以及备份、还原、导出、导入
    redis常用存储结构
    P18 class 类 P19 类 init 功能 P20 input 输入
    GIS海量数据前端加载优化策略
    振芯GM7123C:功能RGB转VGA芯片方案简介
    一文教会你如何在内网搭建一套属于自己小组的在线 API 文档?
    MySQL之CRUD
    JAVA面试题——初级
  • 原文地址:https://blog.csdn.net/2401_82411023/article/details/136597555