计算机算法分析与设计第6章new【荐】.pdfVIP

计算机算法分析与设计第6章new【荐】.pdf

  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文档。上传文档
查看更多
第六章 分枝限界法 分枝限界法(branch-and- bound ) 有一些优化问题或对策问题除了用“穷举 法”外没有太好的解法,回溯法就是针对这类 问题的一种系统解决方法。此方法的思想是 构成一棵树,树的每一层代表某一步的各种 走法,某一待求量的各种取值或某一子问题 的各种解决方案等,而树的每个终端结点表 示每一种可能的最终解答。 如果可能的解答数目太多,限于计算机容 量和计算时间,不可能构成整个树,则至少构 成该树的上面一些层,而将其终端结点标上一 定的评价函数,以表示沿其子树进一步进行下 去效果的优劣区别。对此树按类似后序遍历的 次序进行分析,由每个中间结点的各个子树中 挑选出其中最“合适” 的一个,或根据子树的评 价函数确定该中间结点的评价函数。如此进行 下去直至根结点为止,即得到整个问题的解 答。下面举几个例子。 例1.八皇后问题。这是高斯1850年提出的 一个著名问题:国际象棋中的“皇后”在横 向、直向、和斜向都能走步和吃子,问在 8 ×8=64格的棋盘上如何能摆上八个皇后而 使她们都不能互相吃。现已知此问题共有92 种解,但只有12种是独立的,其余的都可以 由这12种利用对称性或旋转而得到。 为简单起见,以四皇后问题为例讲述此方法。 设棋盘有4 ×4=16格,每行所摆的皇后都有四 种可能的位置,四个皇后共有44=256种摆法。 如将这些摆法都列出来再选其中合乎条件的方 案,就太费时间了。现构成一个树,根结点的 四个子树表示第一行的皇后的四种可能的位 置;再下一层表示第二行的位置;……。设以 F表示失败,S表示成功。如果上面的行已经无 法摆了,则下面的行表示失败,S表示成功。 如果上面的行已经无法摆了,则下面的行即不 必再试,返回上一层再试其它分支。 假设第一行的皇后先放在第一列,如图(a) 所示,则第二行只有三、四列还可以摆。若暂 先试第三列,第三行就完全无法再摆,只好回 溯到上一层再试另一个分支,即第二行放第四 列。这样第三行还剩第二列可以摆,但第四行 又无法再摆了。此时只好返回到最上一层,改 试第一行放第二列,……。最后构成的树如图 2所示,共有两个可行方案,实际上这是两个 对称的方案。 图2 因为从所有失败的方案返回时该部分子树即不 必保留,所以最终内存中只保留成功方案的几 条单链分支,比图中所示之树还要简单。如果 每试出一个成功方案就立即输出而不必存储, 或只试出一个方案就可以了,则只需一个单 链,更可以节约存储量。 在用这种方法解决优化问题时(以下以最小化 问题来说明,最大化问题也与此类似),如果 能事先估计出每个分支的下界值,当某分支的 下界值比已试过的方案的值还要高时,这整个 子树即不必再考虑,因此常常可以大大节约运 算时间。下面再以一个例子说明 例2.分派问题。这是整数规划问题中的一种特 殊问题,现举一个数字例子。设有A、B、C、D 四位教师,每人都能教I、II、III、IV四门课 程,但各人备各门课所需时间不同,如下表所 示 I II III IV A 2 10 9 7 B 15 4 14 8 C 13 14 16 11 D 4 15 13 9 现要求每门课有一个人教,且每人只教一 门课,问如何分配工作才可以使总备课时间最 少。 此问题如果用穷举法需要试4 !=24种方 案,从中选优,现用分枝限界来解。 首先要确定如何定问题的下界。设将每人 只教一门课变成一人可以教多门课,这样一来 得到的总备课时间最小值肯定不会比实际情况 还大,可作为问题的下界。而且在这种假定下 最小值的计算非常方便,只需将表中各列的最 小值加起来即可。例如整个问题的下界为(A 教I 、II 、IV课,B教

文档评论(0)

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

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

1亿VIP精品文档

相关文档