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 ).
Cada vértice tiene un peso entero no negativo asociado: w i .
Además, se le da un número entero , tal que 1 ≤ k ≤ n .
El peso de un conjunto de nodos S ⊆ { 1 , 2 , ... , n } es la suma de los pesos de los nodos: ∑ s ∈ S w s .
Dada la entrada , w i y k ,
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 ).
En otras palabras, para cualquier subforest de T , tal que | S ′ | = k , debemos tener W ( 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.
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?
PD: Disculpe si resulta que me perdí algo obvio y la pregunta está realmente fuera de tema.
Respuestas:
fuente