Incentives And Pricing In Communication Networks

Kelly's network utility maximization (NUM) with routing matrix and link capacities; KKT conditions and link prices as Lagrange multipliers; price-taking users; weighted proportionally fair allocation via bids; primal–dual congestion control (link price ODE, rate = bid / route price) and its Lyapunov convergence proof; myopic bid updates recover the social optimum; architectural decomposition into congestion control, congestion indication and feedback; wireless extension with schedules and max-weight scheduling (queue lengths as prices); profit-maximizing providers on parallel links with Wardrop equilibrium and reservation utility; monopoly markup equals the Pigouvian tax, so monopoly is efficient; duopoly and oligopoly equilibrium prices with an extra competitive markup; tight 5/6 efficiency bound for oligopoly (Theorem 22.3), 2/3 for elastic traffic (Theorem 22.4), 1/2 for parallel–serial networks under strict equilibria with double marginalization (Theorem 22.5); smart markets, Paris Metro Pricing, first-best tolls, flat-fee marginal-user pricing, P2P and wireless cooperation incentives

· 24 min read · 4,750 words

Motivation: prices in a network nobody controls

Modern networks are huge and span many administrative domains, with end users whose needs differ. Centralized resource-allocation protocols are hard to formulate and harder to deploy. The standard response is to model users, and sometimes providers, as self-interested agents. Two consequences follow:

  1. modeling such networks needs game theory;
  2. without central control, selfish interaction can misallocate resources.

Prices play two conceptually different roles:

RoleWho sets pricesUsersSection
control signalthe network, to implement the social optimumprice takers§22.1
revenue instrumentcompeting profit-maximizing providersroute by Wardrop’s principle§22.2

IntuitionThe central question

Can decentralized prices — computed by routers from local congestion, or set by competing firms for profit — steer selfish traffic to the socially optimal allocation, and when they can’t, how much is lost?


Prices as control: network utility maximization

Setup. A network of links ll with capacities clc_l is shared by users (sources) rr. Each user sends at rate xrx_r (packets per unit time) along a fixed route. “User,” “source,” “connection” and “route” share the index rr, and l∈rl \in r means link ll is on route rr.

DefinitionRouting matrix and utilities

Rlr=1R_{lr} = 1 if l∈rl \in r, else 00. Each user has a utility Ur(xr)U_r(x_r) that is strictly increasing and strictly concave. An allocation is socially optimal if it maximizes total utility. (In networking, “social optimality” and “fairness” are often used interchangeably.)

FormulaNUM — Kelly’s resource allocation problem

max⁡x≥0 ∑rUr(xr)s.t.Rx≤c.(22.1)\max_{x \ge 0}\ \sum_r U_r(x_r) \quad\text{s.t.}\quad Rx \le c. \tag{22.1}

The constraint says ∑r: l∈rxr≤cl\sum_{r:\, l\in r} x_r \le c_l at every link. Strict concavity gives a unique optimum x^\hat x.

The obstacle. Solving (22.1) needs every utility and every route. VCG (mechanism-design) would elicit utilities, but it needs a central authority solving a global optimization, which is computationally heavy. Kelly’s alternative is simpler.

TheoremKKT conditions for NUM

x^\hat x is optimal iff there exist multipliers p^≥0\hat p \ge 0 with

Ur′(x^r)=∑l∈rp^l  ∀r,p^l(∑r: l∈rx^r−cl)=0  ∀l,∑r: l∈rx^r≤cl,p^,x^≥0.(22.2–22.5)U_r'(\hat x_r) = \sum_{l\in r}\hat p_l\ \ \forall r, \qquad \hat p_l\Big(\sum_{r:\,l\in r}\hat x_r - c_l\Big) = 0\ \ \forall l, \qquad \sum_{r:\,l\in r}\hat x_r \le c_l,\qquad \hat p,\hat x \ge 0. \tag{22.2–22.5}

DefinitionRoute price

Charge user rr a per-bit price equal to the sum of link prices along its route: q^r=∑l∈rp^l,q^=RTp^.(22.6)\hat q_r = \sum_{l \in r}\hat p_l, \qquad \hat q = R^T\hat p. \tag{22.6}

IntuitionReading the KKT conditions

p^l\hat p_l is the shadow price of link ll‘s capacity. It is positive only if the link is full (complementary slackness). At the optimum, each user’s marginal utility equals the total congestion price of its path.

Price takers. If each flow is negligible, users treat prices as fixed and solve

max⁡xr≥0 Ur(xr)−q^rxr.(22.7)\max_{x_r \ge 0}\ U_r(x_r) - \hat q_r x_r. \tag{22.7}

The solution is exactly x^r\hat x_r from (22.2).

