Given a set system G and a parameter k, Maximum Coverage Problem is to find k sets such that the elements covered is maximized, and Set Cover Problem is to identify the smallest size of sets so that all elements are covered.
I am curious about how this reduction is conducted? Further, considering the Vertex Cover problem which is to find a cover with smallest number of vertices, can I reduce this problem to the following problem in the same way: The problem of concern:
Given a Graph and a parameter k, find k vertices such that the number of edges linked to these vertices is maximized.
Is this problem also NP hard?
Asked By : John
Answered By : Yuval Filmus
- If $varphi$ is satisfiable then there are $r$ sets from $S$ that together cover at least $t$ elements.
- If $varphi$ is not satisfiable then all choices of $r$ sets from $S$ cover at most $(1-1/e)t$ elements.
Informally, we say that it is NP-hard to approximate Maximum coverage up to $1-1/e$. Why? A polytime algorithm $A$ for Maximum coverage is a $theta$ approximation if given an instance $(S,r)$ with optimal value $O$, $A$ outputs a subset of $S$ of size $r$ that covers at least $theta O$ elements. If there was a polytime $1-1/e+epsilon$ approximation algorithm for Maximum coverage, for any $epsilon > 0$, then you could use it to solve 3SAT, as follows:
- Given $varphi$, run $f$ and calculate the instance $(S,r,t)$.
- Run $A$ on $(S,r)$, getting a cover which covers $B$ elements.
- $varphi$ is satisfiable iff $B > (1-1/e)t$.
I leave you to figure out why this works. The approximation ratio $1-1/e$ is achieved by the greedy algorithm, so this result is optimal.
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/32659