我试图编写程序,使用递归在3D迷宫中找到最短路径。
我能够编写在迷宫中找到随机路径的代码,但我想知道如何修改代码以找到最短路径。
请注意,我希望保持递归方法。
有人可以建议解决方案吗?
以下是2D迷宫示例:
s
一个从e
开始到X
。 是一个障碍,
.col-md-6.col-md-offset-3
{
margin-left: 250px;
}
是路线。
答案 0 :(得分:0)
这取决于您正在实施的算法。如果你想要一个递归方法,那么找一个随机路径是一个很好的起点(尽管如果问题太复杂,那么糟糕的选择会对收敛所需的尝试次数产生巨大影响)。之后你需要修改路径,例如检查新路径是否比前一路径短;如果是,则继续以相同方向修改参数。否则你必须改变方向。 算法/程序的退出标准通常是找到的解决方案和理想解决方案之间的差异。因此,如果你事先知道理想路径的长度(最佳解决方案,你不需要知道路径本身而只知道它的长度),那么你可以定义一个误差范围10 ^ -9,例如两次解决方案之间的差异小于此算法退出的边距。
总之,这个问题是一个数学优化问题。优化是一个具有成熟文献的领域,尽管它有点复杂。但是,如果我是你,我会搜索最短路径算法,并实现一个最适合我的应用程序(3D迷宫)