Any agent can be assigned to perform any task, incurring some cost that may vary depending on the agent-task assignment.
It is required to perform all tasks by assigning exactly one agent to each task and exactly one task to each agent in such a way that the total cost of the assignment is minimized.
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.
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.