0% found this document useful (0 votes)
9 views7 pages

Auction Algorithm

The document presents a novel algorithm called CAMUS for determining optimal winning bids in multi-unit combinatorial auctions, which allows bidders to bid for bundles of goods with multiple units available. The algorithm employs a branch-and-bound technique along with dynamic programming to efficiently compute the optimal allocation, addressing a previously unsolved problem in auction theory. Initial experimental results indicate promising performance of the algorithm in maximizing seller revenue in complex auction scenarios.

Uploaded by

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

Auction Algorithm

The document presents a novel algorithm called CAMUS for determining optimal winning bids in multi-unit combinatorial auctions, which allows bidders to bid for bundles of goods with multiple units available. The algorithm employs a branch-and-bound technique along with dynamic programming to efficiently compute the optimal allocation, addressing a previously unsolved problem in auction theory. Initial experimental results indicate promising performance of the algorithm in maximizing seller revenue in complex auction scenarios.

Uploaded by

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

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/2807578

An Algorithm for Multi-Unit Combinatorial Auctions

Article · May 2000


Source: CiteSeer

CITATIONS READS
145 222

3 authors, including:

Kevin Leyton-Brown
University of British Columbia
226 PUBLICATIONS 14,246 CITATIONS

SEE PROFILE

All content following this page was uploaded by Kevin Leyton-Brown on 22 November 2012.

The user has requested enhancement of the downloaded file.


An Algorithm for Multi-Unit Combinatorial Auctions

Kevin Leyton-Brown and Yoav Shoham and Moshe Tennenholtz


Computer Science Department
Stanford University
Stanford, CA 94305

Abstract VCRsg). We call an auction that allows such a bid a multi-


