In this paper we investigate how partial evaluation and program transformations can be used on a real problem, namely that of speeding up airline crew scheduling.Scheduling of crews is subject to many rules and restrictions. These restrictions are expressed in a rule language. However, in a given planning situation much is known to be fixed, so the rule set can be partially evaluated with respect to this known input.The approach is somewhat novel in that it uses truly static input data as well as static input data where the values are known only to belong to a set of values.The results of the partial evaluation is quite satisfactory: both compilation and running times have decreased by using it. The partial evaluator is now part of the crew scheduling system that Carmen Systems AB markets and which is in use at most of the major European airlines and in daily production.
[1]
Dag Wedelin,et al.
An algorithm for large scale 0–1 integer programming with application to airline crew scheduling
,
1995,
Ann. Oper. Res..
[2]
Simon L. Peyton Jones,et al.
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
,
1992,
SIGP.
[3]
Colin Runciman,et al.
Heap profiling of lazy functional programs
,
1993,
Journal of Functional Programming.
[4]
Erik Andersson,et al.
Crew Pairing Optimization
,
1998
.
[5]
Eric Gelman,et al.
Recent Advances in Crew-Pairing Optimization at American Airlines
,
1991
.