集合覆蓋 頂點覆蓋: set cover和vertex cover


這里將講解一下npc問題中set cover和vertex cover分別是什么。

 

set cover:

問題定義:

  實例:現在有一個集合A,其中包含了m個元素(注意,集合是無序的,並且包含的元素也是不相同的),現在n個集合,分別為B1、B2、...、Bn。並且這n個集合的並集恰好等於A集合,即:B1UB2UB3U...UBn=A。

  問題:是否存在B集合的最小子集,且他們的並集也等於A集合?

  例子:集合A={1,2,3,4,5},集合B={{1,2,3},{2,4},{3,4},{4,5}}。可以看出,B集合的並集恰好等於A集合,那么問題的解是:SETCOVER={{1,2,3},{4,5}}。

 

vertex cover:

問題定義:

  實例:圖G=(V,E)。

  問題:是否存在V的子集V',使得|V'|<=|V|,並且G中的每條邊e,至少有一個頂點在V'中?

 

這個問題有一個npo(np optimization problem)的變種,即:找到滿足條件的最小頂點集,也就是使得滿足條件下最小|V'|值。

 

首先可以看出,這是兩類完全不同的問題,set cover屬於集合一類問題,應用於計算機科學以及計算理論方面。vertex cover,屬於圖論一類問題,應用於計算機科學、計算理論、圖論、數學等等方面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM