Airport gate assignment, revisited as a multi-objective mixed-integer program
I revisited the Airport Gate Assignment Problem (GAP) from a multi-objective optimization perspective.
The problem is formulated as a mixed-integer program. Time-overlap conflicts are handled by discretizing the day into slots, so that at most one flight occupies a gate in any slot. Passenger-based gate capacity limits are derived from historic utilization patterns rather than assumed, and capacity is normalized to prevent a few gates from monopolizing traffic.
The objective combines two competing terms:
- a penalty on remote (coached) gate assignments, weighted by hour of day so that peak-hour coaching costs more;
- a load-balancing term that keeps passenger flows distributed evenly across gates, expressed as the normalized spread between the most and least loaded gate.
Decision variables assign each flight to a gate in one of two modes — contact gate or remote stand — and auxiliary variables track per-gate passenger load and its extremes. Model input is one day of departures (boarding and departure times, passenger counts, wingspans) plus a historic gate-allocation sheet used both to derive capacities and to benchmark the optimized solution against observed practice.
What the solution looks like
On a 200-flight day across 41 gates, the load-balancing term flattens the passenger distribution almost completely: every gate ends up carrying between 640 and 661 passengers — a 21-passenger spread on a 26,635-passenger total.
The remote-stand penalty, meanwhile, is driven to zero: all 200 flights are assigned to contact gates, against a 17.4% coached share in the historic baseline. The gate timeline shows how the slot-discretized overlap constraints pack boarding windows without collision, spreading occupancy across the full operating day rather than crowding the morning and evening peaks onto a few gates.
Repository: huguryildiz/airport-gate-assignment-optimization