Example 1: Hungarian method
A building firm possesses four cranes each of which has a distance(km) from four different construction sites as shown in the table:
Construction site #
| | | 1 | 2 | 3 | 4 |
| Crane # | 1 | | 90 | 75 | 75 | 80 |
| 2 | | 35 | 85 | 55 | 65 |
| 3 | | 125 | 95 | 90 | 105 |
| 4 | | 45 | 110 | 95 | 115 |
Place the cranes (one for each construction sites) in such a way that the overall distance required for the transfer is as small as possible.
Solution:
The cost matrix is
 |
90 | 75 | 75 | 80 |  |
| 35 | 85 | 55 | 65 |
| 125 | 95 | 90 | 105 |
| 45 | 110 | 95 | 115 | |
|
| |  | |
1. step: |
| From each row, we find the row minimum |
| and subtract it from all entries on that row. | |
|
| => | |  |
15 | 0 | 0 | 5 |  |
| 0 | 50 | 20 | 30 |
| 35 | 5 | 0 | 15 |
| 0 | 65 | 50 | 70 | |
|
| |  | |
2. step: |
| From each column, we find the column minimum |
| and subtract it from all entries on that column. | |
|
| => | |  |
15 | 0 | 0 | 0 |  |
| 0 | 50 | 20 | 25 |
| 35 | 5 | 0 | 10 |
| 0 | 65 | 50 | 65 | |
|
| |  | |
3. step: |
| We draw lines across rows and columns in such a way that all zeros are covered and that the minimun |
| number of lines have been used
(in this case lines across the 1st and the 3rd row and across the 1st column).
| |
|
4. step: A test for optimality;
If the number of lines just drawn is n (number of rows of the cost matrix), we are done.
If the number of lines < n, we go to step 5.
Now the number of lines is 3 < n = 4.
5. step:
We find the smallest entry which is not covered by the lines, which in this case is the (2,3)-entry 20, and subtract
it from each entry not covered by the lines. We also add it to each entry which is covered by a vertical and a horizontal line.
Now we can go back to step 3.
| => | |  |
35 | 0 | 0 | 0 |  |
| 0 | 30 | 0 | 5 |
| 55 | 5 | 0 | 10 |
| 0 | 45 | 30 | 45 | |
|
| |  | |
3. step: |
| Draw lines across zeros |
| (1st and 3rd column, 1st row) | |
|
| |  | |
4. step: |
| Number of lines = 3 < n> |
| => Step 5 and then Step 3 (smallest entry = 5) | |
|
| => | |  |
40 | 0 | 5 | 0 |  |
| 0 | 25 | 0 | 0 |
| 55 | 0 | 0 | 5 |
| 0 | 40 | 30 | 40 | |
|
| |  | |
3. step: |
| Draw lines across zeros |
| (1st and 3rd column, 1st row) | |
|
| |  | |
4. step: |
| Number of lines = 4 = n> |
| => We are done. | |
|
0's positions determine the possible combinations. We have two choices.
Solution:
Crane1 - Constuction site4, Crane2 - Constuction site3, Crane3 - Constuction site2, Crane4 - Constuction site1 ( => overall distance 275 km)
OR
Crane1 - Constuction site2, Crane2 - Constuction site4, Crane3 - Constuction site4, Crane4 - Constuction site1 ( => overall distance 275 km)
Go back to theory