Chech How To Include That Graph Abranch-And-bound
Chech How To Include That Graph Abranch-And-bound
Assignment Problem
Alternative optimal solutions can give more choice for practical decision making. Therefore, the
provision of special methods for finding alternative optimal solutions is an important component part
of the solution techniques for optimization models. The aim of this paper is to present a branch-and-
bound algorithm for finding all optimal solutions of the linear assignment problem. Numerical
experimental results are also given.
Key words: linear programming; assignment problem; alternative optimal solutions; branch-and-bound
Introduction
minimize
subject to
where C= (cij) is a given n×n cost matrix, (xij) is the solution matrix. The linear assignment problem is a
special type of linear programming problem. However, owing to its special structure, it can be solved
efficiently by the Hungarian method 1, or some other improved methods proposed later on by Hung and
In practical decision making, alternative optimal solutions of optimization models are sometimes
very useful. When either the simplex method is used to solve a linear programming problem, or the
optimal solutions exist, they can be found by using special methods. However, to our knowledge there
is little discussion about finding alternative optimal solutions for the assignment problem in the
literature. Murty6 gives an algorithm for ranking all the assignments in the order of increasing cost.
*
Correspondence: Z Fu, School of Traffic and Transportation Engineering, Central South University
at Railway Campus, Changsha 410075, P.R. China. E-mail: [email protected]
1
Enlightened by some of the ideas from Murty6, we present, in this paper, a branch-and-bound algorithm
Problem Analysis
As we know from the Hungarian method, a new matrix (bij) can be obtained by subtracting the
smallest element in each row (column) of cost matrix (cij) from every element in that row (column). If
there are n independent zeroes in (bij), that is, there is a permutation (j1, ..., jn) of (1, 2, ... , n), with
assignment problem. Obviously, if there are multiple permutations ( j1, ... , jn) of (1, 2, ... , n), resulting
For convenience let represent a feasible solution of the assignment problem, where the
value is 1 for every variable, j1, ... , jn is a permutation of 1, 2, ... , n. The values of other variables
If at any stage of the process for finding alternative optimal solutions we wish to fix a variable xij =
where m1, … , ml and p1, … , pl are permutations of a set of l numbers between 1 and n then let
Delete rows i1 , ... , ir and columns j1 , ... , jr from C accordingly, and replace elements (m1 , p1), ... , (ml ,
pl) in C by ¥ (or a very large positive number), then a sub-matrix of cost CB, with the size of (n-
r)(n-r), can be obtained. Solve the assignment problem with CB as its cost matrix. Let the optimal
solution of the sub-problem be , where t1, … , tn-r and s1, … , sn-r are permutations of a set of n-r
We can partition the solution space into the following (n-r-1) different branches:
2
…
where in Bi , i=1,2,…, n-r-1, are those variables whose value is predetermined. Similarly, by the above
method, a feasible solution corresponding to the original problem can be found for every branch.
distinct due to the way the solution space has been partitioned. Furthermore the objective function
values of these solutions must be greater than or equal to the objective function value of XB.
Algorithm
Since the assignment problem has only a finite number of feasible solutions, it is natural to consider
using some kind of enumeration procedure for finding all optimal solutions. The branch-and-bound
technique is an efficient enumeration procedure that uses bounds so that only a fraction of the feasible
The basic idea of the branch-and-bound algorithm for finding all optimal solutions of the
assignment problem is the following. The first step is to find an optimal solution. Then fix the
assignment for any row or column where there is only one zero in the final matrix. This in turn will
make other zeroes unselectable, which may enable other assignments to be fixed, etc. This process
continues until all rows and columns without a fixed assignment contain two or more selectable zeroes.
Then, for these rows and columns, partition the optimal solution into branches and solve every branch
respectively. If the objective function value of a solution at a branch is equal to that of the optimal
solution, then a new optimal solution has been found; otherwise the branch is excluded from further
consideration. Apply the procedure to every newly found optimal solution until no more optimal
The algorithm for finding all optimal solutions of the assignment problem is given below. In this
description, the variable k counts the number of alternative solutions that have been found, while count
counts the number of alternative solutions tested to see whether the partition of the solution space that
and Z* be its corresponding objective function value. Set k :=1, LIST :={X(1)}, count := 0.
3
Step 2 Set count := count + 1..Suppose that
where are the variables that may have been given predetermined values (if any). Fix all assignments
that have to be contained in any optimal solution (see above) including the predetermined values. If all
Step 3 Suppose that we have fixed (r+h) assignments in this way, that is: . Then there
remain (n-r-h) rows/columns with at least two zeroes. For these rows and columns, partition the
Solve the assignment problem at every branch. If the objective function value of the solution at any
branch is equal to Z*, then this solution is a new optimal solution,; set k := k + 1, let the solution be
X(k), let LIST := LIST {X(k)} and update the information on what variables have their values
Step 4 If k = count, i.e., there is no new optimal solution available for branching further, it
indicates that all optimal solutions have been found. They are X(1) , X(2) , ... , X(k) respectively, a total
Numerical Example
is no row or column with only one zero in the final matrix, so no assignment can be fixed. Partition
X(1) into branches and solve the problem at every branch. We have
4
It can be seen that we obtain new optimal solutions at branch B1, B2 and B3. Branches B4 and B5 have
been fathomed, which are then excluded from further consideration. Continuing the branching
procedure for B1, B2 and B3, at branch B1 and B3, there is no row or column with at least two zeroes in
the final matrix, so they have also been fathomed. But at branch B2, there are three rows/columns with
at least two zeroes, and row 2 and 5 have only one zero, so let x25=x54=1, and partition the solution
space into two branches:
Another optimal solution is obtained at branch B2. Take branch X(5) for further consideration, but no
more optimal solutions can been found. Therefore, there are 5 optimal solutions for the problem.
Computational Results
This branch-and-bound algorithm has been programmed using Turbo Pascal, based on Wright’s code
for speeding up the Hungarian method5. In Table 1 and Figure 1 we present the average computational
time for 200 problems of each size (n=50, 100 and 150 respectively) generated randomly. The smaller
the difference between the smallest and largest cij (the more narrow the range of cij), the more
alternative optimal solutions a problem will usually have. For problem size n=50, we generated 200
problems with cij <30~50 (the upper limit of the range varied between 30 and 50), for n=100, cij
<120~200, for n=150, cij <150~200. However, the number of alternative optimal solutions was
observed after solving the problems. The computational times reported are seconds on a Pentium(R)
PC running at 166MHz with 64MB RAM. The results show that in practice the speed of the algorithm
is approximately linearly related to the number of alternative solutions over the range tested.
5
Table 1 Computational time for problems with different size and range of k
Range of k
Size 1 2-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90-99
50 0.5 1.5 3.9 6.4 9.3 13.5 15.1 17.8 21.1 22.3 23.8
100 4.7 14.1 39.2 61.8 82.2 123.4 140.6 158.2 183.5 207.0 228.2
150 16.7 61.6 128.9 195.6 297.9 407.5 493.8 556.4 625.3 652.3 759.2
Fig.1 Computational time for problems with different size and range of k
Conclusions
A branch-and-bound algorithm has been described that will find all solutions of the linear assignment
problem. The same branch-and-bound framework can be used with any method for solving the linear
assignment problem.
Further research might consider whether introducing further rules for determining which assignments
are fixed when partitioning the solution space would lead to further efficiencies.
References
1 Kuhn HW (1955). The Hungarian method for the assignment problem. Naval Res. Logist. Q. 2: 83-
97.
2 Hung MS, Rom WO (1980). Solving the assignment problem by relaxation. Opns Res. 28: 969-982.
6
3 Karp RM (1980). An algorithm to solve the mn assignment problem in expected time O(mnlogn).
Networks. 10:143-152.
4 Jonker R, Volgenant AA (1987). Shortest augmenting path algorithm for dense and spare-linear
5 Wright MB (1990). Speeding up the Hungarian algorithm. Computers Opns Res. 17(1): 95-96.
6 Murty Katta G (1968). An algorithm for ranking all assignments in order of increasing cost. Opns