Taming the Computational Complexity of Combinatorial Auctions

29
Taming the Computational Complexity of Combinatorial Auctions Kevin Leyton-Brown Yoav Shoham

description

Taming the Computational Complexity of Combinatorial Auctions. Kevin Leyton-Brown Yoav Shoham. Overview. 1. Problem Statement 2. CASS 3. Experimental Results 4. Conclusions. Combinatorial Auctions. Agents often desire goods more in combination with other goods than separately - PowerPoint PPT Presentation

Transcript of Taming the Computational Complexity of Combinatorial Auctions

Page 1: Taming the  Computational Complexity  of Combinatorial Auctions

Taming the Computational Complexity of Combinatorial Auctions

Kevin Leyton-BrownYoav Shoham

Page 2: Taming the  Computational Complexity  of Combinatorial Auctions

Overview

1. Problem Statement1. Problem Statement2. CASS3. Experimental Results4. Conclusions

Page 3: Taming the  Computational Complexity  of Combinatorial Auctions

Combinatorial Auctions

Agents often desire goods more in combination with other goods than separately Example: two pieces of adjacent property

Combinatorial Auctions: mechanisms that allow agents to explicitly indicate complementarities Multiple goods are auctioned simultaneously Bidders place as many bids as they want Each bid may claim any number of goods

Agents assume less risk than in sequential auctions The auctioneer can hope to achieve higher revenues and/or

greater social welfare

Page 4: Taming the  Computational Complexity  of Combinatorial Auctions

Problem Statement

Determine the winners of a combinatorial auction Given a set of bids on bundles of goods, find a subset

containing non-conflicting bids that maximizes revenue This procedure can be used as a building block for more

complex combinatorial auction mechanisms e.g., the Generalized Vickrey Auction mechanism

Unfortunately, even this building block is an NP-complete problem

Finding optimal allocations remains desirable properties like truth revelation may not hold with

approximation problems up to a certain size will be tractable

Page 5: Taming the  Computational Complexity  of Combinatorial Auctions

Overview

1. Problem Statement

2. CASS2. CASS3. Experimental Results4. Conclusions

Page 6: Taming the  Computational Complexity  of Combinatorial Auctions

CASS: Introduction

CASS – Combinatorial Auction Structured Search CASS considers fewer partial allocations than a naïve DFS:

structure the search space: consider fewer conflicting bids pruning: use context from the search structure to generate

close overestimates of total revenue ordering heuristics: capitalize on this structure to speed

searching and improve anytime performance CASS has low memory demands

