回溯算法单击增加标题内容对于许多问题,当需要找出问题的所有解或者找出满足某些约束条件的(最优)解时,往往要使用回溯法。回溯算法应用领域圆排列问题 N 后问题0-1 背包电路板排版问题回溯法有“ 通用的解题法” 之称。5.1 回溯法的基本思想5.2 回溯法的算法框架5.3n 后问题5.4 圆排列问题5.5 电路板排版问题n 回溯法(backtracking )是一种系统地搜索问题解的方法。为实现回溯,首先需要定义一个解空间(solutionspace ),然后以易于搜索的方式组织解空间,最后用深度优先的方法搜索解空间,获得问题的解。n 说话的方式简单点:从一条路往前走,能进则进,不能进则退回来,换一条路再试。3为了避免不必要的搜索,算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解4如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯1通常将问题的解空间组织成树或图的形式,使得回溯法能方便地搜索整个解空间2在问题的解空间树中,按深度优先策略(或先序遍历,根-左- 右顺序),从根结点出发搜索解空间树5否则,进入该子树,继续按深度优先策略搜索搜索方式内注意:这棵解空