One of the first polynomial-time algorithms for balanced assignment was the Hungarian algorithm. It is a global algorithm – it is based on improving a matching along augmenting paths (alternating paths between unmatched vertices). Its run-time complexity, when using Fibonacci heaps, is , where m is a number of edges. This is currently the fastest run-time of a strongly polynomial algorithm for this problem. If all weights are integers, then the run-time can be improved to , but the resulting algorithm is only weakly-polynomial. If the weights are integers, and all weights are at most C (where C>1 is some integer), then the problem can be solved in weakly-polynomial time in a method called weight scaling.
One of the first polynomial-time algorithms for balanced assignment was the Hungarian algorithm. It is a global algorithm – it is based on improving a matching along augmenting paths (alternating paths between unmatched vertices). Its run-time complexity, when using Fibonacci heaps, is , where m is a number of edges. This is currently the fastest run-time of a strongly polynomial algorithm for this problem If all weights are integers, then the run-time can be improved to , but the resulting algorithm is only weakly-polynomial If the weights are integers, and all weights are at most C (where C>1 is some integer), then the problem can be solved in weakly-polynomial time in a method called weight scaling.