1. 程式人生 > >樹的最小頂點覆蓋

樹的最小頂點覆蓋

最小頂點覆蓋問題是演算法設計中一個非常著名的NP完全問題,下面給出頂點覆蓋問題的描述:

給定一個無向圖:G=(V, E)和一個正整數k,判定是否存在一個頂點子集,其中=k,使得對於任意uV' v ∈V' 。如果存在這樣的V',就稱頂點子集V'為圖G的一個大小為k的頂點覆蓋。如下圖所示,紅色圓圈表示其所在無向圖的一個頂點覆蓋。

第一個圖:k=3  第二個圖:k=4

最小頂點覆蓋問題實質上就是求最小k(用k'表示最小k值)的問題,用一句話來概括最小頂點覆蓋問題就是:找出給定圖G中覆蓋每條邊的最小頂點子集。如下圖所示,紅色圓圈表示其所在圖的一個最小頂點覆蓋。

第一個圖:k'=2  第二個圖:k'

=3

作為圖的一種特殊形式的樹,實際上可以用貪心演算法找到其最小頂點覆蓋。