我正在尝试编写一个程序来使用递归查找 3D 迷宫中的最短路径。
我能够编写找到穿过迷宫的随机路径的代码,但我想知道如何修改我的代码以找到最短路径。
请注意,我想保留递归方法。
有人可以提出解决方案吗?
这是一个二维迷宫示例:
s
XXXX
XX X
XXX
Xe X
一开始于s
即将e
. X
是一个障碍并且
是路线。
这取决于您正在实施的算法。如果您想要采用递归方法,那么找到随机路径是一个很好的起点(尽管如果问题太复杂,那么错误的选择可能会对收敛所需的尝试次数产生巨大影响)。之后您需要修改路径,例如检查新路径是否比之前的路径短;如果是,那么您继续朝同一方向修改参数。否则你必须改变你的方向。
算法/程序的退出标准通常是找到的解决方案与理想解决方案之间的差异。因此,如果您提前知道理想路径的长度(最佳解决方案,您不需要知道路径本身,而只需知道其长度),那么您可以定义例如 10^-9 的误差范围,一旦两个解决方案之间的差异小于此余量,您的算法将退出。
综上所述,本题是一个数学优化问题。优化是一个拥有完善文献的领域,尽管它有点复杂。但是,如果我是你,我会搜索最短路径算法并实现最适合我的应用程序的算法(3D 迷宫)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)