ImportantSelfish = optimal, under two assumptions

  1. Users are price takers: reasonable in a huge network like the Internet.
  2. Prices equal the Lagrange multipliers: reasonable when a network controller cares about overall performance, and not when profit-seeking providers set prices (Prices set by competing providers).

RemarkRelation to Chapter 21

This is the network version of Theorem 21.1: price taking plus market clearing gives efficiency. scalable-resource-allocation shows that when users instead anticipate their effect on price, one link loses up to 1/4.

Two practical problems, and the bid mechanism

Computing p^\hat p runs into two problems:

  • P1. The network doesn’t know the utility functions.
  • P2. Even with the utilities, no central authority knows all capacities and the whole topology.

AlgorithmTwo-step bid mechanism

  1. Each user announces a bid wrw_r: what it is willing to pay per unit time.
  2. The network allocates rates by solving max⁡x≥0 ∑rwrlog⁡xrs.t.Rx≤c.(22.8)\max_{x\ge0}\ \sum_r w_r\log x_r \quad\text{s.t.}\quad Rx \le c. \tag{22.8}

DefinitionWeighted proportional fairness

The solution x∗x^* of (22.8) is the weighted proportionally fair allocation. Its KKT conditions are those of NUM with Ur′U_r' replaced by wr/xrw_r/x_r:

wrxr∗=∑l∈rpl∗,pl∗(∑r: l∈rxr∗−cl)=0,∑r: l∈rxr∗≤cl,p∗,x∗≥0.(22.9–22.12)\frac{w_r}{x_r^*} = \sum_{l\in r}p_l^*,\quad p_l^*\Big(\sum_{r:\,l\in r}x^*_r - c_l\Big) = 0,\quad \sum_{r:\,l\in r}x^*_r \le c_l,\quad p^*,x^* \ge 0. \tag{22.9–22.12}

ImportantMatching the bids

If users bid wr=xr∗ Ur′(xr∗)w_r = x_r^*\,U_r'(x_r^*), then (22.9) coincides with (22.2), so x∗=x^x^* = \hat x. The network solves a utility-free problem, and the bids carry exactly the information needed.

A distributed algorithm: congestion control

Solve (22.8) dynamically, with each link updating its own price.

AlgorithmPrimal–dual congestion control

Links (routers):

p˙l=(yl−cl)pl+,yl=∑r: l∈rxr,(22.13)\dot p_l = (y_l - c_l)^+_{p_l}, \qquad y_l = \sum_{r:\,l\in r} x_r, \tag{22.13}

where (a)b+=max⁡(a,0)(a)^+_b = \max(a,0) if b=0b = 0, and aa if b>0b > 0. The price rises while the link is overloaded, falls while it is underloaded, and never goes negative.

Users (end hosts): xr=wrqr,qr=∑l∈rpl.(22.14)x_r = \frac{w_r}{q_r}, \qquad q_r = \sum_{l\in r} p_l. \tag{22.14} Reacting to the route price qrq_r is what networking calls congestion control.

Equilibria of (22.13) have either yl=cly_l = c_l or pl=0p_l = 0, which is complementary slackness (22.10). So any steady state of (22.13)–(22.14) satisfies (22.9)–(22.12).

TheoremConvergence for fixed bids

Suppose RR has full row rank, so link prices are determined by route prices and p∗p^* is unique. Then for fixed bids, (22.13)–(22.14) converge to (x∗,p∗)(x^*, p^*).

ProofLyapunov function V(p)=12∥p−p∗∥2V(p) = \tfrac12\lVert p - p^*\rVert^2

Identity used throughout: qTx=pTRx=pTyq^Tx = p^TRx = p^Ty.

dVdt=∑l(pl−pl∗)(yl−cl)pl+≤(a)(p−p∗)T(y−c)\frac{dV}{dt} = \sum_l(p_l - p_l^*)(y_l - c_l)^+_{p_l} \overset{(a)}{\le} (p - p^*)^T(y - c) =(p−p∗)T(y−y∗)+(p−p∗)T(y∗−c)≤(b)(p−p∗)T(y−y∗)= (p - p^*)^T(y - y^*) + (p - p^*)^T(y^* - c) \overset{(b)}{\le} (p - p^*)^T(y - y^*) =(p−p∗)TR(x−x∗)=(q−q∗)T(x−x∗)=∑r(wrxr−wrxr∗)(xr−xr∗)≤(c)0.= (p - p^*)^TR(x - x^*) = (q - q^*)^T(x - x^*) = \sum_r\Big( \frac{w_r}{x_r} - \frac{w_r}{x_r^*}\Big)(x_r - x_r^*) \overset{(c)}{\le} 0.
  • (a) If the projection is inactive, this is equality. If active (pl=0p_l = 0 and yl<cly_l < c_l), the left term is 0 while the right term −pl∗(yl−cl)≥0-p_l^*(y_l - c_l) \ge 0.
  • (b) For each link, either yl∗=cly_l^* = c_l, or yl∗<cly_l^* < c_l with pl∗=0p_l^* = 0. Either way (pl−pl∗)(yl∗−cl)=pl(yl∗−cl)≤0(p_l - p_l^*)(y_l^* - c_l) = p_l(y_l^* - c_l) \le 0.
  • (c) 1/x1/x is decreasing, so each summand is ≤0\le 0.

