当前位置: 首页 > news >正文

(八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、五种算法(DBO、LO、SWO、COA、GRO)简介

1、蜣螂优化算法DBO

蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。【精选】单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)_蜣螂算法_IT猿手的博客-CSDN博客

参考文献:Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022). Dung beetle optimizer: a new meta-heuristic algorithm for global optimization | The Journal of Supercomputing

2、狐猴优化算法LO

狐猴优化算法(Lemurs Optimizer,LO)由Ammar Kamal Abasi等人于2022年提出,该算法模拟狐猴的跳跃和跳舞行为,具有结构简单,思路新颖,搜索速度快等优势。单目标应用:基于狐猴优化算法(Lemurs Optimizer,LO)的微电网优化调度MATLAB_IT猿手的博客-CSDN博客

参考文献:

[1]Abasi AK, Makhadmeh SN, Al-Betar MA, Alomari OA, Awadallah MA, Alyasseri ZAA, Doush IA, Elnagar A, Alkhammash EH, Hadjouni M. Lemurs Optimizer: A New Metaheuristic Algorithm for Global Optimization. Applied Sciences. 2022; 12(19):10057. Applied Sciences | Free Full-Text | Lemurs Optimizer: A New Metaheuristic Algorithm for Global Optimization

3、蜘蛛蜂优化算法SWO

蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快,求解精度高的优势。VRPTW(MATLAB):蜘蛛蜂优化算法SWO求解带时间窗的车辆路径问题VRPTW(提供参考文献及MATLAB代码)-CSDN博客

参考文献:

[1]Abdel-Basset, M., Mohamed, R., Jameel, M. et al. Spider wasp optimizer: a novel meta-heuristic optimization algorithm. Artif Intell Rev (2023). Spider wasp optimizer: a novel meta-heuristic optimization algorithm | SpringerLink

4、小龙虾优化算法COA

小龙虾优化算法(Crayfsh optimization algorithm,COA)由Jia Heming 等人于2023年提出,该算法模拟小龙虾的避暑、竞争和觅食行为,具有搜索速度快,搜索能力强,能够有效平衡全局搜索和局部搜索的能力。多目标优化算法:基于非支配排序的小龙虾优化算法(NSCOA)MATLAB_IT猿手的博客-CSDN博客

参考文献:

[1] Jia, H., Rao, H., Wen, C. et al. Crayfish optimization algorithm. Artif Intell Rev (2023). Crayfish optimization algorithm | SpringerLink

5、淘金优化算法GRO

淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。VRPTW(MATLAB):淘金优化算法GRO求解带时间窗的车辆路径问题VRPTW(提供参考文献及MATLAB代码)-CSDN博客

参考文献:

K. Zolfi. Gold rush optimizer: A new population-based metaheuristic algorithm. Operations Research and Decisions 2023: 33(1), 113-150. DOI 10.37190/ord230108

二、模型简介

参考文献:

[1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120

三、DBO、LO、SWO、COA、GRO求解无人机路径规划

(1)部分代码

close all
clear  
clc
warning off;
%% 三维路径规划模型定义
global startPos goalPos N
N=2;%待优化点的个数(可以修改)
startPos = [10, 10, 80]; %起点(可以修改)
goalPos = [80, 90, 150]; %终点(可以修改)
SearchAgents_no=30; % 种群大小(可以修改)
Function_name='F1'; %F1:随机产生地图 F2:导入固定地图
Max_iteration=100; %最大迭代次数(可以修改)
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
AlgorithmName={'DBO','LO','SWO','COA','GRO'};%算法名称
addpath('./AlgorithmCode/')%添加算法路径
bestFit=[];%保存各算法的最优适应度值
for i=1:size(AlgorithmName,2)%遍历每个算法,依次求解当前问题
Algorithm=str2func(AlgorithmName{i});%获取当前算法名称,并将字符转换为函数
[Best_score,Best_pos,Convergence_curve]=Algorithm(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);%当前算法求解
%将当前算法求解结果放入data中
data(i).Best_score=Best_score;%保存该算法的Best_score到data
data(i).Best_pos=Best_pos;%保存该算法的Best_pos到data
data(i).Convergence_curve=Convergence_curve;%保存该算法的Convergence_curve到data
bestFit=[bestFit data(i).Best_score];
end%%  画各算法的直方图
figure 
bar(bestFit)
ylabel('无人机飞行路径长度');
set(gca,'xtick',1:1:size(AlgorithmName,2));
set(gca,'XTickLabel',AlgorithmName)
saveas(gcf,'./Picture/直方图.jpg') %将图片保存到Picture文件夹下面%%  画收敛曲线
strColor={'r-','g-','b-','k-','m-','c-','y-'};
figure
for i=1:size(data,2)
plot(data(i).Convergence_curve,strColor{i},'linewidth',1.5)%semilogy
hold on
end
xlabel('迭代次数');
ylabel('无人机飞行路径长度');
legend(AlgorithmName,'Location','Best')
saveas(gcf,'./Picture/收敛曲线.jpg') %将图片保存到Picture文件夹下面%% 显示三维图并保存
path=plotFigure(data,AlgorithmName,strColor);%path是各算法求解的无人机路径
saveas(gcf,'./Picture/路径曲线(三维).jpg') %将图片保存到Picture文件夹下面%% 显示二维图并保存
view(2)
saveas(gcf,'./Picture/路径曲线(二维).jpg') %将图片保存到Picture文件夹下面

(2)部分结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、完整MATLAB代码

相关文章:

  • 如何在聊天记录中实时查找大量的微信群二维码
  • 城市内涝对策,万宾科技内涝积水监测仪使用效果
  • Javaweb开发 利用servlet+jsp+jdbc+tomcat数据库实现登录功能
  • 《Effective C++》条款15
  • 【AI视野·今日NLP 自然语言处理论文速览 第六十五期】Mon, 30 Oct 2023
  • 设计模式 -- 代理模式(Proxy Pattern)
  • 【1567.乘积为正数的最长子数组长度】
  • 【ROS】RViz2源码分析(二):main函数及编译配置详解
  • 大数据基础设施搭建 - JDK
  • Java继承和多态(2)
  • 手撕无头单链表
  • YOLOv5项目实战(3)— 如何批量命名数据集中的图片
  • 代码随想录算法训练营Day 53 || 1143.最长公共子序列、1035.不相交的线、53. 最大子序和
  • 【T690 之十一】基于方寸EVB2开发板,结合 Eclipse+gdb+gdbserver 调试 CCAT 的流程总结
  • 场景图形管理-多视图多窗口渲染示例(4)
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 《剑指offer》分解让复杂问题更简单
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 230. Kth Smallest Element in a BST
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • EventListener原理
  • javascript 哈希表
  • JavaScript 基本功--面试宝典
  • Redis字符串类型内部编码剖析
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQLServer插入数据
  • vue.js框架原理浅析
  • 构建工具 - 收藏集 - 掘金
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 三栏布局总结
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 微信公众号开发小记——5.python微信红包
  • ​queue --- 一个同步的队列类​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #14vue3生成表单并跳转到外部地址的方式
  • #QT(一种朴素的计算器实现方法)
  • (13):Silverlight 2 数据与通信之WebRequest
  • (C语言)fgets与fputs函数详解
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转载)深入super,看Python如何解决钻石继承难题
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Micro Framework初体验
  • .NET6 命令行启动及发布单个Exe文件
  • ?
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20150707]外部表与rowid.txt
  • [20171102]视图v$session中process字段含义