Peso mínimo subforest de cardinalidad dada

11

Esta pregunta fue motivada por una pregunta hecha en stackoverflow .

Supongamos que se le da un árbol enraizado (es decir, hay una raíz y los nodos tienen hijos, etc.) en n nodos (etiquetados 1 , 2 , ... , n ).Tn1,2,,n

Cada vértice tiene un peso entero no negativo asociado: w i .iwi

Además, se le da un número entero , tal que 1 k n .k1kn

El peso de un conjunto de nodos S { 1 , 2 , ... , n } es la suma de los pesos de los nodos: s S w s .W(S)S{1,2,,n}sSws

Dada la entrada , w i y k ,Twik

La tarea es encontrar un sub-bosque de peso mínimo * , de T , de modo que S tenga exactamente k nodos (es decir, | S | = > k ).STSk|S|=>k

En otras palabras, para cualquier subforest de T , tal que | S | = k , debemos tener W ( S ) W ( S ) .ST|S|=kW(S)W(S)

Si el número de hijos de cada nodo estaba limitado (por ejemplo, árboles binarios), entonces hay un algoritmo de tiempo polinómico que usa programación dinámica.

wi{0,1}

Parece que debería ser un problema bien estudiado.

¿Alguien sabe si este es un problema NP-Hard / hay un algoritmo de tiempo P conocido?


TSTxSxST

PD: Disculpe si resulta que me perdí algo obvio y la pregunta está realmente fuera de tema.

Aryabhata
fuente
Sospecho firmemente que esto tiene una respuesta fácil, pero sigue siendo una pregunta razonable.
Suresh Venkat

Respuestas:

7

ci{0,1}Sk=iSciCC

v(v)

Riko Jacob
fuente
k
Buen punto. Cambiaré mi respuesta en consecuencia.
Riko Jacob