The key step: the route-price/rate relation qr=wr/xrq_r = w_r/x_r is monotone decreasing. That makes the cross term nonpositive, which is exactly the concavity of wrlog⁡xrw_r\log x_r.

∎

NoteStated at this level of detail

The chapter concludes convergence directly from V˙≤0\dot V \le 0. A LaSalle- type argument, using uniqueness of (x∗,p∗)(x^*,p^*), is implicit.

Bid updates by myopic users

Bids affect what users pay, so users will adjust them. Suppose users are price-taking and myopic, maximizing instantaneous net utility:

max⁡wr Ur ⁣(wrqr)−wr  ⇒  Ur′ ⁣(wrqr)=qr  ⇔  wr=xrUr′(xr).\max_{w_r}\ U_r\!\left(\frac{w_r}{q_r}\right) - w_r \;\Rightarrow\; U_r'\!\left(\frac{w_r}{q_r}\right) = q_r \;\Leftrightarrow\; w_r = x_rU_r'(x_r).

FormulaResulting congestion control law

Ur′(xr)=qr,i.e.xr=(Ur′)−1(qr).(22.15)U_r'(x_r) = q_r, \qquad\text{i.e.}\quad x_r = (U_r')^{-1}(q_r). \tag{22.15}

The equilibrium of (22.13) with (22.15) is (22.9)–(22.12) with wr=xr∗Ur′(xr∗)w_r = x_r^*U_r'(x_r^*), so x∗=x^x^* = \hat x.

ImportantSelfish objectives align with welfare

Price-taking, myopic users plus multiplier-tracking links reach the social optimum. Convergence follows from the same Lyapunov function.

Architecture from prices

The pricing model decomposes resource allocation across the network:

  1. Congestion control at end users: adapt rates to route-price feedback.
  2. Congestion indication at routers: compute each outgoing link’s price.
  3. Congestion feedback: e.g., a packet header field set to 0 at the source, with each router adding its price. The destination echoes the total qrq_r back to the source.
graph LR
  S["Source: sets rate from route price"] -->|"packet, price field = 0"| R1["Router 1: adds its link price"]
  R1 --> R2["Router 2: adds its link price"]
  R2 --> D["Destination: reads route price"]
  D -->|"echo route price"| S

Wireless extension: scheduling

In wireless networks, interference means nearby links can’t transmit together.

DefinitionSchedules

A schedule MiM_i is a set of links that can transmit simultaneously. Let M1,…,MnM_1,\dots,M_n be the possible schedules, and fif_i the fraction of time schedule MiM_i is used. The constraints become

∑r: l∈rxr≤∑i: l∈Mifi cl,∑i=1nfi≤1,f,x≥0,(22.16–22.18)\sum_{r:\,l\in r}x_r \le \sum_{i:\,l\in M_i} f_i\,c_l,\qquad \sum_{i=1}^n f_i \le 1,\qquad f,x\ge0, \tag{22.16–22.18}

where clc_l is link ll‘s service rate when scheduled.

DerivationThe dual splits into rate control and scheduling D(p,λ)=max⁡x≥0[∑rUr(xr)−∑lpl∑r: l∈rxr]⏟(22.19) same as wireline+max⁡f≥0[∑lpl∑i: l∈Mificl−λ(∑ifi−1)]⏟(22.20) new: scheduling.D(p,\lambda) = \underbrace{\max_{x\ge0}\Big[\sum_r U_r(x_r) - \sum_l p_l \sum_{r:\,l\in r}x_r\Big]}_{(22.19)\ \text{same as wireline}} + \underbrace{\max_{f\ge0}\Big[\sum_l p_l\sum_{i:\,l\in M_i}f_ic_l - \lambda\Big(\sum_i f_i - 1\Big)\Big]}_{(22.20)\ \text{new: scheduling}}.

Dropping λ\lambda and keeping ∑ifi≤1\sum_i f_i \le 1 explicit, interchange sums:

