【问题标题】:Finding MST of directed graph using Prim's algorithm使用 Prim 算法查找有向图的 MST
【发布时间】:2010-12-30 19:37:11
【问题描述】:

任何人都可以帮助我如何使用 PRIM 算法查找 MST。突出显示 MST 的边缘并写下将节点添加到 MST 的顺序。 谢谢

【问题讨论】:

  • Prim 算法的哪一部分你不明白?
  • 是的,我了解 prims 算法,但在非定向图中。
  • 有向图对我来说是个问题。
  • @Programming_Kills 你为什么没有在问题中提到那个重要的细节?见this
  • 我写了一篇关于如何在 C++ 中实现 prim 算法的教程,你可以看看它也许会有所帮助:cedricve.me/2012/05/15/c-prims-algorithm

标签: algorithm graph minimum-spanning-tree prims-algorithm


【解决方案1】:

引用The Directed Minimum Spanning Tree Problem:

  1. 如果有的话,丢弃进入根的弧;对于除 根,选择进入弧与 最小的成本;让选中的 n-1 arcs 是集合 S。
  2. 如果没有形成循环,则 G(N,S) 是 MST。否则,请继续。
  3. 对于形成的每个循环,将循环中的节点收缩为伪节点 (k),并修改每条弧的成本 它进入循环中的节点(j) 来自循环外的某个节点 (i) 根据以下等式。
    c(i,k)=c(i,j)-(c(x(j),j)-min_{j}(c(x(j),j)) 这里 c(x(j),j) 是弧的成本 在进入j的循环中。
  4. 对于每个伪节点,选择具有最小的进入弧 修改成本;更换圆弧 进入 S 中的同一个实节点 新选择的弧线。
  5. 使用收缩图转到第 2 步。

算法的核心思想是 找到具有的替换弧 消除的最低额外成本 周期(如果有)。给定方程 展示相关的额外费用。

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多