(五)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB代码)

一、无人机模型简介:

单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客

参考文献:

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

二、高尔夫优化算法GOA简介

高尔夫优化算法(Golf Optimization Algorithm,GOA)由Montazeri Z等人于2023年提出,该算法模拟高尔夫运动过程中的球员击打高尔夫所采取的战术策略,能够有效平衡全局搜索和局部搜索的能力。

多目标优化算法:基于非支配排序的高尔夫优化算法(NSGOA)MATLAB-CSDN博客

参考文献:

[1] Montazeri Z, Niknam T, Aghaei J, Malik OP, Dehghani M, Dhiman G. Golf Optimization Algorithm: A New Game-Based Metaheuristic Algorithm and Its Application to Energy Commitment Problem Considering Resilience. Biomimetics. 2023; 8(5):386. Biomimetics | Free Full-Text | Golf Optimization Algorithm: A New Game-Based Metaheuristic Algorithm and Its Application to Energy Commitment Problem Considering Resilience

三、高尔夫优化算法GOA求解无人机路径规划

(1)部分代码

close all
clear  
clc
addpath('./Algorithm/')%添加算法路径
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=50; %最大迭代次数(可以修改)
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
[Best_score,Best_pos,curve]=GOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);%算法优化求解
AlgorithmName='GOA';%算法名字
figure
semilogy(curve,'Color','r','linewidth',3)
xlabel('迭代次数');
ylabel('飞行路径长度');
legend(AlgorithmName)
display(['算法得到的最优适应度: ', num2str(Best_score)]); 
Position=[Best_pos(1:dim/3); Best_pos(1+dim/3:2*(dim/3)); Best_pos(1+(2*dim/3):end)]'; %优化点的XYZ坐标(每一行是一个点)
plotFigure(Best_pos,AlgorithmName)%画最优路径


(2)部分结果

无人机飞行路径坐标:

   1.0000000e+01   1.0000000e+01   8.0000000e+01
   1.1820429e+01   1.0571462e+01   8.1472989e+01
   1.3550647e+01   1.1085750e+01   8.2868815e+01
   1.5193235e+01   1.1545531e+01   8.4189899e+01
   1.6750774e+01   1.1953473e+01   8.5438661e+01
   1.8225847e+01   1.2312246e+01   8.6617520e+01
   1.9621034e+01   1.2624518e+01   8.7728897e+01
   2.0938916e+01   1.2892956e+01   8.8775212e+01
   2.2182075e+01   1.3120229e+01   8.9758885e+01
   2.3353092e+01   1.3309007e+01   9.0682335e+01
   2.4454549e+01   1.3461955e+01   9.1547984e+01
   2.5489026e+01   1.3581745e+01   9.2358249e+01
   2.6459105e+01   1.3671043e+01   9.3115553e+01
   2.7367367e+01   1.3732517e+01   9.3822314e+01
   2.8216394e+01   1.3768838e+01   9.4480953e+01
   2.9008766e+01   1.3782671e+01   9.5093889e+01
   2.9747066e+01   1.3776687e+01   9.5663543e+01
   3.0433874e+01   1.3753553e+01   9.6192335e+01
   3.1071772e+01   1.3715938e+01   9.6682685e+01
   3.1663341e+01   1.3666510e+01   9.7137012e+01
   3.2211163e+01   1.3607937e+01   9.7557737e+01
   3.2717817e+01   1.3542888e+01   9.7947279e+01
   3.3185887e+01   1.3474031e+01   9.8308059e+01
   3.3617953e+01   1.3404034e+01   9.8642497e+01
   3.4016596e+01   1.3335567e+01   9.8953013e+01
   3.4384399e+01   1.3271296e+01   9.9242026e+01
   3.4723941e+01   1.3213891e+01   9.9511956e+01
   3.5037805e+01   1.3166020e+01   9.9765225e+01
   3.5328571e+01   1.3130350e+01   1.0000425e+02
   3.5598821e+01   1.3109552e+01   1.0023145e+02
   3.5851137e+01   1.3106292e+01   1.0044926e+02
   3.6088099e+01   1.3123239e+01   1.0066007e+02
   3.6312289e+01   1.3163062e+01   1.0086633e+02
   3.6526288e+01   1.3228429e+01   1.0107044e+02
   3.6732677e+01   1.3322008e+01   1.0127484e+02
   3.6934038e+01   1.3446468e+01   1.0148193e+02
   3.7132953e+01   1.3604477e+01   1.0169413e+02
   3.7332001e+01   1.3798702e+01   1.0191388e+02
   3.7533765e+01   1.4031814e+01   1.0214358e+02
   3.7740826e+01   1.4306480e+01   1.0238566e+02
   3.7955766e+01   1.4625368e+01   1.0264254e+02
   3.8181164e+01   1.4991146e+01   1.0291663e+02
   3.8419604e+01   1.5406484e+01   1.0321036e+02
   3.8673666e+01   1.5874049e+01   1.0352615e+02
   3.8945931e+01   1.6396509e+01   1.0386642e+02
   3.9238981e+01   1.6976534e+01   1.0423358e+02
   3.9555396e+01   1.7616791e+01   1.0463007e+02
   3.9897759e+01   1.8319949e+01   1.0505829e+02
   4.0268651e+01   1.9088676e+01   1.0552066e+02
   4.0670652e+01   1.9925641e+01   1.0601962e+02
   4.1106345e+01   2.0833511e+01   1.0655757e+02
   4.1578310e+01   2.1814956e+01   1.0713694e+02
   4.2089128e+01   2.2872643e+01   1.0776015e+02
   4.2641382e+01   2.4009241e+01   1.0842961e+02
   4.3237652e+01   2.5227418e+01   1.0914776e+02
   4.3880520e+01   2.6529842e+01   1.0991700e+02
   4.4572567e+01   2.7919183e+01   1.1073975e+02
   4.5316374e+01   2.9398108e+01   1.1161845e+02
   4.6114522e+01   3.0969285e+01   1.1255550e+02
   4.6969593e+01   3.2635383e+01   1.1355333e+02
   4.7884168e+01   3.4399071e+01   1.1461436e+02
   4.8860829e+01   3.6263016e+01   1.1574100e+02
   4.9902156e+01   3.8229887e+01   1.1693569e+02
   5.1010732e+01   4.0302353e+01   1.1820083e+02
   5.2189136e+01   4.2483081e+01   1.1953884e+02
   5.3439952e+01   4.4774740e+01   1.2095216e+02
   5.4765759e+01   4.7179999e+01   1.2244319e+02
   5.6169139e+01   4.9701525e+01   1.2401436e+02
   5.7652674e+01   5.2341987e+01   1.2566809e+02
   5.9218944e+01   5.5104054e+01   1.2740679e+02
   6.0870532e+01   5.7990393e+01   1.2923290e+02
   6.2610017e+01   6.1003674e+01   1.3114882e+02
   6.4439983e+01   6.4146564e+01   1.3315697e+02
   6.6363009e+01   6.7421732e+01   1.3525979e+02
   6.8381678e+01   7.0831846e+01   1.3745968e+02
   7.0498570e+01   7.4379574e+01   1.3975907e+02
   7.2716267e+01   7.8067586e+01   1.4216038e+02
   7.5037350e+01   8.1898548e+01   1.4466602e+02
   7.7464401e+01   8.5875130e+01   1.4727842e+02
   8.0000000e+01   9.0000000e+01   1.5000000e+02


