The assignment problem is one of the fundamental combinatorial optimization problems in the branch of optimization or operations research in mathematics. It consists of finding a maximum weight matching in a weighted bipartite graph. In its most general form, the problem is as follows:
There are a number of agents and a number of tasks. 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 in such a way that the total cost of the assignment is minimized. If the numbers of agents and tasks are equal and the total cost of the assignment for all tasks is equal to the sum of the costs for each agent (or the sum of the costs for each task, which is the same thing in this case), then the problem is called the linear assignment problem. Commonly, when speaking of the assignment problem without any additional qualification, then the linear assignment problem is meant. Example:
A machine shop currently has three jobs A,B,C to be done on three machines W,X,Y. Any one of the jobs can be processed completely on any one of the machines, and the assignment of jobs to machines must be on a one-on-one basis. Find the job assignments that will minimize the total costs. The cost for each job-machine assignment are given on table. | |Machines | |Jobs |W |X |Y | |A |P250 |P310 |P350 | |B |150 |200 |240 | |C...