1.回溯算法的一般步骤
(1)根据所给问题,定义问题的解空间(几元组的形式),问题至少有一个可行解或者最优解
(2)确定易于搜索的解空间结构,使得回溯法能够搜索整个解空间
(3)以深度优先搜索的方式搜索解空间,并用剪枝函数避免无效搜索
2.活结点--扩展结点--向深搜索--死结点---回溯至最近活结点
递归的方式在解空间中搜索,知道找到可行解或者没有活节点为止。
3.用回溯法求所有可行解时,要回溯到根且所有子树都遍历过;只求一个解时搜索到一个解就结束
4 经典问题:
(1)八皇后问题
(2)Subset sum problem:有两种解空间结构(一个是定长元组,一个是不定长元组)状态空间树
(3)Container Loading Problem(集装箱问题)n个箱子,总容量为c,两种剪枝方式
(4)0/1 Knapsack(01背包问题)