我正在处理一个项目,需要使用最少的右转而没有左转来解决迷宫问题。
只要尽量减少右转次数,行进距离并不重要。我们被要求使用回溯算法和最优(时间)算法来实现我们的程序。
对于回溯算法,我将使用栈。我的算法大致如下:
1. 将所有四个可能的起始方向推入栈中。 2. 沿着路径前进,尽可能直走。 3. 如果到达迷宫尽头,则返回当前路径长度作为最佳路径长度。 4. 如果到达死路,则回溯到最后一个可能的右转点并执行它。 5. 如果当前路径长度大于当前最佳路径长度,则回溯到最后一个可能的右转点并执行它。
我想知道是否有人能够指导我使用更优的算法。
我很难想到比回溯算法更好的算法。
只要尽量减少右转次数,行进距离并不重要。我们被要求使用回溯算法和最优(时间)算法来实现我们的程序。
对于回溯算法,我将使用栈。我的算法大致如下:
1. 将所有四个可能的起始方向推入栈中。 2. 沿着路径前进,尽可能直走。 3. 如果到达迷宫尽头,则返回当前路径长度作为最佳路径长度。 4. 如果到达死路,则回溯到最后一个可能的右转点并执行它。 5. 如果当前路径长度大于当前最佳路径长度,则回溯到最后一个可能的右转点并执行它。
我想知道是否有人能够指导我使用更优的算法。
我很难想到比回溯算法更好的算法。