max⁡∑fi≤1, f≥0 ∑ifi∑l∈Miplcl=max⁡i∑l∈Miplcl.\max_{\sum f_i\le1,\,f\ge0}\ \sum_i f_i\sum_{l\in M_i}p_lc_l = \max_i \sum_{l\in M_i} p_l c_l.

This is a linear program, so the optimum is at a vertex: put all weight on one schedule.

AlgorithmMax-weight scheduling

At each instant, activate the schedule maximizing ∑l∈Miplcl\sum_{l\in M_i}p_lc_l, the capacity-weighted sum of link prices. Sources still use (22.15). Links update

p˙l=(yl−∑i: l∈Mificl)pl+,(22.21)\dot p_l = \Big(y_l - \sum_{i:\,l\in M_i}f_ic_l\Big)^+_{p_l}, \tag{22.21}

which needs no explicit implementation: plp_l is just the queue length at link ll.

IntuitionQueues are prices

A backlog grows exactly when arrivals exceed service, which is the price dynamics (22.21). So “serve the schedule with the most weighted backlog” is dual ascent in disguise. The long-run fractions of time spent in each schedule solve the utility-maximization problem (see Lin et al. 2006).

WarningThe hard part (open)

Computing the max-weight schedule is computationally hard and must be distributed in practice. Low-complexity distributed approximations are an open problem. Given one, stability follows by a similar Lyapunov argument.


Prices set by competing providers

§22.1 was not game-theoretic: users took prices, and prices were set to implement the optimum. Two gaps remain:

  • users may face no explicit prices at all (unpriced congestion);
  • prices are often set by profit-maximizing providers controlling their own domains.

This section studies the second. Competition creates negative congestion externalities between providers: one provider’s price moves traffic onto another’s links.

ExampleExample 22.1 — efficient, selfish, monopoly, duopoly

One unit of traffic, two parallel routes with latencies l1(x)=x2/3l_1(x) = x^2/3 and l2(x)=23xl_2(x) = \tfrac23 x.

Regimex1x_1x2x_2Prices
social optimum (min total delay)2/32/31/31/3—
Wardrop, no prices3−1≈0.73\sqrt3 - 1 \approx 0.73≈0.27\approx 0.27—
monopoly2/32/31/31/3p1=(2/3)3+kp_1 = (2/3)^3 + k, p2=2/32+kp_2 = 2/3^2 + k
duopoly≈0.58\approx 0.58≈0.42\approx 0.42p1≈0.61p_1 \approx 0.61, p2≈0.44p_2 \approx 0.44

Optimum: marginal costs x12x_1^2 and 43x2\tfrac43x_2 are equal at (2/3,1/3)(2/3, 1/3) (both 4/94/9).

Wardrop: x12/3=23(1−x1)x_1^2/3 = \tfrac23(1 - x_1) gives x12+2x1−2=0x_1^2 + 2x_1 - 2 = 0, so x1=3−1x_1 = \sqrt3 - 1. Route 1 is overused, because its users ignore the steeper congestion they cause.

Monopoly: the markup xili′(xi)x_il_i'(x_i) is exactly the Pigouvian tax: x1⋅23x1=8/27x_1 \cdot \tfrac23x_1 = 8/27 and x2⋅23=2/9x_2\cdot\tfrac23 = 2/9. The common constant kk extracts all consumer surplus.

Duopoly: pi=xi (l1′+l2′)p_i = x_i\,(l_1' + l_2') (see (22.27)). At x1=0.58x_1 = 0.58, l1′≈0.39l_1' \approx 0.39, so p1≈0.61p_1 \approx 0.61 and p2≈0.44p_2 \approx 0.44. Both effective costs are ≈0.72\approx 0.72.

graph LR
  O["Origin: 1 unit of traffic"] -->|"route 1: latency x squared / 3"| D["Destination"]
  O -->|"route 2: latency 2x / 3"| D

WarningMore competition, less efficiency

The duopoly is less efficient than the monopoly. This inverts the usual economic intuition. The monopolist is efficient but takes all surplus; duopoly users may keep positive consumer surplus. (Consumer surplus is willingness to pay minus pi+lip_i + l_i. Social surplus is willingness to pay minus lil_i only, so it also counts profits.)

IntuitionThe extra duopoly markup: locking in your own users

If provider 1 raises its price, some traffic shifts to route 2, which congests route 2. That makes route 2 a worse outside option, so route 1’s remaining users are more locked in. Each duopolist therefore charges an extra markup on top of the Pigouvian one. The two extra markups differ, so the traffic split is distorted.

DefinitionPrice competition setting

  • II parallel links, I={1,…,I}\mathcal I = \{1,\dots,I\}. Link ii has flow xix_i and a convex, nondecreasing, C1C^1 latency lil_i with li(0)=0l_i(0) = 0 (queueing delay dominates propagation delay).
  • Link price pip_i per unit flow.
  • dd units of traffic from many small users, all with reservation utility RR: they don’t send if the effective cost exceeds RR.

