A Trading Agent for Real-Time Procurement of Bundles of Complementary Goods on Multiple Simultaneous Internet Auctions and Exchanges Erik Aurell, Mats Carlsson, Joakim Eriksson, Niclas Finne, Sverker Janson, Lars Rasmusson, Magnus Boman, Per Kreuger Intelligent Systems Laboratory Swedish Institute of Computer Science (SICS) http://www.sics.se/isl/ Combinations of Goods/Resources • Complementary goods – Demand in one decreases when price of the other increases – ”both needed” • Substitutable goods – Demand in one increases when price of the other increases – ”one or the other” • Buyer combinations – – – – Flight and hotel nights Project resources VPN links ... • Seller combinations – Match production facilities – Economy of scale – Byproducts – ... Combinatorial Markets and Trading • How make the best possible global exchange of goods/resources? • Combinatorial markets • How buy/sell the best possible combinations at the best possible prices? • Trading agents – All goods on one market – Global optimization of combinatorial bids – See, e.g., Trade Extensions (tradeextensions.se) – Goods on multiple markets – Optimized trading (online decision problem) for one or more clients Trading Agent Competition (TAC) • Trading Agent Competition – International annual event – Aim: stimulate research into automated combinatorial trading • A game instance – 8 competing agents, each representing 8 clients – 28 markets, auctions, exchanges – 12 minutes • Model problem – Goods in travel domain: flights, hotel nights, event tickets – Agents represent clients with different preferences – Goal: buy best possible combinations at the lowest possible price • The TAC-01 competition – 25 participating academic and industrial research groups – Winner, livingagents by Living Systems AG, determined by thousands of games over several weeks 8 agents White bear 28 auctions flight markets ATTac 8 clients Living Agents hotel auctions 006 Roxy Bot Harami Arc2k Urlaub event ticket exchanges Trading Agents TAC Server 006 ATTac Living Agents Communication with trading agents Information database Game Spectators Publish data via web and applet Market server TAC-01 Game Monitor (Game 5716) Travel Packages, Goods and Feasibility • Inflight tickets Ii – i in 1 .. 4 • Outflight tickets Oi – i in 2 .. 5 • Hotel nights Hij – i in 1 .. 2, j in 1 .. 4 • Event tickets Eij – i in 1 .. 3, j in 1 .. 4 • Flights, in preceding out • Hotel nights in-date to out-date – 1, same hotel • Up to three different events on different hotel nights • E.g., I1, O3, H11, H12, E21, E32 Client Preferences and Utility • Preferred arrival and departure date – PA in 1 .. 4, PD in 2..5 • Bonus for H1 – BH1 in 50 .. 150 • Bonus for E1, E2, E3 – BE1, BE2, BE3 in 0 .. 200 • E.g., PA = 1, PD = 4, BH1 = 63, BE1 = 120, BE2 = 23, BE3 = 184 • Utility = 1000 – TravelPenalty + HotelBonus + EventBonus • TravelPenalty = 100 * (|AA–PA| + |AD–PD|) • E.g., 1000 – 100*(|1-1| + |3-4|) + 63 + 23 + 184 = 1170 • Max 1750, min 400 Auction/Market Types • Flight tickets – – – – – ”Over-the-counter” Unlimited supply Prices in $150 .. $800 Start in $250 .. $400 Updated every ~30 seconds by -10 .. X(t) • Event tickets – Continuous double auction – 8 tickets / event / day – 12 endowed / agent • Hotel nights – Ascending multi-unit Nth price auctions – 16 rooms / hotel / night – Price = 16th highest bid – Price updates once a minute – Auctions close randomly, one every minute from 4th minute Trading Agent Problems • Strategy problem – – – – – Buy which packages? Which packages demanded by others? Modeling opponents? Price expectations? Uncertainty/risk? (Binding bids.) • Optimization problem – Combine goods into travel packages for clients – Analogous to combinatorial auctioneer problem 006 Strategy Initialize Endowment Client prefs Optimizer (“The Solver”) Flight Estimate prices Hotel Event Find optimal holdings marginal costs and prefs e.g. Hotel auction handler Compute new bid from current holdings, old bid and target holdings. Bid. Monitor bid. Increase if necessary. Compute target holdings Inform auction handlers target holdings and price If transaction, auction close, or price > max cost then initiate replanning. 006 Optimizer (”The Solver”) • Constraint programming – Finite domain constraints – Global constraints • cumulatives(Ts, Ms) – task(S, D, E, H, M) – machine(M, L) • Limited discrepancy search – Limit allowed backtracks – Anytime • Branch-and-Bound – Bound = best so far • Variable order – – – – Arrivals, departures Hotels Events Order by max utility of pertaining client • Value order – Descending estimated value of X = v – I.e. average of upper and lower bound – Arrival, departure ordered pairwise 006 Architecture & Implementation FlightStrategy Strategy Flight FlightStrategy Strategy Hotel Flight Strategy Strategy Enter. Flight Handler Hotel Handler Entertainment Handler Auction Handler Auction Handler Auction Handler • SICStus Prolog • Explicit task scheduling • Optimizer in separate process Game Handler Communication and Scheduling TAC Server (Michigan Auction Bot) ”The Solver” TAC Optimizer TAC-01 Scores (Semifinals) # Agent Affiliation Score Std dev Heat 1 livingagents Living Systems AG 3660.2 893.8 1 2 Southampton TAC University of Southampton 3614.5 747.3 1 3 Urlaub01 Penn State University 3484.8 924.1 1 4 whitebear Cornell University 3469.7 1043.0 1 5 Retsina Carnegie Mellon University 3293.5 630.9 2 6 ATTac AT&T Labs 3249.2 407.9 2 7 006 SICS 3240.8 1108.1 1 8 CaiserSose University of Essex 3038.1 640.9 2 9 TacsMan Stanford University 2966.1 595.2 2 10 PainInNEC NEC Research 2905.9 540.6 2 11 polimi_bot Politecnico di Milano 2834.7 1102.1 2 12 umbctac University of Maryland, BC 2772.9 813.5 2 13 RoxyBot Brown University 2112.4 1478.7 2 14 arc-2k Chinese U of Hong Kong 1746.3 1948.7 1 15 jboadw McGill University, CA 1716.7 1281.3 1 16 harami Bogazici University, Istanbul 94.4 2537.2 1 006 Problem: Unstable Solver Output • Time • Time • Utility • Utility • Flight allocation • Flight allocation • Hotel allocation • Hotel allocation • Event allocation • Event allocation – 260 ms – 2736 – [4,4,4,4,4,4,3,4] – [5,5,5,5,5,5,4,5] – [0,0,0,0,0,0,0,0] – [1,1,1,1,1,1,1,1] – [0,4,0,4,0,0,3,0] – [0,0,0,0,0,0,0,0] – [4,0,0,0,4,4,0,0] – 540 ms – 2978 – [3,1,3,1,2,2,3,3] – [5,5,5,4,3,5,4,5] – [1,1,1,1,0,1,1,1] – [0,0,0,0,1,0,0,0] – [0,0,3,3,0,0,3,0] – [0,0,0,0,0,0,0,0] – [4,4,0,0,2,4,0,0] Trading Agent Competition 2002 • Hosted by SICS • Info/registration: http://www.sics.se/tac/ • New open source game and market server software