Assignment problem

From Wikipedia, the free encyclopedia Jump to: navigation, search 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.

y y y y y

1 Algorithms and generalizations 2 Example 3 Formal mathematical definition 4 See also 5 Further reading

[edit] Algorithms and generalizations
The Hungarian algorithm is one of many algorithms that have been devised that solve the linear assignment problem within time bounded by a polynomial expression of the number of agents. 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. If the cost function involves quadratic inequalities it is called the quadratic assignment problem.

However. so that the cost function is written down as: The problem is "linear" because the cost function to be optimized as well as all the constraints contain only linear terms. is minimized. or maximizing profit rather than minimizing cost. with a cost of 0 for the taxi assigned to it. A and T. Then a fourth dummy task can be invented. together with a weight function C : A × T Find a bijection f : A T such that the cost function: R. The assignment problem can then be solved in the usual way and still give the best solution to the problem. Usually the weight function is viewed as a square real-valued matrix C.[edit] Example Suppose that a taxi firm has three taxis (the agents) available. and three customers (the tasks) wishing to be picked up as soon as possible. of equal size. In the above example. Similar tricks can be played in order to allow more tasks than agents. The problem can be expressed as a standard linear program with the objective function subject to the constraints . tasks to which multiple agents must be assigned (for instance. so for each taxi the "cost" of picking up a particular customer will depend on the time taken for the taxi to reach the pickup point. perhaps called "sitting still doing nothing". the assignment problem can be made rather more flexible than it first appears. but still only three customers. [edit] Formal mathematical definition The formal definition of the assignment problem (or linear assignment problem) is Given two sets. The firm prides itself on speedy pickups. The solution to the assignment problem will be whichever combination of taxis and customers results in the least total cost. a group of more customers than will fit in one taxi). suppose that there are four taxis available.

James Munkres reviewed the algorithm in 1957 and observed that it is (strongly) polynomial. search The Hungarian method is a combinatorial optimization algorithm which solves the assignment problem in polynomial time and which anticipated later primal-dual methods. however Edmonds and Karp. and the second constraint requires that every task is assigned exactly one agent. . The variable xij represents the assignment of agent i to task j. taking value 1 if the assignment is done and 0 otherwise. This formulation allows also fractional variable values. This is because the constraint matrix is totally unimodular. and independently Tomizawa noticed that it can be modified to achieve an O(n3) running time. Ford and Fulkerson extended the method to general transportation problems. Hungarian algorithm From Wikipedia. The first constraint requires that every agent is assigned to exactly one task. who gave the name "Hungarian method" because the algorithm was largely based on the earlier works of two Hungarian mathematicians: Dénes K nig and Jen Egerváry. and published posthumously in 1890 in Latin. In 2006.[1] Contents [hide] y y y y y y y 1 Layman¶s Explanation 2 Setting 3 The algorithm in terms of bipartite graphs 4 Matrix interpretation 5 Bibliography 6 References 7 External links . the free encyclopedia Jump to: navigation. It was developed and published by Harold Kuhn in 1955. .for for for . Since then the algorithm has been known also as Kuhn-Munkres algorithm or Munkres assignment algorithm. The time complexity of the original algorithm was O(n4). it was discovered that Carl Gustav Jacobi had solved the assignment problem in the 19th century. but there is always an optimal solution where the variables take integer values.

