Optimal Pricing in a Free Market INFOCOM 2007 Wireless Network S1 S3 ? S1 S3 S4 current $: q3(t) current $: q2(t) S2 5 6 7 S2 Michael J. Neely University of Southern California http://www-rcf.usc.edu/~mjneely *Sponsored in part by DARPA IT-MANET Program and NSF Grant OCE 0520324 S1 S3 ? S1 S3 S4 current $: q3(t) current $: q2(t) S2 5 6 7 S2 Time-slotted System: t {0, 1, 2, …} Time-Varying Channels: (fading, mobility, etc.) Sn(t) = (Sn1(t), Sn2(t), …, Snk(t)) (channel states on outgoing links of node n) Transmission Rate Options (nodes use orthogonal channels): mn(t) = (mn1(t), mn2(t), …, mnk(t)) Wn(Sn(t)) S1 S3 ? S1 S3 S4 current $: q3(t) current $: q2(t) 7 5 S2 Transmission Costs: Example: S2 6 Cntran(mn(t), Sn(t)) Cntran(m) m Reception Costs: Cnbrec(mnb(t)) *Example: Cnbrec(mnb(t)) = { sb if mnb(t) > 0 { 0 if mnb(t) = 0 *this example is used in slides for simplicity S1 S3 ? S1 S3 S4 current $: q3(t) current $: q2(t) S2 5 6 7 S2 For simplicity of these slides: Assume single commodity (multisource, single sink) (multi-commodity case treated in the paper) Un(t) = Queue Backlog in node n at time t Rn(t) = *New data admitted to network at source n at time t New source data R2(t) Endogenous arrivals U3(t) Transmit out Node 3 (a source) *Not all nodes are sources: Some simply act as profit-seeking relays S1 S3 ? S1 S3 S4 current $: q3(t) current $: q2(t) S2 6 5 7 S2 For simplicity of these slides: Assume single commodity (multisource, single sink) (multi-commodity case treated in the paper) Un(t) = Queue Backlog in node n at time t Rn(t) = *New data admitted to network at source n at time t Endogenous arrivals U5(t) Transmit out Node 5 (pure relay: not a source) *Not all nodes are sources: Some simply act as profit-seeking relays Free Market Network Pricing: revenue Data that node n already needs to deliver Advertisement current $: qn(t) expenses rec. cost: sn Node n -Each node n sets its own per-unit price qn(t) for accepting endogenous data from others. (Seller Node Challenge: How to set the price?) -Node n advertises qn(t) and the reception cost. (fixed reception cost sb used in slides for simplicity) Free Market Network Pricing: Seller Node n Perspective Node n Advertisement $ = qn(t) rec = sn Buyer Node a Perspective Node a Advertisement ? ? $ = qn(t) rec = sn n Advertisement ? ? $ = qn(t) rec = sn b “Buyer Nodes” pay handling charge + reception fee: -Handling Charge: ban(t) = man(t)qn(t) -Reception Fee: sn Free Market Network Pricing: Seller Node n Perspective Node n Advertisement $ = qn(t) rec = sn Buyer Node a Perspective Node a Advertisement ? ? $ = qn(t) rec = sn n Advertisement ? ? $ = qn(t) rec = sn b Buyer Node Challenge: Where to send? How much to send? Is advertised price acceptable? (current transmission costs Cntran(mn(t), Sn(t)) play a role, as does the previous revenue earned for accepting data) Free Market Network Pricing: The sources’ desire for communication is the driving economic force! Modeling the Source Demand Functions: -Elastic Sources -Utility gn(r) = Source n “satisfaction” (in dollars) for sending at rate r bits/slot. gn(r) h r Assumed to be: 1. Convex 2. Non-Decreasing 3. Max slope h Node n profit (on slot t): fn(t) = total income(t) - total cost(t) - payments(t) Income Payments Costs Node n Source (at node n) profit (on slot t): yn(t) = gn(Rn(t)) - qn(t)Rn(t) Rn(t) Source at n $ = qn(t) Node n Social Welfare Definition: Social Welfare = n where: rn [gn( rn ) - costn ] = time avg admit rate from source n costn = time avg external costs expended by node n (not payment oriented) Simple Lemma: Maximizing Social Welfare… (i) …is equivalent to maximizing sum profit (sum profit = “network GDP”) (ii)…can (in principle) be achieved by a stationary randomized routing and scheduling policy We will design 2 different pricing strategies: 1) Stochastic Greedy Pricing (SGP): - Greedy Interpretation - Guarantees Non-Negative Profit - If everyone uses SGP, Social Welfare Maxed over all alternatives (and so Sum Profit Maxed) 2) Bang-Bang Pricing (BB): - No Greedy Interpretation - Yields a “optimally balanced” profits (profit fairness…minimizes exploitation) Prior Work: Utility Maximization for Static Networks: [Kelly: Eur. Trans. Tel. 97] [Kelly, Maulloo, Tan: J. Oper. Res. 98] [Low, Lapsley: TON 1999] [Lee, Mazumdar, Shroff: INFOCOM 2002] Utility Maximization for Stochastic Networks: [Neely, Modiano, Li: INFOCOM 2005] [Andrews: INFOCOM 2005] [Georgiadis, Neely, Tassiulas: NOW F&T 2006] [Chen, Low, Chiang, Doyle: INFOCOM 2006] Pricing plays only an indirect role in yielding max utility solution For the stochastic algorithms, dynamic “prices” do not necessarily yield the non-negative profit goal! Prior Work: Revenue Maximization for Downlinks (non-convex): [Acemoglu, Ozdaglar: CDC 2004] [Marbach, Berry: INFOCOM 2002] [Basar, Srikant: INFOCOM 2002] Profit is central to problem Markov Decision Problems for single-network owner: [Paschalidis, Tsitsiklis TON 2000] [Lin, Shroff TON 2005] Market Mechanisms: [Buttyan, Hubaux: MONET 2003] [Crowcroft, Gibbens, Kelly, Ostring WiOpt 2003] [Shang, Dick, Jha: Trans. Mob. Comput. 2004] [Marbach, Qui: TON 2005] Need a stochastic theory for market-based network economics! Stochastic Greedy Pricing Algorithm (SGP): (Similar to Cross-Layer-Control (CLC) Algorithm from [Neely 2003] [Neely, Modiano, Li INFOCOM 2005]) For a given Control Parameter V>0… Pricing (SGP): Rn(t) qn(t) = Un(t)/V Admission Control (SGP): “instant utility” Node n payment Max: gn(Rn(t)) - qn(t) Rn(t) Subj. to: 0 < Rn(t) < Rmax Queue Backlog Un(t) Stochastic Greedy Pricing Algorithm (SGP): (Similar to Cross-Layer-Control (CLC) Algorithm from [Neely 2003] [Neely, Modiano, Li INFOCOM 2005]) For a given Control Parameter V>0… Resource Allocation & Routing (SGP): Define the modified differential price Wnb(t): qn(t) qb(t) Wnb(t) = qn(t) - qb(t) - d/V where d = max[mmax out, mmax in + Rmax] Maximize: b Wnb(t)mnb(t) - Subj. to : b Cnbrec(mn(t)) - Cntran(mn(t), Sn(t)) mn(t) Wn(Sn(t)) Theorem (SGP Performance): For arbitrary S(t) processes and for any fixed parameter V>0: (a) Un(t) < Vh + d for all n, for all time t (b) All nodes and sources receive non-negative profit at every instant of time t: t-1 1 Nodes: fn(t) > 0 t t=0 Sources: ( gn t-1 t-1 1 R (t) 1 q (t) R (t) > 0 - t n n t t=0 n t=0 ) (a)(b) hold for any node n using SGP, even if others don’t use SGP! Theorem (SGP Performance): For arbitrary S(t) processes and for any fixed parameter V>0: (a) Un(t) < Vh + d for all n, for all time t (b) All nodes and sources receive non-negative profit at every instant of time t: (c) If Channel States S(t) are i.i.d. over slots and if everyone uses SGP: Social Welfare > g* - O(1/V) g* = maximum social welfare (sum profit) possible, optimized over all alternative algorithms for joint pricing, routing, resource allocation. Simulation of SGP: S1 6 S3 S2 S4 5 7 Parameters: V= 50 Dotted Links: ON/OFF Channels (Pr[ON] = 1/2) Transmission costs = 1 cent/packet, reception costs = .5 cent/packet Solid Links: Transmission costs = 1 cent/packet Utilities: g(r) = 10 log(1 + r) Simulation of SGP: S1 S3 S2 S4 5 6 7 SGP: V=50 C2 = C5 = C7 = 1 g(r) = 10 log(1+r) Simulation of SGP (increase cost of C2, C5): S1 S3 S2 S4 5 6 7 SGP: V=50 C7=1 C2 = C5 = 3 g(r) = 10 log(1+r) Bang-Bang Pricing (BB) Algorithm: Objective is to Maximize: n [ Fn( fn ) + Yn( yn ) ] Where Fn(f) and Yn(y) are concave profit metrics. Yields a more balanced (and “fair”) profit distribution. Quick (incomplete) description of Bang-Bang Pricing (see paper for details):Uses General Utility Optimization technique from our previous work in [Georgiadis, Neely, Tassiulas NOW F & T 2006] BB Algorithm: Define Virtual Queues Xn(t), Yn(t) And Auxiliary Variables gn(t), nn(t). Nodes n: Sources n: expenses(t) + gn(t) payment(t) + nn(t) Xn(t) Yn(t) income(t) gn(Rn(t)) Pricing (BB): qan(t) = { Qmax if Xa(t) < Xn(t) {0 else (Price depends on the incoming link) Distributed Auxiliary Variable Update: Each node n solves: Maximize: VFn(g) - Xn(t)g Subject to: 0 < g < Qmax d Resource Allocation Based on Mod. Diff. Backlog: Wnb(t) = Un(t) - Ub(t) -qnb(t)[Xn(t) - Xb(t)] Theorem (BB Performance): If all nodes Use BB with parameter V>0, then: 1) Avg. Queue Congesetion < O(V) 2) n [ Fn( fn ) + Yn( yn ) ] > Optimal - O(1/V) Simulation of BB: S1 S3 S2 S4 5 6 7 SGP: V=50 C2 = C5 = C7 = 1 g(r) = 10 log(1+r) Simulation of BB (increase cost of C2, C5): S1 S3 S2 S4 5 6 7 SGP: V=50 C7=1 C2 = C5 = 3 g(r) = 10 log(1+r) Conclusions: 1) SGP: Guarantees Non-negative profit and Bounded queues, Regardless of actions of Other nodes. If all nodes Use SGP => Max sum Profit! 2) BB: Optimally Balanced, but has no greedy interpretation. S1 S3 S2 S4 5 6 7 SGP: V=50 C7=1 C2 = C5 = 3 g(r) = 10 log(1+r)