【智能算法应用】北方苍鹰算法求解二维栅格路径规划问题

目录

    • 1.算法原理
    • 2.二维路径规划数学模型
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.算法原理

【智能算法】北方苍鹰优化算法(NGO)原理及实现

2.二维路径规划数学模型

栅格法模型最早由 W.E. Howden 于 1968 年提出,障碍物的栅格用黑色表示,可通过的自由栅格用白色表示。
在这里插入图片描述
求解二维路径规划问题时,一般采用八领域搜索。
在这里插入图片描述
优化目标

路径规划问题需要考虑三点:

  • 全局总路径最优
  • 避免碰撞到障碍物
  • 路径平滑性

全局总路径最优

考虑路径规划问题的全局最优路径长度最短,适应度函数可以定义为:
F 1 = ∑ i = 0 m − 1 ( x i + 1 − x i ) 2 + ( y i + 1 − y i ) 2 (1) F_1 = \sum_{i = 0}^{m-1}\sqrt{\left( x_{i+1} - x_i \right)^2 + \left( y_{i+1} - y_i \right)^2}\tag{1} F1=i=0m1(xi+1xi)2+(yi+1yi)2 (1)

避免碰撞到障碍物

通常考虑添加惩罚函数,当下一步路径将与障碍物发生碰撞时,对其进行惩罚:
F 2 = ϕ ⋅ Q (2) F_2=\phi\cdot Q\tag{2} F2=ϕQ(2)

路径平滑性

通常采用方法包括B样条曲线、贝塞尔曲线、最小路径曲率等。

3.结果展示

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

4.参考文献

[1] 梁景润,刘丽桑,陈炯晖,等.多策略优化麻雀搜索算法及其路径规划的应用[J].福建理工大学学报,2023,21(06):605-612.
[2] 邓明杰.面向路径规划的群智能优化算法研究[D].江西理工大学,2023.
[3] 张恩浩.基于麻雀搜索算法的移动机器人路径规划算法研究[D].重庆理工大学,2022.

5.代码获取

资源清单

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ping 探测网段哪些地址被用

#!/bin/bash# 遍历192.168.3.1到192.168.3.254 for i in {1..254} doip"192.168.3.$i"# 对每个IP地址进行三次ping操作if ping -c 3 -W 1 $ip > /dev/null 2>&1thenecho "$ip: yes"fi done$ sh test.sh 192.168.3.1: yes 192.168.3.95: yes 192.…

使用Word表格数据快速创建图表

实例需求:Word的表格如下所示,标题行有合并单元格。 现在需要根据上述表格数据,在Word中创建如下柱图。如果数据在Excel之中,那么创建这个图并不复杂,但是Word中就没用那么简单了,虽然Word中可以插入图表&a…

014_C标准库函数之<stdio.h>

【背景】 今天这个主要说的是<stdio.h>头文件&#xff0c;大家众所周知&#xff0c;这个是我们学习C语言时第一个接触到的头文件了&#xff0c;那么为什么我不一开始就介绍这个头文件呢&#xff1f;我觉得有两个原因&#xff0c;如下&#xff1a; 1.一开始大家的编程思…

LeetCode/NowCoder-链表经典算法OJ练习3

孜孜不倦&#xff1a;孜孜&#xff1a;勤勉&#xff0c;不懈怠。指工作或学习勤奋不知疲倦。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;返回倒数第k个节点 题目二&#xff1a;链表的回文结构 题目三&#xff1a;相交链表 SUMUP结尾 说在前…

Pytorch: 解决因pytorch版本不同 导致训练ckpt加载失败

大家都会遇到在工程项目实施阶段&#xff0c;如果训练的模型文件在不同的torch版本环境下部署时&#xff0c;会报错~。 报错举例 # 查看torch环境 import torch print(torch.__version__)# 训练时环境&#xff1a;torch 1.8.2cu111 # 部署时环境&#xff1a;torch 1.4.0torch.…

dcatAdmin框架 使用phpword 生成word文件

下载phpword插件 composer require phpoffice/phpword 生成word文件接口 static public function word(){//接收传值$order_id request()->get(order_id);$tpl_id request()->get(tpl_id);//查询出对应的数据以及关联数据$sale_order \App\Models\SaleOrder::with([…

Python异步编程之基础概念

Python异步编程之基础概念 在现代编程中&#xff0c;异步编程是一种重要的技术&#xff0c;尤其是在处理I/O密集型任务时&#xff0c;异步编程可以大大提高程序的性能和响应速度。本文将介绍Python异步编程的基础概念&#xff0c;帮助你理解其原理和应用。 什么是异步编程&am…

【代码随想录算法训练营第37期 第十七天 | LeetCode110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和】

代码随想录算法训练营第37期 第十七天 | LeetCode110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和 一、110.平衡二叉树 解题代码C&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *righ…

三、NVIDIA Jetson Orin开发板-GPU加速

一、NVIDIA Jetson Orin开发板的硬件情况 df -h#查看操作系统情况Filesystem Size Used Avail Use% Mounted on **/dev/nvme0n1p1** 234G 17G 208G 8% / none 7.4G 0 7.4G 0% /dev tmpfs 7.6G 0 7.6G 0% /dev/shm tmpfs …

LeetCode 2644.找出可整除性得分最大的整数:暴力模拟(两层循环)

【LetMeFly】2644.找出可整除性得分最大的整数&#xff1a;暴力模拟&#xff08;两层循环&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-the-maximum-divisibility-score/ 给你两个下标从 0 开始的整数数组 nums 和 divisors 。 divisors[i] 的 …

MySQL库/表/数据的操作

文章目录 1.数据库操作1.1 创建、删除、查看和修改1.2 编码格式1.3 备份和恢复 2.表的操作2.1 创建表2.2 存储引擎2.3 查看表、修改表、删除表 3.数据类型3.1整数类型3.2字节类型(bit)3.3浮点类型(bit)3.4 decimal3.5 字符串类型3.6 日期和时间类型3.7 enum和set关于如何查找想…

webpack 学习之 五大核心

为什么用 webpack webpack 官网传送门 … 官网&#xff1a;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。将你项目中所需的每一个模块组合成一个或多个 bundles&#xff0c;它们均为静态资源&#xff0c;用于展示你的内容。总结&#xff1a;汇总所有模块…

Python中别再用 ‘+‘ 拼接字符串了!

大家好&#xff0c;在 Python 编程中&#xff0c;我们常常需要对字符串进行拼接。你可能会自然地想到用 操作符将字符串连接起来&#xff0c;毕竟这看起来简单明了。 在 Python 中&#xff0c;字符串是不可变的数据类型&#xff0c;这意味着一旦字符串被创建&#xff0c;它就…

【Python】—— lambda表达式

目录 &#xff08;一&#xff09;应用场景 &#xff08;二&#xff09;lambda 语法 &#xff08;三&#xff09;示例分析 &#xff08;四&#xff09;lambda参数形式 4.1 无参数 4.2 一个参数 4.3 默认参数 4.4 可变参数 &#xff1a;*args 4.5 可变参数 &#xff1a;…

【Python爬虫】案例_github模拟登录

import requests import re from datetime import datetimedef login():sessionrequests.session()session.headers {User-Agent :XXXX #写自己的}url1 https://github.com/loginres_1 session.get(url1).content.decode()token re.findall(name"authenticity_token&q…

基于Matlab实现BP神经网络的手写数字识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉和模式识别领域的一个经典问题&#xff0c;具有广泛的应用场景&…

信息安全从业者书单推荐

作为一名网安人&#xff0c;身上肩负的责任是很大的&#xff0c;能力越大&#xff0c;责任也越大&#xff0c;反过来责任越大&#xff0c;能力也必须跟得上。不管是想进这行&#xff0c;还是已经在这行&#xff0c;持续学习肯定是不能缺少的&#xff0c;除了在工作中积累&#…

qt多语言翻译不生效的原因

假设您有QT语言家的基础知识&#xff0c;假设网上那些所有的问题您都已经排查过了&#xff0c;但依然翻译不生效&#xff0c;那么可以看下这篇帖子&#xff0c;其实就一个问题&#xff0c;变量的生命周期&#xff0c;假设QTranslator是一个函数内的变量&#xff0c;且没有被声明…

亿图图示——删除水印

一、文件以PPT格式导出 二、点击水印所在区域&#xff0c;点击多次delete键 三、调整PPT页面尺寸 四、转成PDF 五、PDF转成图片

Spring的Profile功能及其应用场景

Spring的Profile功能是一种条件化配置机制&#xff0c;它允许开发者根据不同的运行环境或条件来定义和使用不同的bean和配置。Profile功能使得Spring应用程序可以灵活地适应不同的部署场景&#xff0c;而无需修改代码。 Profile功能的作用&#xff1a; 环境隔离&#xff1a;可…