DefinitionWardrop equilibrium with prices

xWE∈W(p)x^{WE} \in W(p) if

li(xiWE)+pi=min⁡j[lj(xjWE)+pj]≤R  for all i with xiWE>0,∑ixiWE≤d,(22.22)l_i(x_i^{WE}) + p_i = \min_j\big[l_j(x_j^{WE}) + p_j\big] \le R\ \ \text{for all } i \text{ with } x_i^{WE} > 0,\qquad \sum_i x_i^{WE} \le d, \tag{22.22}

with ∑ixiWE=d\sum_ix_i^{WE} = d whenever the minimum effective cost is <R< R. Traffic uses only cheapest routes, and all of it is sent unless even the cheapest route costs RR. (Wardrop equilibria in routing-games are the case with no prices.)

FormulaSocial optimum and social surplus

S(x)=∑i(R−li(xi)) xi,xS∈arg⁡max⁡x≥0, ∑xi≤dS(x).(22.23, 22.25)S(x) = \sum_i (R - l_i(x_i))\,x_i, \qquad x^S \in \arg\max_{x\ge0,\ \sum x_i\le d} S(x). \tag{22.23, 22.25}

With two links both used,

l1(x1S)+x1Sl1′(x1S)=l2(x2S)+x2Sl2′(x2S),(22.24)l_1(x_1^S) + x_1^Sl_1'(x_1^S) = l_2(x_2^S) + x_2^Sl_2'(x_2^S), \tag{22.24}

so the marginal congestion prices pi=xiSli′(xiS)p_i = x_i^Sl_i'(x_i^S) implement the optimum as a Wardrop equilibrium. This is the Pigouvian tax of routing-games.

Monopoly

A monopolist owns all links and maximizes Π(p,x)=∑ipixi\Pi(p,x) = \sum_i p_ix_i with x∈W(p)x\in W(p). This is a two-stage game: prices first, then Wardrop routing.

DefinitionMonopoly equilibrium (ME)

(pME,xME)(p^{ME}, x^{ME}) with xME∈W(pME)x^{ME}\in W(p^{ME}) and Π(pME,xME)≥Π(p,x)\Pi(p^{ME},x^{ME}) \ge \Pi(p,x) for all p≥0p \ge 0 and x∈W(p)x\in W(p). This is stronger than subgame perfection, but the two coincide here (Acemoglu–Ozdaglar).

TheoremMonopoly is efficient (Acemoglu–Ozdaglar)

xx is an ME flow iff it is a social optimum. The result extends to general topologies (Huang et al. 2006).

NoteStated without proof

This contrasts sharply with selfish routing, where the PoA with general latencies is unbounded (nonlinear Pigou). A monopolist pricing its own network internalizes the congestion externality.

Oligopoly

SS providers; provider ss owns the links Is\mathcal I_s and sets their prices psp_s. Given rivals’ prices p−sp_{-s}, its profit is Πs(ps,p−s,x)=∑i∈Ispixi\Pi_s(p_s,p_{-s},x) = \sum_{i\in\mathcal I_s}p_ix_i with x∈W(ps,p−s)x\in W(p_s,p_{-s}).

DefinitionOligopoly equilibrium (OE)

(pOE,xOE)(p^{OE},x^{OE}) with xOE∈W(pOE)x^{OE}\in W(p^{OE}) such that for every ss,

Πs(psOE,p−sOE,xOE)≥Πs(ps,p−sOE,x)∀ps≥0, ∀x∈W(ps,p−sOE).(22.26)\Pi_s(p_s^{OE},p_{-s}^{OE},x^{OE}) \ge \Pi_s(p_s,p_{-s}^{OE},x)\quad \forall p_s\ge0,\ \forall x\in W(p_s,p_{-s}^{OE}). \tag{22.26}

This is a pure-strategy subgame perfect equilibrium of the price competition game.

TheoremOE prices

If piOExiOE>0p_i^{OE}x_i^{OE} > 0 for some ii, then for every ss and i∈Isi\in\mathcal I_s:

piOE={xiOEli′(xiOE),if lj′(xjOE)=0 for some j∉Is,min⁡{R−li(xiOE),  xiOEli′(xiOE)+∑j∈IsxjOE∑j∉Is1/lj′(xjOE)},otherwise.p_i^{OE} = \begin{cases} x_i^{OE}l_i'(x_i^{OE}), & \text{if } l_j'(x_j^{OE}) = 0 \text{ for some } j\notin\mathcal I_s,\\[4pt] \min\left\{R - l_i(x_i^{OE}),\ \ x_i^{OE}l_i'(x_i^{OE}) + \dfrac{\sum_{j\in\mathcal I_s}x_j^{OE}}{\sum_{j\notin\mathcal I_s} 1/l_j'(x_j^{OE})}\right\}, & \text{otherwise.}\end{cases}

