您的位置:首页 > 房产 > 建筑 > Jump Point Search(JPS)算法与A*算法

Jump Point Search(JPS)算法与A*算法

2024/12/23 7:06:14 来源:https://blog.csdn.net/qq_58249029/article/details/140576344  浏览:    关键词:Jump Point Search(JPS)算法与A*算法

A*

A*算法本质上讲是结合了DFS和BFS,针对当前起点先做一次BFS,再针对搜索的八个点做一次DFS

BFS--广度优先算法(Breadth First Search)

DFS

A*

算法思想
A*的核心思想就是先进行一次BFS搜索,然后从这次BFS中找到距离目标点最近的点(这里就是DFS搜索的思想),然后在对这个点,分别进行一次BFS和DFS搜索,重复此操作直到到达目标点为止。

代价方程
设计代价方程计算公式F = G + H F=G+HF=G+H,
式中,G=起点到目标方格的移动代价,沿着起点到目标方格,这里设定水平或者垂直移动一次的代价是10,对角线移动一次为14.
H=从目标方格到终点的估算成本,计算目标方格到终点的代码,只计算水平和垂直移动的格数然后乘以10.

在一个方格中,将FGH分别标记在左上、左下和右下三个位置,以便每次观察估价结果。

JPS

Jps,Jump Point Search,跳点搜索,也有人称之为“拐点寻路”。Jps可追溯到2011年,由两位澳大利亚的教授提出。

原作者论文,github Harabor, Daniel Damir, and Alban Grastien. “Online Graph Pruning for Pathfinding On Grid Maps.” AAAI. 2011.

相比A*算法,JPS算法的性能更快,内存占用更小,。

JPS算法的关键在于如何判断跳点。

一般是通过当前点的处境进行判断的。

例如:当前点向右下走判断时,右边的点是障碍,但右下点不是障碍,那么就可以判断当前点为跳点,右下点为强迫邻居。

代码后续再补

本算法的实现代码很少有人写,但其实优化部分并不多,优化效果也并不好,感觉是一个基于高度概念性的东西。

参考文献:
zerowidth positive lookahead | A Visual Explanation of Jump Point Search

Jump Point Search-跳点搜索法-原理&matlab代码-与A*算法比较(路径规划)_跳点搜索算法-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com