繁体   English   中英

树中的最小成本边删除以分隔树中的所有叶

[英]Min cost edge deletions in tree to separate all leaves in a tree

这是一个更大的问题,我已经归结为以下问题。 给定具有正边缘权重的加权树,并且具有k个叶子。 叶子是在树中具有恰好一个相邻节点的节点。 我需要从树中删除一些边缘,以便树分割成k个组件,每个组件只包含原始树中的一个叶节点。 换句话说,我需要删除边缘,以便原始树中的所有叶子与原始树的每个其他叶子分离/断开。

我需要这样做,以便删除边缘的权重(成本)总和最小化。 显示需要删除k-1边缘是微不足道的。 所以我需要最小化这些k-1边缘的权重之和。

这样做的最佳方法是什么? 任何提示将不胜感激。 谢谢!

我认为贪婪的算法在这里工作。

即删除生成新组件的最低权重边缘并重复k-1次。

请注意,您必须小心图形,例如:

d <-A-> B->Ç

如果首先删除B-> C,则删除A-> B不会生成新组件,因为B不是叶子,因此不需要分开。

换句话说,当选择最低权重边缘时,不要包括任何仍未通向叶节点的边缘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM