如何找到连接的加权图的最大生成树,即总权重最大的生成树?
答案 0 :(得分:1)
找到最大生成树的另一种方法是使用Kruskal算法。就像Prim算法一样,Kruskal算法是查找最小生成树的常用算法。
Kruskal算法唯一需要做的更改是,与其按升序对边缘进行排序,不如按降序对边缘进行排序(权重最大的边缘排在最前面)进入列表L。
其余算法相同:最初,最大生成树T将为空集。将存在等价类,每个等价类包含图形的各个顶点。然后,在不止一个等效类的情况下,重复以下过程: 删除列表L中的第一个边。然后,如果边的两个顶点不在同一等价类中,则该边将包含在最大生成树T中,并且两个顶点的等价类将替换为两个顶点的等价类的并集。
最后,T将包含构成最大生成树的边。
答案 1 :(得分:0)
您可以使用Prim's algorithm:选择任何顶点,然后在将已添加的顶点连接到尚未添加的顶点的那些顶点中反复选择最佳边。 Prim的算法通常被描述为找到 minimum 生成树,但是它与查找最大生成树的方法完全相同,只是 maximum-weight 边为“最佳” ,而不是最小权重边缘。