多个入口和多个出口的适合BFS的最佳路径算法是什么?

时间:2016-03-23 01:16:26

标签: c++ algorithm optimization path-finding breadth-first-search

我正在寻找一种最佳路径算法,该算法可以找到从任何起始节点到最近的出口节点的最佳路径。

这种情况下的图是方形网格,邻域的所有成本都是1。 使用这些限制的任何优化都很好。

基本上,您从随机选择的入口输入方格,现在您想要找到最接近任何给定出口的路径。

到目前为止,我多次进行BFS,每次退出一次并合并结果。虽然我怀疑这是最有效的方式。

1 个答案:

答案 0 :(得分:2)

你从所有出口开始做BFS。当您发现一个新的方块时,它与最近的出口的距离是前一个方格的距离+1,而路径方向是前一个方格。

由于(距离,方向)元组都不取决于您输入的位置,因此您可以为所有方块预先计算一次这些值,因此如果您再次在新入口处重新开始,则不必重新搜索。