迷宫解决 - 循环路径问题



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

任何帮助将不胜感激。

在此处输入图像描述

当您到达已访问过的位置时,您必须测试您用于第二次(或后续(到达该位置的路径上的距离是否短于该位置记录的距离。如果是,则必须更新其距离并继续。

只要没有"负"距离,这就可以工作。如果有负距离,你永远留在循环中,每次的距离越来越小!

维基百科关于最短路径问题的页面列出了几种算法、它们的约束和复杂性。对于具有周期但没有负距离的图,这些包括贝尔曼-福特算法,具有各种数据结构的Dijkstra算法。

最新更新