0% found this document useful (0 votes)
11 views

Chech How To Include That Graph Abranch-And-bound

branch and bound method

Uploaded by

jairos shinzeh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Chech How To Include That Graph Abranch-And-bound

branch and bound method

Uploaded by

jairos shinzeh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 7

A Branch-and-bound Algorithm for Finding All Optimal Solutions of the

Assignment Problem

Z Fu1*, R Eglese2 and M Wright2


1
Central South University, Changsha, P.R. China; and 2Lancaster University, Lancaster, UK

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

The well known linear assignment problem is

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

Rom2, Karp3, Jonker and Volgenant 4, and Wright5.

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

transportation simplex method is applied to the solution of a transportation problem, if alternative

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

for finding all optimal solutions of the assignment problem.

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

, then { , other xij = 0} is an optimal solution of the

assignment problem. Obviously, if there are multiple permutations ( j1, ... , jn) of (1, 2, ... , n), resulting

in , then alternative optimal solutions of the assignment problem exist.

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

unmentioned are all 0.

If at any stage of the process for finding alternative optimal solutions we wish to fix a variable xij =

0, then it is predetermined, denoted by , and listed into the solution vector.

If both and are predetermined, r<n, r+1 l n, and

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

numbers between 1 and n Then

is a feasible solution of the original problem.

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.

Among those solutions we have , but each solution is

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

solutions actually need to be evaluated.

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

solutions can be found.

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

contains them has more alternative solutions.

Step 1 Find an optimal assignment by any available method1-5. Let it be

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

n assignments are now fixed, go to Step 4, otherwise go to Step 3.

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

optimal solution X(k) into branches:

if m<n, q=m; otherwise q=n-1.

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

predetermined in this solution. Go to Step 4.

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

of k optimal solutions. Otherwise return to Step 2.

Numerical Example

Find all optimal solutions for the assignment problem with

An optimal assignment is , which has a cost of Z*= 0. There

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.

Acknowledgements ― This research was supported by NSFC (70071003).

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 mn 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

assignment problems. Computing. 38: 325-340.

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

Res. 16: 682-687.

You might also like