第九章离散优化模型及算法设计(49300字).docVIP

第九章离散优化模型及算法设计(49300字).doc

  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文档。上传文档
查看更多

第六章离散优化模型及算法设计

6.1某些P问题及其算法

在上一章中,我们介绍了与计算复杂性相关的一此基本概念,人们发现,在离散问题中存在着两个互不相交的类:P类与NP完全类(若P≠NP)。前者具有求解的有效算法而后者不可能有这种算法。从这一点上讲,P问题可以看成是一类具有良好性质而又较容易求解的问题,而NP完全问题则是固有地难解的。

在5.4节中我们看到,有着广泛应用背景的线性规划问题是一个P问题。这样,作为线性规划子问题的运输问题及作为运输问题子问题的指派问题自然更是P问题。虽然从平均的角度讲,人们似乎更常遇到NP完全问题,但P类仍不失为一个十分重要的问题类。一方面,很多P问题象线性规划一样有着极为广泛的应用前景,它们本身是十分有趣的;另一方面,它们也是研究一些更为复杂、更加难解的问题时经常被采用的研究工具。在本节中,我们将再介绍一些经常会遇到的P问题并给出求解它们的有效算法。

一、拟阵问题及贪婪算法

在P类中存在着一个被称为拟阵的具有极其良好性质的问题类,其中的任一问题均可用一种被称为贪婪算法的办法来求解,而这一性质并不是所有的P问题都具有的。

例6.1(最小生成树问题,简记MST)

求解最小生成树的算法主要依据下面的定理:

例6.2求图6.1中图G的最小生成树。

(图6.1)(图6.2)

由例6.2可以看出,算法执行的每一步均加入了一条可以加入的(即不生成圈的)具有最小权的边,而不去考虑它对以后选取的影响,这种算法被称为贪婪算法。

(入树问题)

给出一个有向图G=(V,A),对A中的每一条孤e,给出一个权C(e),求A的一个具有最大权(或最小权)的子集B,要求B中任意两条孤都没有公共的终点。

考察下面的入树问题实例:

给出有向图G=(V,A)(图6.3),孤上标出的数字为该边的权,求此图具有最大权的入树。

(图6.3)

类似地,出树问题也可以用贪婪法求解。

(矩阵拟阵问题)

例6.6求矩阵A列向量具有最大权和的独立子集,矩阵A如下:

现以矩阵拟阵为例,对定义6.1作一说明。对矩阵拟阵的每一实例,E={e1,…en}为矩阵列向量的集合,为E的线性无关子集构成的系统,称为独立系统,其元素被称为独立子集。由于E的任一线性无关子集的子集也是E的线性无关子集,故独立系统是封闭的。又由于这一离散优化问题的任一实例都可用贪婪法求解,故其构成一拟阵,被称为矩阵拟阵。例6.1被称为图拟阵,例6.3被称为划分拟阵。

我们不加证明地引入下面的定理,虽然其证明并不十分困难。

定理6.2E为一有限集合,为E的部分子集构成的封闭独立系统。以下两个条件均为M=(E,)构成拟阵(即其上的优化问题可用贪婪法求解)的充分必要条件:

二、两分图匹配问题与增广路算法

在上一小节中我们已经看到,有些P问题可以用极为简单的贪婪算法求解。但对绝大多数的P问题来说,用贪婪算法却求不到最优解,只能根据其本身的结构,去寻找求解它的独特算法,例如,在上一章的指派问题求解中,我们曾采用了最小元素法,最小元素法其实就是贪婪法,如果贪婪法能求得最优解,其后就根本不必再作改进了。可见贪婪法一般不能求得指派问题的最优解,虽然指派问题是P问题下面,我们将介绍几个这样的P问题。

(婚姻问题)

在非洲某酋长国有一位酋长,他想把他的三个女儿嫁出去。分别记三个女儿为A、B、C,设已有三位求婚者X、Y、Z。每位求婚者对A、B、C愿出的财礼数视其对她们的喜欢程度而度,财礼按牛的头数来计算,见下面的矩阵:

ABC

问酋长应如何嫁女,才能获得最多的财礼(从总体上讲,他的女婿最喜欢他的女儿)。

例6.7显然是指派问题的实例,但它也可以看成是两分图赋权匹配问题的实例。

用三个点表示酋长的三个女儿,将它们放在一边。再用三个点表示求婚者,将它们放在另一边。在有可能结婚的两人之间画一条边,并在边上写上求婚者对这种婚姻愿意付出的财礼数,得到图6.4。图6.4是一个特殊的图,它的顶点可以分成两个子集,只有分属不同子集的点才可能有边相连(但也可以无边),这样的图被称为两分图。

(图6.4)

定义6.2(匹配)图G的一个匹配是指边集E的一个子集M,M中的任意两条边均不具有公共的顶点。

容易看出,酋长要解的问题是在两分图图6.4中找出一个具有最大权和的匹配,读者不难由此得到一般两分图最大权匹配问题的数学模型。

如果所有边的权均为1,则问题化为最大匹配问题(即求边数最多的匹配)。对于这一较为简单的子问题,存

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档