Best-Response Dynamics and Iterated Routing

Apply iterated best-response dynamics to parallel-route routing games. Compute a single flight's best response, advance one Gauss-Seidel round, check whether an allocation is a Nash equilibrium, and iterate to convergence.

Step 1 of 157%

Tutorial

Best Response on Parallel Routes

In iterated routing, players (individual flights or fleets) take turns updating their chosen path while every other player's choice stays fixed. The new path chosen by player ii is its best response: the path that minimizes the cost player ii would incur after the move.

For a single flight choosing among parallel routes with load-dependent latencies cj(xj),c_j(x_j), the cost player ii would pay on route kk is the latency evaluated at the load that results after the move:

post-move cost on route k  =  ck ⁣(xk+1[i is currently on k]).\text{post-move cost on route } k \;=\; c_k\!\left(x_k + 1 - [\,i \text{ is currently on } k\,]\right).

If ii switches to route k,k, the load there goes up by one. If ii stays on its current route, the load is unchanged. The best response is the route with the lowest post-move cost.

To illustrate, suppose two parallel routes have latencies c1(x)=2+xc_1(x) = 2 + x and c2(x)=5+12x,c_2(x) = 5 + \tfrac{1}{2}x, with current loads x1=5x_1 = 5 and x2=2.x_2 = 2. A flight currently on route 11 compares

c1(5)=7(stay),c2(3)=6.5(switch).c_1(5) = 7 \quad (\text{stay}), \qquad c_2(3) = 6.5 \quad (\text{switch}).

Route 22 has the lower post-move cost, so the best response is to switch to route 2.2.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle