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

【论文导读】Grid Graph Reduction for Efficient Shortest Pathfinding(2023 Access)

Grid Graph Reduction for Efficient Shortest Pathfinding

作者:CHAN-YOUNG KIM AND SANGHOON SULL

文章提出了一种“基于模式识别的网格阻塞”( Pattern-Based Blocking on grid graphs,PBGG)的预处理方法,以加快最短路径规划算法的运行速度。
文章设计了多种大小为 3 × 3 3 \times 3 3×3 的卷积核,通过卷积的方式的方式迭代地将非障碍物单元格阻塞,通过阻塞这些非障碍物单元格达到减少搜索空间的目的,同时能够确保构成最短路径的单元格不受到阻塞。
文章针对的两种类型网格地图:一类是占据网格地图,不带有权重信息(最简单表示方式是二进制表示);另一类是带有权重或路径代价的网格(在这种情况下,邻接网格之间的路径代价通常不是距离)。文章中Fig11给出的是针对占据网格地图设计的卷积核;Fig13给出的是针对带有cost信息的网格地图设计的卷积核。
在这里插入图片描述在这里插入图片描述

模式识别方面:
文章共考虑了四种模式:Dead-end模式(死胡同模式)、Avoidable模式(可避免模式)、 α \alpha α-type模式、nonblock模式(不可阻塞模式)。
文章中Fig3给出了该模式识别的一个流程示意(不过文章并没有标注出来这是4邻域分支的PBGG方法)
在这里插入图片描述

Dead-end模式(死胡同模式):网格地图中存在一些可通行网格,它们通常被障碍物网格包围,当这些网格不是起始网格或目标网格时,它们将不是构成路径一部分的网格,因此没有必要进行计算和搜索。

Avoidable模式(可避免模式):网格地图中存在一些可通行网格,这些网格并没有被障碍物所包围,但是这些网格由于并不是构成最短路径的最佳候选区域,因为可以避免在规划过程中被计算,从而加快规划速度。
在这里插入图片描述

α \alpha α-type模式和nonblock模式被提出是为了解决卷积缺乏全局视野的问题。本文提出的Dead-end模式和Avoidable模式识别使用的 3 × 3 3 \times 3 3×3的卷积,每次卷积只能注意该范围的视野,这就导致在卷积过程中,由于缺乏全局信息而将某些非障碍物网格阻塞,从而无法搜索出最佳路径。
α \alpha α-type模式和nonblock主要是为应对Avoidable模式而存在的(我个人的看法,粗略地计算了一下,感觉只有Avoidable会比较有影响)
文中给出的实验结果

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

代码实现部分文章并没有给出来(但是我这里有python实现No cost map的版本PBGG)

并且自己用了两张图做了一下实验,采用的地图来自于(Benchmarks for Grid-Based Pathfinding)[https://movingai.com/benchmarks/grids.html],分别是random-512-20-6、maze-512-4-4和Shanghai-1-1024地图。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果还是可以的,尤其是对于迷宫、狭窄走廊类的地形看起来很不错。
该论文非常具有创造力,将网格地图和图像进行联系,并提出相应的模式别技术,减少网格空间加快路径规划。

相关文章:

  • 64位和32位对C++ 对long类型的使用造成程序崩溃、内存泄漏问题。
  • 鸿蒙ArkTS声明式开发:跨平台支持列表【显隐控制】 通用属性
  • 【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记(保姆级别的,非常详细)
  • HTTPS 原理技术
  • 专科生听劝 这种情况你就不要专转本了
  • 【QT】qcombox的信号使用小细节,activated(int)和currentIndexChanged(int)
  • 数据分析案例-在线食品订单数据可视化分析与建模分类
  • 【YashanDB知识库】自动选举配置错误引发的一系列问题
  • java实现地形dem产汇流流场数据提取解析
  • 《少年小鱼的魔法之旅——神奇的Python》,在悬疑和冒险中学会Python编程,Python启蒙入门的推荐书籍
  • 组合数计算方法(递推公式、乘法逆元)
  • MFC工控项目实例之二添加iPlotx控件
  • MySQL基础索引知识【索引创建删除 | MyISAM InnoDB引擎原理认识】
  • 【爱空间_登录安全分析报告】
  • ChatGPT AI专题资料合集【65GB】
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Date型的使用
  • docker python 配置
  • iOS 颜色设置看我就够了
  • iOS编译提示和导航提示
  • Java深入 - 深入理解Java集合
  • JWT究竟是什么呢?
  • leetcode46 Permutation 排列组合
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Lucene解析 - 基本概念
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PAT A1092
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • SQL 难点解决:记录的引用
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 模型微调
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 提醒我喝水chrome插件开发指南
  • 详解NodeJs流之一
  • 与 ConTeXt MkIV 官方文档的接驳
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​【已解决】npm install​卡主不动的情况
  • ​批处理文件中的errorlevel用法
  • #Spring-boot高级
  • (23)mysql中mysqldump备份数据库
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (PySpark)RDD实验实战——求商品销量排行
  • (办公)springboot配置aop处理请求.
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转载)CentOS查看系统信息|CentOS查看命令
  • ***详解账号泄露:全球约1亿用户已泄露
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理(一):@echo off
  • .Net CoreRabbitMQ消息存储可靠机制