1、回溯法基础
(1)什么是回溯法?
回溯法是一种选优搜索法,按照深度优先搜索的方式,根据产生子节点的条件约束,搜索问题的解。当发现当前节点不满足求解条件时,就回溯,尝试其他路径。回溯法是一种 “能进则进,进不了则换,换不了则退” 的搜索方法。
- 回溯法的思路主要可以概述为以下2点:
(1)把问题的解空间转化成了图或者树的结构
(2)使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解,并在搜索过程中用剪枝函数避免无效搜索。
(2)深度优先搜索策略(DFS)
深度优先遍历一般只在图和树中涉及,当然,树是图的一种特殊结构。DFS简要来说就是对每一个可能的分支路径深入到不能再深入为止,且不能重复遍历,即每个节点只能遍历一次。
- 树中的深度优先遍历,不清楚的可以看一下我上一篇文章