- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析-回溯.ppt
第5章 回溯法 学习要点 理解回溯法的深度优先搜索策略。 掌握用回溯法解题的算法框架 (1)递归回溯 (2)迭代回溯 (3)子集树算法框架 (4)排列树算法框架 通过应用范例学习回溯法的设计策略。 (1)装载问题; (2)批处理作业调度; (3)符号三角形问题 (4)n后问题; (5)0-1背包问题; (6)最大团问题; (7)图的m着色问题 (8)旅行售货员问题 (9)圆排列问题 (10)电路板排列问题 (11)连续邮资问题 旅行是包含所有顶点的一个循环,故可以把任意一个点作为起点(因此也是终点)。针对该问题,任意选取点1作为起点和终点,则每一个旅行可用顶点序列1, v2 ,…, vn , 1来描述,v2, …, vn 是(2, 3, …, n) 的一个排列。可能的旅行可用一个树来描述,其中每一个从根到叶的路径定义了一个旅行。下图给出了一棵表示四顶点网络的树。从根到叶的路径中各边的标号定义了一个旅行(还要附加1作为终点)。例如,到节点L的路径表示了旅行1 , 2 , 3 , 4 , 1,而到节点O的路径表示了旅行1 , 3 , 4 , 2 , 1。网络中的每一个旅行都由树中的一条从根到叶的确定路径来表示。因此,树中叶的数目为(n- 1 )!。 从N点,搜索回溯到H,然后是D。在D点,再次向前移动,到达O点。如此继续下去,可搜索完整个树,得出1 , 3 , 2 , 4 , 1是最少耗费的旅行。 八皇后问题 八皇后问题是十九世纪著名的数学家高斯于1850年提出的。问题是:在8×8的棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 设第1个皇后放在第一行的x1位置,第i个皇后放在第i行的xi位置,则八皇后问题的一个解可以表示为一个向量(x1,x2,...,x8);其解空间由88个八元组构成(每个xi都有八种取值,即第i个皇后放在第1,2,3,…,8列上都有可能,共有8个皇后,因此解空间由88个八元组构成) 但其隐约束是对任何1=i,j=8及Ij,xixj且没有两个皇后在同一条斜线上,因此一切解(x1,x2,...x8)只能是(1,2,...,8)的一个排列;所有可能的向量(可能解)有8!个 可以把八皇后问题扩展到n皇后问题,即在n×n的棋盘上摆放n个皇后,使任意两个皇后都不能处于同一行、同一列或同一斜线上。 例如,八皇后问题的一个解为:可由八元组(4,6,8,2,7,1,3,5)来表示。 显然,棋盘的每一行上可以而且必须摆放一个皇后,所以,n皇后问题的可能解用一个n元向量X=(x1,x2, …,xn)表示,其中,1≤i≤n并且1≤xi≤n,即第i个皇后放在第i行第xi列上。 由于两个皇后不能位于同一列上,所以,解向量X必须满足约束条件 xi≠xj?????????????????????????????(式1) 若两个皇后摆放的位置分别是(i, xi)和(j, xj),在棋盘上斜率为-1的斜线上,元素的两个下标值的差(行-列)相等,即满足条件 i-xi = j- xj , (1) 在棋盘上斜率为1的斜线上,元素的两个下标值的和(行+列)相等,满足条件 i+ xi = j +xj , (2) (1)和 (2)等价于 i-j=xi-xj i-j=xj-xi 综合两种情况,由于两个皇后不能位于同一斜线上,所以,解向量X必须满足约束条件:??? ???????????????? |i-xi|≠|j-xj|?????????????? (式2) 为了简化问题,下面讨论四皇后问题。??? ???? 四皇后问题的解空间树是一个完全4叉树,树的根结点表示搜索的初始状态,从根结点到第2层结点对应皇后1在棋盘中第1行的可能摆放位置,从第2层结点到第3层结点对应皇后2在棋盘中第2行的可能摆放位置,依此类推。回溯法求解4皇后问题的搜索过程 解空间树 ?? 树中的每一个结点确定所求解问题的一个问题状态(problem states)。由根结点到其它结 点的所有路径则确定了这个问题的状态空间 (state space)。解状态(solution states)是 这样一些问题状态S,对于这些问题状态,由 根到S的那条路径确定了这解空间中的一个元 组。答案状态(answer states)是这样的一些 解状态S,对于这些解状态而言,由根到S的这 条路径确定了这问题的一个解(即,它满足隐 式约束条件)。解空间的树结构称为状态空间 树(state space tree)。 四皇后问题的解空间树 四皇后问题的状态空间树上共有24个叶节点(4!),就是问题的所有可能解, ?? 树的内部结点代表问题的部分解;例如 36为部分解(x1,
文档评论(0)