Content deleted Content added
No edit summary Tags: Reverted Visual edit |
rmv long term sock edits |
||
Line 1:
{{Short description|Combinatorial optimization problem}}
[[File:hungarian_algorithm_unbalanced_assignment_problem_example.svg|thumb|upright=2|Worked example of assigning tasks to an unequal number of workers using the [[Hungarian method]]]]
The '''assignment problem''' is a fundamental [[combinatorial optimization]] problem
:The problem instance has 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 as many tasks as possible by assigning at most one agent to each task and at most one task to each agent, in such a way that the ''total cost'' of the assignment is minimized.
Alternatively, describing the problem using graph theory:
:The assignment problem consists of finding, in a [[weighted graph|weighted]] [[bipartite graph]], a [[Matching (graph theory)|matching]] of a given size, in which the sum of weights of the edges is minimum.
If the numbers of agents and tasks are equal, then the problem is called ''balanced assignment''. Otherwise, it is called ''unbalanced assignment''.<ref name=":0">{{Cite web|url=https://www.labs.hpe.com/techreports/2012/HPL-2012-40.pdf|title=On minimum-cost assignments in unbalanced bipartite graphs|last=Lyle Ramshaw, Robert E. Tarjan|date=2012|website=HP research labs}}</ref> If 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 ''linear assignment''. Commonly, when speaking of the ''assignment problem'' without any additional qualification, then the ''linear balanced assignment problem'' is meant.
|