最小产品生成树与最小生成树不同吗?请解释(如果可能,请举例说明)。我的意思是,添加到最小值的边缘也应该(?)具有最小乘积。
对于所有边缘权重(正、负和零):
它们可能不一样。
举个例子:
-10
□______□
/
1 | | 0
/
□
在这里,我们有:
Minimum product spanning tree: Minimum sum spanning tree:
-10 -10
□______□ □______□
/
1 | | 0
/
□ □
对于非零边权重(正和负):
它们可能不一样。
偶数个负值的乘积会产生正值,因此在这种情况下,最好为最小积生成树选择一个正值。
举个例子:
-5
□______□
/
5 | | -5
/
□
在这里,我们有:
Minimum product spanning tree: Minimum sum spanning tree:
-5 -5
□______□ □______□
/
5 | | -5
/
□ □
最好选择较高的正值,而不是较小的负值,只要我们最终得到奇数个负值。
对于非负边权重(正和零):
可能有多个最小产品生成树,其中一些可能不是最小生成树的总和(我还没有找到证明/反例,但目前看起来至少有一个最小产品生成树将具有最小总和)。
举个例子:
0
□______□
/
1 | | 10
/
□
这里,10-0
和 1-0
都是最小积生成树,但只有 1-0
是最小生成树。
仅使用正边权重和不同的边权重:
它们将是一样的。
证明:
考虑在树的其余部分a
和b
之间挑选c
的总和。
假设 a,b,c> 0...
Assume ca < cb
then a < b (since c > 0)
then a + c < b + c
因此,如果拣选a
导致最小的产品,它也将导致最小的总和。
因此,获得最小的产品和最小的总和将包括拾取所有相同的边缘。
因此,它们将具有相同的生成树。
仅使用正边权重和非明显边权重:
上面假设了不同的边权重,如果不是这种情况,则任何一个都可能有多个生成树,它们显然不一定相同,但是两者的生成树选择将是相同的,因为它们都具有相同的乘积和相同的总和,因为唯一的区别是在具有相同权重的 2 条边之间进行拾取。
考虑:
10
□______□
/
5 | | 5
/
□
两个可能的生成树是:
10 10
□______□ □______□
/
5 | | 5
/
□ □
两者都是最小乘积和生成树(唯一的区别是我们选择哪 5,但 5 = 5,因此它不会改变总和或乘积)。
如果所有边权重都是严格正的,那么它们将是同一棵树。 看到这一点的一种简单方法是检查 MST 算法,并注意 不做任何实际的加法,它们只在每一步中从某个集合中挑选最小边。
如果边权重严格为正,则权重Wi
的最小积生成树将与权重log(Wi)
的最小和生成树相同,并且由于log
函数是单调的,因此任何 MST 算法对权重log(Wi)
的行为都将与权重Wi
的行为相同。
一个更数学的证明是注意(假设所有边权重都是不同的),图形的 MST 将包含穿过图形每个切割的最小成本边缘。 很明显,MST在边权重的单调变换下是不变的。