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