最小生成树分析的Prims算法

时间:2017-04-14 10:09:34

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

算法: enter image description here

图表: enter image description here

(注意:缺少边缘重量,(T,Y,8))

在第一次迭代之前:

最小优先级队列(开始时的最小键)

Q = [(S,0),(T,∞),(X,∞),(Y,∞),(Z,∞)]

迭代1:

U = S

Q = [(T,6),(Y,7),(X,∞),(Z,∞)]

更新T和Y的键

迭代2:

U = T

Q = [(Z,-4),(X,5),(Y,7)]

更新X,Y,Z的键

迭代3:

U = Z

Q = [(X,5),(Y,7)]

没有更新

迭代4:

U = X

Q = [(Y,7)]

没有更新

迭代5:

U = Y

Q = []

没有更新

队列为空,循环终止

我们的最小生成树中有以下边缘:

(S,T,6),(T,Z,5),(T,Z,-4),(S,Y,7)

成本= 6 + 5 - 4 + 7 = 14

这显然不是MST,因为我们有其他树木成本较低,

(S,Y,7),(Y,X,-3),(X,T-2),(T,Z,-4)

费用= 7 - 3 - 2 - 4 = -2

请帮我确定哪里出错了。

供参考: (请忽略红色边缘)

迭代1: enter image description here

迭代2: enter image description here

迭代3: enter image description here

迭代4: enter image description here

迭代5: enter image description here

1 个答案:

答案 0 :(得分:0)

在计算机科学中,Prim的算法是一种贪婪的算法,它找到了最小的算法 生成树的加权无向图

来源:https://en.wikipedia.org/wiki/Minimum_spanning_tree