Shortest path in a 3D maze

故事扮演 提交于 2019-12-11 02:09:13

问题


I'm trying to write a program to find the shortest path in a 3D maze using recursion.

I am able to write the code that finds a random path through the maze but I'm wondering how I can modify my code in order to find the shortest path.

Please note that I want to keep the recursive approach.

Can someone suggest a solution?

Here is a sample 2D maze:

s    
XXXX 
XX X
XXX  
Xe  X

One starts from s going to e. X is an obstacle and is the route.


回答1:


It depends on the algorithm you are implementing. If you want a recursive approach then finding a random path is a good start point (although if the problem is too complex then a bad choice could have huge effects on number of attempts needed for convergence). Afterwards you need to modify the path and for example check whether the new path is shorter than the pervious one; if yes then you continue modifying your parameters in the same direction. Otherwise you have to change your direction. Exit criterium for the algorithm/ program is normally the difference between the found solution and the ideal solution. So if you know the length of the ideal path (the optimal solution, you need not know the path itself but only its length) in advance then you can define an error margin of 10^-9 for example and once the difference between both solutions is less than this margin your algorithm exits.

In conclusion, this question is a mathematical optimization problem. Optimization is a field which has well-established literature eventhough it is a little bit complex. However if I were you I would search for shortest path algorithms and implement one which is best suited to my application (3D Maze)



来源:https://stackoverflow.com/questions/39331889/shortest-path-in-a-3d-maze

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!