【问题标题】:Optimal algorithm to find exit of a maze with no information在没有信息的情况下找到迷宫出口的最优算法
【发布时间】:2017-03-03 16:10:08
【问题描述】:

我必须确定机器人走出迷宫的方法。问题是迷宫的布局是未知的,出口的位置也是未知的。机器人也从迷宫中的未知位置开始。 我找到了 3 个解决方案,但我很难知道应该使用哪一个,因为最终这些解决方案似乎无论如何都是随机的。 我有这 3 个解决方案:
1)基本的“人类”策略(?),如果有必要,你可以把手放在墙上,穿过所有的迷宫。我还保留了一个变量“转数计数器”以避免机器人循环的情况。
2) 深度优先搜索
3) 让机器人随机选择方向

随机的似乎更糟,因为他可能要花很长时间才能找到出口(但另一方面,他也可能是最快的......)。不过,我不确定其他两个。
另外,有没有办法进行某种启发式方法?再次缺乏信息让我认为这是不可能的,但也许我错过了一些东西。

最后一件事:当机器人找到出口时,他必须使用 A* 回到起始位置。这意味着在第一部分中,他会在寻找出口的地方绘制迷宫地图,用于第二部分。也许这也有助于为第一部分选择最佳算法,但是是的,我不明白为什么会有更好的算法。

有人可以帮帮我吗?谢谢(另外,对不起我的英语)。

【问题讨论】:

  • 前两种解法是一样的,都保证能找到出口(假设图是连通的)。随机解不保证能找到出口。
  • 确实,看来你是对的。谢谢!

标签: algorithm artificial-intelligence path-finding maze


【解决方案1】:

像这样的问题被归类为实时搜索,也许最著名的例子是 Learning Real-Time A*,您可以在其中组合有关您以前见过的信息(如果您不得不回溯或知道更便宜的达到某种状态的方式),以及您可以采取的行动。与reinforcement learning 等领域的情况一样,某种程度的随机性有助于平衡探索和利用。

假设你的图是无向的、时不变的,并且初始节点和退出节点存在于同一个组件中,那么在每个顶点处随机选择一个方向就相当于一个random walk on a graph。 不管这个图最初是否已知,这是一个很好理解的数学领域,相当于一个absorbing Markov chain,在这种情况下达到退出状态的时间有一个Discrete phase-type distribution - 通常很慢,但它还值得注意的是,在病理情况下,可以设计一个随机游走优于 DFS 的迷宫。

【讨论】:

    【解决方案2】:

    @beaker 是正确的,因为您建议的前两个应该导致相同的结果。但是,您可以通过跟踪您找到的任何循环来稍微改进搜索。如果机器人发现自己在一个它已经访问过的地方并且一旦进入死胡同就需要回溯,那么如果它找到了一条捷径,那么可能不需要返回这么远。还使用已映射的路段,并在其上应用 Dijkstra 算法或 A* 以找到最有效的返回方式。在未探索的道路上可能有更快的方式返回,但这将是获得快速结果的最安全方式。

    显然,执行循环检查以防止不必要的回溯会使实现变得更加复杂。虽然对于使用 Dijkstra 算法的返回开始来说不应该那么复杂。

    如果您现在找到了出口而感到雄心勃勃,您可以使用此信息并给机器人一个方向感,尽管在一个随机生成的迷宫中可能没有多大帮助。

    【讨论】:

    • 我明白了,如果我有时间我会尝试优化。
    • 如果您认为这个答案可以接受,请接受它以帮助结束问题。或赞成它是否有帮助(烧杯评论相同)meta.stackexchange.com/questions/5234/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多