input: bipartite graph G=(V,W,E) with non-negative edge weights
output: matching M, maximizing the sum of edge weights in M
1. Formulate a linear programming relaxation for the problem, with variables X[u,v] for each edge (u,v).
2. What is the dual?
3. Use duality to show that the greedy algorithm below is a 2-approximation algorithm. (Describe how to find a feasible solution to the dual whose cost is at most twice the cost of the greedy algorithm's matching.) Can you show that your analysis is tight? That is, can you give an example where the algorithm gives a solution that has weight 1/2 times the optimal?
greedy algorithm 1: consider the edges (u,v) in order of decreasing weight. Add an edge (u,v) to M unless some other edge incident to u or v is already in M.
4. Likewise, use duality to show that the greedy algorithm below is a c-approximation algorithm for the smallest c that you can, assuming this time that the bipartite graph is complete and edge weights satisfy the triangle inequality. Can you show that your analysis is tight? That is, can you give an example where the algorithm gives a solution that has weight 1/c times the optimal?
greedy algorithm 2: consider the vertices v in V (the left-hand side) in arbitrary order. When considering v, among edges (v,w) where w is not yet matched, choose the edge of maximum weight and add it to the matching.