Term 1 Final
Term 1 Final
Term 1 Final
Project Adviser
Prof. Sumit Ganguly
sganguly@cse.iitk.ac.in
November 9, 2008
Abstract
Auction Algorithms have been used to solve the general assignment problem in [1].They have
been used in more than one ways to solve resource allocation problems. They are pretty useful if the
existing deterministic algorithm are NP-hard as we can design heuristics based on auction mechanism
to get a nearly optimal solution. Network bandwidth allocation problem can be transformed to
assignment problem and solved using method given in [1] by converting it to flow problem or we
can propose another auction based mechanism to solve a bandwidth allocation problem. Here we
are trying to solve a bandwidth allocation problem where K source-sink pair wish to communicate
with each other. We have been motivated by [1] and an another auction algorithm to solve this
problem.
Introduction
Auction based algorithm are being used extensively these days in problems where the deterministic
algorithm takes too much time. Bandwidth allocation for users in a network is one of such kind
of problem.There are many variations to the Network bandwidth problem in which auction based
mechanism can be applied.
1
Motivation & Literature
Bertsekas’s Survey on Network Flow problems [1]
The prototypes being used here is auction algorithms for assignment problems. These auction
work like real life auctions where persons/bidders compete for the objects by increasing their prices
through competitive bidding.
Naive Auctions
Two types of problem exists here one is the symmetric assignment and second is asymmetric assign-
ment. In the first problem n bidder matches for n object and assignment is one-one while later in
later problem a bidder may have more than one objects.
To simulate an auction we will introducePa benefit a[ij] for matching bidder i to object j. So here
n
our aim is to maximize the total benefit 0 a[ij] .
We have given a set A of (i ,j) that can be matched .So we have
Solution to this problem would be the a set S congaing pairs of (i,j) where S is such that S = {(i, j)|
object j is assigned to some person i} And this assignment would be feasible if set S has n elements
and each bidder ’i’ is assigned to a distinct
Pnobject ’j’. The Algorithm tries to optimize this feasible
solution by maximizing the total benefit 0 a[ij].Now we associate price with each object. So if an
object j has price P(j) then value for person i for that j object is a[i, j] − P (j).Each person tries to
maximize his value.
a[i, jk ] − P (jk ) = max{a[i, j] − P (j)} is satisfied for all pairs in assignment. If all bidders are
assigned then algorithm terminates.Otherwise not-empty subset of unassigned persons is selected
and computation for the best is performed.
Let I be that non empty subset. Each person i in I finds object j in A(i) for which its value is
maximal. bidding increment is γi = vi − wi
where vi is the value of best object for i and wi is value of second best object for i . wi is −∞ if no
other object is there.
Note that γi can never be negative.
Here is a situation where this algorithm fails to work .Suppose we have two equally qualified object
for a person .In that case will be zero and hence algorithm inters in next iteration without raising
objects prices. Hence algorithm gets into a cycle. To break such cycle there is a concept of
complementary slackness mechanism .In this mechanism each bid must increase the price of an
object by some minimum positive increment .So here γi will be equal to vi − wi + .
2
Proof: Suppose at time t remaining capacity at link i is less then at j ie. Ci − xi (t) < Cj − xj (t)
.For having Pi (t) > Pj (t) condition
Proposition 2:The Maximal execution time for algorithm is proportional to the link’s initial price
and capacity.
Proof: As auction will terminate at Price = 0 .So
Pi (0) − r.t0i + r.s.xi (t0i )
set xi (t0i ) = Ci
we get t0i = Pi (0)/r + s.Ci
Proposition 3:Algorithm allocates bandwidth efficiently if optimal price of links are already known.
Proof:Let optimal price at link i is Pi∗ and allocation with respect to it is x∗i (Computed by Lagrange
Multipliers) we have Pi (0) = Pi∗ +rt−rs.x∗i Algorithm works in two stages 1. Users submit their bid
with their demand. 2.The auctioneer will decides on price vector when should auction will end.Then
he can decide the optimal point of termination. Bidders are then allocated and charged according
to VCG rule. The criteria of optimization may be either the Revenue Maximization or the Social
Welfare. They have not proven any optimality constraints.They showed that experimented results
are better than other techniques.
Problem Statement
Given a network represented by graph G = (V, E) where V is a finite set of vertices/nodes and E
is the set of edges/arcs. Each edge eij where i, j element of V has a capacity cij and a cost/price
pi,j . Let there be a set of pairs of source and sink Sk = (sk , tk ) each with a supply and demand. Sk ,
source and sink pair represent two modes who want to communicate with each other. The problem
is to find a minimum cost allocation of bandwidth across the network.
It can be mathematically stated as :
XX
min f (ekij ) ∗ pij
i,j k
X X f (Sk ) if i = sk
f (ekij ) − f (ekji ) = −f (Sk ) if i = tk (6)
0 otherwise
j|(i,j)∈E j|(j,i)∈E
X
f (ekij ) <= cij
k
f (ekij ) >= 0
It can be seen that the number of variable here are equal to the number of arcs multiplied by the
number of pairs Sk . Hence as the number of variables gets bigger and bigger the time to solve even
gets bigger.
This problem can directly model a network where there are nodes ready to communicate with each
other. And we have to find the minimum cost allocation of bandwidth to such nodes so that they
can communicate. The problem can be varied with integral bandwidth or non-linear cost function.
3
Auction Algorithm
There can be various such approach such first finding a feasible solution and iterating it to get a
solution close to optimal. But our algorithm would first find an optimal solution for each Sk and
then combine them to get a feasible solution.
1.Basis
We run the min-cost flow algorithm individually for each Sk . Hence find an individual optimal
solution which corresponds to and optimal path. Now we would look at the conflicts at the common
edges i.e for any edge eij there are more than Sk who are interested in taking that path. One such
path is chosen and the algorithm start with it.
2.Auction/Bidding
• Begin: Each of Sk who have a conflict at the corresponding edge eij and satisfy the condition
for bidding would have to bid for the link/edge keeping in mind it’s usage and the cost of
avoiding it. The bid value for each of Sk can be evaluated by solving a new min-cost flow
without the current edge, then subtracting it with the current optimal value.
Condition for bidding : If the some of the flows/bandwidth allocated to all Sk at the edge does
not exceed the capacity then there will be no bidding, otherwise we have to have bidding in
order to determine the winner.
• End: The main program determines the winner of the bid. The edge/link is then assigned to
the winner of the bid. The losers have to change the maximal capacity in that arc to zero.
Note that we have determined only one winner and all other are kicked out.
• Reopen Auctions: Some of the Sk lost their bid and have to consider changing their route
and therefore they can reconsider their bids on previous auctions. In such cases the previous
auction can be reopened and the capacity of the arc/edge be changed to the original value.
Termination
It is easy to see that the algorithm never terminates if the solution is not feasible. This happens
because algorithm will keep on iterating till all the conflicts have been removed. We now look at
the number of conflicts. The number of conflicts is equal to the maximal number of conflicts per
arc/edges multiplied with the number of arcs/edges. Moreover the maximal number of conflicts per
arc/edge depends on the maximal number of auctions started by Sk (source,sink pair) multiplied
with the number of such pairs, Sk . Sk starts a new auction if it has lost an arc/edge and migrates
to some other arc where it again faces conflict. So essentially the number of times Sk will reopen
an auction is the number of edges/arcs. So the maximal number of auctions are |E|2 .|K| K is
the number of pairs Sk and |E| is the number of arcs/edges. So unless there are infinite number of
arcs/edges or number of pairs Sk the termination time will be bounded.
4
Optimality
Only way the solution can’t be optimal, is that there exists some Sk for which the route is not
optimal. There can be two such cases. First there exist some arc which is free and has to be used
by some Sk . This can only happen if the capacity if the arc has been changed to zero. But the step
3 of our algorithm will ensure the arc is repined for bidding by changing it’s capacity to original
value. Secondly there exist some arc which is wrongly occupied. This can only happen if somebody
loses the auction due to too low bidding strength or too high bidding strength of the opposition.
Too high strength of the opposition can only happen if it has faced a large number of losses. So it
had losses before earlier auction and losses before it. However there are finite number of auctions.
But the first auction is without an earlier auction so this situation is not feasible. Too low strength
can occur only if there is some free path incorrectly available. This can only happen if somebody
didn’t occupy an optimal path. Because otherwise this would have led to an increase in strength.
And this can happen if there was an error in the earlier auctions.
Acknowledgment
We would like to thank our supervisor Prof. Sumit Ganguly for his guidance and for being very
encouraging and helpful throughout this work.
References
[1] Dimitri P. Bertsekas. Auction algorithms for network flow problems. 1992.
[2] Costas Courcoubetis Manos Dramitinos *, George D. Stamoulis. An auction mechanism for
allocating the bandwidth of networks to their users. 2007.
[3] Simon Parson. A bulffers guide to auction algorithm. pages 1–64, 2007.