我正在学习像Dijkstra,BFS等最短路径算法。我理解在2D有限网格上有边界条件(即网格的大小),它有助于终止算法并将其保持在一定的范围/范围。然而,当将其扩展到无限的2D网格时,我不明白何时(例如使用BFS作为示例)得出结论,如果没有算法无限运行,那么简单的路径就不存在,因为我可以' t使用网格大小作为边界条件。是否有某种配方可用于这些情况?此外,考虑到路径上也可能存在障碍物,因此路径距离可能因不同的起点而异。
我考虑过尝试获取坐标点之间的差值的绝对值并将其提升到一定的功率,作为在考虑路径不能存在之前设置步骤的上限的方法,但是这个由于它在很多情况下都不起作用,因此显然缺乏并且不正确地说它是直接的。
如果我的问题令人困惑,我道歉。我在这里重申一下:基本上,我怎么知道何时假定从原点到目的地的路径不存在于无限的2D网格中?
答案 0 :(得分:2)
简短版本就是你没有。
这是一个更长的版本。假设我为您提供了一个程序,用于识别要切割网格中的哪些点,并且您的工作是确定是否存在从A到B的路径。我可以轻松地为您提供程序X,以便当且仅当程序Y最终停止时,才存在路径。 (只需绘制一条水平线,长度为2 *程序Y + 1的运行时间,然后请你从(0,-1)转到(0,1)。)如果你能成功编写你的程序,那么在我们之间我们和#39;我只是解决the Halting Problem,这已知是不可能的。