THE AUCTION ALGORITHM FOR THE ... PROBLEM LIDS-P-1850 February 1989

advertisement
LIDS-P-1850
February 1989
THE AUCTION ALGORITHM FOR THE TRANSPORTATION
PROBLEM *
by
Dimitri P. Bertsekas** and David A. Castanon***
Abstract
The auction algorithm is a parallel relaxation method for solving the classical assignment
problem. It resembles a competitive bidding process whereby unassigned persons bid
simultaneously for objects thereby raising their prices. Once all bids are in, objects are awarded to
the highest bidder. This paper generalizes the auction algorithm to solve linear transportation
problems. The idea is to convert the transportation problem into an assignment problem, and then to
modify the auction algorithm to exploit the special structure of this problem. Computational results
show that this modified version of the auction algorithm is very efficient for certain types of
transportation problems.
* Supported by the U.S. Army Strategic Command
** Laboratory for Information and Decision Systems, M.I.T., Cambridge, MA 02139
*** Alphatech, Inc., 111 Middlesex Turnpike, Burlington, MA 01803
2
1.
Introduction
In this paper we propose a new relaxation algorithm for linear transportation problems. The
algorithm resembles classical coordinate descent, Gauss-Seidel, and Jacobi methods for solving
unconstrained nonlinear optimization problems or systems of nonlinear equations., It-modifies.the
dual variables (node prices) either one at a time (Gauss-Seidel version) or all at once (Jacobi
version) using only local node information, while aiming to improve the dual cost. It is well suited
for implementation on massively parallel machines.
The first relaxation algorithm for linear network flow problems is the auction algorithm for
the classical assignment problem proposed by the first author in 1979 [3] and further discussed in
[4], [8], [13]. The algorithm operates like an auction whereby unassigned persons bid
simultaneously for objects thereby raising their prices. Once all bids are in, objects are awarded to
the highest bidder. The algorithm can also be interpreted as a Jacobi - like relaxation method for
solving a dual problem. The variables of the dual problem may be viewed as the prices of the
objects and are adjusted upwards as the algorithm progresses. Just as in a real auction, a person's
bid is required to be higher than the current price of the object and this provides the mechanism for
increasing the object prices. The algorithm makes gradual progress towards a full assignment of
persons to objects as the prices of some of the assigned objects become sufficiently high, so that
unassigned objects become attractive and receive bids.
Computational results [10] show that for large sparse problems, the auction algorithm is
superior to the best existing assignment methods even without the benefit of parallelism. The
reason for this can be traced to the complexity estimate O(NAlog(NC)) for an efficient
implementation of the auction algorithm derived in [8], [10]; here N is the number of persons, A is
the number of arcs, and C is the maximum absolute value of arc cost coefficient. Competing
methods [1], [2], [14], [15], [18], [19], [20], [23], [24], including the Hungarian method have
complexity O(N3 ), so for large sparse problems the complexity of the auction algorithm is superior.
This paper extends the auction algorithm to solve linear transportation problems. The basic
idea is to convert the transportation problem into an assignment problem by creating multiple copies
of persons (or objects) for each source (or sink respectively), and then to modify the auction
algorithm to take advantage of the presence of the multiple copies. Section 2 describes the basic
form of the auction algorithm. Section 3 considers a variation of the auction algorithm that takes into
account "similar" objects. (Roughly, two objects are called similar if every person to whom they
can be assigned considers them as equally valuable.) We also consider a variation of the algorithm
3
that takes into account "similar" persons. (Roughly, two persons are called similar if each person
assigns the same value to every object as the other person.) The variation of the auction algorithm
that takes into account similar objects is useful, among other things, for handling asymmetric
assignment problems, where there are M persons and N objects with M>N. We can convert such
problems to assignment problems with an equal number of persons and objects by introducing- M-N
additional similar objects, each offering equal value (e.g. zero) to all persons. The auction algorithm
that takes into account both similar persons and similar objects can be restructured so that it solves
efficiently transportation problems. This is described in Sections 4 and 5, and computational results
showing the effectiveness of the corresponding transportation algorithm are given in Section 6.
4
2.
The Auction Algorithm for the Assignment Problem
Consider N persons wishing to divide among themselves N objects. We number persons
and objects as 1, 2, ..., N. For each person i there is a nonempty subset A(i) of objects that can be
assigned to i. An assignmentS is a (possibly empty) set of person-object pairs (ij) such that:
a) je A(i) for all (i,j)e S
b) For each person i there is at most one pair (i,j)e S
c) For each object j there is at most one pair (i,j)e S.
A complete assignment is an assignment containing N pairs (i.e. every person is assigned to a
distinct object). In the context of a given assignment S, we say that person i is assigned if there
exists an object j such that (i,j)e S; otherwise we say that i is unassigned. We use similar
terminology for objects. There is a given integer value aij that a person i associates with an object
je A(i). We want to find a complete assignment that maximizes
I
aij
(i,j)e S
over all complete assignments S. We call this the primal assignmentproblem and note its wellknown equivalence to the linear programming (linear network flow) problem
N
maximize
I
aijfij
i=lj A(i)
subject to
I
fij= 1,
i=l, ... , N
je A(i)
E
fij = 1, j=l, ... , N
{i I jr A(i))
o0< fij
A dual problem to the assignment problem is [13], [21], [25], [26]
5
N
minimize I
N
ri +P
i=1
j
p
jl 1
subject to r i + pj > aij, V i, and j E A(i)
The dual variable pj is called the price of j. We call the vector p with coordinates pj, j=l, ..., N a
price vector. For a given price vector p, the cost of this problem is minimized when Pi equals the
maximum value of aij - pj over je A(i). Therefore an equivalent dual problem is the unconstrained
minimization problem
minimize q(p)
subject to no constraints on p
(1)
q(p) = I i maxjEA(i) {aij -Pj} + Ij Pj
(2)
where
For a given price vector, we define the value of an objectjeA(i)for a person i by
vij = aij - pj
The profit ri ofperson i is the maximum value of objects j E A(i), i.e.,
Ri = maxje A(i) vij
(3)
From linear programming theory we know that a complete assignment S={(i,ji) I i=l, ..., N) and a
price vector p are simultaneously primal and dual optimal respectively if and only if ......
'Ai =
maxkE A(i) {aik - Pk}
=
aij - Pj,
for each (ij) E S
that is, if and only if each person realizes his profit by being assigned to an object offering
maximum value. This is known as the complementary slackness condition.
6
A relaxation of the complementary slackness condition is to allow persons to be assigned to
objects that come within e of attaining the maximum in the profit definition (3). Formally we say
that an assignment S (not necessarily complete) and a price vector p satisfy e-complementary
slackness (e-CS) if
for each (ij) E S,
ni - e = maXkEA(i) {aik- pk} - E < a - j,
(4)
where E is a nonnegative constant. The main fact for our purposes is that a complete assignment [ji /
i=1, . . ., N} that satisfies E-CS together with some price vector p is optimal if e<11N. To see this,
consider the profits xi given by (3). Then, by adding the e-CS condition (4) over i we obtain
i. a.. >
2Z i (
I lJi
- P
i
+
Ji
)- Ne
If A* is the optimal primal value and the (equal) optimal dual value, we have using the relation
above
A
i.a..iji>
(i +p )N=q(p)
=
-N
A* - N
Therefore the assignment {ji Ii=l, .. ., N} is within Ne of being optimal. Since aij are integer, an
optimal assignment is obtained when e < 1/N.
We now describe formally the auction algorithm. We fix e > 0, and we start with some
(possibly empty) assignment and price vector satisfying e-CS. The algorithm proceeds iteratively
and terminates when a complete assignment is obtained. At the start of the generic iteration we have
an assignment S and a price vector p satisfying e-CS. At the end of the iteration, S and some prices
are updated while maintaining the e-CS condition. There are two phases in each iteration, the
bidding phase, and the assignmentphase described below:
Bidding Phase:
For each person i that is unassigned under the assignment S:,
Compute the current value vij = aij - pj of each object je A(i), find a "best" object j* having
maximum value
7
Vij* = maxj
E
A(i)
ij,
(5)
and find the best value offered by objects other than j*
Wi = maxj E A(i), j
j* Vij
(6)
(If j* is the only object in A(i) we define w i to be -o, or, for computational purposes, a number that
is much smaller than vij* .)
Compute the "bid" of person i for object j* given by
bij* = pj* + vij* - w i + £ = aij* - w i + £
(7)
(We characterize this situation by saying that person i bid for object j*, and that object j* received a
bid from person i. The algorithm works if the bid has any value between pj* + e and pj* + vij* - w i
+ c, but it tends to work fastest for the maximal choice (7). The calculation of the bid of a person is
illustrated in Fig. 1.)
8
Values vij of objects j
for personi i
-v-------
j*
ai
--
'vi : The value of j*, the best object for person i .
(equal to the profit X iof i)
- -------- w.: The value of the second best object for person i
j2F
J3
Price increment bii* - pj* implicit in the bid of
person i for its best object j*. It is equal to the
difference between the old price of j* and its
new price if the bid bij*is accepted
J4
Figure 1: Illustration of the bid of person i. The objects j* and jl that offer the best
value vij* and second best value wi , respectively, are determined. The bidding
increment b ij*- pj* is then set to the difference v ij*- wi plus C
Assignment Phase:
For each object j:
Let P(j) be the set of persons from which j received a bid in the bidding phase of the
iteration. If P(j) is nonempty increase pj to the highest bid
j := maxi p(j) bij,
(8)
remove from the assignment S any pair (ij) (if one exists), and add to S the pair (i*,j) where i* is
some person in P(j) attaining the maximum above. If P(j) is empty, pj is left unchanged.
Note that both the bidding and the assignment phases are highly parallelizable. In the
extreme case of a fine-grain parallel computing environment, where there is a processor associated
9
with each person and a processor associated with each object, all unassigned persons/processors
can compute their bids simultaneously and communicate them to the relevant objects/processors.
Those object/processors that received at least one bid can determine the highest bidder
simultaneously and communicate the changes in the current assignment and price vector to the.
relevant persons/processors.
It can be seen from (5) and (6) that vij* > wi, so from (7) we obtain bij* > pj*. Therefore,
from (8) it follows that the price increaseof an object receiving a bid during an iteration is at least e.
Furthermore, at the end of the iteration we have a new price vector that differs from the preceding
vector only in the prices of the objects that received a bid during the iteration. We also have a new
assignment that differs from the preceding one in that each object that received a bid is now
assigned to some person that was unassigned at the start of the iteration. However, the assignment
at the end of the iteration need not have more pairs than the one at the start of the iteration because it
is possible that all objects that received a bid were assigned at the start of the iteration. References
[8], [13] provide an interpretation of the iteration as a relaxation iteration whereby each price pj is
changed to a level that minimizes the dual cost along pj within e. In this way the algorithm, as
given above, may be viewed as a Jacobi type of relaxation method, since the bids of all unassigned
persons are calculated simultaneously, and the prices of objects that receive a bid are raised
simultaneously. An alternative is a Gauss-Seidel version whereby in each bidding phase, only one
unassigned person bids for an object (rather than all unassigned persons). Thus in the Gauss-Seidel
version, the price rise caused by a bid is taken into account when the next bid takes place. This
tends to speed up convergence. However the Gauss-Seidel version has a smaller potential for
parallelization than the Jacobi version. Another possibility, a hybrid between Gauss-Seidel and
Jacobi, is to require any subset of persons (including some that are assigned) to bid at any iteration.
A restiction here is that an already assigned person must bid for its already assigned object j* the
price bij* given by (7).
An important fact is that the algorithmpreserves c-CS throughoutits execution, i.e. if the
assignment and price vector available at the start of an iteration satisfy e-CS, the same is true for the
assignment and price vector obtained at the end of the iteration. To see this, suppose that object j*
received a bid from person i and was assigned to i during the iteration. Then if pj and p'j are the
object prices before and after the assignment phase we have [cf. (7), (8)]
p*= bii* = aij* -i w + £
Using this equation and the fact p'j > pj for all j, it follows that
(9)
10
aij* - p'j* = aij* - bij* = wi - e = maxjE A(i), j # j* {aijppj> maxjEA(i), j j* {aij - p'j} -
(10)
This equation implies that
aij* -
*
maxjEA(i) {aij - P'j - e
(11)
which shows that the e-CS condition (4) continues to hold after the assignment phase of an
iteration for a pair (i,j*) that entered the assignment during the iteration. Consider also any pair
(i,j*) that belonged to the assignment just before an iteration, and also belongs to the assignment
after the iteration. Then j* must not have received a bid during the iteration and we have pj* = pj*.
Therefore, (11) holds in view of the e-CS condition that holds prior to the iteration, and the fact p'j
2 pj for all j.
It has been shown in [3], and it will be shown in more generality in the next section that the
algorithm terminates in a finite number of iterations (assuming the problem is feasible, i.e., there
exists a complete assignment). As a result, if e < 1/N, then the assignment obtained upon
termination is optimal.
3. Variations of the Auction Algorithm
It is possible to apply the auction algorithm of the previous section to a transportation
problem after it has been converted to an assignment problem by replacing each source (sink) with
multiple copies of persons (objects). Unfortunately the performance of the method can be quite poor
as shown in the example of Fig. 2. Much better performance is obtained with a variation of the
auction algorithm which recognizes the special structure derived from the transportation problem.
This structure manifests itself in the presence of several "similar" persons and objects, and is.
formalized below.
PERSONS
OBJECTS
i
Initial price = 0
Here aij = C > 0 for all (i,j)
Initial price = 0
except for a33 which is 0
Initial price = 0
Figure 2: Example where the number of bidding phases is large and is
proportional to C/ E Here at each bidding phase the persons 1, 2, and 3 bid the
prices of objects 1 and 2 up by an increment £ until the time that these prices
reach the level C. This problem corresponds to a transportation problem where
persons 1 and 2 correspond to a supply node with supply equal to 2, and
objects 1 and 2 correspond to a demand node with demand equal to 2.
Given the assignment problem of the previous section, we say that two objects j and j' are
similar, and write j - j', if for all persons i=l,..., N we have
je A(i) =>
j'e A(i)
and
aij = aij'.
(12)
We say that two persons i and i' are similar, and write i - i', if for all objects j=l,..., N we have
je A(i) =
je A(i')
and
aij = ailj.
(13)
For each person (object) i, the set of all persons (objects respectively) similar to i is called the
similarity class of i, and is denoted M(i).
For a given price vector p, we define the price of the similarity class M(j) of an object j as
pj= mink M(j) pk,
j = 1, .,
M
(14)
12
Note that the profit of a person i given by (3) can also be written as
i = maxjE A(i) aij - Pj} = maXjeA(i) {aij - Pj}
(15)
It can be seen that:
a) All persons in the same similarity class have the same profit.
b) The person profits ii are determined by the prices j of the object similarity classes.
It follows that if a complete assignment S and a similarity class price vector p satisfy e-CS, and
e<1/N, then S is optimal, even though S and the price vector p may not satisfy s-CS. This is
important because in the following algorithms, e-CS of the pair (Sp) is maintained but s-CS of the
pair (S,p) may be violated. An additional benefit of working with the similarity class price vector is
that the threshold value for e that guarantees optimality can be increased, as indicated in the
following proposition, which will be proved in the next section after we introduce the equivalence
between assignment and transportation problems (cf. Prop. 4):
Proposition 1: Let
sp = Number of similarity classes of persons
so = Number of similarity classes of objects.
If a complete assignment S and a similarity class price vector p satisfy E-CS and
min{sp, so}
then S is optimal.
In what follows in this section we describe two variations of the auction algorithm. The first
variation is actually a special case of the second, but is easier to understand and illustrates the main
ideas more clearly.
The Auction Algorithm for Similar Objects
13
Consider a variation of the auction algorithm which is the same as the one of the previous
section except that the bidding increments are determined by the values of the similarity classes of
the objects rather than the values of the objects themselves. Specifically, in the bidding phase, each
person i determines the object j* that offers maximum value vij* = maxjE A(i) vij [cf. (5)], but the
"second best level" wi is defined now as
Wi = maxje A(i), jo M(j*) vij
(16)
(instead of wi = maxjE A(i), jo j* vij). Roughly, wi is the "value of the second best similarity class"
rather than the value of the second best object. We refer to this algorithm as AUCTION-SO (for
Similar Objects) to distinguish it from the auction algorithm of the previous section, which will be
referred to as AUCTION. Because we have
maxjEA(i), j M(j*) vij < maxje A(i), jj* vij,
it follows that the bid (cf. (7))
bij* = pj* + vij* - w i + e
(17)
with wi given as in AUCTION-SO [cf. (16)] will be at least as large than the corresponding bid for
AUCTION where wi is given by (6). As a result the price changes of the objects in AUCTION-SO
are potentially larger than in AUCTION (see Fig. 3). The termination of AUCTION-SO is also
potentially faster because, with larger price increases, the gap between values of unassigned and
assigned objects will be diminishing faster. As an example the problem of Fig. 2 will be solved
mush faster with AUCTION-SO than with AUCTION (see Fig. 4).
14
Price increment bij. - Pj* implicit in the bid of
person i for its best object j* in the case of
AUCTION
Values vijj of objects j
for person i
class;- - - v j.*: The value of j*, the best object
ESimilarity
Similarity
for person
class ofi)jt
(best for person i)
for person i (=
)
\ i - - The value of the second best
object for person i
\2
.
--
Similarity class(second best for
person i)
- wi : The value of the second best
similarity class for person i
J4
15
e
Price increment b j* - pj* implicit in the bid of
person i for its best object j* in the case of
AUCTION-SO
Figure 3: Illustration of the bid of person i in AUCTION-SO. The object j* offers the
best value vij* for person i. The bidding increment b ij*- p j*is set to the difference vij* w i plus e. However, here wi is the value offered by the second best similarity class,
rather than the value of the second best object as in AUCTION. When all the second
best objects belong to the similarity class of j* (as in the figure), the bid bij* will be
higher in AUCTION-SO than in AUCTION.
15
PERSONS
OBJECTS
1
_ ';
~Initial
price = O
prioObjects 1 and 2 form a
similarity class
Init'\
price = 0
W ,ZInitial
Here aij = C > 0 for all (i,j)
except for a33 which is 0
Initial price = 0
Figure 4: Application of AUCTION-SO to the problem of Fig. 2. Here the objects 1
and 2 form a similarity class. At the first bidding phase, this similarity class is best for
all persons. Person 3 submits a bid C + e for either object 1 or 2, while persons 1 and
2 submit a "very high" bid for either object 1 or 2 because there is only one similarity
class of objects to which they can be assigned. If both objects 1 and 2 receive a bid
at the first iteration, then after the first iteration, the prices of objects 1 and 2 will be
very high and only person 3 will unassigned. As a result, it is seen that AUCTION-SO
will terminate at the next iteration when person 3 will bid for object 3. If all persons
bid for object 1 (or for object 2) at the first iteration, it can be seen that AUCTION-SO
will terminate after three iterations.
The key fact regarding AUCTION-SO, is that assuming the initial assignment S satisfies £CS together with the initial similarity class price vector , that is
Ki
- £ = maxkeA(i) {aik- Pk -
£ <
aij - Pj,
for each (i,j) E S,
(18)
the same is true of the assignment and the vector p obtained at the end of each assignment phase. To
show this we assume that (18) is true at the beginning of all iterations up to a given iteration, and
we show that it is true at the end of that iteration. Indeed suppose that object j* received a bid from
person i and was assigned to i during the iteration. Then if pj and p'j are the object prices before and
after the iteration, and p'j is the price of the similarity class of j after the iteration,
Apj
=minkeM(j)p'k,
j = 1,..., N,
(19)
16
we have [cf. (7), (8)]
pij* = bij* = aij* - wi + £
(20)
Using (16), (17), and the easily verifiable fact p'j > pj for all j, it follows that
aij* - p'j* = aij* - bij* = wi- £ = maxjEA(i), j e M(*) {aij - Pj} - £
>
majE( i), j
M(j*) {aij -
P'j}) - £ = maxjEA(i), j
M(j*)
{aij - Pj}
-
(21)
We also have pAj, < p,*, so we obtain
aij* -p j* > maxjEA(i), j
M(j*) {aij - P}
£
(22)
Since we have aij* - O'j* = aij - A, for all je M(j*), we see that (22) implies that the e-CS condition
(18) holds after the assignment phase of an iteration, for any pair (i,j*) that entered the assignment
during the iteration. Consider also a pair (i,j*) that belonged to the assignment just before an
iteration, and also belongs to the assignment after the iteration. Let p" be the price vector just
after
the iteration in which (i,j*) entered the assignment. Then, as in (21), we obtain
aij* - P j* > maxjeA(i), j 0 M(j*) {aij aPj"j}
- £
where Pj = minkE M(j) P"k. We have
(23)
'j > P j, since the prices are monotonically
nondecreasing, and p"j* =p'j* since j* must not have received a bid since it was last assigned
to i.
Therefore from (23) we obtain
aij* - P'j*> maxjEA(i), j ¢ M(j*) {aij - P'J} - C
In view of the fact P'j, < p'j*, we obtain the £-CS condition (18) for the pair (i,j*).
The conclusion is that if AUCTION-SO terminates, the assignment obtained at termination
is complete and satisfies C-CS together with the corresponding price vector p. Thus if
1
Number of object similarity classes
17
(cf. Prop. 1), the assignment obtained is optimal. There remains to show that AUCTION-SO
terminates. We will show this in the context of the following more general algorithm that takes into
account both similar persons and similar objects.
The Auction Algorithm for Similar Persons and Objects
We consider a variation of the auction algorithm that takes into account similar persons. The
idea is to submit a common bid for all persons in a similarity class if at least one person in the class
is unassigned. As a result, persons in the same similarity class do not "compete" against each other
for the same object, and the bids submitted are higher than they would otherwise be. This idea is
combined with the variation discussed earlier that takes into account similar objects to accelerate
termination even further.
The algorithm will now be described formally. We fix £ > 0, and we start with some
assignment S (possibly the empty assignment), and a price vector p satisfying the following
condition:
£
- Complementary Slackness Strengthened (e-CSS): If (i,j)e S, then
aij - pj > maxkEA(i), k 9 M(j) {aik - Pk -
£,
(24)
that is, the value of j for i can be worse by at most £ over the highest value offered by similarity
classes other than the one of j.
We note that the £-CSS condition implies that S and the similarity class price vector p given
by (14) satisfy e-CS (the reverse is not true). Indeed, from (24) and the definition (14) of p we have
for all (i,j)e S,
aij - pj 2 aij -pj 2 maXkE A(i), k 0 M) {aik - Pk} Since we also have
aij - pj = maxk E M(j) {aik - Pk },
the E-CS condition
18
aij - pj 2 max k E A(i) {aik - Pk - E-= Xi -
V (i,j)e S
V,
follows.
The algorithm proceeds iteratively, and terminates when a complete assignmentiis obtained.
At the start of the generic iteration we have a pair (S,p) satisfying e-CSS. At the end of the iteration
we obtain another pair (S',p') that will be shown to satisfy £-CSS. As earlier, there are two phases
in each iteration, the bidding phase, and the assignmentphase described below:
Bidding Phase:
For each similarity class of persons M(i) containing a person i that is unassigned under the
assignment S:
Compute the current value vij = aij - pj of each object je A(i). Let il, i2 , ... , im be the
persons in M(i) that are assigned under S, and let jl, j 2, ... , jm be the corresponding objects to
which they are assigned. Let im+l, im+2, ... , in be the persons in M(i) that are unassigned under S.
Denote also by jm+l, jm+2, ..., in' the objects that belong to A(i) and are not assigned to any person
in M(i) under S, and assume that these objects are ranked in order of nonincreasing value, i.e.
v..
1Jm+ 1
v..
Jm+2
>
.. v..1 .
Jn'
(25)
Compute the scalar wi (which is analogous of the scalar wi of (6) and (16)) as follows:
Case a): If n < n' and jl, i 2 , ... , jn do not belong to the same similarity class, let
wi =v..
%+1
.
(26)
Case b): If n < n' and j 1, 2 , ..., in belong to the same similarity class, let wi be the value vij
of the first object j E {in+l, ..., in'} that does not belong to the common similarity class M(jl).
19
Case c): If n=n', which is the exceptional case where all the objects in A(i) must be assigned
to the persons in the similarity class of person i, we define w i to be -a or, for computational
purposes, a number that is much smaller than minjE A(i) vij.
Compute the "bid" of each person il, i2, ..., in for the object j 1,j2, ... , in, respectively, as
b..
lkJk
=a.
- wi+ e.
(27)
lkJk
(As before, we characterize this situation by saying that person ik bid for object jk, and that object jk
received a bid from person ik. Note here that the objects il, ..., im, which are assigned under S will
bid for their assigned objects jl, j 2, ... , jm. Cases a) and b) and the corresponding bids are
illustrated in Fig. 5.)
20
Values v ij of objects j
for person i
Value of best objects
for similarity class of i
1st Similarity Class
' .......
Common value of already
assigned objects to persons
- - - - in the similarity class of i
----------
Case a)
Value vij n
wi = Value vij n+1
2nd Similarity Class
,Object
'
-_
---
values after the bid
is accepted
- Value vin
Values vij of objects j
for person i
Value of best objects
for similarity class of i
1st Similarity Class ~
Common value of already
assigned objects to persons
in the similarity class of i
--
--)-,-
Value vijin
Case b)
Value Vijn+ 1
rValue of first object j E{jn+l'-" in'}
2nd Similarity Class
--------- wI = that does not belong to the
leValue v.. similarity class Of jl,...,jn
Iin' Object values after the bid
isaccepted
-4-
Figure 5: Illustration of the bid of a similarilty class of an unassigned person i. There
are n persons in this class. The objects that the similarity class bids for are jl,...,jn. The
common value of those of the objects for which the bid is accepted is shown for case
a) (objects jl,--"n belong to the different similarity classes), and for case b) (objects Jl
,...,j belong to the same similarity class).
21
Assignment Phase:
For each object j:
Let P(j) be the set of persons from which j received a bid in the bidding phase of the
iteration. If P(j) is nonempty, set pj to the highest bid, i.e.,
p'j = maxiE(j) bij
(28)
remove from the assignment S any pair (ij) (if one exists), and add to S the pair (i*,j) where i* is
some person in P(j) attaining the maximum above. If P(j) is empty, pj is left unchanged, i.e., p'j =
Pj.
The problem can be easily transformed so that the exceptional Case c) of the bidding phase
does not arise. To simplify the subsequent analysis we will henceforth assume that if necessary,
this transformation is done, so that Case c) never arises. Our results, however, hold even when
Case c) can arise, provided we allow the object prices to take the value -oo and we interpret
appropriately the arithmetic of extended real numbers.
The preceding algorithm will be referred to as AUCTION-SOP (for Similar Persons and
Qbjects). Note that the case where all similarity classes of persons consist of a single person
corresponds to m=0O and n=l in the bidding phase. Then case a) of the bidding phase never arises
and AUCTION-SOP coincides with AUCTION-SO. Note also that the structure of the algorithm is
such that if at the end of an iteration we have (i,j)e S and (i',j')e S, and i - i', then
aij - pj = aij' - pjt,
that is, objects assigned to persons from the same similarity class have the same value for these
persons. If in addition j - j', it follows that pj = pj,.
We now show the validity of AUCTION-SOP.
Proposition 2: At each iteration prior to termination of AUCTION-SOP, all the object prices do
not increase, and at least one object price increases by at least e. Furthermore, e-CSS holds at the
end of each iteration.
22
Proof: Suppose £-CSS holds before a given iteration, and let pj and p'j be the prices of the objects
j before and after the iteration respectively. Let also 7i be the person profits and S be the assignment
before the iteration. Suppose that person ik E M(i) bids for object jk E M(j) during the iteration. We
will show that
bid k2 Pjk
if
(ikjk) E S
bijk>2 pj + £
if
(ik,jk)
(29)
S
Suppose first that (ik,jk) E S. Then by £-CSS we have
aijk- Pjk> maxs
E
A(i), s
M(j){ais- Ps} -
(31)
If the bid of the similarity class of ik is based on Case a) in the bidding phase, we have
maxsE A s M{maiS- Ps}-
vijl=wi
while if Case b) holds, we have
maxs
A(i), s * M(j){ais- Ps} = Wi
Thus in either case, (31) yields
aiJk- Pjk2 wi- £
Using this relation together with (27), we obtain
bidjk
PJk
proving (29).
Suppose next that (ik,jk) 0 S. Then in both Cases a), and b), in view of the ordering (25),
we have
23
aik-k Pjk Wi
and using this relation together with (27), we obtain
bidk> Pjk+ e
proving (30).
Since the price of jk after the iteration is equal to the highest bid [cf. (28)], from (29) and
(30) we obtain
P 'j k Pjk
if
(ik,jk) E S(32)
(ik,jk)0' S
if
P j-k Pjk+
(33)
We also have p'j = pj for every j that did not receive a bid during the iteration. Thus the object
prices cannot decrease during an iteration. Furthermore, since at least one unassigned person bids at
each iteration, it follows from (33) that at least one object price will increase by at least £.
We next show that e-CSS is satisfied following an iteration. Suppose that (ik,jk), with ik E
M(i) and ik E M(j), belongs to the assignment following an iteration and that ik bid for jk during the
iteration. Then
aijk- P'jk
aij k- bikjk=wi-
2 max{ais - Ps I s E A(i), s o M(jk), s did not receive a bid from any person in M(i)) - £
> max{ ais - P's I s E A(i), s i M(jk), s did not receive a bid from any person in M(i)} - £
where the next to last inequality holds as an equation if Case b) holds when the bid of the similarity
class of ik is calculated. We also have
aijk- Pj,= a-
bi
> ai ,s p',s
for all s E A(i) such that s received a bid from a person im E M(i). By combining the last two
relations we see that £-CSS holds at the end of the iteration.
24
Consider now the case where (ik,jk), with ik E M(i) and jk E M(j), belongs to the
assignment following an iteration but ik did not bid for jk during the iteration, because all persons in
M(ik) were assigned during the iteration. Let p" be the price vector at the end of the last iteration
where all persons in M(ik) were assigned. Then by e-CSS we have..
aijk-
P"jk2 maxsE A
sgz M(J){ ai,,- pS
- £
It is seen that the price of jk remained unchanged since the last iteration where all persons in M(ik)
were assigned, while the other prices could not have decreased, i.e.
P
j,= P'jk
Ps
<
P's
V s E A(ik)
By combining the last three relations we see that e-CSS holds for the pair (ik,jk). Q. E. D.
Proposition 3: AUCTION-SOP terminates if the problem is feasible, i.e. there exists at least one
complete assignment.
Proof: We make the following observations:
a) Once an object is assigned, it remains assigned throughout the remainder of the
algorithm's duration. Furthermore, except at termination, there will always exist at least one object
that has never been assigned, and has a price equal to its initial price. This is due to the fact that a
bidding and assignment phase can result in a reassignment of an already assigned object to a
different person, but cannot result in the object becoming unassigned.
b) When the similarity class of a person bids during an iteration the price of at least one of
the objects that it bids for increases by at least e (cf. Prop. 2).
c) The profit 7Ei of a person i decreases by at least E when the person (together with all other
persons in its similarity class) bids during a number of iterations which is greater or equal to
L
j EAO)
IM(j)l
(34)
25
where IM(j)I is the cardinality of the similarity class of object j. The reason is that the number of
objects that attain within e the maximum in the definition (3) of xi is at most equal to the sum (34),
and the price of each of these objects must increase (by at least e, thereby decreasing Ki by at least &)
before the similarity class of person i will submit a bid for any other objects.
We now argue by contradiction and assume that the algorithm never terminates. Then-the
prices of a proper and nonempty subset Joo of objects increase to +oo [cf. observations a) and b)
above], while the profits xi of a nonempty subset I °° of persons decrease to -oo, [cf. c) above]. For
all i E I-, we must have J°IDA(i), since otherwise, from the definition (3), it is seen that the profit
of i would be bounded. The objects in J- after some iteration can only be assigned to objects from
I-, since the profits of persons not in I °° remain bounded and the prices of objects in J-o increase to
+oo. Furthermore, in view of observation c) above, only persons from I °° will be unassigned after
some iteration. Therefore the cardinality of I °° is greater than the cardinality of Jo, while we have Jo
D A(i) for all i in IP. This contradicts the existence of a complete assignment. Q. E. D.
By combining now Props. 1 - 3 we see that if the problem is feasible and e < 1/min{ sp, so},
then AUCTION-SOP will terminate with an optimal assignment.
4. The Auction Algorithm for the Transportation Problem
We now consider a transportation problem of the form
maximize
2 I
aijfij
i=lje A(i)
subject to
A
fij
=
ai,
i=1,...,N
je A(i)
E
fij = [j,
j=l,...,M
{iljE A(i))
Ej
U(TP)
where aij, and A(i) are as in the assignment problem, and cai, and [Dj are given positive integers,
called the supply of source i and the demand of sink j respectively. For feasibility, it is necessary to
assume that
26
N
Elai=
i=1
M
'Pj
(35)
j=1
This problem can be converted into an assignment problem by replacing source i (sink j) with ai
similar persons (or [j similar objects, respectively). We call this assignment problem (ATP). An
integer flow variable fij in (TP) is equivalent to assignment of fij similar persons (corresponding to
source i) to fij similar objects corresponding to sink j. A flow vector f = {fij Ij E A(i) } satisfying
0 < fij,
ljfij < ai,
for all (ij) with j E A(i),
for all i,
and
lifij < [j,
(36)
for all j,
(37)
corresponds to an assignment in (ATP). This assignment is complete if and only if the flow vector f
is feasible in (TP).
Consider now the auction algorithm for (ATP) as modified in the previous section to take
into account similar persons and objects. We assume that the initial assignment and price vector
satisfy the E-CSS condition of the previous section, and that initially all objects in the same
similarity class have equal prices. The assignment and price vector pairs generated by the modified
auction algorithm will satisfy £-CSS at the beginning of each iteration. Furthermore, all objects
from the same similarity class which are assigned to persons from the same similarity class have
equal prices; see the note preceding Prop. 2. Therefore the price vector can be described by
specifying, for each (i,j) with je A(i), a common price Yij for all objects of the similarity class of j
which are assigned to persons in the similarity class of j, together with the common initial price y0j
for the unassigned objects in the similarity class of j.
We denote by R(j) the set of indices i=l, 2, ..., N for which there are some objects in the
similarity class of j which are assigned to some persons in the similarity class of i, together with the
index 0, if there is some unassigned object in the similarity class of j. Because initially all objects in
the same similarity class have equal prices, and all prices are monotonically nondecreasing, we see
that at the begining of each iteration we have
YOj < Yij,
if
0 E R(j), andj E R(j).
Furthermore £-CSS yields that the price vector p with coordinates given by
(38)
27
(39)
pj = minieR(j) Yij,
satisfies the g-CS condition
is R(j), i0
=X
Iti-E<aij-pj.
where ni, the profit of source i, is given by [cf. (3)]
(40)
1i = max{k IjeA(k)} {akj - pj}
In the context of the transportation problem (TP) this condition is restated as
li- <aij-Pj,
fij>
>0
(41)
which may be viewed as a version of the e-CS condition of [6], [11], [9], [10] as applied to the
transportation problem (TP).
The following proposition derives the appropriate threshold value for e that guarantees
optimality of a feasible flow vector f and a price vector p that satisfy the s-CS condition (41).
Proposition 4: If the feasible flow vector f and the price vector p satisfy the £-CS condition (41)
with e<l/min{M,N}, then f is optimal.
Proof: If f is not optimal, there must exist a cycle with no repeated nodes
Y = (il, j 2 , i2, j3,
.
, ik-l, k, ik,jl, iil)
along which flow can be pushed without violating the feasibility of f and with an improvement of
the primal cost. Here the nodes imand jm are sources and sinks, respectively, and jmE A(im), jm+l
E A(im), m=1,2,..., k-I, jke A(ik), jle A(ik). Because Y has no repeated nodes, we have k <
min{M,N}, which based on the hypothesis on c, implies that
ke < 1
Furthermore, we must have
(42)
28
m= 1,..., k
figi> 0,
(in order to be able to push flow from jm back to im), and
k
k
aimjm
+
1 < aikjl+
E aim lim
m=2
m=l
(44)
(since pushing flow along Y improves the cost and the coefficients aij are integer). It follows that
k
k
(ai
m-pj) + 1 < (aikjl-pjl) +
m=l
k
k
<
(aim-lJm- Pjm;
m--2
m=
(45)
Using (43) and the E-CS condition (41) we obtain
iim- Eaimim- Pj n
m= 1,
.k
(46)
The last two inequalities and the condition ke < 1 [cf. (42)] yield
k
i
m=l
(aimm
pjA
+1 < E
m=l
k
im< I
m=l
kk
(ai
PjppJ +
<
m=l
+
(am1,
which is a contradiction. Q. E. D.
Based on the equivalence of transportation problems and assignment problems with
similarity classes of persons and objects discussed earlier, it is seen that Prop. 1 is a special case of
Prop. 4.
We now describe our transportation algorithm, by restating AUCTION_SOP for the
equivalent assignment problem (ATP) in terms of a flow variable fij and a price variable for each
(ij) with je A(i), together with a set of initial price variables y0j for all sinks j. The generic iteration
of this algorithm consists of a bidding phase and an assignment phase stated below. At the start of
the iteration we have a set of flow variables fij and price variables Yij satisfying conditions (39),
(40), and (41). At the end of the iteration we obtain a set of flow variables fij and price variables
29
Y'ij satisfying the same conditions. To simplify the statement of the algorithm we define, for any
flow vector f,
foj
=
Pj -
[i IjEA(i)) fij,
j
=
1, 2, ..., M.
(47)
We also assume that
<
ai
E Pj,
j E A(i)
for all i; this guarantees that Case c) in the bidding phase of AUCTION_SOP does not arise.
Bidding Phase:
For each source i such that Ej fij < ai:
Consider the collection
II(i) = {aij - Ykj Ij E A(i), and either k=0 and f0j > 0 or kai and je A(k), fkj > 0 }, (48)
and assume that fI(i) is ordered in nondecreasing order, i.e. for some fi we have
1(i)
= {aij - ykl j l , aij 2 - Yk2 j2 ,
... ,
aij -
yknji}
with
ai - YlJrn > aiJn+l - Ykl+l+,
Let m be the smallest integer m' such that
fkj
+
*-- + fkm,m- ai-
x
fij.
m,
given by
je A(i)
Define flows iij for all je A(i), j'j
forall n
1,...
- 1.
30
tij = fij
jl, ... , jm
if
fij= fij +
E
fkjn
if
i
E
{jl, j2,i,
Jm-1}
{jn Ij=j, n= 1..., m-1)
and then define
fi. =afi.-
j
({j A(i)lj,-j m}
Compute the scalar wi as follows: If tij > 0 for more than one sinks j, then
wi= aij - (aim- ym),
and otherwise
wi- aij -(aij
- ykjn),
where n is the first integer n' for which jn't
jl.
Compute the "bid" of source i for each flow tij > 0 as
bij = aij - wi + £.
(As before, we characterize this situation by saying that source i bid for a flow increment tij of sink
j at a price bij, and that sink j received a bid from source i for a flow increment fij at a price bij.)
Assignment Phase:
For each sink j:
Let P(j) be the set of sources from which j received a bid for a positive flow increment in the
bidding phase of the iteration. Assume that P(i) is ordered in nondecreasing bid value, i.e. P(j) is of
the form
31
P(j) =
{il, i2 , ... , im}
where
'
b~imJ> bi,+lj,
'
for m = 1, ... , - 1.
Let
m
n=m
if
fij <
[j
m=l
and, otherwise, let n be the smallest integer m' such that
fij J>
j
m=l
Then update the flows fij, for i such that je A(i), by
if
f'ij = tij
iE {il,...,in-1}
n
[ j}
f'ij = fij - max{O, ,fif,-
if i=i
n
m=l
fij = 0
otherwise.
Set also
Y'ij = bij,
Y'Oj = Y0j.
for
i{il, ... ,in},
32
Based on the results proved for the auction algorithm of the previous section, the
transportation algorithm above terminates with an optimal solution, provided that the transportation
problem (TP) is feasible and £ < 1/min{M,N}.
5.-- The Auction Algorithm for Inequality Constrained Transportation-Problems>
The ideas and algorithms of the previous sections can be extended to inequality constrained
assignment and transportation problems of the form
N
maximize A I
aijfij
i=lje A(i)
subject to
fij
<
eai,
i= 1,...,N
je A(i)
\
fi < [,
j=l,...,M
(ilje A(i))
(TPI)
0 < fij
The £-complementary slackness conditions take the form
fij > 0
i= 1,...,N
Ri>0,
pj>O,
Y.
i i- -< aij - pj,
=:
Vj
1,...,M
fij < j
=: pj
=O,
(i Ij E A(i))
where the surce profits ni are given by
Rli =max{k IjA(k)) {akj-pj},
V i = 1,...N.
It can be shown that if a feasible flow vector f satisfies, together with a price vector p, the above
conditions, then f is optimal if e < 1/min{M,N}.
33
Finally, the auction algorithm of the previous section can be used to solve inequality
constrained problems, provided the initial flow and price vector pair satisfies the above e-CS
conditions, and the set fl(i) of Eq. (48) in the bidding phase is modified to include only scalars aij Ykj that are nonnegative. In particular, if due to this restriction the set fl(i) is empty then source.i
does not participate in the bidding phase. The algorithm terminates when for all sources i, either the
set fl(i) is empty or the supply ai is assigned, that is, ;je A(i) fij = ai.
6. Computational Results
The algorithm of Section 4 for (equality constrained) transportation problems was
implemented in a code called TRANSAUCTION, and was compared with the following state-ofthe-art codes:
1) AUCTION (written by Bertsekas [8]): This is a public domain code implementing the auction
algorithm for the assignment problem described in Section 2. Computational results with an
early (and somewhat inefficient) version of this code [10] show that for sparse assignment
problems AUCTION outperforms by a large margin the code of Jonker and Volegnant [20],
which is based on the use of sequential shortest paths.
2) RELAX (written by Bertsekas and Tseng [12]): This is a state-of-the-art code for general
linear minimum cost network flow problems, based on the relaxation method [5], [11].
3) RNET (written by Grigoriadis and Hsu): This is a state-of-the-art code for general linear
minimum cost network flow problems, based on the simplex method.
In analogy with earlier auction algorithms, TRANSAUCTION applies the algorithm of the
previous section with successively smaller values of £, starting from a large value and ending with
£=1/min {M,N}; the price vector obtained at the end of each application of the algorithm is used as
the starting price vector for the next application of the algorithm. The idea of successive reduction of
e is known as e - scaling and has been suggested in the original proposal of the auction algorithm as
a method of improving performance. E-scaling was analyzed first in [16] (and more fully in [17]),
in the broader context of the e-relaxation method of [6], [7], where it was shown that it leads to
polynomial algorithms. By introducing appropriate data structures and e-scaling, and by combining
the complexity analysis of the unscaled e-relaxation method [6], and of scaling ([16], [17], and also
[9], [10]), it is possible to use the algorithm of the previous section to construct an
O((M+N)31og(Cmin {M,N})) transportation algorithm, where C=max{ laijl Ije A(i)). This will be
34
demonstrated in more general form in a forthcoming publication. Our TRANSAUCTION code has
polynomial complexity, but does not use all the data structures needed to attain the polynomial
complexity bound just mentioned; it is doubtful that an implementation attaining this bound would
perform better than TRANSAUCTION in practice. The details of the e-scaling scheme that we used
are somewhat complicated. Roughly, all cost coefficients aij are first-multiplied with min{M,N}, so
that the threshold value of e that guarantees optimality is E = 1; then e is initialized at a value of
Cmin{M,N}/2 for the first application of the algorithm of the previous section; e is reduced by a
ceratin factor (4 - 6 are recommended values) with each successive application of the algorithm until
the final value c=l is reached. There is also an additional feature, called adaptivescaling, whereby
the value of e is gradually modified before the algorithm terminates based on some heuristic rules.
Adaptive scaling is also used optionally in the public domain version of the AUCTION code.
The test problems we used were of two types. The first type are problems generated
randomly with the public domain program NETGEN [22]. Figure 6 shows the times required by
AUCTION and TRANSAUCTION for solving NETGEN assignment problems of different sizes.
The figure reflects the additional overhead (between 2 and 3) which is required to maintain the data
structures used by TRANSAUCTION.
35
20
10-
/
/·
-
100
I
I
C
TRANSAUCTION
'
)AUCTION
/
200
300
400
500
600
DIMENSION OF NETGEN ASSIGNMENT PROBLEM
Figure 6. Comparison of AUCTION and TRANSAUCTION for NETGEN assignment problems
of different size. The number of arcs in each problem was 12.5% of the maximum possible that
corresponds to a fully dense problem.
Figure 7 illustrates the computation times required by the TRANSAUCTION, RELAX and
RNET codes to solve the first ten standard problems of [22]. These are symmetric transportation
problems with number of supply nodes ranging from 100 to 150, and number of arcs ranging from
1300 to 6300. Figure 7 shows that TRANSAUCTION runs slower than RELAXII and roughly
comparably with RNET. The total supply in these problems is 1000 times the number of sources.
36
30
TRANSAUCTION
20
~RNET
i
t~
Zi4~~~~
10
RELAXIi
0-
I
NG1
.
.
I
!
!
I
I
*
I
NG2 NG3 NG4 NG5 NG6 NG7 NG8 NG9 NG10
NETGEN TRANSPORTATION PROBLEMS
Figure 7. Performance of TRANSAUCTION, RELAXII and RNET algorithms on NETGEN
transportation problem benchmarks.
The second type of problems that we tested are asymmetric transportation problems with
relatively few levels of supplies and demands; by this we mean that the sources (sinks) can be
divided into a few groups with roughly comparable values of supply (demand) within each group.
Problems arise often in practice, where few sources with large supplies are allocated to many sinks
with small demands. They are the type of problems for which TRANSAUCTION outperforms
substantially both RELAXII and RNET. This is supported by the results shown in Figures 8 - 10.
For these problems, the TRANSAUCTION code obtains an optimal solution in 20-50% of-the'time
required by RELAXII. Figures 8-10 indicate that the advantage of TRANSAUCTION over the
other codes increases with problem dimension.
37
600
500
400
RELAXII
400
300
CO
a
O
200
0.
100
J
-
100
300
TRANSAUCTION
1000
3000
PROBLEM SIZE
Figure 8. Performance of TRANSAUCTION, RELAX and RNET on transportation-assignment
problems. All problems have 100 sources: 10 with large supply, and 90 with small supply.
Problem size is described by the number of sinks, all of which have unit demand. The number of
arcs in each problem is 14% of maximum.
300
RELAXII
200 -
0C
100
/
0)
50X200
100X400
300X1200
PROBLEM SIZE
TRANSAUCTION
500X2000
Figure 9. Performance of TRANSAUCTION and RELAX on transportation problems of
38
homogeneous type. The number of sinks equals four times the number of sources. The demand of
each sink ranges from 1-9, with average 5. The sources are divided into two classes, with 10% of
the sources having 50% of supply divided evenly, while 90% of the sources divide the remaining
50% of supply evenly. The average number of arcs in each problem is 5% of maximum.
RELAXII
60
50
40
)
TRANSAUCTION
30-
03
20
10
0
,
0
.
200
400
I
I
600
800
I
1000
NUMBER OF SINKS
Figure 10. Performance of TRANSAUCTION and RELAX on transportation problems of
homogeneous type. There are 100 sources in each problem. 10 sources have supply 225 and 90
sources have supply 25. The average number of arcs in each problem is 14% of maximum.
39
References
Balinski, M. L., "A Competitive (Dual) Simplex Method for the Assignment Problem",
Math Programming,Vol. 34, 1986, pp. 125-141.
Barr, R., Glover, F., and Klingman, D., "The Alternating Basis Algorithm for Assignment
[2]
Problems", Math Programming,Vol. 13, 1977, pp. 1-13.
[3]
Bertsekas, D. P., "A Distributed Algorithm for the Assignment Problem", Laboratory for
Information and Decision Systems Unpublished Report, M.I.T., March 1979.
[4]
Bertsekas, D. P., "A Distributed Asynchronous Relaxation Algorithm for the Assignment
Problem", Proc. 24th IEEE Conference on Decisionand Control, Ft Lauderdale, Fla., Dec. 1985,
[1]
pp. 1703-1704.
Bertsekas, D. P., "A Unified Framework for Primal-Dual Methods in Minimum Cost
[5]
Network Flow Problems", Math. Progr., Vol. 32, 1985, pp. 125-145.
[6]
Bertsekas, D. P., "Distributed Asynchronous Relaxation Methods for Linear Network Flow
Problems", LIDS Report P-1606, M.I.T., Sept. 1986, revised Nov. 1986.
Bertsekas, D. P., "Distributed Relaxation Methods for Linear Network Flow Problems",
[7]
Proceedingsof 25th IEEE Conference on Decision and Control, Athens, Greece, 1986, pp. 21012106.
Bertsekas, D. P., "The Auction Algorithm: A Distributed Relaxation Method for the
[8]
Assignment Problem", LIDS Report P-1653, M.I.T., March 1987, also in Annals of Operations
Research., Vol 14, 1988, pp. 105-123.
Bertsekas, D. P., and Eckstein, J., "Distributed Asynchronous Relaxation Methods for
[9]
Linear Network Flow Problems", Proc. of IFAC '87, Munich, Germany, July 1987.
[10] Bertsekas, D. P., and Eckstein, J., "Dual Coordinate Step Methods for Linear Network
Flow Problems", to appear in Math. ProgrammingSeries B, 1989.
[11]
Bertsekas, D. P., and Tseng, P., "Relaxation Methods for Minimum Cost Ordinary and
Generalized Network Flow Problems", LIDS Report P-1462, M.LT., May 1985, Operations..
Research, Vol. 36, 1988, pp. 93-114.
[12] Bertsekas, D. P., and Tseng, P., "RELAX: A Code for Linear Network Flow Problems",
in FORTRAN Codesfor Network Optimization, (B. Simeone, ed.), Annals of Operations
Research, Vol. 13, 1988, pp. 125-190.
[13] Bertsekas, D. P., Tsitsiklis, J. N., Paralleland DistributedComputation:Numericcl
Methods, Prentice-Hall, Englewood Cliffs, N.J., 1989.
Engquist, M., "A Successive Shortest Path algorithm for the Assignment Problem",
[14]
INFOR, Vol. 20, 1982, pp. 370-384.
40
[15] Glover, F., Glover, R., and Klingman, D., "Threshold Assignment Algorithm", Center for
Business Decision Analysis Report CBDA 107, Graduate School of Business, Univ. of Texas at
Austin, Sept. 1982.
[16]
Goldberg, A. V., "Solving Minimum-Cost Flow Problems-by Successive
Approximations", extended abstract, submitted to STOC 87, Nov 1986.
[17] Goldberg, A. V., and Tarjan, R. E.; "Solving Minimum Cost Flow Problems by - ..
Successive Approximation", Proc. 19th ACM STOC, May 1987.
[18]
Goldfarb, D., "Efficient Dual Simplex Methods for the Assignment Problem", Math
Programming, Vol. 33, 1985, pp. 187-203.
[19]
Hung, M., "A Polynomial Simplex Method for the Assignment Problem", Operations
Research, Vol. 31, 1983, pp. 595-600.
[20] Jonker, R., and Volegnant, A., "A Shortest Augmenting Path Algorithm for Dense and
Sparse Linear Assignment Problems", Computing, Vol. 38, 1987, pp. 325-340.
[21]
Kennington, J., and Helgason, R., Algorithms for Network Programming,Wiley, NY.,
1980.
[22]
Klingman, D., Napier, A., and Stutz, J., "NETGEN -- A Program for Generating Large
Scale (Un)Capacitated Assignment, Transportation, and Minimum Cost Flow Network Problems",
Management Science, Vol. 20, 1974, pp. 814-822.
[23] Kuhn, H. W., "The Hungarian Method for the Assignment Problem", Naval Research
Logistics Quarterly, Vol. 2, 1955, pp. 83-97
[24] McGinnis, L. F., "Implementation and Testing of a Primal-Dual Algorithm for the
Assignment Problem", OperationsResearch, Vol. 31, 1983, pp. 277-291.
[25] Papadimitriou, C. H., and Steiglitz, K., CombinatorialOptimization: Algorithms and
Complexity, Prentice-Hall, Englewood Cliffs, N.J. 1982.
[26] Rockafellar, R. T., Network Flows and Monotropic Programming,J. Wiley, N. Y., 1984.
Download