【精选】回溯算法(一).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【精选】回溯算法(一)

回溯算法(一) 重庆教育学院 杨华千 回溯算法:一般方法 基本要求: 问题的解必须能表示成一个n-元组(x1,x2,…xn),其中xi是取自某个有穷集合Si。通常,所求解的问题需要求取一个使某一规范函数P(x1,…,xn)取极大值(或取极小值或满足该规范函数条件)的向量。 回溯算法:一般方法 基本思想: (假定集合Si的大小是mi)不断地用修改过的规范函数Pi(x1,…,xi)去测试正在构造中的n-元组的部分向量(x1,…,xi),看其是否可能导致最优解。如果判定(x1,…,xi)不可能导致最优解,那么就将可能要测试的mi+1…mn个向量略去。 回溯算法:一般方法 约束条件: (1) 显式约束:限定每一个xi只能从给定的集合Si上取值。 (2) 解 空 间:对于问题的一个实例,解向量满足显式 约束条件的所有多元组,构成了该实例 的一个解空间。 (3) 隐式约束:规定解空间中实际上满足规范函数的元 组,描述了xi必须彼此相关的情况。 回溯算法:一般方法 基本做法: 在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解:如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。 回溯算法:0-1背包问题 问题描述: 回溯算法:0-1背包问题 解空间: 回溯算法:0-1背包问题 例子: n=3, M=30, w={16, 15, 15}, p={45, 25, 25} 回溯算法:0-1背包问题 回溯算法:8-皇后问题 问题描述: 在一个8×8棋盘上放置8个皇后,且使得每两个之间都不能互相“攻击”,也就是使得每两个都不在同一行、同一列及同一条斜角线上。 回溯算法:8-皇后问题 解示例: 回溯算法:子集和数问题 问题描述: 已知n+1个正数:wi(1≤i≤n),和M。要求找出wi的和数是M的所有子集。 回溯算法:n-皇后问题 问题描述: n个皇后将被放置在一个n×n的棋盘上且使得没有两个皇后可以互相攻击。 解空间由n-元组(1,2,…,n)的n!种排列所组成。由i级到i+1级的边用xi的值标记。 回溯算法:n-皇后问题 n=4时的解空间树结构 回溯算法:n-皇后问题 一些解空间树结构的术语: 问题状态:树中的每一个结点确定所求解问题的一个状态。 状态空间:由根结点到其它结点的所有路径则确定了这个问题的状 态空间。 解 状 态:是这样一些问题状态S,对于这些问题状态,由根到S 的那条路径确定了这解空间中的一个元组。 答案状态:是这样一些解状态S,对于这些解状态而言,由根到S 的这条路径确定了这个问题的一个解。 状态空间树:解空间的树结构。 回溯算法:n-皇后问题 问题求解过程: 状态空间树→问题状态→解状态→答案状态 回溯算法:n-皇后问题 回溯法--术语: 活结点:已生成一个结点而它的所有儿子结点还没有 全部生成的结点称为活结点。 E-结点:当前正在生成其儿子结点的活结点叫E-结点。 死结点:不再进一步扩展或其儿子结点已全部生成的 结点称为死结点。 回溯算法:n-皇后问题 回溯法--过程: 当前的E-结点R一旦生成一个新的儿子C(开始时,把根结点作为唯一的活结点,这个活结点就成为E-结点 ),这个儿子结点就变成一个新的E-结点,当完全检测了子树C之后,R结点就再次成为E-结点。这相当于问题状态的深度优先生成。在这个过程中,将用限界函数去杀死还没有全部生成其儿子结点的那些活结点。使用限界函数的深度优先结点生成方法称为回溯法。 回溯算法:n-皇后问题 回溯法--过程:(n=4) 回溯算法:n-皇后问题 n=8,隐式条件: (1) 没有两个xi可以相同。 所有解是8-元组(1,2,3,4,5,6,7,8)的置换 (2) 没有两个皇后可以在同一条斜角线上。 (假设有两个皇后被放置在(i, j)和(k, l)位置上,则要 求 |j-l|≠|i-k

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档