📅  最后修改于: 2021-01-12 03:41:31             🧑  作者: Mango
无向图G =(V,E)的顶点盖的顶点V“⊆v的如果边(u,v)为G的边缘,然后或者ü在V或V 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 ‘ 。