以最少的叶子生成树

时间:2017-01-16 21:29:37

标签: data-structures graph tree np spanning-tree

所以我的问题如下:

我有一个无向(完整)加权图G =(V,E),我想生成所有可能的生成树叶子数量最少,即顶点数量最少学位1.让我们称这种树为MIN_LEAF。

可能,我想直接生成在所有树叶中 最小总重量(请注意这是不一定是最小生成树)。 问题是决定树T是给定图G N完全的MIN_LEAF吗?

如果是这样,我想知道是否存在某种启发式算法(贪婪或局部搜索),它至少可以为这个问题提供近似解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您描述的第一个问题 - 找到可能数量最少的生成树 - NP -hard。您可以通过将哈密尔顿路径问题减少到这个问题来看到这一点:注意哈密顿路径是图的生成树,只有两个叶节点,并且具有正好两个叶节点的图的任何生成树必须是哈密顿量路径。这意味着确定图中是否存在哈密顿路径的 NP - 硬问题可以通过查找图的最小叶生成树来解决:当且仅当最小 - 叶生树有两片叶子。您描述的第二个问题包含第一个问题作为一个特例,因此也将是 NP -hard。

快速谷歌搜索发现了论文"On finding spanning trees with few leaves",这似乎可能是近似算法的一个很好的起点(它们对任意图形有2近似)并且可以进一步阅读该主题。