Hungarian Assignment Problem
It is a specialization of the maximum weight matching problem for bipartite graphs.In its most general form, the problem is as follows: The problem instance has a number of agents and a number of tasks.When a number of agents and tasks is very large, a parallel algorithm with randomization can be applied.The problem of finding minimum weight maximum matching can be converted to finding a minimum weight perfect matching.Similar adjustments can be done in order to allow more tasks than agents, tasks to which multiple agents must be assigned (for instance, a group of more customers than will fit in one taxi), or maximizing profit rather than minimizing cost.The formal definition of the assignment problem (or linear assignment problem) is The problem is "linear" because the cost function to be optimized as well as all the constraints contain only linear terms.Each edge (i,j), where i is in A and j is in T, has a weight .
These weights should exceed the weights of all existing matchings to prevent appearance of artificial edges in the possible solution.
A naive solution for the assignment problem is to check all the assignments and calculate the cost of each one.
This may be very inefficient since, with n agents and n tasks, there are n! Many algorithms have been developed for solving the assignment problem in time bounded by a polynomial of n.
The assignment problem is a special case of the transportation problem, which is a special case of the minimum cost flow problem, which in turn is a special case of a linear program.
While it is possible to solve any of these problems using the simplex algorithm, each specialization has more efficient algorithms designed to take advantage of its special structure.