The problem
Automated Traffic Law Enforcement (ATLE) — red-light cameras, speed cameras — issues fines without human judgement and is often promoted as inherently fair. Yet Chicago data shows Black drivers are ticketed at a rate 10 times higher than white drivers. Research by Xu et al. (2024) has established that different demographic groups commit traffic violations at similar underlying rates, which means the disparity must come from somewhere else. We hypothesize the cause is where the cameras are placed, and we use Operations Research tools to measure it objectively.
The main idea
If cameras are concentrated in neighborhoods through which certain communities commute, those commuters face a structurally higher fine risk — independent of their driving behavior. We define two metrics that capture this burden for any commute trip:
- Camera avoidance cost. The extra travel time imposed if a driver routes around all ATLE cameras on their commute — measured as the difference between the camera-free shortest path and the unconstrained shortest path.
- Camera exposure count. The number of cameras encountered on the fastest route, with no avoidance. A higher count means higher expected fine burden for a law-abiding driver who simply commutes normally.
Both metrics are computed across 800+ Chicago Census Tracts, then linked to American Community Survey demographic data to test whether communities of color face systematically higher burden.
Methods
- Network construction. Chicago's full street network — every road, intersection, and travel time — was downloaded and processed using OSMNX and NetworkX in Python, producing a directed graph with hundreds of thousands of nodes and edges.
- MILP shortest-path formulation. Each commute is modeled as a minimum-cost flow problem on the network graph. A binary edge-selection vector \(f\) satisfies flow conservation constraints (\(Af = e_s − e_t\)) and can optionally exclude edges containing cameras. This is a Mixed-Integer Linear Program solved in GurobiPy.
- LP relaxation for scalability. Dropping integrality from the MILP yields an LP with an identical optimal solution for shortest-path problems (by network flow theory), providing a 4× speedup per solve. Combined with additional solver engineering, the overall pipeline runs 700× faster than the initial implementation — critical for solving hundreds of thousands of origin-destination pairs.
- Commuting data. Trip origins and destinations come from the Chicago Metropolitan Agency for Planning (CMAP) MyDailyTravel dataset (10,000+ daily commute patterns), aggregated and mapped to Census Tract centroids.
- Statistical analysis. Computed burden metrics are joined with demographic variables (race, income) across Census Tracts to identify whether camera placement systematically imposes higher costs on minority communities.
Key contributions
- An objective, model-based framework for measuring ATLE burden — two optimization-derived metrics that quantify disparate impact without relying on anecdotal evidence.
- A scalable solver pipeline: 700× runtime improvement from LP relaxation equivalence and solver restructuring, making it feasible to solve hundreds of thousands of origin-destination pairs on Chicago's full street network.
- Presented at the 2025 IISE Annual Conference (Atlanta), receiving the OR Division Undergraduate Research Dissemination Award.
Why a recruiter should care
The interesting part is the 700× runtime improvement. The MILP for shortest path has an LP relaxation that is provably equivalent (by network flow theory), and exploiting this made solving hundreds of thousands of commute pairs tractable. The rest — street network construction in OSMNX, Census Tract spatial joins in GeoPandas, commuting data aggregation — is standard Python data work, but at a scale that required some care.