四、完整MATLAB代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/206725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

react-flip-move结合array-move实现前端列表置顶效果

你有没有遇到这样的需求?点击左侧列表项,则像聊天会话窗口一样将被点击的列表项置顶。 如果只是单纯的置顶的话,直接使用array-move就可以实现了,但置顶效果多少有点突兀~ 先上代码,直接使用array-move的情况&#xf…

用于缓存一些固定名称的小组件

项目中,用于缓存姓名、地名、单位名称等一些较固定名称的id-name小组件。用于减少一些表的关连操作和冗余字段。优化代码结构。扩展也方便,写不同的枚举就行了。 具体用法: {NameCacheUser.USER.getName(userId);NameCacheUser.ACCOUNT.getN…

文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题

一、用go语言,假设一棵二叉搜索树中的结点在1到 1000 之间,现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列? a.2,252,401,398,330,344,397,363。 b.9…

vtk中二次曲面的显示

官方示例地址: https://examples.vtk.org/site/Cxx/Visualization/DisplayQuadricSurfaces/ 显示效果: 源码: import vtk import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor i…

SAP SD 创建交货单 报错 VL461 VL248

因为生产环境已经被改好了,无法跟踪 所以换到测试环境重现一把,如何追根究底 对比正常订单发现 计划行 VBEP-LMENG,VBEP-BMENG这两个字段上的值跟 订单数量不一致。 尝试修改2者的数据跟订单数据一致,则可以正常创建交货单 实际原因是&a…

Neo4j 数据库管理 数据备份与恢复(头歌)

文章目录 第1关:数据备份与恢复任务描述相关知识数据备份数据导入 编程要求测试说明答案测试前准备Cypher 代码数据备份与导入 第1关:数据备份与恢复 任务描述 本关任务:熟练掌握数据备份与恢复。 相关知识 为了完成本关任务,…

INFINI Easysearch 与华为鲲鹏完成产品兼容互认证

何为华为鲲鹏认证 华为鲲鹏认证是华为云围绕鲲鹏云服务(含公有云、私有云、混合云、桌面云)推出的一项合作伙伴计划,旨在为构建持续发展、合作共赢的鲲鹏生态圈,通过整合华为的技术、品牌资源,与合作伙伴共享商机和利…

基于单片机的排队叫号系统设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个节日彩灯门,设计的系统实用性强、操作简单,实现了智能化、数字化。 基本要求:利用单片机AT89C51设计排队叫号机,能实现叫号功能。 创新:能显示叫号…

算法通关村第一关—链表高频面试题(白银)

链表高频面试题 一、五种方法解决两个链表的第一个公共子节点的问题 面试 02.07.链表相交1.首先想到的是暴力解,将第一个链表中的每一个结点依次与第二个链表的进行比较,当出现相等的结点指针时,即为相交结点。虽然简单,但是时间…

sso单点登录

一:业务需求 客户要求在门户网站上实现一次登录能访问所以信任的系统 二: 处理方式 实现sso单点登录需要前后端配合处理 1. 通过网页授权登录获取当前用户的openid,userid 2.设置单点登录过滤器并进行参数配置 3.另外写一个登录接口&…

制造企业建设数字工厂管理系统的难点主要有哪些

随着科技的飞速发展,制造企业正面临着从传统生产模式向数字化、智能化转型的挑战。其中,建设数字工厂管理系统是实现这一目标的重要途径。然而,在实际操作过程中,制造企业往往会遇到一系列难点。本文将对这些难点进行详细的分析。…

socket.io介绍

1. 使用的技术 Socket.IO 是一个封装了 Websocket、基于 Node 的 JavaScript 框架,包含 client 的 JavaScript 和 server 的 Node。其屏蔽了所有底层细节,让顶层调用非常简单。 另外,Socket.IO 还有一个非常重要的好处。其不仅支持 WebSocket…

Vue H5页面长按保存为图片

安装依赖&#xff1a;npm install html2canvas -d <template><div class"index"><div id"captureId" class"capture" v-show"firstFlag"><ul><li>1</li><li>2</li><li>3<…

R语言实操记录——R包无法安装,报错:Warning in system(cmd) : ‘make‘ not found

R语言 R语言实操记录——R包无法安装&#xff0c;报错&#xff1a;Warning in system(cmd) : ‘make‘ not found 文章目录 R语言一、起因二、具体步骤2.1、确认问题源2.2、安装RTools2.3、与R(/Rstudio)绑定2.4、验证可行性 三、疑惑 一、起因 R语言在包的安装上是真的方便&…

Prosys OPC Client连接OPC DA

Prosys OPC Client连接OPC DA Prosys OPC 客户端将帮助排除 OPC 连接故障并测试 OPC 服务器。 您可以读写数据、浏览服务器以及导出和导入地址空间。 OPC 客户端轻巧、快速且易于使用。 支持 OPC DA 1.0a 和 OPC DA 2.05a 官方地址: https://www.prosysopc.com/products/opc-…

SpringBoot 整合 Neo4j 实战(头歌)

文章目录 第1关&#xff1a;认识 Spring DATA Neo4J任务描述相关知识Spring DATA Neo4J - 简介Spring JDBC / Spring ORM 模块的缺点&#xff1a;Spring 数据模块的优点&#xff1a;Spring 数据模块功能&#xff1a;Spring DATA Neo4j 模块的附加功能&#xff1a; Spring DATA …

联想SR660V2服务器重置BMC后无法设置BMC管理IP

之前登录后台显示BMC账号密码不对&#xff0c;然后把BMC重置了&#xff0c;重置以后发现无法设置IP地址 联想官方的回复是&#xff1a; 1. 机器AC上电后&#xff0c;需等待7分钟左右, 再开机&#xff0c;让bmc完全启动。 2. 在UEFI及系统下配置bmc网络&#xff0c;需等待3分钟…

rest_framework_django学习笔记一(序列化器)

rest_framework_django学习笔记一(序列化器) 一、引入Django Rest Framework 1、安装 pip install djangorestframework2、引入 INSTALLED_APPS [...rest_framework, ]3、原始RESTful接口写法 models.py from django.db import models 测试数据 仅供参考 INSERT INTO de…

go学习之json和单元测试知识

文章目录 一、json以及序列化1.概述2.json应用场景图3.json数据格式说明4.json的序列化1&#xff09;介绍2&#xff09;应用案例 5.json的反序列化1&#xff09;介绍2&#xff09;应用案例 二、单元测试1.引子2.单元测试-基本介绍3.代码实现4.单元测试的细节说明5.单元测试的综…

JAVA全栈开发 day15_集合(Set接口、增强For循环、Map体系)

一、增加for遍历集合 语法&#xff1a; for(数据类型 变量名: 数组名或集合){​ }//集合遍历 &#xff0c;推荐使用增加for 1.静态导入 注意事项&#xff1a; 方法必须是静态注意不要和本类的方法同名&#xff0c;如果同名&#xff0c;记得加前缀&#xff0c;由此可…