Congestion Pricing & Model Predictive Control

Congestion pricing internalises the externality that each driver imposes on others. The Pigouvian toll emerges from the BPR travel-time function as the marginal external cost. Model Predictive Control (MPC) then provides the real-time computational framework for adaptive signal timing, receding the optimisation horizon at each step.

1. Bureau of Public Roads (BPR) Travel-Time Function

The BPR function is the standard link performance model in transportation engineering. It relates travel time to traffic flow on a link with capacity \(C\):

$$t(f) = t_0 \left( 1 + \alpha \left( \frac{f}{C} \right)^\beta \right)$$

The standard calibration parameters are \(\alpha = 0.15\) and \(\beta = 4\), where:

  • \(t_0\) is the free-flow travel time.
  • \(f\) is the traffic flow (vehicles per hour).
  • \(C\) is the practical capacity.
  • The exponent \(\beta = 4\) produces sharp congestion onset near capacity.

The total cost experienced by all users on the link is:

$$\text{TC}(f) = f \cdot t(f) = f \, t_0 \left( 1 + \alpha \left( \frac{f}{C} \right)^\beta \right)$$

2. The Pigouvian Toll

Each driver perceives only their private cost \(t(f)\) but imposes an additional delay on all other \(f\) drivers by marginally increasing congestion. The marginal social cost is:

$$\text{MSC}(f) = \frac{d}{df}\big[f \cdot t(f)\big] = t(f) + f \cdot \frac{dt}{df}$$

The second term is the marginal external cost—the damage each additional vehicle inflicts on everyone else. The Pigouvian toll equals this externality:

$$\tau^* = f \cdot \frac{dt}{df} = f \cdot t_0 \frac{\alpha \beta}{C} \left( \frac{f}{C} \right)^{\beta - 1} = t_0 \alpha \beta \left( \frac{f}{C} \right)^\beta \cdot \frac{f}{C}$$

Simplifying with the BPR parameters:

$$\tau^* = t_0 \alpha \beta \frac{f^{\beta+1}}{C^{\beta+1}}$$

At the social optimum, each driver pays the toll \(\tau^*\) on top of their travel time, so their perceived cost equals the marginal social cost. This aligns private incentives with social welfare:

$$\underbrace{t(f) + \tau^*}_{\text{perceived cost}} = \underbrace{t(f) + f \cdot t'(f)}_{\text{marginal social cost}} = \text{MSC}(f)$$

User Equilibrium vs Social Optimum

Without tolls, drivers reach a user equilibrium (Wardrop's first principle) where no driver can unilaterally reduce their travel time. With the Pigouvian toll, the user equilibrium coincides with the system optimum (Wardrop's second principle), minimising total network delay.

3. Model Predictive Control Framework

MPC is a receding-horizon strategy that solves a finite-horizon optimal control problem at each time step, applies only the first control action, then re-solves with updated measurements. The MPC algorithm at time \(t_k\):

$$\min_{\mathbf{u}_{k}, \dots, \mathbf{u}_{k+N-1}} \sum_{j=0}^{N-1} \ell(\mathbf{x}_{k+j}, \mathbf{u}_{k+j}) + V_f(\mathbf{x}_{k+N})$$

subject to system dynamics, state constraints (non-negative queues, maximum capacities), and control constraints (minimum/maximum green times). The components are:

  • Stage cost \(\ell(\mathbf{x}, \mathbf{u})\): Weighted sum of delay and control effort, as in the LQR formulation.
  • Terminal cost \(V_f(\mathbf{x})\): Approximation of cost-to-go beyond the horizon. Often set to \(\mathbf{x}^T P \mathbf{x}\) where \(P\) is the LQR Riccati solution.
  • Prediction horizon \(N\): Longer horizons improve optimality but increase computation. Typical: 5-20 signal cycles.

The receding horizon provides feedback: by re-solving at each step with fresh measurements, MPC naturally compensates for model errors and demand fluctuations. It bridges the gap between the theoretical optimality of PMP/LQR and practical real-time implementation.

4. Control Strategy Comparison

We compare three signal control strategies for a corridor under time-varying demand:

  • Fixed-time: Pre-computed green splits based on average demand. No feedback. The standard baseline.
  • Actuated: Local feedback using vehicle detectors. Extends green for detected vehicles up to a maximum. No coordination.
  • MPC: Centralised optimisation using predicted demand over a rolling horizon. Full coordination with feedback.

The simulation below implements all three and plots the resulting queue evolution, total delay, and congestion pricing toll under each strategy.

MPC vs Fixed-Time vs Actuated Control with Congestion Pricing

Python
script.py193 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

5. MPC Stability and Convergence

A critical question for any receding-horizon scheme is stability: does repeatedly solving a finite-horizon problem and applying only the first step produce a stable closed loop? The answer relies on choosing the terminal cost \(V_f\) and terminal constraint set appropriately.

The standard stability result uses the LQR cost-to-go as the terminal ingredient. Define the Lyapunov function candidate:

$$V(\mathbf{x}_k) = \min_{\mathbf{u}} \sum_{j=0}^{N-1} \ell(\mathbf{x}_{k+j}, \mathbf{u}_{k+j}) + \mathbf{x}_{k+N}^T P \mathbf{x}_{k+N}$$

If \(P\) satisfies the Riccati equation and the terminal set is the LQR-invariant ellipsoid \(\mathcal{X}_f = \{\mathbf{x} : \mathbf{x}^T P \mathbf{x} \leq \gamma\}\), then:

$$V(\mathbf{x}_{k+1}) - V(\mathbf{x}_k) \leq -\ell(\mathbf{x}_k, \mathbf{u}_k^*)$$

This guarantees that \(V\) decreases at each step by at least the stage cost, ensuring asymptotic stability of the origin (zero queues).

Practical Implications

MPC bridges theory and practice: it inherits LQR's optimality guarantees for the linearised system while handling nonlinear dynamics, constraints, and time-varying demand through repeated online optimisation. Combined with Pigouvian pricing, it provides a complete framework for real-time, economically efficient traffic management.

6. Welfare Analysis of Congestion Pricing

The welfare gain from congestion pricing can be computed as the area between the private cost and marginal social cost curves, evaluated at the user equilibrium and social optimum flows:

$$\Delta W = \int_{f^{\text{SO}}}^{f^{\text{UE}}} \big[\text{MSC}(f) - t(f)\big] \, df = \int_{f^{\text{SO}}}^{f^{\text{UE}}} f \cdot t'(f) \, df$$

For BPR with \(\beta = 4\), this integral has a closed form. The deadweight loss of unpriced congestion grows as \(O((f/C)^{\beta+2})\), meaning the welfare case for pricing strengthens dramatically as demand approaches capacity.

Revenue from the toll, \(\mathcal{R} = f^{\text{SO}} \cdot \tau^*\), can be recycled to fund transit improvements, reduce other taxes, or provide rebates to low-income travellers—addressing the equity concerns that often accompany congestion pricing proposals.