跳转至

35.3 The set-covering problem

35.3-1

Consider each of the following words as a set of letters: \(\\{\text{arid}\), \(\text{dash}\), \(\text{drain}\), \(\text{heard}\), \(\text{lost}\), \(\text{nose}\), \(\text{shun}\), \(\text{slate}\), \(\text{snare}\), \(\text{thread}\\}\). Show which set cover \(\text{GREEDY-SET-COVER}\) produces when we break ties in favor of the word that appears first in the dictionary.

(Omit!)

35.3-2

Show that the decision version of the set-covering problem is \(\text{NP-complete}\) by reducing it from the vertex-cover problem.

(Omit!)

35.3-3

Show how to implement \(\text{GREEDY-SET-COVER}\) in such a way that it runs in time \(O\Big(\sum_{S \in \mathcal F} |S|\Big)\).

(Omit!)

35.3-4

Show that the following weaker form of Theorem 35.4 is trivially true:

\[|\mathcal C| \le |\mathcal C^\*| \max\\{|S|: S \in \mathcal F\\}.\]

(Omit!)

35.3-5

\(\text{GREEDY-SET-COVER}\) can return a number of different solutions, depending on how we break ties in line 4. Give a procedure \(\text{BAD-SET-COVER-INSTANCE}(n)\) that returns an \(n\)-element instance of the set-covering problem for which, depending on how we break ties in line 4, \(\text{GREEDY-SET-COVER}\) can return a number of different solutions that is exponential in \(n\).

(Omit!)