具有加权顶点的树中最小权重的顶点覆盖

时间:2011-08-15 00:50:46

标签: algorithm graph

给定一个具有无向边的树,其中顶点的权重是其度,找到最小权重的顶点覆盖。

这就是我的想法:

由于顶点覆盖需要包含足够的顶点来覆盖所有边,这意味着无论覆盖中的顶点如何,所有顶点的权重之和都将相同(等于边数) 。因此,我们不需要任何特殊的算法来找到答案,我们只需要找到最小尺寸的顶点覆盖(覆盖最小顶点)。

这是正确的,还是我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:3)

  

这是正确的,还是我错过了一些明显的东西?

两个具有相同边缘的顶点;如,...

A -- B -- C

Weights:
B = 2;
A = 1;
C = 1

{ A, C }{ B }都是您定义的加权最小顶点覆盖。

只有{ B }是标准的最小顶点覆盖。

编辑: ...显示不同原因的更好示例:

A -- B -- C -- D

Weights:
B = 2;
C = 2;
A = 1;
D = 1

{ A, C }{ B, D }{ B, C }都是标准的最小顶点封面。

根据您的定义,只有{ A, C }{ B, D }是加权最小顶点覆盖。直观地说,这是因为{ B, C }顶点覆盖率会使B -- C边缘计算两次。


第一个反例示例反驳所有加权MVC(根据您的定义)是标准MVC。第二个反例证明所有标准MVC都是加权MVC。

经过一番思考......你是正确的,因为树的加权MVC是任何VC,其成本等于边数。

找到加权MVC实际上非常简单。如果你将树绘制出来,并从每一个级别中选择所有顶点(如果从第一级或第二级开始都无关紧要),你最终会得到一个有效的加权MVC(由于所有边都被覆盖,没有边缘被计算两次)。

...更一般地说,所有加权MVC的集合是不包含邻居的所有VC的集合。例如,在没有子节点的父树中,叶节点集也是有效的加权MVC。