Algorithm 子图上的MST递归构造
MST表示:最小生成树 给定一个图g=(V,E)。将顶点任意划分为两个不相交集V1和V2。 设E1为V1中两个顶点的所有边 设E2为V2中两个顶点的所有边 设E3为所有边,V1中有一个事件,V2中有一个事件 现在在子图(V1,E1)上构造一个MST M1,在子图(V2,E2)上构造一个MST M2。然后在E3中添加连接M1和M2的最低权重边。这是在原始图g上构造MST的结果吗?我的答案是否定的 考虑图G:{顶点:{A,B,C,D}边:{AB=1,BD=10,DC=3,AC=2}}。当它被划分为V1={A,C}V2={B,D}E1={AC}E2={BD}E3={AB,CD}时,根据描述,MST是{AC,AB,BD},而真正的MST是{AB,AC,CD} 回想一下Kruskal算法:边是按权重按升序排序的,这些边不会形成一个循环,MST中已经存在的边将逐个添加。MST是树,因此将选择| E |-1条边(假设MST中没有孤立顶点)。如果| E1 |<| V1 |-1或| E2 | 1,那么当Kruskal算法在整个图G上实现时,E3中的多条边将被添加到MST。如果MST是从M1 M2和E3中的最小边构造的,它可能会丢失一些边 此外,如果我们在整个图G上实现Kruskal算法,则可能会添加多条E3中较小的边(我们称之为E3')。如果我们在V1 E1和V2 E2上分别实现Kruskal算法,则大于E3'中的边将添加到M1,M2中。并且只会添加E3(E3')中的最小边。因此,第二个MST的总重量大于第一个MST,它不是真正的MST 是否有单独建立MST的情况,与在整个图表上建立MST的情况相同Algorithm 子图上的MST递归构造,algorithm,graph,minimum,greedy,Algorithm,Graph,Minimum,Greedy,MST表示:最小生成树 给定一个图g=(V,E)。将顶点任意划分为两个不相交集V1和V2。 设E1为V1中两个顶点的所有边 设E2为V2中两个顶点的所有边 设E3为所有边,V1中有一个事件,V2中有一个事件 现在在子图(V1,E1)上构造一个MST M1,在子图(V2,E2)上构造一个MST M2。然后在E3中添加连接M1和M2的最低权重边。这是在原始图g上构造MST的结果吗?我的答案是否定的 考虑图G:{顶点:{A,B,C,D}边:{AB=1,BD=10,DC=3,AC=2}}。当它被划分为V