首页 文章

3D迷宫中的最短路径

提问于
浏览
2

我正在尝试编写一个程序,使用递归在3D迷宫中找到最短路径 .

我能够编写通过迷宫找到随机路径的代码,但我想知道如何修改我的代码以找到最短的路径 .

请注意,我想保持递归方法 .

有人可以提出解决方案吗?

这是一个2D迷宫示例:

s    
XXXX 
XX X
XXX  
Xe  X

一个从 s 开始到 e . X 是一个障碍, `` 是路线 .

1 回答

  • 0

    这取决于您正在实施的算法 . 如果你想要一个递归方法,那么找一个随机路径是一个很好的起点(尽管如果问题太复杂,那么糟糕的选择会对收敛所需的尝试次数产生巨大影响) . 之后你需要修改路径,例如检查新路径是否比前一路径短;如果是,则继续以相同方向修改参数 . 否则你必须改变方向 . 算法/程序的退出标准通常是找到的解决方案和理想解决方案之间的差异 . 因此,如果你事先知道理想路径的长度(最佳解决方案,你不需要知道路径本身而只知道它的长度),那么你可以定义一个误差范围10 ^ -9,例如两次解决方案之间的差异小于此算法退出的边距 .

    总之,这个问题是一个数学优化问题 . 优化是一个具有成熟文献的领域,尽管它有点复杂 . 但是,如果我是你,我会搜索最短路径算法,并实现一个最适合我的应用程序(3D迷宫)

相关问题