Today’s lecture about min-cost arborescences featured several new ideas; let me quickly go over some of them here.
-
We saw one algorithm, and two proofs of correctness for it. The second, LP-based proof was Edmonds’ original 1966 proof, the first proof was Karp’s from 1971. (In case you were wondering, both were correct.) Karp’s is indeed a simplification of Edmonds’, so why teach both? The point was to show you the technique — the idea that even though the algorithm was combinatorial, we could use the LP as an analysis tool. This will be useful in other settings, e.g., when we want to analyze algorithms for finding matchings in graphs.
-
I find it convenient to think of the LP-based proof as follows: the dual is a bank account. You start off with a zero primal cost and a zero dual value. Hence the initial dual is feasible, but the initial primal is not. Now suppose every time you “spend money” in the primal, you increase the dual by the same amount. This way you maintain that primal cost equals the dual value, and that the dual is feasible. So when the primal eventually becomes feasible, you know the primal and dual are equal and feasible, and hence both are optimal (by weak duality).
-
This technique of coming up with a dual that matches the primal cost is often called “dual fitting”.
-
If you want to take a stab at doing dual-fitting proofs yourself, you should try to show that the following algorithm also works when the arc weights are negative. Let $-M$ be the largest negative weight. For each vertex, add $M$ to each arc leaving it, so that all edges become non-negative. Now run the algorithm we gave in class.
Show that this is optimal using dual-fitting. But now use the LP equality constraint $\sum_{e \in \partial^+_v} x_e = 1$, and don’t replace it by a weaker inequality. (Do you see why not?)
As always, feel free to ask questions in office hours, on piazza, and in lecture! See you Friday.