• 遗传算法(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既可以运行,可以自行修改地图。

  • 相关阅读:
    Bayes决策:身高与体重特征进行性别分类
    Adobe Acrobat 编辑器软件下载安装,Acrobat 轻松编辑和管理各种PDF文件
    【人大金仓】迁移MySql数据库到人大金仓,出现sys_config表重复
    Abbexa竞争性ELISA试剂盒丨Abbexa阿维菌素ELISA试剂盒
    Java:外包Java项目有什么好处?
    两数之和 II - 输入有序数组
    如何用prompt提示词开发Open AI项目?
    责任链模式之Tomcat Filter应用
    【JavaEE】CAS(Compare And Swap)操作
    Windows Docs
  • 原文地址:https://blog.csdn.net/2401_82411023/article/details/136597555