图论模型及其算法.pptVIP

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 利用图论模型进行构造 例题2:圆桌吃饭问题 n个人围着一张圆桌吃饭,每个人都不愿意两天与同一人为邻,问最多能坐多少天,并给出一种排列方案? 查分约束系统 转化为图论模型 设G=(V,E)为一完全图,|V|=n。图中的每个顶点代表一个人,连结顶点的边表示人之间的相邻关系。因此,每种围绕圆桌的吃饭方案就成为图中的一条哈密尔顿回路。设L=v1,v2,…,vn为G中的一条哈密尔顿回路,其中所含的边的集合记为e(L)。问题转化为: 求m与L1,L2,…,Lm,使得e(Li)∩e(Lj)=φ, 并且m达到最大值。 构造方法 作一圆,把圆周分成n-1等分,标上n-1个刻度,将顶点1至n-1依次排列在圆周上,顶点n放在圆心。先从圆心出发,向任意点连一条线,再从这点出发,沿圆周向左右两个方向迂回连线,直到连完圆周上所有的点,再连回圆心。这样就构造出一条哈密尔顿回路。保持所有的顶点位置不变,把所有连线围绕圆心逆时针方向旋转一个刻度,得到一条新的哈密尔顿回路。这样连续旋转(n-1)div 2次,就得到了(n-1)div 2条回路。 N=5 当n=5时 构造图象,充分展示各变量之间的关系 【例3】01串问题(NOI) 给定N,L0,A0,B0,L1,A1,B1,设计一个长度为N的01串,使得对于任何连续的长度为L0的子串,0的个数大于等于A0,且小于等于B0,对于任何连续的长度为L1的子串,1的个数大于等于A1且小于B1。 【解题分析】 模式1 分析不等式 设hi为01子串s0..si(1=I=n)中1的个数,其中s0=0,h0=0。显然,由hi的定义可以得出不等式0=hi-1=hi,hi=hi-1+1, 移项即得: 0=hi-hi-1 -1=hi-1-hi L0-b0=hi-hi-l0 当I=L0时,根据条件,Si-L0+1…Si中0的个数(L0-(hi-hi-L0))在a0~b0之间,即a0=L0-(hi-hi-L0)=b0 a0-L0=hi-L0-hi -b1=hi-l1-hi ? 当I=L1时,根据条件,Si-L1+1 … Si中1的个数(hi-hi-L1)在a1~b1之间,即a1=hi-hi-L1=b1。 a1=hi-hi-L1 一旦有了h序列,我们可以由左至右构造s串:如果hi-1=hi,则说明si=0;否则si=1(1=I=n)。由此看来,问题的关键是如何计算h序列。 仔细观察上述推论条件,发现有以下特点: (1) 除h0=0外,其余的条件都是由“=”连接的不等式 ?? (2)? 每个不等式都是含两个h未知数、一个常数的一次不等式; 可见,所有不等式都整理成了k=hi-hj 它给我们启示,上述不等式类似于连接两点的一条有向边。因此,我们联想到信息学解题中常用的图论知识。 模型2 构造有向图G 我们构造有向图G,如图: 其中vi代表s串中的第I位。若k=vi-vj,则vi向vj引出一条权为k的有向边vi,vj,表明si…sj中至少需增加k个1(k为正值)或减少k个1(k为负值)。由此得出构造有向图G的方法: 0=hi-hi-1 -1=hi-1-hi a0-L0=hi-L0-hi L0-b0=hi-hi-l0 a1=hi-hi-L1 -b1=hi-l1-hi 计算图G的最长路径: 我们已构造了一个有n+1个顶点的有向图G。 (1) 图G中无环 令D[I]表示从顶点0到顶点I的最长路径长度。 对于图中 每条从点I指向点J的权为C[I,J]的边,有性质 D[I]+C[I,J]=D[J](注意:这与上述不等式的形式相似) 这样,令hi=D[I],h完全符合所有限制条件,即为原不等式组的一组解 。 (2) G中含有环 可用反证法证明无解。 从s1出发,顺序确定每位二进制数。当hi=hi-1时,说明s1…si-1中1的个数与s1…si中1的个数相同,即si为0;否则si为1。 最短路 例题4:求第一、第

文档评论(0)

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

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档