回溯法也称试探法,该方法首先暂时放弃关于问题规模的小的限制,并将问题的候选解按照某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一候选解;倘若当前候选解满族要求,继续扩大当前候选解的规模,据需试探。
回溯法的思想:确定解空间的组织结构后,回溯就从开始节点出发,以深度优先的方式搜索整个解空间。这个开始节点叫做“活节点”,同时也成为当前的扩展节点。再当前扩展节点处,向纵深方向移动到一个新的节点。这个新的节点就成了一个新的活节点,并成为当前的扩展节点。如果当前扩展节点不能再向纵深方向移动,则当前节点就成了“死节点”。换句话说这个节点不再是一个活节点,此时应回移动(回溯)至最近的一个活节点处,并使这个活节点成为当前的扩展节点。回溯法就是以这种方式递归地再解空间中搜索,直至找到所要求的解或解空间中没有活节点为止。
运用回溯法德步骤:
1.针对所给问题定义为题的解空间。
2. 确定易于搜索的解空间结构。
3. 以深度优先方式搜索解空间,并且在搜索过程中有剪枝函数避免无效搜索。