计算机算法设计与分析.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,…,xn)来表示,其中的xi取自于某个有穷集Si,并且这些解必须使得某一规范函数P(x1,…,xn)取极值或满足该规范函数条件。 例子:A(1:n)个元素的分类问题 问题的解为n元组; xi取自有穷集; 规范函数P:A(xi)=A(xi+1) 方法的提出 硬性处理法 列出所有候选解,逐个检查是否为所需要的解 理论上,候选解数量有限,并且通过检查所有或部分候选解能够得到所需解时,上述方法可行 实际中则很少使用,因为候选解的数量通常都非常大(比如指数级,甚至是大数阶乘),即便采用最快的计算机也只能解决规模较小的问题。 回溯或分枝限界法 避免对很大的候选解集合进行完全检查 大大减少问题的求解时间 通常用来求解规模较大的问题 回溯法思想 第一步:为问题定义一个状态空间(state space),这个空间必须至少包含问题的一个解 第二步:组织状态空间以便它能被容易地搜索。典型的组织方法是图或树 第三步:按深度优先的方法从开始节点进行搜索 开始节点是一个活节点(也是 E-节点:expansion node) 如果能从当前的E-节点移动到一个新节点,那么这个新节点将变成一个活节点和新的E-节点,旧的E-节点仍是一个活节点。 如果不能移到一个新节点,当前的E-节点就“死”了(即不再是一个活节点),那么便只能返回到最近被考察的活节点(回溯),这个活节点变成了新的E-节点。 当我们已经找到了答案或者回溯尽了所有的活节点时,搜索过程结束。 回溯法如何提高效率? 由开始节点到当前E-节点构成解向量(x1,…,xi) 如果判定(x1,…,xi)不能导致最优解,那么就将可能要测试的mi+1…mn个向量略去。 因此回溯法的测试次数比硬性处理作的测试次数要少得多。 如何判定(x1,…,xi)能否导致最优解? 约束条件 回溯法的解需要满足一组综合的约束条件,通常分为:显式约束和隐式约束 显式约束条件限定每个xi只从一个给定的集合上取值,例如: xi=0 即si={所有非负实数} xi=0或xi=1 即 si={0,1} l=xi=u 即si={a:l=a=u} 满足显式约束的所有元组确定一个可能的解空间 隐式约束描述了xi必须彼此相关的情况 回溯法求解的经典问题(1) 8-皇后问题 在一个8*8棋盘上放置8个皇后,且使得每两个之间都不能互相“攻击”,也就是使得每两个都不能在同一行、同一列及同一条斜角线上。 8皇后问题的解可以表示为8-元组(x1,…,x8) ,其中xi是放置皇后i所在的列号。 显式约束条件是si={1,2,3,4,5,6,7,8}, 1≤i≤8 隐式约束条件是,没有两个xi可以相同且没有两个皇后可以在同一条斜角线上。 回溯法求解的经典问题(2) 子集和数问题 已知(w1, w2, …, wn)和M,均为正数。要求找出wi的和数等于M的所有子集。 子集和数问题的解可以表示为k-元组(x1, x2, …, xk), 1≤k≤n。 显式约束条件是xi∈{j|j为整数且1≤j≤n}。 隐式约束条件是 1)没有两个xi是相同的; 2)wxi的和为M; 3)xi<xi+1,1≤i<n 子集和数问题解的另一种表达 解由n-元组(x1, x2, …, xn)表示; 显式约束条件xi∈{0,1} ,1≤i≤n; 隐式约束条件(xi × wi)的和数为M 解空间的大小为2n个元组 组织解空间(1) n-皇后问题 组织解空间(2) 子集和数问题 组织解空间(3) 子集和数问题 状态空间树 问题状态(problem state):树中的每一个结点确定所求解问题的一个问题状态。 状态空间(state space):由根结点到其他结点的所有路径则确定了这个问题的状态空间。 解状态(solution states):是这样一些问题状态S,对于这些问题状态,由根到S的那条路径确定了这解空间中的一个元组。 答案状态(answer states):是这样的一些解状态S,对于这些解状态而言,由根到S的这条路径确定了这问题的一个解。 状态空间树 静态树(static trees):树结构与所要解决的问题的实例无关。 动态树(dynamic trees):根据不同的实例而使用不同的树结构。 活结点:自己已经生成而其所有的儿子结点还没有全部生成的结点。 E-结点(正在扩展的结点):当前正在生成其儿子结点的活结点。 死结点:不再进一步扩展或者其儿子结点已全部生成的生成结点。 构造状态空间树的两个方法 回溯法 当前E-结点R,生成一个新的儿子C,则C就变成一个新的E-结点,对子树C完全检测后,R结点再次成为E-结点 分枝-限界方法 一个E-结点一直保持到变成死结点为止 4-皇后问题

文档评论(0)

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

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

1亿VIP精品文档

相关文档