回溯算法:
就是搜索一棵状态树的过程,这个过程类似于DFS,但是在决定搜索下一步的时候先作一次判断。如果ok再继续下一步搜索,这里等于是进行一次启发式的剪枝。
一般会有这么一行:
backtrack(current_state) {
// blalala
for next_state in next_states(current_state)
if (possible(current_state, next_state))
backtrack(next_state);
// blalala
}
本文介绍了一种搜索状态树的方法——回溯算法,并通过一个简洁的伪代码示例展示了其核心思想。该算法采用深度优先搜索策略,在每一步决策前进行可行性判断以减少无效搜索路径。
回溯算法:
就是搜索一棵状态树的过程,这个过程类似于DFS,但是在决定搜索下一步的时候先作一次判断。如果ok再继续下一步搜索,这里等于是进行一次启发式的剪枝。
一般会有这么一行:
backtrack(current_state) {
// blalala
for next_state in next_states(current_state)
if (possible(current_state, next_state))
backtrack(next_state);
// blalala
}
1869
220
325
231

被折叠的 条评论
为什么被折叠?