Definition
Bounded-Set-Size Set Cover Approximation Algorithm
For a feasible Minimum Set Cover instance with for every input set and , repeatedly choose an uncovered element and one set containing it. The resulting cover satisfies in polynomial time. The parameter bounds set size, not element frequency.
Construction
Each selection must cover something new
Maintain the uncovered elements . Choose , choose any containing , select it and remove from . A previously selected set cannot be chosen this way: all its elements are already covered.
Thus every iteration selects one new set and removes at least one new element. There are at most iterations, yielding .
if union(S[1],...,S[q]) != U: return INFEASIBLE
J = empty set; R = U
while R is nonempty:
choose u in R
choose j with u in S[j]
J.add(j)
R = R minus S[j]
return JApproximation guarantee
Compare selections with the number of elements
The algorithm returns a cover of size at most
The loop removes only elements covered by selected sets and ends with no uncovered elements. Each iteration removes its chosen element, so .
Any cover needs at least sets
For any feasible index set , the union bound gives
Overlap can only reduce the union size. In particular, .Combine the bounds
The algorithm pays at most once per element, while an optimal set can account for at most elements:
Running time and scope
With , a straightforward implementation takes time. An empty universe returns the empty cover; an uncovered-by-all-sets element makes the instance infeasible.
This is a simple -approximation, not a claim of the best possible approximation factor. Unlike the bounded-frequency algorithm, it selects only one set per chosen element and does not need witnesses that avoid sharing input sets.