离散数学图论作业6最短通路.docVIP

  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 - 最短通路 Problem 1 求下图中下列成对顶点之间的最短通路的长度。 a 和 d a 和 f c 和 f b 和 z Problem 2 Algorithm 1 弗洛伊德算法 procedure Floyd (G: 带权简单图 ) { G 有顶点 v 1, v2 ,..., vn 和权 w( vi , vj ) ,其中若 ( vi , vj ) 不是边,则 w(vi , v j ) = ∞ } for i := 1 to n for j := 1 to n d(vi , vj ) := w (vi , vj ) for i := 1 to n for j := 1 to n for k := 1 to n if d(vj , vi ) + d( vi , vk ) d( vj , vk ) then d( vj , v k ) := d(vj , vi ) + d(vi , v k ) { d(vi , vj ) 是在 vi 与 vj 之间的最短通路的长度 } 用弗洛伊德算法求右图中带权图里所有顶点对之间的距离。 b) 证明:当 F loyd 最外层的循环执行完 i = p 时, d( vj , v k ) 表示从 vj 到 vk 且路径上中间顶点都在集合 { v1 , v2 ,..., v p } 中的路径的最短距离。 1 Problem 3 下面是 Dijkstra 算法的一个实现,它求出了从 a 出发到 z 所有边权的和最小的通路的长度,请尝试修改该算 法中相应的行,解决下列问题: Algorithm 2 Dijkstra 算法 procedure Dijkstra ( G : 所有权都为正数的带权连通简单图 ) { G 有顶点 a = v 1, v2 ,..., z = vn 和权 w( vi , vj ),其中若 ( vi , vj ) 不是 G 的边,则 w (vi , vj ) = ∞ } for i := 1 to n L (v i ) := ∞ L ( a) := 0 S := ? while z ∈/S u := 不属于 S 的 L (u) 最小的一个顶点 S := S ∪{ u} for 所有不属于 S 的顶点 v L ( v) := min { L (v ), L ( u) + w (u, v)} { 向 S 中添加带最小标记的顶点,并且更新不在 S 中的顶点的标记 } return L ( z) { L ( z) = 从 a 到 z 的最短通路的长度 } a) 对于任意边权 大于 1 的图 G ,对于给出的点 a, z ,试求 a 到 z 的通路上所有边的 权值乘积 最小 可以是多 少;(无需证明,下同) 对于任意边权 非负 的图 G,对于给出的点 a, z,试求 a 到 z 的任意通路上 最短的边 最长 可以有多长。 Problem 4 若边的权可以为负数, Dijkstra 算法能否正确求出最短路?若可以,请给出证明;若不能,请举出一个反例并 分析说明。 Problem 5 证明或反驳:对于权值为正的简单连通图 G,在已知图上任意两点间最短路长度的前提下,可以构建出 G 。 Problem 6 利用已有最短路算法,解决下列求简单加权(权均为正数)连通图上的最短通路长度的问题: 2 a) 求从顶点 vi 出发到达 vj ,且经过顶点 vk 的最短通路长度(为保证通路最短,可以经过同一个顶点多次) ; b) 求从顶点 vi 出发到达 vj ,且不经过顶点 vk 的最短通路长度; c) 求从顶点 vi 出发,先经过顶点 vk ,再到达顶点 vj 的最短通路长度(即在到达 vk 前不得经过顶点 vj ); Problem 7 通过下列两种方法来解决下图的旅行商问题。 求出所有哈密顿回路的总权数并且确定出总权数最小的回路; 采用最邻近算法,以顶点b 为始点找到近似最短的哈密尔顿回路; 3

文档评论(0)

173****1527 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档