NICE: Robust Scheduling through Reinforcement Learning-Guided Integer
  Programming
  Integer programs provide a powerful abstraction for representing a wide range
of real-world scheduling problems. Despite their ability to model general
scheduling problems, solving large-scale integer programs (IP) remains a
computational challenge in practice. The incorporation of more complex
objectives such as robustness to disruptions further exacerbates the
computational challenge. We present NICE (Neural network IP Coefficient
Extraction), a novel technique that combines reinforcement learning and integer
programming to tackle the problem of robust scheduling. More specifically, NICE
uses reinforcement learning to approximately represent complex objectives in an
integer programming formulation. We use NICE to determine assignments of pilots
to a flight crew schedule so as to reduce the impact of disruptions. We compare
NICE with (1) a baseline integer programming formulation that produces a
feasible crew schedule, and (2) a robust integer programming formulation that
explicitly tries to minimize the impact of disruptions. Our experiments show
that, across a variety of scenarios, NICE produces schedules resulting in 33%
to 48% fewer disruptions than the baseline formulation. Moreover, in more
severely constrained scheduling scenarios in which the robust integer program
fails to produce a schedule within 90 minutes, NICE is able to build robust
schedules in less than 2 seconds on average.
