哪种算法合适?

时间:2016-04-11 18:17:54

标签: algorithm

考虑到代理人是一个在迷宫内移动的机器人。它不是 知道迷宫的地图,但它可以感知它自己的方向,哪些方式是开放的 当前的广场,它知道出口在右下角。机器人想要到达 尽快退出。你会使用哪种算法?

我的教授说,经过修改的深度优先搜索将是解决方案。这些修改将是;记住我们搜索的内容以避免无限循环,并为向右或向下移动提供更高的优先级。

我对DFS的理解是,它不是最佳的,不能保证找到解决方案。我知道A *会找到成本最低的路径,但我不确定速度。

如果它有助于网格是10x10。

3 个答案:

答案 0 :(得分:1)

首先,如果存在一个解决方案,DFS会找到一个解决方案(假设它没有进入圆圈,你的教授解决了这个问题)。你断言这不能保证是错误的。

其次,优先方向基本上是A *的意义 - 它扩展了最有可能导致解决方案的路径。

答案 1 :(得分:1)

深度优先搜索,如果使用建议的修改正确实施,将找到您所描述问题的解决方案。您提到代理应尽快到达出口,这可能意味着使用最短路径。在这个意义上,DFS不是最佳的,因为它将返回到达出口的第一条路径。 A*会找到最短的路径。 A *及其变体是解决您所描述的路径搜索问题的首选方法,并且已经在实时计算机游戏中使用了数十年。

答案 2 :(得分:0)

对我来说,我将使用A *,其具有根据迷宫特征调整的适当的启发函数。 DFS,BFS和A *都将找到解决方案。但是如果有适当的启发式功能,A *会更快地找到解决方案。