基本上我有一组包含gps坐标的节点,我如何以这样的方式实现A *搜索,我可以使用这个地理位置将它们相互比较,并通过指定距离来找到最短路径指向另一个。
更新:2012年11月1日
我正在尝试绘制最短路径路径,通过所述算法遍历每个节点来实现此目的,并比较遍历的节点的距离以找到最短路径。另一个问题是我无法在Android / Java中找到正确的A *搜索实现。我现在的问题是:
由于我将保存每个道路交叉点的地点(节点),我应该将它存储在数组或链接列表中吗?
现在我们能够计算每个节点的距离但不能动态计算。我应该怎么做才能在使用A *搜索计算最短路径时使用它。
答案 0 :(得分:2)
欧氏距离(即直线距离)可能是一个很好的启发函数。
在Wikipedia上查找A *搜索的详细信息。
A *搜索实际上是对 Dijkstra算法的修改,用于查找单一来源最短路径。唯一的区别是A *搜索使用指导搜索的启发式函数,修剪不必要的搜索树分支。应该以这样一种方式设计一个好的启发式函数,使其值在任何搜索路径上都是单调的。它不应该高估两个州之间的实际距离。由于欧几里德距离是两点之间的最小可能距离,因此不可能高估两点之间的距离。
答案 1 :(得分:0)
你到底想要完成什么? A *是启发式搜索算法,例如,用于游戏中寻找下一个“最佳”动作。是否正在尝试找到连接所有节点的最短路径?在这种情况下,看/谷歌的“旅行推销员问题”。
答案 2 :(得分:0)