Closed zuliani99 closed 1 year ago
Yeah, unfortunately this algorithm appears to have some major bugs. If you look in the list of issues, you'll find it mentioned several times.
@yi-ji
sorry about that. I'll find time to see how I can get it fixed
@yi-ji , thanks. I recommend start by adding new unit tests based on the failures reported here in the issues, open a PR with those failing tests and mention it here. I'll try to have a quick look over the implementation to see if anything obviously wrong stands out.
@zuliani99 Thank you for using the algorithm! With all due respect, the issue you said could not be reproduced. (The algorithm does have some glitches, I've started looking into it lately; but the algorithm solved your example correctly).
The algorithm output a maximum weighted matching of weight sum 112
:
{1, 5} // weight = 34
{2, 7} // weight = 42
{3, 6} // weight = 36
I've manually verified that is correct, and the brute-force search also gave the same result. Here is a test code: https://gist.github.com/yi-ji/0d4d149a52f8137495bb7339e7c55435
Please check the implementation of your Auction algorithm (your output matching and the weight sum 104
is not the maximum weighted matching in this example), and let me know if you have any questions, or we can close this as not a bug. Thank you!
Thanks for looking into it, @yi-ji !
I'm trying to make a comparison of the maximum_weighted_matching and an implementation of the auction algorithm. The problem is that when I run the MWM on a not fully connected bipartite graph like the example bellow it does not solve correctly the assignemt problem whereas the AU does.