📜  DAA-顶点封面

📅  最后修改于: 2021-01-12 03:41:31             🧑  作者: Mango


无向图G =(V,E)的顶点盖的顶点V“⊆v的如果边(u,v)G的边缘,然后或者üVV IN V”或一个子集都。

在给定的无向图中找到最大尺寸的顶点覆盖。该最佳顶点覆盖是NP完全问题的优化版本。但是,找到接近最佳的顶点覆盖并不难。

APPROX-VERTEX_COVER (G: Graph) c ← { } E' ← E[G] 
while E' is not empty do 
   Let (u, v) be an arbitrary edge of E' c ← c U {u, v} 
   Remove from E' every edge incident on either u or v 
return c

给定图的边集是-

{(1,6),(1,2,2,(1,4),(2,3),(2,4),(6,7),(4,7),(7,8),( 3,8),(3,5),(8,5)}

设置边

现在,我们从选择任意边(1,6)开始。我们消除了所有入射到顶点1或6的边,并添加了边(1,6)进行覆盖。

任意边缘

在下一步中,我们随机选择了另一个边(2,3)

另一个优势

现在我们选择另一个边(4,7)。

选择另一个边缘

我们选择另一个边(8,5)。

边缘

因此,该图的顶点覆盖为{1,2,4,5}。

分析

可以很容易地看到,该算法的运行时间为O(V + E) ,使用邻接表表示E