如何在有检查点的迷宫中找到最短路径?

时间:2014-09-25 03:35:08

标签: algorithm shortest-path maze

我正在研究最短的迷宫问题,并且有一个起点,终点和一些检查点,旅行者必须至少通过一次。 '#'表示墙,'。'表示道路,'P'表示检查站。

我正在考虑从终点找到neareast检查点,并继续从当前检查点查找那些未访问的检查点,直到访问了所有检查点。最后寻找到起点的最短路径。

但它似乎并不好,我的意思是,它看起来只是一个贪婪的算法,不能确保你得到最好的解决方案。在判断哪个检查点时,我应该使用背包算法吗?

1 个答案:

答案 0 :(得分:3)

不确定它是否效率最高,但以下情况应该有效:

  1. 使用Dijkstra (ie breadth-first) path finding algorithm计算每对检查点之间的距离。
  2. 现在问题已经减少到Travelling Salesman problem,给定的起点和终点。
  3. 对于大约11或12的多个检查点,可以使用GPU快速解决这个问题,如Open Source tutorial所示(真的是你的)。