Airline Crew Pairing Generation in Parallel

Airline crew scheduling is the problem of assigning crew itineraries or pairings to sights. The computational solution of crew scheduling involves solving a large set partitioning problem, with each member of the set representing a sight in a given schedule and subsets correspond to pairings. The partitioned set deÞnes the crew pairings being sought, where each pairing consists of a small sequence of working days, called duties. Typical pairings are comprised of 2-4 duties, and the number of pairings ranges from 2 million for small problems, to 20 million, to 50 million and above for large problems. A pairing is subject to many FAA rules, including a maximum allowed sying time in a duty, a bound on the elapsed time of a duty, a bound on the minimum overnight rest, etc. In addition, there are union rules, concerning the maximum number of duties in a pairing, the minimum cost of a pairing, the maximum time away from base, and others. Crew scheduling must be performed monthly. Current solutions implemented on mainframe machines typically require days of CPU time to compute acceptable schedules. Of this time, hours are consumed by pairing generation. Therefore, speeding up the pairing generation process is a necessary step toward reducing crew scheduling time. Our approach to parallelizing pairing generation relies on dynamic domain decomposition, where generated duties are distributed across multiple processes running on a parallel machine. This permits the parallel application of the complex rules on which pairing generation is based. However, an issue with dynamic domain decomposition is the balance of workloads among processes. In our application, imbalanced workloads occur because some processes may have completed computing the pairings from their duties whereas other processes’ computations are still in