Lecture #9: The Hungarian Algorithm

About the Hungarian algorithm today:

Indeed, as several of you pointed out, we could have changed the definition of utility to make it u_{ib}(p) := v_{ib} - p_i, and not u_{ib}(p) := \max(v_{ib} - p_i, 0). Now a buyer could have negative utility for their most preferred item as well, but that’s OK. The argument for termination was that the total dual decreases at each step (this remains unchanged), and it is bounded below by the primal value (which is also unchanged). The proof is even cleaner.

Other advantages: now each buyer always has degree at least one in H(p), so we don’t need to adjust the prices (or raise prices on the most constricted set), we just raise prices on any constricted set. This change makes the preference graph H(p) be invariant to adding a constant to every item’s price, so H(p) when the prices are say M for all items, is the same as the preference graph when all the items have price zero.

The non-negative utility makes more sense in the max-weight matching problem, where we don’t enforce getting a perfect matching. There the dual variables u_b indeed have to be non-negative — which is where I first saw the algorithm, hence its presence in my presentation today.

Re Aram’s question about LPs and duals: I will post something to help you quickly see how to write and mechanically write LP duals. Watch this space, and the next lecture. A good reference is Section 6.2 of the Matousek-Gaertner book (CMU link only), which gives you rules of thumb on how to take duals. And if you haven’t seen the basic idea behind duality, definitely read over the introductory text in Section 6.1! Finally, I find the proofs (in the following sections) are very useful to give more intuition for why strong duality holds.

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s