迷宫解决-循环路径问题

时间:2019-12-23 19:33:52

标签: algorithm recursion maze

通过保存“已访问”位置的记录(相对于路径的前进方向),可以解决迷宫中特定区域的问题,其中跟踪的路径是圆形的。 我使用的算法是一种递归算法,可以在迷宫中找到 最短路径 。除具有圆形路径的区域外,它都能正常工作。 解释问题的示例-请参阅所附图像。 黑线是访问的第一条路径,绿线是第二条路径。 黄色标记黑色路径中已记录为“已访问”的路径区域。 由于已经访问过该黄色区域,因此实际上不存在黄色区域中的绿线。因此,无法在示例中找到迷宫中的最短路径:-(

任何帮助将不胜感激。

enter image description here

1 个答案:

答案 0 :(得分:0)

到达已访问的位置时,必须进行测试以查看第二(或后续)时间用于到达该路径的距离是否比该位置记录的距离短。如果是,则必须更新其距离并继续。

只要没有“负”距离,此方法就起作用。如果存在负距离,您将永远停留在回路中,每次距离都越来越小!

Wikipedia page on the Shortest path problem列出了几种算法,它们的约束和复杂性。对于具有周期但没有负距离的图,其中包括Bellman–Ford算法,具有各种数据结构的Dijkstra算法。