如何找到包含给定边的最小生成树?

时间:2018-11-18 14:51:22

标签: algorithm graph minimum-spanning-tree

在可能的情况下,在加权无向图中,我需要找到包含给定边“ e”的最小生成树。我该怎么做? Kruskal从“ e”开始?

2 个答案:

答案 0 :(得分:2)

使用 Kruskal 算法,因为如果边缘e是周期的一部分,并且e在该周期中具有最大权重,则该算法将不包括'e'。我相信,通过修改它可以起作用。但是使用Prim的算法,所需的修改很少。

如果我们记得Prim算法是这样的,那么Prim的算法最适合此问题:

步骤1 :从包含随机选取的顶点的集合 S 开始。

第2步:从具有一个顶点集 S 和另一个顶点集 V - S 的所有边开始strong>,选择重量最轻的那个。假设(x,y) x 属于 S y 属于 V < / strong>- S

步骤3 :添加 y 来设置 S

步骤4 :重复步骤2和3,直到 S 包含所有顶点。

需要修改

对于您的问题,只需将步骤1更改为:

第1步:从包含顶点 u v 的边线'的集合 S 开始e' =( u v )。

答案 1 :(得分:0)

对于惰性解决方案,请将该边的成本设为零,然后在其上运行任何MST算法。