【发布时间】:2017-09-14 18:14:01
【问题描述】:
我试图从加权无向图中找到跨越三个的第二好的最小值。我知道如何使用 Kruskal 算法计算 MST,我正在考虑以这种方式找到第二好的最小算法:
步骤:
对所有图边进行排序。
使用 Kruskal 计算 MST
从图中获取不在第一个MST中的最小权重边并添加到MST中(现在MST有循环了)
去除新形成的循环中的最大权重边缘
这应该是第二好的 MST 吧?
顺便说一句,我知道有一个主题指出了一种算法,该算法在每个 MST 边之间迭代并在未选择边的情况下在图上运行 Kruskal,我只是在问我的是否有效。
【问题讨论】:
-
说出你的
MST=(a,b),(b,c),(c,d),(d,e)权重w(a,b)=w(b,c)=1和w(c,d)=w(d,e)=4。假设边(a,c)和(c,e)也存在权重w(a,c)=4和w(c,e)=5。您的算法将添加(a,c)并删除权重为1的边之一,但正确的方法是添加(c,e)并删除权重为4的边之一。 -
是的,你是对的,谢谢!
标签: algorithm graph computer-science