第09讲 图的最短路及最大流问题.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文档。上传文档
查看更多
第09讲 图的最短路及最大流问题

图的最短路问题 最短路问题的例子和意义 许多实际问题都可以转化为最短路问题 其有效算法经常在其它网络优化问题中作为子算法调用 单产品、无能力限制的批量问题 某工厂生产某种产品用以满足市场需求,且已知在时段t中的市场需求为dt . 在某时段t, 如果开工生产, 则生产开工所需的生产准备费为st , 单件产品的生产费为ct .在某时段t期末, 如果有产品库存, 单件产品的库存费为ht . 假设初始库存为0, 不考虑能力限制, 工厂应如何安排生产, 可以保证按时满足生产, 且使总费用最小? 单产品、无能力限制的批量问题 记wij为第i时段生产量为 时所导致的费用(包括生产准备费、生产费和库存费), 即 其中 单产品、无能力限制的批量问题 最短路问题 最短路问题 – 两点说明 Bellman最短路方程 无圈网络的最短有向路算法 代换法 举例 例 计算如下网络中从节点A到所有其它节点的最短路. 正权网络中Dijkstra算法 正权网络中Dijkstra算法 算法 无负回路网络的最短有向路问题 Ford算法 作业 P141,6 * * S T 假设在时段t, 产品的生产量为xt , 期末产品的库存为It (I0 =0); 用二进制变量yt表示在时段t工厂是否进行生产准备. 假设费用均非负,则在最优解中IT=0,即 1 2 3 4 5 w11 w33 w22 w44 w34 w23 w12 w13 w24 w14 网络:从所有节点i到j ( i)连一条弧, 弧上的权为wi,j-1 , 如T=4时: 给定有向网络N,弧(i,j)对应的权又称为弧长(或费用). 对于其中的两个顶点s,t,以s为起点和t为终点的有向路称为s-t有向路,其所经过的所有弧上的权(或弧长、费用)之和称为该有向路的权(或弧长、费用). 所有s-t有向路中权(或弧长、费用)最小的一条称为s-t最短路. 对于有向网络中的一个圈,定义它的权为圈上所有前向弧上的权的和, 减去圈上所有反向弧上的权. 权为正的圈称为正圈; 权为负的圈称为负圈; 权为0的圈称为零圈. 对一个有向圈, 它的权就是圈上所有弧上的权的和. 本章的圈一般都是指有向圈, 我们直接将正有向圈简称为“正圈”, 负有向圈简称为“负圈”, 零有向圈简称为“零圈”, 而“无圈”指的是不存在有向圈. 最长路问题可以转化为最短路问题,把弧上的费用反号即可. 必须指出:目前为止,一切最短路算法都只对不含负有向圈的网络有效. 对于含负有向圈的网络,最短路问题是NP困难的. 因此,本章中除非特别说明,一律假定网络不包含负有向圈. 无向网络上的最短路问题一般可以转化为有向网络上的问题. 如果所有弧上的权全为非负(或非正)数,只需将无向图的一条边代之以两条对称的有向弧即可. 如果弧上的权有负有正,一般来说问题要复杂得多。 定理:设有向网络不含非正回路,且v1到其它顶点都有有限长度的有向路,则Bellman方程有唯一的有限解{uj} 定理 (拓扑排序, Topological Ordering) 设有向图D不含有向圈,则D的顶点总可以重新编号,使得 . Bellman方程可以简化为下面这种形式: E -2 1 3 5 4 1 5 -1 3 4 1 2 计算过程: =0, =min{0+1}=1, =min{0+(-1)}=-1, =min{0+5,1+(-2),-1+3}=-1, =min{-1+1, -1+4}=0. 基本思想:对于V 中每一个顶点j,赋予两个数值(通常称为“标号”): 一个是距离标号uj ,记录的是从起点到该顶点的最短路长度的上界; 另一个是前趋标号pred(j),记录的是当起点s到该顶点j 的一条路长取到该上界时,该条路中顶点j 前面的那个直接前趋(节点). 算法通过不断修改这些标号,进行迭代计算. 当算法结束时,距离标号表示的是从起点到该顶点的最短路长度. 迭代进行计算的过程中,所有顶点实际上被分成了两类: 一类是离起点 s 较近的顶点,它们的距离标号表示的是从点s到该顶点的最短路长度,因此其标号不会在以后的迭代中再被改变(称为永久标号); 一类是离起点 s 较远的顶点,它们的距离标号表示的只是从点到该顶点的最短路长度的上界,因此其标号还可能会在以后的迭代中再

文档评论(0)

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

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

1亿VIP精品文档

相关文档