formulation

Given a universe and a family of subsets of , a cover is a subfamily of sets whose union is . In the set covering decision problem, the input is a pair and an integer ; the question is whether there is a set covering of size or less. In the set covering optimization problem, the input is a pair , and the task is to find a set covering that uses the fewest sets.

the decision problem is NP-complete, optimization is NP-hard.

greedy algorithm

There is a greedy algorithm for polynomial time approximation of set covering that chooses sets according to one rule: at each stage, choose the set that contains the largest number of uncovered elements.

It can be shown that this algorithm achieves an approximation ratio of , where is the size of the set to be covered. In other words, it finds a covering that may be times as large as the minimum one, where is the nth harmonic number