Kruskal算法的变化

时间:2016-01-27 04:41:34

标签: algorithm graph tree kruskals-algorithm

假设G是具有n个顶点的无向图,每对顶点之间存在加权边。你能用以下结构构建一棵树:

v_1-v_2-v_3 -...- v_n,使得树中的每个节点对应于G中的顶点,并且每个节点仅具有除叶之外的一个子节点。树边缘的总重量也最小化。

如果使用类似于Kruskal算法的算法:按升序对原始图中所有边的权重进行排序。从最小权重边缘开始,如果添加此边缘不违反上述树结构,则在最终树中添加此结构,否则,继续前进到下一个。

这个算法能否给出最小权重的树?如果没有,是否有可能找到一个算法来获得这棵树?

1 个答案:

答案 0 :(得分:2)

可以,但可能没有。考虑具有边权重的4节点图,如下所示:

AB:   3
AC:   1
AD: 100
BC:   2
BD: 100
CD:   2

最小树是长度为7的ABCD,但是你的算法总是以(长度1)边AC开始,它不是所需的最小树的一部分。

相关问题