A *表示未加权图表

时间:2018-02-05 19:54:28

标签: algorithm graph shortest-path dijkstra a-star

在未加权的有向图上使用A *搜索算法来寻找最短路径是否有意义?

从阅读http://www.cs.cmu.edu/~cga/ai-course/astar.pdf来看,似乎A *在内存方面可能很昂贵,对于未加权的图表,它甚至会如何确定启发式?

这篇文章here似乎得出结论,A *不应该用于未加权的图表。

用于在未加权有向图上找到最短路径的最佳/租赁昂贵算法是什么?只是一个简单的BFS?

2 个答案:

答案 0 :(得分:1)

除非你有一个有用的启发式方法来使用它,否则完整的A *是没有意义的。也就是说,如果您的启发式是每个节点都被猜测与目标的距离相同,那么A *搜索将给出与BFS相同的结果,因为在查看a之前,您将查看由较短路径到达的每个节点节点到达较长的节点。

至于最好的,我所知道的最好的算法是从两端开始的BFS,使用哈希来检测第一个交叉点。也就是说,您标记源和目标。然后将源扩展到深度1,然后将目标扩展到1的深度,然后将源扩展到2的深度,然后将目标扩展到2的深度,依此类推。相交时,您有从两个方向到交叉点的最短路径。因此,从源头到交叉点遍历一个,然后回到目标。

例如,这是一种算法,用于在像LinkedIn这样的大型社交网络中找到与您亲近的人。

答案 1 :(得分:0)

如果您有启发式,请使用A *。如果不这样做,请不要。

通常未加权的图形具有可被利用的附加结构,例如。如果您的图形实际上是2D网格,则跳转点搜索比正常A *快得多。我们需要了解有关您的问题域的更多信息,以便进一步推荐。