unit CA.
We present a novel algorithm for computing the optimal win-
ning bids in a combinatorial auction (CA), that is, an auction In a combinatorial auction, a seller is faced with a set of
in which bidders bid for bundles of goods. All previously price offers for various bundles of goods, and his aim is to
published algorithms are limited to single-unit CAs, already allocate the goods in a way that maximizes his revenue. This
a hard computational problem. In contrast, here we address optimization problem is intractable in the general case, even
the more general problem in which each good may have mul- when each good has only a single unit (Rothkopf, Pekec,
tiple units, and each bid specifies an unrestricted number of & Harstad 1998). Given this computational obstacle, two
units desired from each good. We prove the correctness of
parallel lines of research have evolved. The first exposes
our branch-and-bound algorithm, which incorporates a spe-
tractable sub-cases of the combinatorial auctions problem.
cialized dynamic programming procedure. We then provide
very encouraging initial experimental results from an imple- Most of this work has concentrated on identifying bidding
mented version of the algorithm. restrictions that entail tractable optimization; see (Rothkopf,
Pekec, & Harstad 1998; Nisan 1999; Tennenholtz 2000;
Vries & Vohra 2000). Also, the case of infinitely divisible
Introduction goods may be tractably solved by linear programming tech-
Auctions are the most widely studied mechanism in the niques. The other line of research addresses general com-
mechanism design literature in economics and game the- binatorial auctions. Although this is a class of intractable
ory (Fudenberg & Tirole 1991). This is due to the fact problems, in practice it is possible to address interestingly-
that auctions are basic protocols, serving as the building large datasets with heuristic methods. It is desirable to
blocks of more elaborated mechanisms. Given the wide do so because many economic situations are best modeled
popularity of auctions on the Internet and the emergence by a general CA, and bidders’ strategic behavior is highly
of electronic commerce, where auctions serve as the most sensitive both to changes in the auction mechanism and
popular game-theoretic mechanism, efficient auction design to approximation of the optimal allocation (Nisan & Ro-
has become a subject of considerable importance for re- nen 2000). Previous research on the optimization of gen-
searchers in multi-agent systems (e.g. (Wellman et al. 1998; eral CA problems has focused exclusively on the simpler
Monderer & Tennenholtz 2000)). Of particular interest are single-unit CA (Fujishima, Leyton-Brown, & Shoham 1999;
multi-object auctions where the bids name bundles of goods, Sandholm 1999; Lehmann, O’Callaghan, & Shoham 1999)).
called combinatorial auctions (CA). For example, imagine The general multi-unit problem has not previously been
an auction of used electronic equipment. A bidder may wish studied, nor have any heuristics for its solution been intro-
to bid x for a particular TV and y for a particular VCR, but duced.
z 6= x + y for the pair. In this example all the goods at auc- In this paper we present a novel algorithm, termed CA-
tion are different, so we call the auction a single-unit CA. MUS (Combinatorial Auction Multi-Unit Search), to com-
In contrast, consider an electronics manufacturer auctioning pute the winners in a general, multi-unit combinatorial auc-
100 identical TVs and 100 identical VCRs. A retailer who tion. A generalization and extension of our CASS algo-
wants to buy 70 TVs and 30 VCRs would be indifferent be- rithm for winner determination in single-unit CA’s (Fu-
tween all bundles having 70 TVs and  30 VCRs. Rather than
having to bid on each of the 100  100 distinct bundles, jishima, Leyton-Brown, & Shoham 1999), CAMUS intro-
70 30 duces a novel branch-and-bound technique that makes use of
she would prefer to place the single bid (price, f70 TVs, 30 several additional procedures. A crucial component of any
Copyright c 2000, American Association for Artificial Intelli- such technique is a function for computing upper bounds
gence (www.aaai.org). All rights reserved. on the optimal outcome. We present such an upper bound
function, tailored specifically to the multi-unit combinatorial and e(b2 ) becomes e(b2 ) [ d. Since the good d can be al-
auctions problem. We prove that this function gives an up- located only once, at most one of these bids will be in any
per bound on the optimal revenue, which enables us to show allocation. (More generally, it is possible to introduce n-unit
that CAMUS is guaranteed to find optimal allocations. We dummy goods to enforce the condition that no more than n
also introduce dynamic programming techniques to more of a set of bids may be allocated.) While dummy goods in-
efficiently handle multi-unit single-good bids. In addition, crease the expressive power of the bidding language, their
we present techniques for pre-processing and caching, and use has no impact on the optimization algorithm. Hence, in
heuristics for determining search orderings, further capital- the remainder of this paper we do not discriminate between
izing on the inherent structure of multi-unit combinatorial dummy goods and real goods, and we assume that all bids
auctions. are additive.
In the next section we formally define the general multi- In the sequel, we will also make use of the following no-
unit combinatorial auction problem. In Section 3 we de- tation. Given an allocation  and a good i, we will denote
scribe CAMUS. In Section 4 we deal in some more detail the total number of units allocated in  , and the total number
with some of CAMUS’s techniques. Due to lack of space, of units of good i allocated in  , by units( ) and unitsi ( )
we cannot present all the CAMUS procedures in detail; how- respectively. In addition units(total) will denote the total
ever, this section will clarify its most fundamental compo- number of units over all goods.
nents. In Section 5 we present our experimental setup and
some experimental results. Algorithm Definition
Problem Definition Branch-and-Bound Search
We now define the computational problem associated with Given a set of bids, CAMUS systematically compares the
multi-unit combinatorial auctions.
Let G = fg1 ; g2 ; : : : ; gm g be a set of goods. Let q (j )
revenue from all full allocations in order to determine the
optimal allocation. This comparison is implemented as a
denote the number of available units of good j . Con-
sider a set of bids B = fb1 ; : : : ; bn g. Bid bi is a pair
depth-first search: we build up a partial allocation one bid at
a time. Once we have constructed a full allocation we back-
(p(bi ); e(bi )) where p(bi ) is the price offer of bid bi , and track, removing the most recently added bid from the partial
e(bi ) = (e(bi )1 ; e(bi )2 ; : : : ; e(bi )m ) where e(bi )j is the allocation and adding a new bid instead. Sometimes we can
number of requested units of good j in bi . If there is no bid
requesting k units of good i and 0 units of all goods j 6= i
safely prune the search tree, backtracking before a full allo-
(for some 1  i  m and some 1  k  q (i)) then, w.l.o.g,
cation has been constructed. Every time a bid is added to the
current allocation, CAMUS computes an estimate of the rev-
we augment B with a bid of price 0 for that bundle. An al-
location   B is a subset of the bids where b2 e(b)j 
enue that will be generated by the unallocated goods which
remain. Provided that this estimate function o() always pro-
q (j ) (1  j  m). A partial allocation partial is an al- vides an upper bound on the actual revenue, we can prune
location where, for some j , b2partial e(b)j < q (j ). A full whenever p( ) + o( )  p(best ), where  is the current
allocation is an allocation that is not partial. Let  denote the allocation, p( ) = b2 p(b) and best is the best allocation
set of all allocations. The multi-unit combinatorial auction observed so far.
problem is the computation of an optimal allocation, that is,
argmax2 b2 p(b). In short, we are searching for a sub-
Bins
set of the bids that will maximize the seller’s revenue while
allocating each available unit at most once. Bins are partitioned sets of bids. Consider some ordering of
Note that the definition of the optimal allocation assumes the goods. There is one bin for each good, and each bid be-
that bids are additive–that an auction participant who sub- longs to the bin corresponding to its lowest-order good. Dur-
mits multiple bids may be allocated any number of these ing the search we start in the first bin and consider adding
bids for a price that equals the sum of each allocated bid’s each bid in turn. After adding a bid to our partial alloca-
price offer. In some cases, however, a participant may wish tion we move to the bin corresponding to the lowest-order
to submit two or more bids but require that at most one will good with any unallocated units. For example, if the first
be allocated. We permit such additional constraints through bid we select requests all units of goods 1, 2 and 4, we next
the use of dummy goods, introduced already in (Fujishima, proceed to bin 3. Besides making it easy to avoid consid-
Leyton-Brown, & Shoham 1999). Dummy goods are normal eration of conflicting bids, bins are powerful because they
single-unit goods which do not correspond to actual goods in allow the pruning function to consider context without sig-
the auction, but serve to enforce mutual exclusion between nificant computational cost. If bids in bini are currently be-
bids. For example, if bids b1 and b2 referring to bundles ing considered then the pruning function must only take into
e(b1 ) and e(b2 ) are intended to be mutually exclusive, we account bids from bini : : : binm . Because the partitioning
add a dummy good d to each bid: e(b1 ) becomes e(b1 ) [ d, of bids into bins does not change during the search we may
compute the pruning information for each bin in a prepro- the search. Also, there is never a need to add more than
cessing step. one element from each singleton vector. To see why, imag-
ine that we add both singletong (j ) and singletong (k ) to
Subbins our partial allocation. These two elements may have bids
In the multi-unit setting, we will often need to select more in common, and additionally there may be singleton bids
than one bid from a given bin. This leads to the idea of with more than max(j; k ) elements that would not conflict
subbins. A subbin is a subset of the bids in a bin that is con- with our partial allocation but that we have not considered.
structed during the search. Since subbins are created dynam- Clearly, we would be better off adding the single element
ically they cannot provide precomputed contextual informa- singletong (j + k ).
tion; rather, they facilitate the efficient selection of multiple
bids from a given bin. Every time we add a bid to our partial Caching
allocation we create a new subbin containing the next set of Consider a partial allocation 1 that is reached during the
bids to consider. If the search moves to a new bin, the new search phase. If the search proceeds beyond 1 then o(1 )
subbin is generated from the new bin by removing all bids was not sufficiently small to allow us to backtrack. Later in
that conflict with the current partial allocation. If the search the search we may reach an allocation 2 which, by combin-
remains in the same bin, the new subbin is created from the ing different bids, covers exactly the same number of units
current subbin by removing conflicting bids as above, and of the same goods as 1 . CAMUS incorporates a mechanism
additionally: if bid1 ; bid2 ; : : : ; bidi is the ordered set of ele- for caching the results of the search beyond 1 to generate
ments in the current subbin and bidj is the bid that was just a better estimate for the revenue given 2 than is given by
chosen, then we remove all bidk ; k  j . In this way we con- o(2 ). (Since 1 and 2 do not differ in the units of goods
sider all combinations of non-conflicting bids in each bin, that remain, o(1 ) = o(2 ).) Consider all the allocations ex-
rather than all permutations. tending 1 upon consideration of which the algorithm back-
tracked, denoted s1 ; s2 ; : : : ; sf . When we backtracked at
each si we did so because p(si )+o(si )  best , as explained
Dominated Bids
Some bids may be removed from consideration in a above. It follows that maxi (p(si )+o(si )) is an overestimate
polynomial-time preprocessing step. For each pair of bids of the revenue attainable beyond 1 , and that it is a smaller
(b1 ,b2 ) where both name the same goods but p(b1 )  p(b2 ) overestimate than o(1 ) (if it were not, we would have back-
and e(b1 )j  e(b2 )j for every good j , we may remove b2 tracked at 1 instead). Since in general p(1 ) 6= p(2 ), we
from the list of bids to be considered during the search, as b2 cache the value maxi (p(si ) + o(si )) p(1 ) and backtrack
is never preferable to b1 (hence we say that b1 dominates b2 ). when p(2 ) + a he(2 )  p(best ). Our cache is imple-
However, it is possible that an optimal allocation contains mented as a hash table, since caching is only beneficial to
both b1 and b2 . For this reason we store b2 in a secondary the overall search if lookup time is inconsequential. A con-
data structure associated with b1 , and consider adding it to sequence of this choice of data structure is that cache data
an allocation only after adding b1 . may sometimes be overwritten; we overwrite an old entry in
the cache when the search associated with the new entry ex-
Dynamic Programming amined more nodes. Even when we do overwrite useful data
Singleton bids (that is, bids that name units from only one the error is not catastrophic, however: in the worst case we
good) deserve special attention. These bids will generally must simply search a subtree that we might otherwise have
be among the most computationally expensive to consider– pruned.
the number of nodes to search after adding a very short bid
is nearly the same as the number of nodes to search after Heuristics
skipping the bid, because a short bid allocates few units
Two ordering heuristics are used to improve CAMUS’s per-
and hence conflicts with few other bids. Unfortunately, we
formance. First, we must determine an ordering of the
expect that singleton bids will be quite common in a vari-
goods; that is, which good corresponds to the first bin, which
ety of real-world multi-unit CA’s. CAMUS simplifies the
corresponds to the second, etc. For each good i we compute
problem of singleton bids by applying a polynomial-time
s orei = numbids i q (i)
dynamic programming technique as a preprocessing step. avgunitsi , where numbidsi is the number of
We construct a vector singletong for each good g , where bids that request good i and avgunitsi is the average num-
each element of the vector is a set of singleton bids nam- ber of total units (i.e., not just units of good i) requested
ing only good g . singletong (j ) evaluates to the revenue- by these bids. We designate the lowest-order good as the
maximizing set of singleton bids totaling j units of good g . good with the lowest score, then we recalculate the score for
This frees us from having to consider singleton bids indi- the remaining goods and repeat. The intuition behind this
vidually; instead, we consider only elements of the single- heuristic is as follows:
ton vector and treat these elements as atomic bids during  We want to minimize the number of bids in low-order
bins, to minimize early branching and thus to make each  If (units( ) = units(total)) record  if
individual prune more effective. it is the best; backtrack.
 We want to minimize the number of units of goods corre-  Set i to the index of the lowest-
sponding to low-order bins, so that we will more quickly order good in  where unitsi ( ) < q (i).
move beyond the first few bins. As a result, the pruning (i may or may not change)
function will be able to take into account more contextual  Construct a new subbin based on the
information. previous subbin of bini (which is bini
itself if i changed above):
 We want to maximize the total number of units requested
 Include all bidk from current sub-
by bids in low-order bins. Taking these bids moves us
bin, where k > j .
more quickly towards the leaves of the search tree, again
providing the pruning function with more contextual in-  Include all dominated bids associ-
formation. ated with bidj .
 Include singletoni(q(i) unitsi()).
Our second heuristic determines the ordering of bids within
bins. Given current partial allocation  , we sort bids
 Sort the subbin according to the
in a given bin in descending order of s ore(bj ), where
subbin-ordering heuristic.
p(bj )  Recurse to the recursive entry
s ore(bj ) = units (bj ) + o( [ bj ). The intuition behind this point, above, and search this new
heuristic is that the average price per unit of bidj is a mea- subbin.
sure of how promising the bid is, while the pruning overesti-
mate for o( [ bidj ) is an estimate of how promising the un-
  =  bidj .
– End For
allocated units are, given the partial allocation. This heuris-
tic helps CAMUS to find good allocations quickly, improv-  Return the optimal allocation: best .
ing anytime performance and also increasing best , making
pruning more effective. Because the pruning overestimate CAMUS procedures: a closer look
depends on  , this ordering is performed dynamically rather In this section we examine two of CAMUS’s fundamental
than as a pre-processing step. procedures more formally. Additional details will be pre-
sented in our full paper.
CAMUS Outline
Based on the above, it is now possible to give an outline of Pruning
the CAMUS algorithm: In this subsection we explain the implementation of CA-
MUS’s pruning function and demonstrate that it is guar-
 Process dominated bids. anteed not to underestimate the revenue attainable given a
 Determine an ordering on the goods, partial allocation. Consider a point in the search where we
have constructed some partial allocation  . The task of our
according to the good-ordering heuris-
tic. pruning function is to give an upper bound on the optimal
revenue attainable from the unallocated items, using the re-
 Using the dynamic programming tech- maining bids (i.e., the bids that may be encountered during
nique, determine the optimal combina- the remainder of the search). Hence, in the sequel when we
tion of singleton bids totaling 1 : : : q (j ) refer to goods, the number of units of a good and bids, we
for each good j . refer to what remains at our point in the search.
 Partition all non-singleton bids into First, we provide an intuitive overview. For every (re-
bins, according to the good ordering. maining) good j we will calculate a value v (j ). Simplifying
 Precompute pruning information for
slightly, this value is the largest average price per unit of
all the (remaining) bids requesting units of good j that do
each bin.
not conflict with  , multiplied by the number of (remaining)
 Set i = 1 and  = fg. units of j . The sum of v (j ) values for all goods is an upper
 Recursive entry point: bound on optimal revenue because it relaxes the constraint
that the bids in the optimal allocation may not conflict.
– For j = 1 ...number of bids in the More formally, let G = fg1 ; g2 ; : : : ; gm g be a set of
current subbin of bini . goods. Let q 0 (j ) denote the number of available units of
  =  [ bidj . good j . Consider a set of bids B = fb1 ; : : : ; bn g. Bid bi is
 If (p() + a he()  p(best )) backtrack. associated with a pair (p(bi ); e(bi )) where p(bi ) is the price
 If (p() + o()  p(best )) backtrack. offer of bid bi , and e(bi ) = (e(bi )1 ; e(bi )2 ; : : : ; e(bi )m )
where e(bi )j is the requested number of units of good j in value of U (i; j ), denoted by V (i; j ), is the sum of the price
bi . For each bid bi , let a(bi ) = 1jp(mbie)(bi )j be the aver- offers of the bids in U (i; j ). U (1; j ) will be b1 if b1 requests
age price per unit of bid bi . Notice that the average price no more than j units, and otherwise will be the empty set.
per unit may change dramatically from bid to bid, and it is a Now we can define U (i; j ) recursively:
non-trivial notion; our technique will work for any arbitrary 1. e(bi ) > j : U (i; j ) = U (i 1; j );
average price per unit. Let L(j ) be a sorted list of the bids 2. e(bi ) = j : if p(bi ) > V (i 1; j ) then U (i; j ) = bi . Else
that refer to non-zero units of good j ; the list is sorted in a U (i; j ) = U (i 1; j ).
monotonically decreasing manner according to the ai ’s. Let
jL(j )j denote the number of elements in L(j ), and let L(j )k 3. e(bi ) < j : if V (i 1; j )  p(bi ) + V (i 1; j e(bi ))
denote the k -th element of L(j ). then U (i; j ) = U (i 1; j ). Else U (i; j ) = bi [ U (i
v (j ) is determined by the following algorithm: 1; j e(bi )).
This dynamic programming procedure is polynomial, and
Let v (j ):=0; yields the desired result; the optimal allocation of k units is
Let m(j ):=0; given by U (l; k ). Set singletong (k ) = U (l; k ), 1  k  q .
For i := 1 to jL(j )j do
if m(j ) < q 0 (j ) then Experimental results
flet d := min(e(L(j )i )j ; q(j ) m(j )); m(j ) = m(j ) + Unfortunately, no real-world data exists to describe how bid-
d; v (j ) = v (j ) + a(L(j )i )  dg ders will behave in general multi-unit combinatorial auc-
Theorem 1 Let B o = fb01 ; b02 ; : : : ; b0s g be the bids in an op-
tions, precisely because the determination of winners in
timal allocation. Then, Ro = b2B o p(b)  1j m v (j ).
such auctions was previously unfeasible. We have there-
fore tested CAMUS on sets of bids drawn from a random
Sketch of proof: Consider the bid bo 2 B o . Then, distribution. We created bids as follows, varying the pa-
p(bo ) = 1j m a(bo )  e(bo )j . Hence, Ro = b2B o p(b) = rameters numgoods and numbids , and fixing the parameters
b2Bo 1jm a(b)  e(b)j . By changing the order of sum- unitsmax = 5, avgpri ebase = 50, avgpri evar = 25,
mation we get that Ro = 1j m b2B o a(b)  e(b)j . No- prob1 = 0:8, prob2 = 0:65, pri evar = 0:5:
tice that, given a particular j , the contribution of bid b to
b2Bo a(b)  e(b)j is a(b)  e(b)j . Recall now that v(j )
1. Set the number of units that exist for each good:
has been constructed from the set of all bids that refer to (a) For each good i, randomly choose unitsi from the
good j by choosing the maximal available units of good j range [1 : : : unitsmax℄.
from the bids in L(j ), where these bids are sorted accord- numgoods unitsmax j
(b) If i unitsi 6= j =1
unitsmax (the expectation on
ing to the average price per unit of good. Hence, we get i unitsi ) then go to (a). This ensures that each trial
v (j )  b2B o a(b)  e(b)j . Given that the above holds for involves the same total number of units.
every good j , this implies that 1j m v (j )  b2B o p(b),
2. Set an average price for each good: avgpri ei is drawn
uniformly randomly from the range [avgpri ebase
as requested.
avgpri evar : : : avgpri ebase + avgpri evar ℄.
The above theorem is the central tool for proving the fol-
lowing theorem:
3. Select the number of goods in the bid. This number is
Theorem 2 CAMUS is complete: it is guaranteed to find drawn from a decay distribution:
the optimal allocation in a multi-unit combinatorial auction
problem. (a) Randomly choose a good that has not already been
added to this bid
Pre-Processing of Singletons (b) With probability prob1 , if more goods remain then go
In this subsection we explain the construction of the to (a)
singletong vector described above, and demonstrate that 4. Select the number of units of each good, according to an-
singletong (j ) is the revenue-maximizing set of singleton other decay distribution:
bids for good g that request a total not exceeding j units. (a) Add a unit
Let b1 ; b2 ; : : : ; bl be bids for a single good g , where the (b) With probability prob2 , if more units remain then go to
total number of available units of good g is q . Let p(bi )
and e(bi ) be the price offer and the quantity requested by bi ,
(a)
respectively. Our aim is to compute the optimal selection of 5. Set a price for this bid: pri e = rand(1 pri evar ; 1 +
bi ’s in order to allocate k units of good g , for 1  k  q . pri evar )  i2bid (avgpri ei  unitsi )
Consider a two dimensional grid of size [1 : : : l℄  [1 : : : q ℄ This distribution has the following characteristics that we
where the (i; j )-th entry, denoted by U (i; j ), is the optimal consider to be reasonable. Bids will tend to request a small
allocation of j units considering only bids b1 ; b2 ; : : : ; bi . The number of goods, independent of the total number of goods.
Such data cases are computationally harder than drawing a
number of goods uniformly from a range, or than scaling the
Number of Bids vs. Time (s)
average number of goods per bid to the maximum number 10000

of goods. Likewise, bids will tend to name a small num-


1000

ber of units per good. Prices tend to increase linearly in the

average over 10 runs


100
number of units, for a fixed set of goods. This is a harder

Time (s)
case for our pruning technique, much harder than drawing 10

prices uniformly from a range. In fact, it may be reason- 1

able for prices to be superlinear in the number of units, as 0.1

the motivation for holding a CA in the first place may be


0.01
that bidders are expected to value bundles more than indi- 0 500 1000 1500
Number of Bids
2000 2500

vidual goods. However, this would be an easier case for our 25 units (10 goods) 30 units (12 goods) 35 units (14 goods) 40 units (16 goods)

pruning algorithm, so we tested on the linear case instead.


The construction of realistic, hard data distributions remains
a topic for further research.
Our experimental data was collected on a Pentium III- Percentage Optimality

733 running Windows 2000, with 25 MB allocated for CA- 100

MUS’s cache. Our figure Number of Bids vs Time shows


10
CAMUS’s performance on the distribution described above,

average over 10 runs


with each line representing runs with a different number of

Time (s)
1

goods. Note that, for example, CAMUS solved problems


with 35 objects (14 goods) and 2500 bids in about two min- 0.1

utes, and problems with 25 objects (10 goods) and 1500 bids
in about a second. Because the lines in this graph are sub- 0.01
0 500 1000 1500 2000 2500

linear on the logarithmic scale, CAMUS’s performance is 0.8 0.97


Number of Bids

0.98 0.99 1 finished

sub-exponential in the number of bids, though it remains ex-


ponential in the number of goods. Our figure Percentage Op-
timality shows CAMUS’s anytime performance. Each line
on the graph shows the time taken to find solutions with rev- References
enue that is some percentage of the optimal, calculated after Fudenberg, D., and Tirole, J. 1991. Game Theory. MIT Press.
the algorithm terminated. Note that the time taken to find the Fujishima, Y.; Leyton-Brown, K.; and Shoham, Y. 1999. Taming
optimal solution is less than the time taken for the algorithm the computational complexity of combinatorial auctions: Optimal
to finish, proving that this solution is optimal. These any- and approximate approaches. In IJCAI-99.
time results are very encouraging–note that CAMUS finds a Lehmann, D.; O’Callaghan, L.; and Shoham, Y. 1999. Truth
99% optimal solution an order of magnitude more quickly revalation in rapid, approximately efficient combinatorial auc-
than it takes for the algorithm to run to completion. This tions. In ACM Conference on Electronic Commerce.
suggests that CAMUS could be useful on much larger prob- Monderer, D., and Tennenholtz, M. 2000. Optimal Auctions
lems than we have shown here if an optimal solution were Revisited. Artificial Intelligence, forthcoming.
not required. Nisan, N., and Ronen, A. 2000. Computationally feasible vcg
mechanisms. To appear.
Conclusions Nisan, N. 1999. Bidding and allocation in combinatorial auctions.
In this paper we introduced CAMUS, a novel algorithm for Working paper.
determining the optimal set of winning bids in general multi- Rothkopf, M.; Pekec, A.; and Harstad, R. 1998. Computation-
unit combinatorial auctions. The algorithm has been tested ally manageable combinatorial auctions. Management Science
on a variety of data distributions and has been found to solve 44(8):1131–1147.
problems of considerable scale in an efficient manner. CA- Sandholm, T. 1999. An algorithm for optimal winner determina-
MUS extends our CASS algorithm for single-unit combina- tion in combinatorial auctions. In IJCAI-99.
torial auctions, and enables a wide extension of the class of Tennenholtz, M. 2000. Some tractable combinatorial auctions.
combinatorial auctions that can be efficiently implemented. To appear in the proceedings of AAAI-2000.
In our current research we are studying the addition of ran- Vries, S., and Vohra, R. 2000. Combinatorial auctions: A brief
dom noise into our good and bin ordering heuristics, com- survey. Unpublished manuscript.
bined with periodic restarts and the deletion of previously- Wellman, M.; Wurman, P.; Walsh, W.; and MacKie-Mason, J.
searched bids, to improve performance on hard cases while 1998. Auction protocols for distributed scheduling. Working pa-
still retaining completeness. per (to appear in Games and Economic Behavior).

View publication stats

You might also like