• 基于麻雀优化算法的路径优化问题(Matlab代码实现)


    💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    👨‍💻4 Matlab代码


    💥1 概述

          路径规划是移动机器人技术研究领域中非常重要的部分。面对愈渐复杂的工作环境,传统的路径规划技术存在各种难以解决的问题,如计算量大、完备性差、需要环境精确建模等,难以满足现代的实际需求。因此,无需环境精确建模、结构简单且通用性高的智能优化算法便成为路径规划研究的新兴热点。

    麻雀搜索算法是2019年提出的群智能优化算法,其思想来源是麻雀种群的觅食行为和反捕食行为。麻雀搜索算法由于其结构简单、收敛速度快等优点,已经在一些实际工程问题上得到应用。因此,本研究基于麻雀搜索算法对移动机器人路径规划问题进行研究。

    📚2 运行结果

    部分代码:

    %% 参数设置
    max_gen = 200;    % 最大迭代次数
    num_polution = 50;         % 种群数量
    soft_value = 0.8;        %安全值
    recover_Percent = 0.3;  %%发现者比例
    scout_Percent = 0.2;  %%侦查者比例
    recover_Num = round( num_polution * recover_Percent );    % %发现者
    scout_Num = round(num_polution * scout_Percent);      %%侦查者数量
    X_min = 1;  

    %% 初始化
    X = zeros(num_polution,dimensions);
    for i = 1:num_polution
        for j = 1:dimensions
           column = G(:,j+1);      % 地图的一列
           id = find(column == 0); % 该列自由栅格的位置
           X(i,j) =  id(randi(length(id))); % 随机选择一个自由栅格
           id = [];
        end 
        fit( i ) = fitness(X( i, : ),G);%%%行向量
    end
    fit_person_best = fit;   % 个体最优适应度
    person_best = X;      % 个体最优位置
    [fit_global_best, best_person_Index] = min( fit );        % 全局最优适应度
    global_best = X(best_person_Index, : );    % 全局最优位置
    [fit_max,B]=max(fit);
    worse_person= X(B,:);  
    %%
    for gene = 1:max_gen
        gene
        [ans1,sort_Index] = sort(fit);   %适应值度从小到大排序
        [fit_max,B] = max(fit);
        worse_person = X(B,:);           %找出适应度最差的个体
        [~,Index] = sort(fit_person_best);
        r2 = rand(1);
        if r2 < soft_value

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

            for i = 1:recover_Num                                                  
                r1 = rand(1);  
                X(Index(i),:) = person_best(Index(i),:)*exp(-(i)/(r1*max_gen));         %%%%%发现者广泛进行搜索操作
                X(Index(i),:) = Bounds(X(Index(i),:), X_min,Xmax);                      %%%%输出整数路径
                fit(Index(i)) = fitness(X(Index(i),:),G);
            end
        else
                X(Index(i),:) = person_best(Index(i),:) + randn(1)*ones(1,dimensions);  %%%%%%%飞往其他地方觅食
                X(Index(i),:) = Bounds(X(Index(i),:),X_min,Xmax);    
                fit(Index(i)) = fitness(X(Index(i),:),G);
        end

     

    🎉3 参考文献

    [1]张恩浩. 基于麻雀搜索算法的移动机器人路径规划算法研究[D].重庆理工大学,2022.DOI:10.27753/d.cnki.gcqgx.2022.000820.

    👨‍💻4 Matlab代码

  • 相关阅读:
    python选择排序
    效率倍升:逐浪HMS主题大师1.2-全渠道自动打包、快速传送、锁屏提取、资源审计,移动主题设计辅助利器(全面支持华V米O)
    fastadmin with 和 filed 合用导致field失效
    Kubesphere与Jenkins的集成解析
    虚幻4学习笔记(13)用户UI 交互动画、制作2D UI、制作3D UI
    HTML学生个人网站作业设计——HTML+CSS+JavaScript优分期大学生分期购物商城(7页)
    基于nginx的tomcat负载均衡和集群(超简单)
    SCI常见词汇表达
    如何知道是否有人正在进行网络攻击
    DMRS的产生
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127411965