c++ - AStar网格算法仅处理正方形网格吗?

标签 c++ algorithm shortest-path path-finding a-star

由于我似乎无法获得答案,因此需要进行一些澄清。在为网格编写astar算法时,我想知道它是否适用于任何大小的矩形或仅适用于完美正方形的网格?
如果有处理矩形启发式的特定方法,那是什么?
如果人们需要知道我正在用C++编写它以便在UE4中使用。
感谢大家!

最佳答案

不,A *根本不需要网格。您可以使用任何位置的节点,并且只要您的启发式是可接受的,A *就应该起作用。
实际上,如果您可以保证您的启发式算法是可以接受的(即保证绝对不会高估距离),则您的节点实际上根本不需要位置。当然,许多实际应用程序确实具有具有特定位置的节点,并且欧几里得距离是一种方便的可允许的启发式方法。
使矩形网格工作所需要做的唯一一件事就是确保度量标准正确。也就是说:节点到节点的距离和欧几里得距离的计算必须正确反射(reflect)网格的水平和垂直间距。

关于c++ - AStar网格算法仅处理正方形网格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63964351/

相关文章:

c++ - gcc 中的 basic_ofstream<unsigned char> 失败

c++ - QT Creator C++ 和运行时库

string - 为什么我们不使用前缀树(trie)来查找最长公共(public)子串?

algorithm - 排序算法的性能分析

c++ - 缺少函数头 C++

javascript - 如何实现像浏览器一样的后退和前进功能

c++ - 使用图表的机场旅行

java - 使用 Dijkstra 检测多条最短路径

java - 在二维图中找到最接近给定点的坐标的算法

java - 动态图形用户界面框架设计