With two links and minimum effective cost below RR:

piOE=xiOE(l1′(x1OE)+l2′(x2OE)).(22.27)p_i^{OE} = x_i^{OE}\big(l_1'(x_1^{OE}) + l_2'(x_2^{OE})\big). \tag{22.27}
TermMeaning
xi li′(xi)x_i\,l_i'(x_i)Pigouvian markup: the provider internalizes congestion on its own links
xi lj′(xj)x_i\,l_j'(x_j) (two links)competitive markup: users leaving congest the rival, which locks in the provider’s remaining users
R−li(xi)R - l_i(x_i)ceiling: users drop out beyond the reservation utility
competitor has a zero-slope linkno lock-in is possible, so only the Pigouvian markup remains

NoteDerivation omitted

The characterization comes from the optimality conditions of (22.26), in Acemoglu–Ozdaglar (2006b).

Efficiency of oligopoly

DefinitionEfficiency metric

rI({li},xOE)=S(xOE)S(xS).(22.28)r_I(\{l_i\}, x^{OE}) = \frac{S(x^{OE})}{S(x^S)}. \tag{22.28} This is a surplus ratio (≤1\le 1). We seek its worst case over all price competition games with pure-strategy OE. That class is much larger than linear latencies.

ExampleExample 22.2 — the 5/6 instance

d=1d = 1, R=1R = 1, each link owned by a different provider: l1(x)=0,li(x)=32(I−1)x  (i=2,…,I).l_1(x) = 0,\qquad l_i(x) = \tfrac32(I-1)x\ \ (i = 2,\dots,I).

  • Optimum: everything on the free link 1, S=1S = 1.
  • Unique OE: x1=23x_1 = \tfrac23 and xi=13(I−1)x_i = \frac{1}{3(I-1)} otherwise. Each costly link then has latency 12\tfrac12, so S(xOE)=23+(I−1)⋅12⋅13(I−1)=23+16=56.S(x^{OE}) = \tfrac23 + (I-1)\cdot\tfrac12\cdot\tfrac{1}{3(I-1)} = \tfrac23 + \tfrac16 = \tfrac56.

Check for I=2I = 2: provider 2’s rival has a zero-slope link, so p2=x2l2′=12p_2 = x_2l_2' = \tfrac12. Provider 1 is capped at p1=R−0=1p_1 = R - 0 = 1. Both routes have effective cost 1=R1 = R.

TheoremTheorem 22.3 — oligopoly efficiency ≥ 5/6, tight

For any parallel-link network with I≥2I\ge2 links and any ownership structure {Is}\{\mathcal I_s\}, every pure-strategy OE flow has rI≥56r_I \ge \tfrac56. Example 22.2 is tight.

NoteProof not given in the chapter

See Acemoglu–Ozdaglar (2006b).

ImportantIndependent of size and market structure

The worst case doesn’t depend on II or on how links are split among providers. Arbitrarily large networks can be as inefficient as small ones. This superficially contradicts the economic result that large oligopolies become competitive. Those theorems concern replicas of a fixed market, not arbitrary large markets.

Extension: elastic traffic

Delay-tolerant applications (e.g., e-mail) can use any amount of bandwidth. Model them with an aggregate utility u(∑ixi)u(\sum_ix_i) that is increasing, concave and C2C^2.

DefinitionWardrop equilibrium with elastic demand

li(xi∗)+pi=u′(∑jxj∗)  if xi∗>0,li(xi∗)+pi≥u′(∑jxj∗)  ∀i.l_i(x_i^*) + p_i = u'\Big(\sum_j x_j^*\Big)\ \text{ if } x_i^* > 0, \qquad l_i(x_i^*) + p_i \ge u'\Big(\sum_jx_j^*\Big)\ \ \forall i.

Social surplus and rIr_I are redefined with R∑ixiR\sum_ix_i replaced by u(∑ixi)u(\sum_ix_i).

WarningGeneral concave utility: no bound

With an arbitrary concave uu, efficiency can be arbitrarily close to 0 (Ozdaglar 2006).

TheoremTheorem 22.4 — elastic traffic, u′u' concave: ≥ 2/3, tight

With each link owned by a different provider and u′u' concave, every pure-strategy OE has rI≥23r_I \ge \tfrac23, and this is tight.

NoteHistory

