数学建模-最小生成树-kruskal算法与各种代码.pdfVIP

数学建模-最小生成树-kruskal算法与各种代码.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文档。上传文档
查看更多
kruskal 算法及代码 含伪代码、 c 代码、 matlab 、pascal 等代码 K r u s k a l 算法 每次选择 n- 1 条边,所使用的贪婪准则是:从剩下的边中 选择一条不会产生 环路 的具有最小耗费的边加入已选择的边的集合中。 注意到所 选取的边若产生环路则不可能形成一棵生成树。 K r u s k a l 算法分 e 步,其 中 e 是网络中边的数目。 按耗费递增的顺序来考虑这 e 条边,每次考虑一条边。 当考虑某条边时,若将其加入到已选边的集合中会出现环路, 则将其抛弃,否则, 将它选入。 目录 Kruskal 算法 Kruskal 算法的代码实现 Kruskal 算法 Kruskal 算法的代码实现 算法定义 克鲁斯卡尔 算法 假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法 构造最小生成树的过程为:先构造一个只含 n 个顶点,而边集为空的子图,若 将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一个 森林。之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分 属不同的树, 则将其加入子图, 也就是说, 将这两个顶点分别所在的两棵树合成 一棵树; 反之,若该条边的两个顶点已落在同一棵树上,则不可取, 而应该取下 一条权值最小的边再试之。 依次类推, 直至森林中只有一棵树, 也即子图中含有 n-1 条边为止。 举例描述 克鲁斯卡尔算法 (Kruskals algorithm) 是两个经典的最小生成树算法的较 为简单理解的一个。 这里面充分体现了贪心算法的精髓。 大致的流程可以用一个 图来表示。这里的图的选择借用了 Wikipedia 上的那个。非常清晰且直观。 首先第一步,我们有一张图,有若干点和边 如下图所示: 第一步我们要做的事情就是将所有的边的长度排序, 用排序的结果作为我们 选择边的依据。 这里再次体现了贪心算法的思想。 资源排序, 对局部最优的资源 进行选择。 排序完成后,我们率先选择了边 AD。这样我们的图就变成了 第二步,在剩下的变中寻找。我们找到了 CE。这里边的权重也是 5 依次类推我们找到了 6,7,7 。完成之后,图变成了这个样子。 . 下一步就是关键了。下面选择那条边呢? BC 或者 EF吗?都不是,尽管现 在长度为 8 的边是最小的未选择的边。但是现在他们已经连通了(对于 BC可以 通过 CE,EB来连接,类似的 EF可以通过 EB,BA,AD,DF来接连)。所以我们不需 要选择他们。类似的 BD也已经连通了(这里上图的连通线用红色表示了)。 最后就剩下 EG和 FG了。当然我们选择了 EG。最后成功的图就是下图: 依次类推我们找到了 6,7,7 。完成之后,图变成了这个样子。

文档评论(0)

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

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

1亿VIP精品文档

相关文档