用于最小生成树分析的 Prims 算法
Prims Algorithm for Minimum Spanning Tree Analysis
算法:
图表:
(注:缺失边权,(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
问=[]
没有更新
队列为空,循环终止
我们的最小生成树中有以下边:
(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:
迭代 2:
迭代 3:
迭代 4:
迭代 5:
在计算机科学中,Prim 算法是一种寻找最小值的贪心算法
加权无向图.
的生成树
算法:
图表:
(注:缺失边权,(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
问=[]
没有更新
队列为空,循环终止
我们的最小生成树中有以下边:
(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:
迭代 2:
迭代 3:
迭代 4:
迭代 5:
在计算机科学中,Prim 算法是一种寻找最小值的贪心算法 加权无向图.
的生成树