Learning objectives
After this class, you should be able to:
- Define the set cover problem.
- Describe the greedy algorithm (AA: Algorithm 2.2) for it, prove that it yields a feasible solution, and derive an approximation factor for it.
- Show that the approximation factor derived above is tight.
- Given an instance of the set cover problem, show steps in the execution of the greedy algorithm mentioned above.
- Develop greedy approximation algorithms for similar problems, derive bounds on the optimal solution, give examples to show that these bounds are tight, and derive approximation factors.
Reading assignment
- CLR: Section 35.3; AA: Chapter 2, up to (and including) section 2.1.
- AA: Chapter 8, up to (and including) sec 8.1.
Exercises and review questions
- Questions on current lecture's material
- AA: Exercise 2.1: Given an undirected graph
G = (V, E), the cardinality maximum cut problem asks for a partition of V into sets A and B so that the number of edges running between these sets is maximized. Consider the following greedy algorithm for this problem. (Here, v1 and v2 are arbitrary vertices in G, and for any proper subset A of V, d(v, A) denotes the number of edges running between vertex v and set A.
Algorithm 2.13
-
A := {v1}; B := {v2}
-
For v in V - {v1, v2} do
-
if d(v, A) > d(v, B) then B := B U {v}
-
else A := A U {v}
-
Output A and B
Show that this is a factor 1/2 approximation algorithm. What is the upper bound on OPT that you are using?
- Show that cardinality vertex cover can be reduced to
2SC. 2SC denotes the restriction of set cover to instances having f = 2.
- Questions on next lecture's material
- Give an example of the Knapsack problem, and also give some feasible solutions and an optimal solution for this example.
- Define a fully polynomial time approximation scheme.
Last modified: 7 Jun 2004