用于寻找覆盖最少数量的细胞的最短距离的算法

时间:2015-06-29 09:19:25

标签: algorithm

我正在设计一个系统来寻找覆盖最少数量细胞的最短路径。假设平面被分成矩形单元。什么是最合适的算法。我只是在寻找头脑,而不是正确的代码或实现。

1 个答案:

答案 0 :(得分:2)

您正在处理shortest path problem,在未加权的图形中(顶点是网格中的单元格,边缘可能从一个单元格移动到另一个单元格)

  • 最简单的方法是简单BFS - 找到最短的方法 从源到所有目标的路径(在未加权的图中)。
    这个算法相当简单,迭代地“发现”最近的节点,距离为1的所有节点,然后距离为2,....
  • 优化正在使用bi-directional search。在这里,您可以通过从两侧执行BFS来利用单个源和单个目标,从而有效地减少了需要相互开发的节点数。
  • 另一个优化可能是使用A* Search Algorithm 允许的启发式函数,例如manhattan distances
    在A *搜索中,您利用图形不是某个任意图形 - 而是网格,您可以根据它们在网格上的位置估计从一个节点到另一个节点的距离。该算法将使用这些估计来更快地找到最佳路径。

注意 - 我建议的所有算法都找到最短的路径,不同之处在于它们需要找到它的时间。