Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing the Hungarian Method as described by Papadimitriou & Steiglitz

If you've implemented the Hungarian Method exactly as given in Figure 11-2 of Combinatorial Optimization: Algorithms and Complexity, did you succeed without altering the pseudo-code in any [significant] way? To be specific, I'm referring to the corrected 1998 Dover edition, which is up-to-date with respect to the errata file dated October 2000 given on Steiglitz's website.

An acceptable answer would be along the lines of, "I implemented it, and it works perfectly." Or, "I implemented it, but it needed such-and-such on line so-and-so." In the former case, I'd know to continue the already-extensive delving and debugging of my code. (I'm going to do that anyway, though.) In the latter case, I'd have a bit of insight that might make my own implementation work correctly.

If you've implemented the Hungarian Method, but did not use CO:AaC or did not use C without third-party libraries, you are still more than welcome to offer an answer. In fact, if you're a super-genius who can just examine Figure 11-2 and point out an error of omission or commission by P&S, I'd like to hear from you, and I bet they would, too :-)

Edit: Here's the book on Google Books. For the Hungarian Method, see pages 251-252. For the pseudo-code for the augment() procedure, see page 224. For the explanation of the data structures, see the surrounding pages. Ideally you have the physical book, as the Google Books version is predictably partial.

Update:

After more thorough testing of my implementation and more thorough examination of the book's pseudo-code and text, I think I've resolved some issues with the pseudo-code itself. There were a couple of new errata. I've been in touch with Prof. Steiglitz, who maintains the errata file at his Princeton homepage, and he has said that he will review my notes when he has more time at the end of the semester in December January. (Sorry to anyone who'd been expecting resolution by year's end. I had assumed December was end-of-semester for Princeton, but it's actually January.)

Update:

Prof. Steiglitz has posted my code-&-documentation package to his Princeton webspace. See my answer below for a link.

like image 714
William Avatar asked Nov 05 '22 07:11

William


1 Answers

It's been quite a while since I opened this question, and I haven't heard back from Prof. Steiglitz (which is totally understandable, as I'm sure he's busy virtually 24/7, if not with work then with happier things than verifying some stranger's alleged bugfixes :-) ), so I'm going to go ahead and post my alleged errata that, when accounted for, allow the P&S Figure 11-2 pseudo-code to be implemented to produce correct output.

[...]

And finally, for anyone interested, I've just posted a code-&-documentation package of my own implementation here on share1t.com. (Fair warning: It'll only be up there for 15 days without a download. After that, they take down submitted files.) This package includes a much more readable PDF version (readably and properly typeset with pdflatex) of the errata addendum I give above.

And... I guess that's all. I hope this is useful.

Update:

Prof. Steiglitz has posted my code-&-documentation package at his Publications webpage.

like image 125
William Avatar answered Nov 09 '22 11:11

William