Hayrapetyan–Tardos–Wexler (2005) first studied this game and gave nontight bounds (1/5.0641/5.064 in general, 1/3.1251/3.125 with zero free-flow latency). The tight 2/32/3 is from Ozdaglar (2006). The proof is not given here.

Extension: parallel–serial topologies

Real traffic crosses several interconnected domains in series. The simplest such topology is parallel paths, each a chain of links owned by different providers.

graph LR
  S["Source: d units, reservation utility R"] --> A1["path 1, link 1"]
  A1 --> A2["path 1, link 2"]
  A2 --> T["Destination"]
  S --> B1["path 2, link 1"]
  B1 --> B2["path 2, link 2"]
  B2 --> T

DefinitionDouble marginalization

A provider raising its price reduces the traffic, and hence the revenue, of every other provider on the same path. It ignores this negative externality, so serial providers stack markups. This is the classic multiple-monopolies problem.

WarningCoordination failure

In its extreme form, every provider expects the others to price high, prices high itself, and kills all traffic on a path. So the analysis restricts to strict equilibria (Harsanyi), where each provider plays a strict best response, and to equilibria in which all traffic is sent. Otherwise efficiency can be arbitrarily low.

TheoremTheorem 22.5 — parallel–serial: ≥ 1/2, tight

In any I≥2I\ge2 path network with serial links, each link owned by a different provider, every strict OE flow has rI≥12r_I \ge \tfrac12, and this is tight.

CautionWithout li(0)=0l_i(0) = 0, the bound collapses

If links have positive free-flow latency, the efficiency loss of strict OE can be arbitrarily large. This suggests unregulated competition across general networks can be very costly, and some regulation may be needed.

SettingWorst-case surplus ratio
selfish routing, no prices, general latenciesunbounded loss
monopoly1 (efficient)
oligopoly, parallel links, inelastic5/65/6
oligopoly, elastic, u′u' concave2/32/3
oligopoly, elastic, general uu→0\to 0
parallel–serial, strict OE, all traffic sent1/21/2
parallel–serial, li(0)>0l_i(0) > 0→0\to 0

Alternative pricing and incentive approaches

Earlier work on pricing

RemarkFlat vs usage-based pricing

Internet access is mostly flat-fee, but differentiated service classes will need differentiated prices. Usage-based prices can act partly as congestion control. Critics point to billing overhead and users’ uncertainty about their expenses.

ProposalIdea
smart market (Mackie-Mason–Varian)bid per packet; serve packets above a cutoff set by marginal willingness to pay and marginal congestion cost; winners pay the market-clearing price, below all admitted bids. Vickrey-like, so truthful
Paris Metro Pricing (Odlyzko)split the network into logical subnetworks with different prices. Pricier ones are less used, so they give better service
edge pricinglocal charges from expected congestion and routes
expected capacity pricingcharge for the capacity the network provisions for you
effective bandwidth pricingprice real-time QoS traffic by its effective bandwidth

DefinitionFirst-best pricing

Tolls that induce system-optimal flows. Marginal cost pricing is the classic example. The toll set is the set of all tolls inducing optimal flows. It can be searched for secondary goals such as minimal total toll or fewest tolled routes (Hearn–Ramana). There is also work with heterogeneous price sensitivities (Cole et al.; Fleischer et al.).

Current directions

RemarkFlat fees and the marginal user

With only the distribution of utilities known, the profit-maximizing flat fee in a wireless network equals the utility of the marginal user, the one indifferent to joining (Acemoglu et al. 2004). The price and the resource-allocation rule determine the marginal user together, so they must be chosen jointly.

RemarkP2P incentives

Every peer is both a client and a server, so capacity grows with demand. Simple models suggest no performance loss as a BitTorrent-type network grows (Qiu–Srikant). But this needs cooperation: if everyone downloads and nobody uploads, scaling fails. Built-in incentives (as in BitTorrent) address this.

RemarkCooperation in multihop wireless

Nodes must forward others’ packets. A node can overhear whether a neighbour forwarded a packet, but a simultaneous transmission by another neighbour can mask it, making an honest node look selfish. This is a prisoner’s dilemma with noisy monitoring. Current models ignore topology and MAC details, and realistic models are open.

Future research

NoteOpen directions

  • Incentive-compatible differentiated pricing: combine provider competition with mechanism design. By the revelation principle, use direct mechanisms with incentive-compatibility constraints. The difficulty is combining the IC constraints with competition.
  • Capacity investment: multi-stage models in which providers choose investment and capacity as well as prices. Arguably more important than allocating existing capacity.
  • Simple pricing rules: quantify how well simple, real-time-computable prices approximate optimal or profit-maximizing ones.

Quick reference

