Lukas' Notes

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 J

Approximation 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.