Questa domanda è stata motivata da una domanda posta su StackOverflow .
Supponiamo che ti venga dato un albero radice (cioè che ci sia una radice e che i nodi abbiano figli ecc.) Su n nodi (etichettati 1 , 2 , ... , n ).
Ogni vertice ha un peso intero non negativo associato: w i .
Inoltre, ti viene dato un numero intero , tale che 1 ≤ k ≤ n .
Il peso di un insieme di nodi S ⊆ { 1 , 2 , … , n } è la somma dei pesi dei nodi: ∑ s ∈ S w s .
Ingresso dato , w i e k ,
Il compito è trovare una sotto-foresta di peso minimo * , di T , in modo che S abbia esattamente k nodi (cioè | S | = > k ).
In altre parole, per qualsiasi subforeste di T , tale che | S ′ | = k , dobbiamo avere W ( S ) ≤ W ( S ′ ) .
Se il numero di figli di ciascun nodo era limitato (ad esempio alberi binari), esiste un algoritmo temporale polinomiale che utilizza la programmazione dinamica.
Sembra che dovrebbe essere un problema ben studiato.
Qualcuno sa se si tratta di un problema NP-Hard / esiste un algoritmo P time noto?
PS: Per favore, scusami se mi risulta che ho perso qualcosa di ovvio e la domanda è davvero fuori tema.