ObjectStatementNote
NUM (22.1)max⁡∑Ur(xr)\max\sum U_r(x_r), Rx≤cRx\le cUrU_r strictly concave, so a unique x^\hat x
KKT (22.2–22.5)Ur′(x^r)=∑l∈rp^lU_r'(\hat x_r) = \sum_{l\in r}\hat p_l; complementary slacknesslink price = shadow price
Route price (22.6)q^=RTp^\hat q = R^T\hat psum of link prices on the path
Price-taker problem (22.7)max⁡Ur(xr)−q^rxr\max U_r(x_r) - \hat q_rx_rsolved by x^r\hat x_r
Bid mechanism (22.8)max⁡∑wrlog⁡xr\max\sum w_r\log x_r, Rx≤cRx\le cweighted proportional fairness
Bid matchingwr=xr∗Ur′(xr∗)w_r = x_r^*U_r'(x_r^*) ⇒ x∗=x^x^* = \hat x
Link update (22.13)p˙l=(yl−cl)pl+\dot p_l = (y_l - c_l)^+_{p_l}projected dual ascent
Source update (22.14)xr=wr/qrx_r = w_r/q_rcongestion control
LyapunovV=12∥p−p∗∥2V = \tfrac12\lVert p-p^*\rVert^2, V˙≤0\dot V\le0needs full row rank RR
Myopic users (22.15)Ur′(xr)=qrU_r'(x_r) = q_rconverge to the social optimum
Architectureend-host control, router pricing, feedback field
Wireless constraints (22.16–22.18)capacity ≤∑i∋lficl\le \sum_{i\ni l}f_ic_l, ∑fi≤1\sum f_i \le 1schedules MiM_i
Max-weight schedulingarg⁡max⁡i∑l∈Miplcl\arg\max_i\sum_{l\in M_i}p_lc_lLP vertex; queues = prices (22.21)
Ex. 22.1optimum (2/3,1/3)(2/3, 1/3); Wardrop (0.73,0.27)(0.73, 0.27); monopoly optimal; duopoly (0.58,0.42)(0.58, 0.42)duopoly worse than monopoly
Wardrop with prices (22.22)used routes minimize li+pi≤Rl_i + p_i \le Rreservation utility
Social surplus (22.25)S=∑(R−li)xiS = \sum(R - l_i)x_i
Pigouvian price (22.24)xili′(xi)x_il_i'(x_i)implements the optimum
MEmonopoly flow ⟺ social optimummarkup = Pigouvian tax
OE price (22.27)pi=xi(l1′+l2′)p_i = x_i(l_1' + l_2') (two links)Pigouvian + lock-in markup
Ex. 22.2l1=0l_1 = 0, li=32(I−1)xl_i = \tfrac32(I-1)x ⇒ 5/65/6
Thm 22.3oligopoly, parallel: r≥5/6r \ge 5/6, tightindependent of II and ownership
Thm 22.4elastic, u′u' concave: r≥2/3r\ge 2/3, tightgeneral uu: →0\to 0
Thm 22.5parallel–serial, strict OE: r≥1/2r\ge1/2, tightdouble marginalization; fails if li(0)>0l_i(0)>0
Smart marketper-packet Vickrey-like bidstruthful
Paris Metro Pricingprice-differentiated logical subnets
Flat fee= marginal user’s utility

Facts to keep to hand

  • Prices as multipliers and prices as markups are opposite regimes. Multipliers computed by the network implement the optimum exactly (price takers, myopic bids). Markups set for profit are efficient only under monopoly, and competition adds distortion.
  • The monopoly markup is the Pigouvian tax. Owning all the links makes the congestion externality internal, so profit maximization and welfare maximization pick the same flow. Only the surplus split differs. This inverts selfish routing, where no one owns the externality and the loss is unbounded.
  • Competition creates a second externality: lock-in. Pushing traffic onto a rival congests it, which makes your own users less willing to leave. That extra markup, xilj′x_il_j', and its asymmetry across providers is the entire source of oligopoly inefficiency.
  • Serial providers stack markups. Double marginalization turns inefficiency from “bounded” (5/6) into “halved” (1/2), or into complete shutdown without the strict-equilibrium refinement.
  • Worst cases are topology-free, like the price of anarchy. The 5/6 bound ignores II and ownership, just as nonatomic routing’s 4/3 ignores topology. Large markets are not automatically competitive.
  • The dual decomposition is the architecture. The Lagrangian separates per-user rate problems (end-host congestion control) from per-link price updates (routers). In wireless it adds a scheduling problem whose prices are literally queue lengths.
  • Price taking is what makes §22.1 work, and Chapter 21 prices the alternative. Anticipating one’s effect on price costs up to 1/4 on a single link. In a large network with negligible flows, price taking is the natural assumption.

References

← All notes