2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验

news/2024/11/29 12:37:52/

简介:

2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验。

    无人机三维路径规划的重要意义在于确保飞行安全、优化飞行路线以节省时间和能源消耗,并使无人机能够适应复杂环境,实现特定任务。群体智能优化算法无人机三维路径规划中扮演关键角色,其全局搜索能力允许同时考虑多个解决方案,避障优化确保路径安全,自适应性适应不同飞行任务需求,并行搜索加快最优解寻找速度。

    灰狼优化器(GWO)作为非常经典实用的群智能算法,在这里我们将其与2024年最新提出的角蜥优化算法(HLOA)进行无人机三维路径规划比较,运行结果包括最优路径和收敛曲线的比较。并附带代码,供大家学习参考!

实验结果如下:

部分主函数代码如下:

clc;
clear;
close all;
%% 创建地图
%地图的大小200*200
MapSizeX = 200 ; 
MapSizeY = 200;
%% 地形地图创建,地图详细参数,请去MapValueFunction.m里面设置
x = 1:1:MapSizeX;
y = 1:1:MapSizeY;
for i = 1:MapSizeXfor j = 1:MapSizeYMap(i,j) = MapValueFunction(i,j);end
end
global NodesNumber
global startPoint
global endPoint
global ThreatAreaPostion
global ThreatAreaRadius%% 威胁区域绘制
%威胁区域中心坐标
ThreatAreaPostion = [50,140];
%威胁区域半径
ThreatAreaRadius = 30;
%将威胁区域叠加到图上
figure
mesh(Map);
hold on;
for i= 1:size(ThreatAreaRadius)[X,Y,Z] = cylinder(ThreatAreaRadius(i),50);X = X + ThreatAreaPostion(i,1);Y = Y + ThreatAreaPostion(i,2);Z(2,:) = Z(2,:) + 50;%威胁区域高度mesh(X,Y,Z)
end
%% 设置起始点
startPoint = [0,0,20];
endPoint = [200,200,20];
plot3(startPoint(1),startPoint(2),startPoint(3),'ro');
text(startPoint(1),startPoint(2),startPoint(3),'起点','Color','k','FontSize',15)
plot3(endPoint(1),endPoint(2),endPoint(3),'r*');
text(endPoint(1),endPoint(2),endPoint(3),'终点','Color','k','FontSize',15)
title('地图信息')
%% 灰狼优化参数设置
NodesNumber = 2;%起点与终点之间节点的个数
dim = 2*NodesNumber; %维度,一组坐标点为[x,y,z]3个值,,其中X等间隔分布,所以总的数据个数为2*NodesNumber
lb = [20.*ones(1,NodesNumber),0.*ones(1,NodesNumber)];%x,y,z的下限[20,20,0]
ub = [180.*ones(1,NodesNumber),50.*ones(1,NodesNumber)];%x,y,z的上限[200,200,50]
fobj = @(x)fun(x,NodesNumber,startPoint,endPoint,ThreatAreaPostion,ThreatAreaRadius);%适应度函数
SearchAgents_no=70; % 种群数量
Max_iteration=50; % 设定最大迭代次数[Best_pos_GWO,Best_score_GWO,GWO_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
[Best_pos_HLOA,Best_score_HLOA,HLOA_curve]=HLOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
%根据寻优获得的节点,获取插值后的路径
[X_seq_HLOA,Y_seq_HLOA,Z_seq_HLOA,x_seq_HLOA,y_seq_HLOA,z_seq_HLOA] = GetThePathLine(Best_pos_HLOA,NodesNumber,startPoint,endPoint);
[X_seq_GWO,Y_seq_GWO,Z_seq_GWO,x_seq_GWO,y_seq_GWO,z_seq_GWO] = GetThePathLine(Best_pos_GWO,NodesNumber,startPoint,endPoint);

代码获取点击:

点击获取代码


http://www.ppmy.cn/news/1432991.html

相关文章

Java获取项目运行时的系统参数

如,要获取运行时的参数password 可以用System.getProperty("jasypt.encryptor.password"); java -jar demo.jar --Djasypt.encryptor.password"ADUMDFUOV7834*"获取tomcat运行时候的参数: 如加在tomcat的catalina.bat的运行参数 …

线程池学习

一、线程池基础 1、什么是线程池 用一句话来概述就是:线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后再需要执行新的任务时重用这些线程而不是新建线程。 2、为什么使用线程池 使用线程池最大的原因就是可以根据系统的需求和硬件环境…

人机之间的一次融合与二次融合

一次融合是指将人与机器的功能和能力进行整合,使其能够协同工作,但是人和机器仍然是相对独立的个体。而二次融合则是指将人与机器的智能、意识以及身体实体等方面进行深度融合,使得人和机器之间的关系更加紧密,甚至可能形成不可分…

Java代码基础算法练习-逆序输出-2024.04.22

任务描述: 输入10个数字(数字取值范围:0~1000),然后逆序输出。 任务要求: 代码示例: package April_2024;import java.util.Scanner;/*** 输入10个数字(限定在0~1000范围内&#x…

每日两题 / 438. 找到字符串中所有字母异位词 238. 除自身以外数组的乘积(LeetCode热题100)

438. 找到字符串中所有字母异位词 - 力扣&#xff08;LeetCode&#xff09; 记录p串每个字符出现次数 维护与p串等长的滑动窗口&#xff0c;记录其中每个字符的出现次数 每次滑动后将当前次数与p串的次数比较即可 class Solution { public:vector<int> findAnagrams(s…

用 LM Studio 1 分钟搭建可在本地运行大型语言模型平台替代 ChatGPT

&#x1f4cc; 简介 LM Studio是一个允许用户在本地离线运行大型语言模型&#xff08;LLMs&#xff09;的平台&#xff0c;它提供了一种便捷的方式来使用和测试这些先进的机器学习模型&#xff0c;而无需依赖于互联网连接。以下是LM Studio的一些关键特性&#xff1a; 脱机&am…

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“幼儿园管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 个人信息界面图 缴费信息管理界…

Day18-Python基础学习之多线程编程

多线程编程 # 多线程:一个进程可以开启多个线程 # 并行:同一时间做不同的工作# 多线程编程 import threading import timedef sing():while True:print("我在唱歌")time.sleep(1)def dance():while True:print("我在跳舞")time.sleep(1)def rap(msg):while…