Vertex cover (semplice e pesato)
NP-arduoDato un grafo non orientato , un vertex cover è un insieme di nodi che tocca tutti gli archi: per ogni , oppure . Il problema semplice chiede un vertex cover con il minor numero di nodi. Nel pesato ogni nodo ha un peso e si cerca il vertex cover di peso totale minimo.
Perché è difficile
Il problema è NP-arduo, quindi non si conosce un algoritmo esatto polinomiale. Si approssima: 2-approx-vc trova in un vertex cover con al più il doppio dei nodi dell'ottimo.
Da ricordare
- perché gli archi scelti non hanno estremi in comune: l'ottimo ne copre ciascuno con un nodo diverso, l'algoritmo con due.
- Dopo aver scelto si tolgono tutti gli archi che toccano o .
- La garanzia vale solo nel caso semplice: nel pesato l'algoritmo ignora i pesi.
Algoritmi
Fonti: dispensa §4.2, §4.2.1 e §4.2.2, Teorema 4.2.1, appunti Lezione 9, §4, appunti Lezione 1, §6.