munkres
munkres copied to clipboard
Implement check to prevent infinite loop cases
This code introduces a check to prevent infinite loop cases. In the test case added in 'test_unsolvable', the software looped infinitely rather than raising an error. I tested this and found that the error was occurring after the cost_matrix had been padded.
There is a further edge case where, in step 4, the only uncovered values are disallowed. The system defaults to a minval
of sys.maxsize
, which it then tries to take away from all the disallowed objects. It fails, but then loops through this process again, infinitely. I cannot find a small reproducable case for this, but have tried it with my own failing matrix (500 by 400 items)
This seems to fix #28
@bmc might you have time to take a look at this?