List Scheduling on a Congestion Game

Apply the list scheduling algorithm to a congestion game: process players in a fixed order and assign each to the strategy that minimizes its myopic latency given the commitments already made. Compute resulting assignments, individual realized latencies, and social cost.

Step 1 of 157%

Tutorial

Introduction

In a congestion game, each player chooses a strategy (typically a route), and the latency on each resource depends on how many players use it. List scheduling is a sequential greedy algorithm that processes players in a fixed order 1,2,,n1, 2, \ldots, n and assigns each player to the strategy that minimizes its own latency given the choices already committed by earlier players.

Let ns(k1)n_s^{(k-1)} be the number of already-assigned players on strategy ss after the first k1k-1 players have been placed. Player kk is then assigned to

sk=argminsSks ⁣(ns(k1)+1),s_k = \arg\min_{s \in S_k} \ell_s\!\left( n_s^{(k-1)} + 1 \right),

where s(x)\ell_s(x) is the latency on ss when xx players use it. Each decision is myopic -- player kk ignores future arrivals and just minimizes its own cost against the current load.

For example, consider two parallel routes with latencies 1(x)=3x\ell_1(x) = 3x and 2(x)=5,\ell_2(x) = 5, and two flights F1,F2F_1, F_2 processed in order:

  • F1:F_1{:} 1(1)=3,\ell_1(1) = 3, 2(1)=5.\ell_2(1) = 5. Choose route 1.1. Loads become (1,0).(1, 0).
  • F2:F_2{:} 1(2)=6,\ell_1(2) = 6, 2(1)=5.\ell_2(1) = 5. Choose route 2.2. Loads become (1,1).(1, 1).
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle