给定基数的最小权重子森林


11

这个问题是由关于stackoverflow的问题引起的。

假设您在节点(标记为)上得到了根树(即,有一个根并且节点具有子节点等)。Tn1,2,,n

每个顶点都有一个关联的非负整数权重:。iwi

此外,还给您一个整数,使得。k1kn

一组节点的权重是节点的权重之和:。W(S)S{1,2,,n}sSws

给定输入,和,Twik

的任务是找到一个最小重量子森林*,中,使得 具有完全相同节点(即)。STSk|S|=>k

换句话说,对于任何subforest的,使得,我们必须有。ST|S|=kW(S)W(S)

如果每个节点的子节点数是有界的(例如,二叉树),则存在使用动态规划的多项式时间算法。

我觉得这对一般树木来说是NP-Hard,但我还找不到任何参考/证明。我什至看过这里,但找不到可能有帮助的东西。我觉得即使您限制,这仍将是NP-Hard (这可能更容易证明)。wi{0,1}

看来这应该是一个经过充分研究的问题。

有谁知道这是否是NP-Hard问题/是否存在已知的P时间算法?


*的子森林是树的节点的子集,因此,如果,则所有子代也都在。(即,它是的根子树的不交集并集)。TSTxSxST

PS:如果事实证明我错过了明显的事情,而这个问题确实是题外话,请原谅我。


我强烈怀疑这是一个简单的答案,但这仍然是一个合理的问题。
Suresh Venkat

Answers:


7

与二叉树的解决方案类似,您可以在一棵树上的多项式时间内求解它,而不受程度限制:首先,将问题推广到每个节点也都有一个“ count”,然后的问题是要找到一个subforest计数。推广了动态规划法到这个版本(它仍然工程有一张桌子,给定一个固定的数,什么是在其子树计数最小重量subforest正是) ci{0,1}Sk=iSciCC

保留节点数为1的原始树。将度数大于2的每个节点拆分为具有deg叶的二叉树(形状无关紧要)。新节点的计数和权重为0。解决新树上的问题。读出解决方案时,请忽略任何新节点。这将仍然是相同重量的森林。因为任何原始子森林都会转换为相同权重的新子森林,所以找到的子森林是最佳的。v(v)


您必须调整参数才能获得最佳解的等价性。k
马克·伯里

好点子。我将相应地更改答案。
·雅各布
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.