分支限界法课堂.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 分支限界法 1 2 3 4 概述 图问题中的分支限界法 组合问题中的分支限界法 小结 9.1 概述 9.1.1 分枝限界法的设计思想 9.1.2 分枝限界法的时间性能 9.1.3 一个简单例子 --- 圆排列问题 ? 分支限界法按 广度优先策略 搜索问题的解空间树, 在搜索过程中,对待处理的结点根据 限界函数 估算目 标函数的可能取值,从中选取使目标函数取得极值 (极大或极小)的结点 优先 进行 广度优先搜索 ,从而 不断 调整搜索方向 ,尽快找到问题的解。 ? 分支限界法适用于求解 最优化问题 。 ? 确定一个 合理的限界函数 ,并根据限界函数确定目 标函数的 界 [down, up] 。 ? 按照 广度优先策略 搜索问题的解空间树,在分支结 点上,依次扩展该结点的所有孩子结点,分别估算这 些孩子结点的目标函数的可能取值,某孩子结点的目 标函数的可能取值 超出目标函数的界 ,则将其 丢弃 ; 否则,将其 加入待处理结点表 (以下简称 表 PT )中。 ? 依次从表 PT 中 选取 使目标函数 取得极值的结点 成为 当前扩展结点 ,重复上述过程,直至找到最优解。 9.1.1 分支限界法的设计思想 分支限界法需要解决的 关键问题 ? 如何确定合适的限界函数。 (提示:计算简单, 减少搜索空间,不丢解) ? 如何组织待处理结点表。 (提示:表 PT 可以采用 堆 的形式,也可以采用 优先队列 的形式存储。各有什 么特点?) ? 如何确定最优解的各个分量。 (提示: 跳跃式处 理解 空树结点,必须 保存 搜索过程中经过的 路径信 息 。) 回溯法 从根结点出发,按照 深度优先策略 遍历问 题的解空间树。 分支限界法 按 广度优先策略 搜索问题的解空间树。 二者与蛮力法区别? 回溯法与分支限界法区别? 一般情况下,在问题的解向量 X =( x 1 , x 2 , … , x n ) 中 , 分 量 x i (1 ≤ i ≤ n ) 的 取 值 范 围 为 某 个 有 限 集 合 S i ={ a i 1 , a i 2 , … , a iri } ,因此,问题的解空间由 笛卡儿 积 A = S 1 × S 2 × … × S n 构成 ,并且第 1 层的根结点有 | S 1 | 棵子树,则第 2 层共有 | S 1 | 个结点,第 2 层的每个 结点有 | S 2 | 棵子树,则第 3 层共有 | S 1 | × | S 2 | 个结点,依 此类推,第 n +1 层共有 | S 1 | × | S 2 | × … × | S n | 个结点, 他们都是 叶子结点,代表问题的所有可能解 。 9.1.2 分支限界法的时间性能 类比 回溯法 分析分支限界法的时间性能 1 1 1 1 1 1 0 0 0 0 0 0 0 1 图 8.2 0/1 背包问题的解空间树 对物品 1 的选择 对物品 3 的选择 对物品 2 的选择 1 2 3 4 5 7 8 11 12 14 15 3 10 6 9 例如: 对于 n =3 的 0/1 背包问题解空间树 分支限界法 和 回溯法 实际上都属于 蛮力穷举法 ,当 然不能指望它有很好的最坏时间复杂性,遍历具有指 数阶个结点的解空间树,在最坏情况下,时间复杂性 肯定为 指数阶 。 与回溯法不同的是,分支限界法首先扩展解空间树 中的上层结点,并采用限界函数, 有利于实行大范围 剪枝 ,同时, 根据限界函数不断调整搜索方向 ,选择 最有可能取得最优解的子树优先进行搜索。所以,如 果选择了结点的合理扩展顺序以及设计了一个好的限 界函数,分支界限法可以快速得到问题的解。 分支限界法的较高效率是以 付出一定代价 为基础的,其 工作方式也造成了算法设计的复杂性。 首先, 一个更好的限 界函数通常需要花费更多的时间计算相应的目标函数值,而 且对于具体的问题实例,通常需要进行 大量实验,才能确定 一个好的限界函数 ; 其次, 由于分支限界法对解空间树中结 点的处理是跳跃式的,因此,在搜索到某个叶子结点得到最 优值时,为了从该叶子结点求出对应的最优解中的各个分量, 需要对每个扩展结点保存该结点到根结点的路径,或者在搜 索过程中构建搜索经过的树结构,这使得算法的设计较为复 杂; 再次, 算法要维护一个待处理结点表 PT ,并且需要在表 PT 中快速查找取得极值的结点,等等。这都需要较大的存储 空间,在 最坏情况 下, 分支限界法 需要的 空间复杂性 是 指数 阶 。 9.1.3 一个简单的例子 — 圆排列问题 问题描述: 给定 n 个圆的半径序列,将这些圆放 到一个矩形框中,各圆与矩形框的 底边相切 ,则 圆的不同排列会得到不同的排列长度,要求找出 具有最小长度的圆排列。 想法: 采用分支限界法

文档评论(0)

yusuyuan + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档