“Fair Payments for Efficient Allocations in Public Sector Combinatorial Auctions” • To appear in Management Science • Plus some other unpublished research Robert Day S. Raghavan Paul Milgrom University of CT University of MD Stanford What to take away from this talk: • Combinatorial auctions are an exciting new area with many applications and research opportunities • An understanding of how O.R. concepts enable better economic outcomes • An understanding of the core in economics • Core auctions provide the most practical payment schemes for combinatorial auctions in general • Combinatorial Auction Test Suite (CATS) data provide a set of benchmarks for testing new auction algorithms • Read Combinatorial Auctions, Cramton Shoham, Steinberg eds. Combinatorial auctions • Multiple different items are sold simultaneously • Bidders can bid on combinations of items • When goods are complements, bidders can be sure not to get a partial set • When goods are substitutes, can be sure not to pay too much • Forward and reverse, iterative and sealed-bid variations exist Industrial Auction Applications • CombineNet is the world-leader in hosting “expressive commerce” events • Reverse auction applications include procurement events for a variety of resources including shipping lanes Government Auction Applications • FCC sells spectrum licenses and has considered package bidding. • In the UK, OfCom is close to adopting a combinatorial spectrum license auction using the techniques described here. (I coded it) • FAA: combinatorial landing slot auctions have been proposed to control congestion, but less likely to happen soon. A Practical Auction format • In the clock-proxy auction (due to Ausubel, Cramton, and Milgrom) linear prices go up until there is no excess demand • Activity rules usher bidding along • A final sealed-bid auction is needed to correct for the limitations of linear prices and allow for efficiency • Here we focus on the final sealed-bid round Notation I J bj (S) Sj W pj zC z(p) = = = = = = = = set of items being auctioned set of bidders bid by j on some set S in I set won by j in an efficient sol’n the winners in the efficient sol’n payment made by j win-determ value over C in J w-d value after discounting each bid by surplus at pay vector p O.R. Perspective, a Set Packing Problem Variation: General Winner Determination Problem (XOR) Maximize bj(S) xj(S) jєJ S in I subject to: xj(S) 1 , for each good i jєJ S|iєS xj(S) 1 , for each bidder j S in I Where xj(S) = 1 if bidder j receives set S = 0 otherwise Vickrey-Clarke-Groves payment mechanism • Each bidder gets a discount equal to: zJ – zJ \ j • Provably dominant-strategy incentive-compatible (truthful) • Vickrey won the Nobel prize for this line of work • Wrought with problems, however, including: Vulnerable to shill-bidding and collusion Low (sometimes zero) revenues “Unfair!” • Not used in practice Example: Bids on {A,B,C} • • • • • • b1{AB} = 18 b2{C} = 12 b3{A} = 3 b4{B} = 3 b5{C} = 3 b6{ABC} = 12 Winners Bidder 2 Pay-as-bid Payment (18,12) = p2 The Core 6 VCG 3 (6,3) p1+p2 >= 12 6 9 Bidder 1 Payment = p1 What is the Core? • From Wikipedia: “The core is the set of feasible allocations in an economy that cannot be improved upon by a subset of the set of the economy's consumers (a coalition).” • Example: N>1 miners find many large gold bars. It takes two to carry a bar home. If N is even each gets ½ bar (in the core.) If N is odd the core is empty. (NTU result) The Core in Auctions • An Allocation / Payment outcome is blocked if there is some coalition of bidders that can provide more revenue to the seller in an alternative outcome that is weakly preferred to the initial outcome by every member of the coalition. • An unblocked outcome is in the core. • A Core Mechanism computes payments in the core with respect to submitted bids. Representing the core (naïve approach) Define the core with coalitional offerings qC , where qC is the most money the coalition C will offer to pay the seller for a reallocation in their favor: p j ≥ qC for each subset C of J jєW pjVCG pj bj(Sj) Defining the Core: Problems and Solutions • A winning bidder’s contribution to a blocking coalition varies with his payment, i.e., qc ≠ zc Cancel out contributions of coalition members who are also winners • There are an exponential number of blocking coalitions to consider, each requiring solution of an NP-hard problem Generate constraints only as they are violated, i.e. only consider coalitions that block potential solutions. (Main Contribution of the M.S. paper.) Representing the Core • MS Paper formulation pj ≥ z(p jєW\C t) – pj t For all coalitions C in J jєW∩C • Equivalent (static) formulation pj ≥ zC – bj (Sj) jєW\C jєW∩C For all coalitions C in J The Separation Problem: Finding “the most violated blocking coalition” for a given payment vector pt • At pt , reduce each of the winning bidder’s bids by her current surplus: That is let bj(S) = bj(S) – (bj(Sj) - pjt ) • Re-solve the Winner Determination Problem • If the new Winner Determination value > Total Payments • Then a violated coalition has been found • Add to core formulation and re-iterate Adjusting payments Minimize pj jєW Simplest objective we consider pj ≥ z(pτ) - pjτ j є W \ Cτ for each τ ≤ t j є W ∩Cτ and for each j є W pjVCG pj bj(Sj) Example of the Procedure Winning Bids b1 = 20 Non-Winning Bids b4 = 28 b5 = 26 b6 = 10 b2 = 20 b3 = 20 b7 = 10 b8 = 10 VCG payments Blocking Coalition p1 = 10, p2 = 10, p3 = 10 p4 = 28, p3 = 10 Example of the Procedure Winning Bids b’1 = 10 Non-Winning Bids b4 = 28 b5 = 26 b6 = 10 b’2 = 10 b’3 = 10 b7 = 10 b8 = 10 VCG payments Blocking Coalition p1 = 10, p2 = 10, p3 = 10 p4 = 28, p3 = 10 Adjusting payments (1) Minimize pj jєW p1 + p2 ≥ 38 – 10 = 28 for each j є W pjVCG pj bj(Sj) New payments p1 = 14, p2 = 14, p3 = 10 Example of the Procedure Winning Bids b’1 = 14 Non-Winning Bids b4 = 28 b5 = 26 b6 = 10 b’2 = 14 b’3 = 10 b7 = 10 b8 = 10 New payments Blocking Coalition p1 = 14, p2 = 14, p3 = 10 p2 = 14, p5 = 26 Adjusting payments (2) Minimize pj jєW p1 + p2 ≥ 28 p1 + p3 ≥ 26 for each j є W pjVCG pj bj(Sj) New payments p1 = 16, p2 = 12, p3 = 10 Winning Bids b’1 = 16 Non-Winning Bids b4 = 28 b5 = 26 b6 = 10 b’2 = 12 b’3 = 10 b7 = 10 b8 = 10 New payments No Blocking Coalition exists: p1 = 16, p2 = 12, p3 = 10 These payments are final Other Properties and supporting results: • For any core mechanism, the Nash equilibria in semisincere strategies correspond exactly to the BPO Core payments • Therefore, we can expect efficient core outcomes when using a core mechanism • If coordination is sufficiently expensive, then truthtelling by all is a Nash equilibrium For a payment-minimizing core mechanism: • A form of profitable collusion to reduce total payments is eliminated • The sum of all individual incentives for unilateral deviation from truth-telling is minimized • Run time compares favorably with other techniques for computing core payments • See MS paper for details Conclusions on MS material • We developed a method that is simple to describe for computing core payments • The general algorithm works in any environment where WD is solved explicitly, allowing it to be applied for any “bid language” environment. • We have heuristically minimized the number of NP-hard WDs to solve, making this a fast method • Drastically faster than existing algorithms Newer results • A shill-proof mechanism must be a coremechanism • Using a symmetric strictly convex objective w/ super-additive derivative applied to the core, shill-bidding is dominated • Certain Quadratic objectives provide a practical example • Auctioneer can adjust for publicly known pricing information, entice bidding with multipliers, and uniquely decompose payments according to KKT conditions. Open avenues • Combinatorial auctions with stochastic demand have barely been explored; nothing exists in combinatorial auctions core theory • Experimental work with bidding languages possible • Elicitation and bidding language work has begun, but still interesting • Endogenous bidding in combinatorial auctions unexplored -> my new technique for bid weights has no guiding theory-> weights must be set exogenously