Combinatorial Auctions V.S. Subrahmanian 1 Motivation 2 Bidders can bid on a set of items. The auctioneer can select a set of bids which maximize his revenue. Of course, he cannot sell the same item to two different people. Fall 2002, © V.S. Subrahmanian Example A,B 500 3 B,C 400 A,C 450 Fall 2002, © V.S. Subrahmanian C 200 Example A,B 500 B,C 400 A,C 450 winners A,B 500 4 C 200 Fall 2002, © V.S. Subrahmanian C 200 Bids Suppose I is a finite set of items for auction. A bid is a pair (S,p) where – – 5 S is a subset of I p is a price. Example: I = {A,B,C} ({A,B},500) is a bid. ({B,C},450) is a bid. Fall 2002, © V.S. Subrahmanian Succinct Bids 6 A set B of bids is succinct iff there are no two bids (s,p1),(s,p2) in B. If B is not succinct you can make it succinct pretty easily. Why ? E.g. if B = { …,({A,B},500),({A,B},480),…} you can delete the bid ({A,B},480). We henceforth assume all sets of bids are succinct. Fall 2002, © V.S. Subrahmanian Labelings Suppose B is a finite (succinct) set of bids. A labeling is a mapping L from B to {0,1} such that: – 7 If L(S1,p1)=1 and L(S2,p2)=1, then S1 and S2 are disjoint. Fall 2002, © V.S. Subrahmanian Example labeling A,B 500 1 8 B,C 400 A,C 450 C 200 0 0 1 Fall 2002, © V.S. Subrahmanian Example labeling A,B 500 0 9 B,C 400 A,C 450 C 200 1 0 0 Fall 2002, © V.S. Subrahmanian Value of a Labeling 10 Suppose I is a set of items and B is a succinct set of bids. The value v(L) of labeling L is defined as SUM(S,P) in B and L(S,p)=1 p. Intuitively, the value of a labeling determines the total amount of money the auctioneer takes in from the auction. Fall 2002, © V.S. Subrahmanian Example labeling A,B 500 1 B,C 400 A,C 450 C 200 0 0 1 Value = 700 11 Fall 2002, © V.S. Subrahmanian Example labeling A,B 500 0 B,C 400 A,C 450 C 200 1 0 0 Value = 400 12 Fall 2002, © V.S. Subrahmanian Winner determination problem (WDP) 13 Suppose I is a set of items and B is a succinct set of bids. A labeling L is a winner iff there is no other labeling L’ such that v(L’) > v(L). WDP:Find a winner ! WDP is NP-complete. Fall 2002, © V.S. Subrahmanian Winner computation 14 How do you find a winner ? Construct a tree. Each node in the tree contains a subset of B such that no two bids in B conflict. Root contains the empty set of bids. If a node N has b1 as its set of bids, and if b is a bid in B – b1 which does not conflict with any bid in b1, then N has a child labeled b1 U {b}. Thus, node N may potentially have lots of children. We would like to find a leaf node in this tree such that the value of that leaf node is maximal. Fall 2002, © V.S. Subrahmanian Example ({},0) ({A,B},500) 15 ({B,C},400) ({A,C},450} Fall 2002, © V.S. Subrahmanian ({C},200) Example Tree ({},0) ({A,B},500) ({C},200) 16 ({B,C},400) ({A,C},450} ({C},200) (NOTE: label of a node is union of all labels on the path to that node). ({A,B},500) Fall 2002, © V.S. Subrahmanian Winner computation 17 Clearly, such a tree is clearly HUGE. We do not want to construct this whole tree. Instead, we would like to find a winner by pruning this tree. How can we prune this tree? Fall 2002, © V.S. Subrahmanian Winner computation 18 Associate with each node, two values. G(N): total revenues associated with the bids labeling the node. H(N): an overestimate of the cost of a solution reachable from that node. Fall 2002, © V.S. Subrahmanian Example Tree: G(N) ({},0) ({A,B},500) ({B,C},400) ({A,C},450} ({C},200) 500 ({C},200) 19 ({A,B},500) 700 Fall 2002, © V.S. Subrahmanian How to compute H(N) 20 Let bids(N) be the set of bids labeling N. Associate with each item i not contained in any bid in bids(N), a cost C(i). Set H(N) to be the sum of all the C(i) such that i is not contained in any bid in bids(N), Fall 2002, © V.S. Subrahmanian How to compute C(i) 21 Find each item i not contained in any bid in bids(N).. For each such i, find each bid b in B-bids(N) which contains I and which does not conflict with bids(N). Let C(i) = MAX { avgcost(b) | b in B-bids(N) and b contains i and b does not conflict with bids(N) }. Fall 2002, © V.S. Subrahmanian Example Tree: H(N) ({},0) ({A,B},500) ({B,C},400) ({A,C},450} ({C},200) 22 ({C},200) ({A,B},500) Fall 2002, © V.S. Subrahmanian Example: H(N) ({C},200) does not contain both A,B. Bids containing A: ({A,B},500), ({A,C},450). ({A,C},450) conflicts with ({C},200). Cost(A)=250. Bids containing B: ({A,B},500),({B,C},400). ({B,C},400) conflicts with ({C},200). Cost(B) = 250. H(N) = 500 23 Fall 2002, © V.S. Subrahmanian Search Strategy Maintain – – – 24 OPEN list (nodes not expanded yet) in descending order of G(N)+H(N). BestSol BestVal. If BestVal > G(N)+H(N), then prune N from search tree. Fall 2002, © V.S. Subrahmanian Example Tree: G(N) + H(N) ({},0) ({A,B},500) ({B,C},400) ({A,C},450} ({C},200) 725 650 700 700 ({C},200) 25 ({A,B},500) Fall 2002, © V.S. Subrahmanian Example Tree: G(N) + H(N) ({},0) ({A,B},500) ({B,C},400) ({A,C},450} ({C},200) 725 650 700 700 ({C},200) 26 BestSol BestVal = 700 As no other node has G(N)+H(N) > BestVal, STOP Fall 2002, © V.S. Subrahmanian Conclusions 27 Many improvements possible. But this algorithm will product an optimal solution. Fall 2002, © V.S. Subrahmanian