only stores nodes that are part of current allocation (# goods) most memory is used for pruning tables average 10-20 MB used for problems discussed today

Originally we proposed two algorithms, now CASS is always faster

Page 7: Taming the  Computational Complexity  of Combinatorial Auctions

Naïve Depth-First Search

bids are tuples: (a binary set of goods, a price) nodes are partial allocations (sums of bids) start node: empty set (no goods, $0) transitions between nodes: add one bid to the

partial allocation only add non-conflicting bids (bids whose intersection

with the current partial allocation is empty)

terminal node: no non-conflicting bids exist the terminal node with the highest revenue is the

optimal allocation

Page 8: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #1: Preprocessing

1. Remove dominated bids If there exist bids bk= (pk,Gk) and bl= (pl,Gl) such that

pl pk and Gl Gk, then remove bk Two bids for the same bundle of goods with different

prices One bundle is a a strict subset of another and has a

higher price

2. For each good g, if there is no bid b=(x,{g}), add a dummy bid b=(0,{g}) This ensures that the optimal set of bids will name

every good, even if some goods are not actually allocated

Page 9: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #2: Bins

Structure the search space to reduce the number of infeasible allocations that are considered Partition bids into bins, Di, containing all bids b where

good i Gb and for all j < i, j Gb

Add only one bid from each bin12412

1341345

124514

125

2323424

2452

34353453

454

5

1

D1 D4D3D2 D5

Page 10: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #3: Skipping Bins

When considering bin Di, if good j > i is already part of the allocation then do not consider any of the bids in Dj

All the bids in Dj are guaranteed to conflict with our allocation

In general, instead of considering each bin in turn, skip to Dk where k G(F) and i<k, I G(F)

12412

1341345

124514

125

2323424

2452

34353453

454

5

1

Page 11: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #4: Pruning

Backtrack when it is impossible to add bids to the current allocation to achieve more revenue than the current best allocation

Revenue overestimate function o(g,i,F) an overestimate of the revenue that can be achieved with

good g, searching from bin i with current partial allocation F

an admissible heuristic precompute lists for all g, i:

all bids that contain good g and appear in bin i or beyond sorted in descending order of average price per bid (APPB)

return APPB of the first bid in the list that doesn’t conflict with F

Backtrack at any point during the search if revenue(F) + revenue(best_allocation)

Fg

Figo ),,(

Page 12: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #5: Good Ordering Heuristic

Good ordering: what good will be numbered #1, #2…

Goal: reduce branching factor at the top of the tree pruning will often occur before bins with a higher

branching factor are reached Ordering of goods:

Sort goods in ascending order of score,

more bids more branching longer bids shallower search

gcontainingbidsoflengthaverage

gcontainingbidsofnumbergscore :)(

Page 13: Taming the  Computational Complexity  of Combinatorial Auctions

CASS Improvement #6: Bid Ordering Heuristic

Finding good allocations quickly:1. Makes pruning more effective2. Is useful if anytime performance is important

Ordering of bids in each bin: Sort bids in descending order of average price per good More promising bids will be encountered earlier in the

search

Page 14: Taming the  Computational Complexity  of Combinatorial Auctions

Overview

1. Problem Statement2. CASS

3. Experimental Results3. Experimental Results4. Conclusions

Page 15: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results: Data Distributions

There is little or no real data available, so we drew bids randomly from specific distributions

Binomial:

The probability of each good being included in a given bid is independent of which other goods are included

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

0 5 10 15 20 25 30

Bid Length

Fre

qu

en

cy

2.0, pn!(N-n)!

N!(1-p)p(n) f

N-nn

b

Page 16: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results: Data Distributions

Binomial is fairly easy to analyze, but not very realistic in a real auction, we expect mostly short bids harder more bids must be combined in an allocation

Exponential: fe(n) = Ce-x/p, p = 5 a bid for n+1 goods appears e-1/p times less often than a

bid for n goods.

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0 5 10 15 20 25 30

Bid Length

Fre

qu

en

cy

Page 17: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results: Data Distributions

Distribution of prices is also very important pruning is done on the basis of price

Prices of bids for n goods is uniformly distributed between [n(1-d), n(1+d)], d = 0.5 prices cluster around a “natural” average price per bid,

and deviate by a random amount if prices were completely random, the pruning algorithm

would have more of an advantage

Page 18: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Running Time (Binomial)

CASS Performance: Runtime vs. Number of Bids

0.1

1

10

100

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Number of Bids (Binomially Distributed)

Ru

nn

ing

tim

e (

med

ian

over

20 r

un

s, seco

nd

s)

200 goods 300 goods 400 goods 500 goods

Page 19: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Running Time (Exp.)

CASS Performance: Runtime vs. Number of Bids

0.01

0.1

1

10

100

1000

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Number of Bids (Exponentially Distributed)

Ru

nn

ing

tim

e (

med

ian

over

20 r

un

s,

seco

nd

s)

30 goods 40 goods 50 goods 60 goods 70 goods

Page 20: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Running Time (Exp.)

CASS Performance: Runtime vs. Number of Bids

0.01

0.1

1

10

100

1000

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Number of Bids (Exponentially Distributed)

Ru

nn

ing

tim

e (

med

ian

over

20 r

un

s,

seco

nd

s)

60 goods

Page 21: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Anytime Performance (Exp)

CASS Percentage Optimality: Elapsed Time vs. Number of Bids

0.01

0.1

1

10

100

1000

0 200 400 600 800 1000 1200 1400 1600 1800 2000

Number of Bids (Always 60 Goods, Exponentially Distributed)

Ela

psed

tim

e (

med

ian

over

20 r

un

s,

seco

nd

s)

0.8 0.9 0.95 0.96 0.97 0.98 0.99 1 Completed

Page 22: Taming the  Computational Complexity  of Combinatorial Auctions

Sandholm’s BidTree Algorithm

Presents results for four different distributions: Random Distribution:

Select the number of goods, N, in a given bid (uniform random)

Uniquely choose the goods Price: uniform random between [0, 1]

Weighted Random Distribution: Same as above, but price is [0, N]

Uniform Distribution All bids have same length (3 goods in this case) Price: uniform random between [0, 1]

Decay Distribution A given bid starts with one random good Keep adding random unique goods with probability Price: uniform random between [0, N]

Page 23: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Random Distribution

CASS vs BidTree Performance: Runtime vs. Number of Bids

0.1

1

10

100

1000

10000

500 750 1000

Number of Bids (Random Distribution)

Ru

nn

ing

tim

e (

avera

ge o

ver

20 r

un

s, seco

nd

s)

CASS - 100 goods CASS - 200 goods CASS - 300 goods CASS - 400 goods

BidTree - 100 goods BidTree - 200 goods BidTree - 300 goods BidTree - 400 goods

Page 24: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Weighted Random Distribution

CASS vs BidTree Performance: Runtime vs. Number of Bids

0.1

1

10

100

1000

10000

500 1000 1500 2000

Number of Bids (Weighted Random Distribution)

Ru

nn

ing

tim

e (

avera

ge o

ver

20 r

un

s, seco

nd

s)

CASS - 100 goods CASS - 200 goods CASS - 300 goods CASS - 400 goods

BidTree - 100 goods Bidtree - 200 goods BidTree - 300 goods BidTree - 400 goods

Page 25: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Uniform Distribution

CASS vs BidTree Performance: Runtime vs. Number of Bids

0.001

0.01

0.1

1

10

100

1000

10000

100000

50 100 150

Number of Bids (Uniform Distribution)

Ru

nn

ing

tim

e (

avera

ge o

ver

20 r

un

s, seco

nd

s)

CASS - 25 goods CASS - 50 goods CASS - 75 goods CASS - 100 goods

BidTree - 25 goods BidTree - 50 goods BidTree - 75 goods BidTree - 100 goods

Page 26: Taming the  Computational Complexity  of Combinatorial Auctions

Experimental Results:Decay Distribution

CASS vs BidTree Performance: Runtime vs. Number of Bids

0.001

0.01

0.1

1

10

100

1000

10000

50 100 150 200

Number of Bids (Decay Distribution)

Ru

nn

ing

tim

e (

avera

ge o

ver

20 r

un

s, seco

nd

s)

CASS - 50 goods CASS - 100 goods CASS - 150 goods CASS - 200 goods

BidTree - 50 goods BidTree - 100 goods BidTree - 150 goods BidTree - 200 goods

Page 27: Taming the  Computational Complexity  of Combinatorial Auctions

Overview

1. Problem Statement2. CASS3. Experimental Results

4. Conclusions4. Conclusions

Page 28: Taming the  Computational Complexity  of Combinatorial Auctions

Conclusions

We have proposed an algorithm to mitigate the computational complexity of combinatorial auctions, which works surprisingly well on simulated data determines optimal allocations in a small fraction of the

time taken by a naïve DFS approach to solve the same problem

can find good approximate solutions quickly

Page 29: Taming the  Computational Complexity  of Combinatorial Auctions

Future Work

Investigate the effects of different bin orderings and orderings of bids within bins

Compare to other search techniques integer programming other combinatorial auction search techniques

Experiments with real data (FCC auctions?) Caching: referenced in our paper, but currently

disabled Divisible/identical goods

some of our work on CASS is relevant to the new problem; much is not