1 Implementations [edit] Layman¶s Explanation Say you have three workers: Jim. when applied to the above table would give us the minimum cost it can be done with: Jim cleans the bathroom. What¶s the best (minimumcost) way to assign the jobs? First we need a matrix of the costs of the workers doing the jobs. We want to find a perfect matching with minimum cost. Steve and Alan.o 7.[2] The algorithm is easier to describe if we formulate the problem using a bipartite graph. T. [edit] The algorithm in terms of bipartite graphs . another sweep the floors & the third wash the windows.j). It can be seen that the cost of each perfect matching is at least the value of each potential. We have a complete bipartite graph G=(S. the problem can be altered to fit the setting by replacing each cost with the maximum cost subtracted by the cost. The cost of a perfect matching in Gy (if there is one) equals the value of y. Steve sweeps the floors and Alan washes the windows. If the goal is to find the assignment that yields the maximum cost. Clean bathroom Sweep floors Wash windows $1 $2 $3 $3 $3 $3 $2 Jim Steve $3 Alan $3 Then the Hungarian algorithm. The Hungarian method finds a perfect matching and a potential with equal cost/value which proves the optimality of both. and each edge has a nonnegative cost c(i. where the element in the i-th row and j-th column represents the cost of assigning the j-th job to the i-th worker. In fact it finds a perfect matching of tight edges: an edge ij is called tight for a potential y if y(i) + y(j) = c(i. We have to find an assignment of the jobs to the workers that has minimum cost.j). The value of potential y is . [edit] Setting We are given a nonnegative n×n matrix. Let us call a function a potential if for each . E) with n worker vertices (S) and n job vertices (T). You need to have one of them clean the bathroom. Let us denote the subgraph of tight edges by Gy.

The resulting y is still a potential. either we modify y so that its value increases. but it still contains M. then reverse the orientation of a directed path in Thus the size of the corresponding matching increases by 1. [edit] Matrix interpretation Given n workers and tasks. . there are at most n potential changes (since Z increases every time). This can be computed by breadth-first search. We repeat these steps until M is a perfect matching. Increase y by on the vertices of and decrease y by on the vertices of . then let from RS to RT.During the algorithm we maintain a potential y and an orientation of Gy (denoted by ) which has the property that the edges oriented from T to S form a matching M. and an n×n matrix containing the cost of assigning each worker to a task. By the definition of the set Z of vertices reachable from RS increases (note that the number of tight edges does not necessarily increase). y is 0 everywhere. First the problem is written in the form of a matrix as given below . let and be the vertices not covered by M (so RS consists of the vertices in S with no incoming edge and RT consists of the vertices in T with no outgoing edge). and in a phase where M is unchanged. The time needed for a potential change is O(n2). The graph Gy changes. in which case it gives a minimum cost assignment. Initially. In each step. and all edges are oriented from S to T (so M is empty). The running time of this version of the method is O(n4): M is augmented n times. find the cost minimizing assignment. In a general step. Let Z be the set of vertices reachable in from RS by a directed path only following edges that are tight. We are done if M is a perfect matching. We maintain the invariant that all the edges of M are tight. is positive because there are no tight edges between and . If is empty. We orient the new edges from S to T. or modify the orientation to obtain a matching with more edges. If is nonempty.

0 a2' a3' a4' b1' b2' b3' 0 0 c2' c3' c4' d1' 0 d3' d4' In the above case. This procedure is repeated for all rows. Step 1 Then we perform row operations on the matrix. as is the case in for the matrix below. Also note that no one does task 3 efficiently. a2. 3 and 4. b. Both can't be assigned the same task. 3 and 4) 0 a2' a3' a4' . 4 respectively. The same holds true for the other symbols as well.e. no assignment can be made. the minimum element in each column is subtracted from all the elements in that column) and then check if an assignment is possible. so each worker can perform only one task. Step 3 In most situations this will give the result. c and d are the workers who have to perform tasks 1. 3. Now we try to assign tasks to agents such that each agent is doing only one task and the penalty incurred in each case is zero. To overcome this. a1. 2. a4 denote the penalties incurred when worker "a" does task 1. Note that task 1 is done efficiently by both agent a and c. To do this. a3. but if it is still not possible to assign then the procedure described below must be followed. 2. we repeat the above procedure for all columns (i. Step 2 Sometimes it may turn out that the matrix at this stage cannot be used for assigning. Initially assign as many tasks as possible then do the following (assign tasks in rows 2. We now have a matrix with at least one zero per row.where a. 0 a2' 0' a4' b1' b2' b3' 0' 0' c2' c3' c4' d1' 0' d3' d4' The zeros that are indicated as 0' are the assigned tasks. This is illustrated below. This will lead to at least one zero in that row (We get multiple zeros when there are two equal elements which also happen to be the lowest in that row). the lowest of all ai (i belonging to 14) is taken and is subtracted from each element in that row. The matrix is square.

The procedure is repeated until you are able to distinguish among the workers in terms of least cost. Repeat this till a closed loop is obtained. Step 4 From the elements that are left. this is when the minimum number of lines used to cover all the 0's is equal to the max(number of people.b1' b2' b3' 0' 0' c2' c3' c4' d1' 0' d3' d4' Mark all rows having no assignments (row 1). × 0 a2' a3' a4' × b1' b2' b3' 0' 0' c2' c3' c4' × d1' 0' d3' d4' Now draw lines through all marked columns and unmarked rows. find the lowest value. number of assignments). Repeat the procedure (steps 1 -4) till an assignment is possible. assuming dummy variables (usually the max cost) are used to fill in when the number of people is greater than the number of assignments. Basically you find the second minimum cost among the two rows. . × 0 a2' a3' a4' × b1' b2' b3' 0' 0' c2' c3' c4' × d1' 0' d3' d4' The aforementioned detailed description is just one way to draw the minimum number of lines to cover all the 0's. Then mark all columns having zeros in that row(s) (column 1). Then mark all rows having assignments in the given column (row 3). Subtract this from the marked rows. Other methods work as well. and add this to the marked columns.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.