Per-Seat, On-Demand Air Transportation Part I: Problem Description and an Integer Multicommodity Flow Model

D. Espinoza School of Industrial Engineering, Universidad de Chile, Santiago, Chile, [email protected] R. Garcia DayJet Corporation, Boca Raton, 33431, [email protected] M. Goycoolea School of Business, Universidad Adolfo Ibáñez, Santiago, Chile, [email protected] G. L. Nemhauser, M. W. P. Savelsbergh H. Milton School of Industrial and Systems Engineering, Georgia Institute of Technology, Atlanta, Georgia 30332 {[email protected], [email protected]}

he availability of relatively cheap small jet planes has led to the creation of on-demand air transportation Tservices in which travelers call a few days in advance to schedule a flight. A successful on-demand air transportation service requires an effective scheduling system to construct minimum-cost pilot and jet itineraries for a set of accepted transportation requests. We present an integer multicommodity network flow model with side constraints for such dial-a-flight problems. We develop a variety of techniques to control the size of the network and to strengthen the quality of the linear programming relaxation, which allows the solution of small instances. In Part II, we describe how this core optimization technology is embedded in a parallel, large- neighborhood, local search scheme to produce high-quality solutions efficiently for large-scale real-life instances. Key words: air transportation; on-demand service; integer multicommodity flow

1. Introduction schedules at regional airports, and the air travel alter- The United States Department of Transportation native does not look very appealing. (DOT) reports that Americans make more than 405 As a consequence of these impediments, the DOT million business trips of more than 50 miles each year reports that the trend seems to be that more and more (United States Department of Transportation 2003). Of travelers prefer driving rather than flying for trips these trips, 84% do not cross regional boundaries, and between 200 and 500 miles. This is in part due to close to 20% involve travel of 250 to 1,000 miles. the changes taking place in the commercial airline industry. Increased security at airports has resulted Despite the length of the trips in the latter cate- in longer waiting times, with the associated frustra- gory, most of these trips are done by automobile. This tions, and thus longer travel times. Furthermore, due phenomenon can be explained by examining the air to the huge losses suffered by the airlines in recent travel alternative. To get from one regional airport to years (airlines worldwide lost $25 billion dollars and another, travelers typically have to connect through more than 400,000 jobs in 2002 and 2003), airlines have heavily congested “hub” airports, often located many cut back and are operating with a reduced schedule, miles from their origins and destinations. Missed con- affecting the flexibility of the business traveler, espe- nections and flight delays are common. Furthermore, cially when it concerns smaller regional airports. travelers often have to drive many miles to get to or Can this trend be reversed? Can an air travel alter- from an airport serviced by a scheduled airline. In native be developed that appeals to the regional busi- fact, commercial flight service exists in only about 550 ness traveler? Some people believe so. of the nation’s 5,000 public-use airports, with a mere New developments in avionics and airplane man- 67 of these airports accounting for 90% of domestic ufacturing have brought about a new technology: traffic. Add to this the fact that airlines offer limited the (VLJ), also called the microjet. Weighing less than 10,000 pounds, these aircraft can passengers. And, Iacobucci says, the key to attain- carry up to five passengers, fly distances of over 1,000 ing such load factors is optimization-based schedul- miles, reach altitudes of 19,000–41,000 feet, and travel ing systems. at speeds between 350–390 nautical miles per hour The dial-a-flight alternative has generated a lot of (almost twice the altitude and speed of current turbo- interest. Recent media coverage includes The New prop airplanes). Priced at slightly more than a million York Times (Fallows 2005), The Wall Street Journal, U.S. dollars, these jets cost about one-third of the price USA Today, Business Week, Newsweek, CNN, BBC, and of the typical small jets sold today. Several manufac- much, much, more. turers are taking orders for VLJs, with Eclipse Avi- To effectively manage day-to-day operations at a ation Corp. (http://www.eclipseaviation.com) being per-seat, on-demand air service, several optimization- the first, with deliveries in 2007. based scheduling components need to be employed. The availability of relatively cheap small jet air- The two key components are: (1) an online accept/ craft suggests a new air transportation business: dial- reject system to quickly inform passengers whether a-flight, an on-demand service in which travelers call their air transportation requests can be serviced and one day or a few days in advance to schedule trans- at what price, and (2) an offline scheduling system to portation. The advantages of such a system are obvi- construct minimum cost pilot and jet itineraries for ous. This service gives regional travelers the option the next day once the reservation deadline has passed. of using small jets that fly to and from less congested In this two-part paper, we discuss the compo- outlying airports, without packed parking lots, long nents of an offline scheduling system developed for lines at security checkpoints, flight delays, and lost and in collaboration with DayJet Corporation. The luggage, that are closer to where they live and where online accept/reject system involves a very rapid they want to go. In fact, VLJs can land at nearly 5,000 (less than 15 seconds) heuristic search to see if a of the 14,000 private and public landing strips in the new request can be fit in. This is a proprietary Day- United States. By charging a discount fare for shar- Jet system that, unfortunately, we cannot present ing cabin space with other passengers, aggregation here. Online accept/reject systems in other contexts have been studied, among others, by Benoist et al. can greatly reduce costs while still ensuring a very (2001); Bent and Van Hentenryck (2004); Campbell convenient service. and Savelsbergh (2005); and Van Hentenryck, Bent, The idea of a dial-a-flight service to satisfy regional and Vergados (2006). demand is rapidly becoming a reality. In fact, even In Part I, we introduce an integer multicommod- though VLJs are not yet available, air taxi ser- ity network flow model with side constraints for the vices already exist today. Linear Air (http://www. dial-a-flight problem, and we develop a variety of linearair.com)1 is providing air transportation in the techniques to control the size of the network and northeastern United States. Alpha Flying (http:// to strengthen the quality of the linear programming planesense.aero/whoweare.htm), Avantair (http:// relaxation. The resulting technology allows the solu- www.avantair.com), CitationShares (http://www. tion of small-size instances. In Part II, the core opti- citationshares.com), and FlexJet (http://www.flexjet. mization technology is embedded in parallel local com) offer fractional ownership programs, in which search scheme that makes our technology scalable so one can buy flying time on a fleet of aircraft. that high-quality solutions can be obtained efficiently In October of 2007 DayJet Corporation (2005) began for large-scale real-life instances. providing per-seat, on-demand air transportation ser- The remainder of Part I is organized as follows. In vices in the southeast. The business model of DayJet §2 we formally introduce the dial-a-flight problem, is different from the companies mentioned above in and we discuss its relation to other pickup and deliv- the sense that DayJet’s offerings include individual ery problems encountered in the literature. In §3 we seats (per-seat on-demand) as well as entire planes place our research in context and identify the specific (per-plane on-demand) and therefore the potential of contributions. In §4 we describe a novel multicom- much lower fares. Will this business model be suc- modity network flow model for the dial-a-flight prob- cessful? Ed Iacobucci, founder and CEO of DayJet lem. In §5 we discuss innovative construction and Corporation, believes that it is not only possible aggregation algorithms to ensure the resulting opti- to successfully run a per-seat, on-demand air ser- mization problem is of manageable size. Finally, in §6, vice business, but it is possible to do so charging we present a computational study demonstrating the an amount only slightly above nondiscount coach viability of the proposed approach for small instances. fares of commercial airlines. For the business to be profitable at these rates, each revenue flight seg- 2. Problem Description ment should average a load of around 1.3 paying The dial-a-flight problem (DAFP) is concerned with the scheduling of a set of requests for air transporta- tion during a single day. A request specifies an origin airport, a destination airport, an earliest acceptable passengers(r): number of passengers flying departure time at the origin, a latest acceptable arrival together. time at the destination, and the number of passen- weight(r): total weight of passengers and gers and their weight. Although service requirements luggage. could be handled differently, e.g., by specifying an Each jet j ∈  has the following attributes: earliest acceptable departure time and a maximum home_base(j): the home airport of the jet. trip time or a latest acceptable arrival time and a jet_begin(j): the earliest time at which the jet can maximum trip time, or simply a maximum trip time, start. DayJet’s market research indicates that an earliest jet_end(j): the latest time at which the jet can departure and a latest arrival time is what is pre- finish. ferred by business travelers. A fleet of jet airplanes capacity(j): the number of passenger seats in the is available to provide the requested air transporta- jet. tion. Each jet has a home base, a seat capacity limiting max_fly_time(j): the total daily flying time limit the number of passengers that can be accommodated, (in minutes) for the jet. and a weight capacity limiting the weight that can max_weight(j): the weight limit (in pounds) for be accommodated. Each jet is available for a certain the jet. period during the day and has to return to its home For airports a b ∈  we consider the quantities: base at the end of the day. A set of pilots, stationed flight_cost(a b): the cost of flying between air- at the home bases of the airplanes, is available to fly ports a and b. the jets. A pilot departs from the home base where flight_time(a b): the flying time (in minutes) he is domiciled at the start of his duty and returns to between airports a and b. the home base at the end of his duty. A pilot sched- turn_around(a): the turnaround time (in minutes) ule has to satisfy FAA regulations governing flying at airport a; i.e., the number of minutes which must hours and duty period; a pilot cannot fly more than elapse between an arrival and departure of a specific jet 8 hours in a day and his duty period cannot be more at airport a.  than 14 hours. Pilots do not change aircraft during  0ifa = b their duty. To ensure acceptable service, an itinerary  for a passenger will involve at most two flights; i.e., at relocate_time(a b) flight_time(a b)  + turn_around(b) most one intermediate stop is allowed. Furthermore,  if there is an intermediate stop, both flights have to be otherwise. on the same jet (a safeguard to avoid waiting in case We assume that time is measured in minutes; i.e., planes get delayed). A plane can deadhead (fly with- a time instant is an integer in 0 1440 . We often out passengers) to pick up passengers at another air- use a specific discretization of the planning horizon. port or to return home. The minimum time between The set of all time instants in the discretization will an arrival at an airport and the next departure, called be denoted by  . The set j a ⊆  represents the the turnaround time, is given for each airport. The time instants in which jet j ∈  will be allowed to objective is to minimize the costs, while satisfying all take off from airport a ∈ . The discretization can requests and respecting all constraints. A dispatcher (and often will) be different for each jet j ∈ . For has to decide which jets and pilots to use to satisfy h = home_base(j), we assume that jet_begin(j) and the requests and what the jet and pilot itineraries will jet_end(j) are in j h. For each t ∈  j∈ , and be, i.e., the flight legs and associated departure times.   a ∈  define tja = mint ∈ j a t ≥ t and t ja = We use the following notation to model the   maxt ∈ j a t ≤ t; whenever the jet and the airport problem: are clear from the context, we may simply write t : the set of all airports. and t . : the set of all jets. The dial-a-flight problem is an example of a pickup : the set of all transportation requests. and delivery problem. Pickup and delivery problems Without loss of generality, we assume that the have received a fair amount of attention in the vehi- requests are ordered, i.e.,  = r1r2rs. Each cle routing literature. Savelsbergh and Sol (1995) and request r ∈  has the following attributes: Desaulniers et al. (2002) provide overviews of pickup origin(r): the origin airport where passengers are and delivery problems. The class of vehicle-routing to be picked up. problems with pickups and deliveries dealing specif- destination(r): the destination airport where pas- ically with passenger transportation is known under sengers are to be dropped off. the name of dial-a-ride problems. When dealing with earliest(r): earliest departure time. passenger transportation, service-related constraints latest(r): latest arrival time. and objectives take on a more prominent role. These are typically aimed at controlling “user inconve- the current methodology that is available for these nience” in terms of ride time (the time between problems is not adequate for the dial-a-flight problem. pickup and delivery), waiting time (time spent in This is due to two reasons. First, in the dial-a-flight the vehicle when it is not in motion), and devia- problem “user inconvenience” is not only controlled tions from desired pickup and delivery times. A dis- by imposing a maximum transit time, as is typically cussion of modeling issues in dial-a-ride problems done in dial-a-ride problems, but also by imposing and an overview of proposed algorithms can be that passengers make at most one intermediate stop found in Cordeau and Laporte (2003). Even though between their origin and destination. The second rea- dial-a-flight and dial-a-ride have many common char- son is the sheer size of the problems that must be acteristics, there are also some notable differences. solved. DayJet is aiming to have over 300 jets oper- The dial-a-ride problem often arises in social services ating daily within two years. Thus, on a typical day, contexts, e.g., transportation of the elderly, whereas about 3,000 accepted reservations must be scheduled. the dial-a-flight problem is encountered exclusively in State-of-the-art dial-a-ride and vehicle-routing algo- business settings. As a result, there tends to be less rithms are well short of tackling such large problems flexibility in the specification of requests, especially in in a short period of time. terms of the desired service level, in dial-a-ride envi- There are two natural ways of modeling the offline ronments. Furthermore, in dial-a-ride environments, schedule optimization problem. First, it can be viewed requests often have a common destination or a com- as an integer multicommodity flow problem on a mon origin (e.g., elderly citizens needing to visit time-space network in which all jets form a commod- a hospital, or wanting to go to the mall), whereas ity. This involves a large number of commodities and in dial-a-flight environments this rarely happens. a huge number of nodes because the desired level of Other relevant dial-a-ride papers include Dumas, time granularity is minutes (see Cordeau et al. 2007 Desrosiers, and Soumis (1991); Savelsbergh and Sol for a description of this model). More importantly, a (1998); Xu et al. (2001); Ropke and Pisinger (2006); prohibitively large number of forcing constraints is Cordeau (2006); Borndorfer et al. (1997); and Bent and required to model that requests can only be served Van Hentenryck (2005). on an arc when there is a jet assigned to that arc as Fractional ownership is another new development well. The alternative is a column generation/branch- in the airline industry (Keskinocak and Tayur 1998; and-price approach in which a column corresponds Martin, Jones, and Keskinocak 2003; Hicks et al. 2005; to a feasible itinerary for one jet. This latter approach Yao et al. 2005). Fractional ownership programs pro- can produce a tighter linear programming bound at vide share sizes from one-sixteenth with 50 flying the expense of having an exponential number of vari- hours per year to one-half with 400 flying hours ables. In our preliminary studies we considered both per year. Usually, a partial owner requests a flight models. Neither produced the results for which we by specifying a departure station, a departure time, had hoped. The multicommodity flow model could an arrival station, and an arrival time, only days or solve small instances with fewer than four planes, but hours ahead of time. The management company must solution times grew exponentially with the number assign a crew and an available aircraft to serve this of planes so that even an instance with eight planes flight. While scheduling all the requested flights, the could not be solved in the desired time because of management company tries to minimize total opera- the exponential growth in the size of the network and tional costs. Fractional ownership leads to per-plane, the associated model. On the other hand, the column on-demand air transportation, as opposed to per- generation model could not even solve the linear pro- seat, on-demand air transportation considered in this gramming relaxation for instances with 20 planes in paper. The business model and resulting scheduling a reasonable amount of time. The reason for this is problems are quite different, because the success of that the subproblem for generating columns is a very per-seat, on-demand air transportation depends on difficult constrained shortest path. the ability to effectively aggregate requests, i.e., use This led us to develop a new multicommodity net- the same flight leg to (partially) satisfy multiple trans- work flow formulation. Instead of the natural integer portation requests. Moreover, in fractional ownership multicommodity flow on a time-space network, we planes are typically requested for at least several opted for an integer multicommodity flow model on hours at a time so the number of requests that need a time-activity network in which it is easier to handle to be dealt with are at least an order of magnitude the constraint that limits the number of intermediate less than in the per-seat, on-demand scenario. stops to at most one. This two-part paper discusses this integer multicommodity flow model on a time- 3. Motivation and Contribution activity network and how it is used to provide high- Although the dial-a-flight problem can be viewed as quality solutions to real-life, large-scale instances of a dial-a-ride problem in which the vehicles are jets, the dial-a-flight problem. In Part I, we describe and analyze the integer 4. A Multicommodity Network multicommodity flow model. To achieve acceptable Flow Model computational performance, three specialized tech- We begin by describing a discretized time-space net- niques had to be developed. The first two reduce work model representing feasible itineraries for a sin- network size significantly and the third technique gle jet airplane. The key events from the perspective both reduces network size and tightens the lin- of the jet are modeled in this network, e.g., which ear programming relaxation. They are: (1) a cus- flights to make, when to make them, and which pas- tomized network construction algorithm exploiting sengers to carry in each flight. Linking these networks objective function characteristics; (2) a nonregu- together via constraints that impose that all requests lar time-discretization increasing granularity around important time instants; and (3) a network aggrega- must be satisfied yields a multicommodity network tion algorithm. The network aggregation algorithm flow model with side constraints. contracts nodes, thus incorporating information aris- 4.1. The Individual Jet Network ing from side constraints into the network model. The For each jet j ∈ , we define a feasible itinerary resulting network, in which arcs correspond to partial routes that can be flown by a plane, can be considered as a sequence of flights satisfying the following as achieving some of the advantages of a column gen- conditions: eration approach in which the variables correspond (R1) The jet begins and ends the itinerary at to a full route for a plane. Therefore, the aggregation home_base(j), gives us some of the benefits of a column generation (R2) The jet begins the itinerary no earlier than formulation without having to design and implement jet_begin(j) and ends the itinerary no later than a full-scale branch-and-price algorithm. The efficacy jet_end(j), of the resulting algorithm, in terms of solution time (R3) The jet never carries more than capacity(j) and number of requests satisfied, is comparable to passengers on a flight, state-of-the-art algorithms used in other similar appli- (R4) The jet never carries more than max_weight(j) cations. Instances with fewer than 50 requests (four weight on a flight, jets) are easy to solve, and instances with 80 or more (R5) The jet does not fly more than max_fly_ requests (eight jets) are hard to solve. This is in line time(j) minutes during a day, and with recent computational results for the dial-a-ride (R6) The service requirements of passengers trans- problem (Cordeau 2006) and the capacitated vehicle- ported by the jet are met; that is, passengers are routing problem (Fukasawa et al. 2006; Lysgaard, picked up at their origin and dropped off at their Letchford, and Eglese 2004). destination within their specified time window with In Part II, we discuss the use of the integer mul- at most one intermediate stop, and without changing ticommodity flow model for solving real-life, large- airplanes during their trip. scale instances with several thousands of requests The Individual Jet Network allows us to model any and several hundred jets. We present a parallel local feasible itinerary for a given jet j ∈  in terms of a search algorithm that optimizes subsets of planes. flow between two nodes in the network. Nodes in this To achieve the desired computational performance, network represent key decisions taken from the per- we give novel approaches to focus the search on spective of the jet as it travels during the day between neighborhoods that provide good opportunities for different airports. These decisions are of three types: improvement, as well as using an asynchronous par- standby, departure, and loading decisions. Deciding allel implementation to explore a large number of to remain in “standby” allows a jet to wait, idle, at neighborhoods. The neighborhood designs are based an airport. A “departure” decision involves deciding on parameters such as number of jets, time discretiza- where to fly next, and “loading” decisions involve tion level, and time of day. We develop customized choosing which requests to satisfy. In Figure 1 we metrics to select subsets of jets with a high proba- illustrate possible sequences of such events as repre- bility of leading to an improvement. Our adaptive sented in an individual jet network. neighborhood selection scheme modifies the neigh- We now give a formal description of the network borhoods as the search progresses. Instances with model in terms of nodes and arcs. about 3,000 requests and over 300 jets are handled routinely and effectively. While our results are not 4.1.1. Nodes. Let  atb be the set of all directly comparable to recent computational results requests r ∈  with origin(r) = a and destination(r) for the pickup and delivery problem with time win- = b that can be serviced by a direct flight departing dows (Bent and van Hentenryck 2003; Ropke and from a at time t. That is, the set of all requests r ∈  Pisinger 2006), they show that our approach is capa- such that t ≥ earliest(r) and t + flight_time(a b) ≤ ble of dealing with problems of at least the same size latest(r). Let  at1ct2b be the set of all requests in comparable time. r ∈  with origin(r) = a and destination(r) = b that Departure Arcs. For every pair of airports a b ∈ 

and every time instant t ∈ j a put an arc from Sj at Load direct Load indirect to Gj atb. flight flight Loading Arcs. For every pair of airports a b ∈ , passenger passenger every time instant t ∈ j a, and every service request r ∈  atb introduce an arc from Gj atb to DLj atbr. Likewise, for every a b c ∈ , every t ∈  a t ∈  jc, and every r ∈  at ct b Standby mode Departure 1 j 2 1 2 (waiting) (a, b) put an arc Gj at1b to ILj at1ct2br. Aggregation Arcs. For each pair of requests r1r2 ∈ No Yes  atb such that r1 t1 put an r3 b 4 c 9 arc from Sj at1 to Sj at2. t = 2 t = 3 Airport a t = 1 S(a,1) S(a,2) S(a,3)

G(a, b) G(a, c) G(a, b) G(a, c) G(a, c)

DL(r1) DL(r2) DL(r1) DL(r2) DL(r2)

IL(r2) IL(r2)

Airport b t = 4 S(b,4) t = 5 S(b,5) t = 6 S(b,6)

G(b, c) G(b, c) G(b, c)

DL(r3) DL(r3) DL(r3)

Airport c t t t t = 7 S(c,7) = 8 S(c,8) = 9 S(c,9) = 10 S(c, 10)

Figure 2 Individual Jet Network some important characteristics of the individual jet network flow problems together by imposing that all networks. First, and most importantly, the individ- requests must be satisfied exactly once. ual jet networks are acyclic. Furthermore, every fea- Let Vj and Ej denote the set of all nodes and arcs sible itinerary for jet j corresponds to a path from in the individual jet network corresponding to each b e j ∈ . For each arc e ∈ E define a binary variable, node Tj to node Tj in the individual jet network, but j the converse is not always true. That is, not every path going from T b to T e corresponds to a feasible 1 if jet j uses arc e, j j x = b e e itinerary. A path from Tj to Tj will always satisfy con- 0 otherwise. ditions (R1), (R2), and (R6) because these are explicitly modeled in the network. However, conditions (R3), For each individual jet network Vj Ej  with j ∈ , (R4), and (R5) may not be satisfied by every path, we require that a single unit of flow must go from b e node T b to node T e by imposing the network flow and a path from Tj to Tj may satisfy a request more j j than once. conservation constraints (where tail e and head e denote the tail and the head of arc e) 4.2. A Multicommodity Network xe = 1 ∀ j ∈  Flow Formulation b e∈Ej tail e=Tj A solution to the dial-a-flight problem consists of a set of feasible itineraries, one for each jet j ∈ , satisfying xe = 1 ∀ j ∈  e all of the service requests r ∈  at minimum cost. We e∈Ej head e=Tj formulate this problem as a network flow-based inte- x = x ∀ v ∈ V \T bTe ∀ j ∈  ger program. For each jet j ∈ , we formulate a min- e e j j j e∈E head e=v e∈E tail e=v cost flow problem in which one unit of flow is sent j j b e from node Tj to Tj in the corresponding individual Next, we consider the side constraints. network, adding side constraints to ensure that each Capacity (R3). Consider airports a b ∈  and a individual jet itinerary satisfies constraints (R3)–(R5). time instant t1 ∈  . To each arc e ∈ Ej into a direct Then, a constraint is generated that links all of these loading node DLj at1br, into an indirect loading t = 1 t = 2 t = 3 Airport a S(a,1) S(a,2) S(a,3)

G(a, b) G(a,c) G(a, b) G(a, c) G(a, c)

DL(1) DL(2) DL(1) DL(2) DL(2)

IL(2) IL(2)

Airport b t = 4 S(b,4) t = 5 S(b,5) t = 6 S(b,6)

G(b, c) G(b, c) G(b, c)

DL(3) DL(3) DL(3)

t = 10 Airport c t = 7 S(c,7) t = 8 S(c,8) t = 9 S(c,9) S(c, 10)

Figure 3 Two Possible Itineraries in the Jet Network

node ILj at1bt2cr, and into an indirect loading To all other arcs assign flying time fe = 0. For each jet, a b t1 we impose a flying time constraint node ILj ct3at1br assign consumption qe = passengers(r), and to all other arcs e ∈ Ej assign con- a b t1 f x ≤ max_fly_time(j) ∀ j ∈  sumption qe = 0. For each jet and each flight seg- e e ment, we impose a jet capacity constraint e∈Ej qa b tx ≤ capacity(j) ∀ a b ∈  ∀ t ∈   ∀ j ∈  limiting the amount of time it is in the air. e e We also need a constraint to link together all of e∈Ej the individual jet networks and to impose that all limiting the number of passengers on the flight. requests are satisfied. Weight (R4). Similarly, we assign consumption Request Satisfaction. Consider a request r ∈ .To a b t1 we = weight(r) to each arc e ∈ Ej into a direct each loading arc e ∈ E involving request r assign loading node DL at br, into an indirect loading r r j 1 se = 1. To all other arcs assign se = 0. We impose the node IL at bt cr, and into an indirect loading constraint j 1 2 node IL ct at br, and qa b t1 = 0 to all other r j 3 1 e se xe = 1 ∀ r ∈  arcs e ∈ Ej . Then, for each jet and each flight segment, j∈ e∈Ej we impose a jet weight constraint which guarantees that each request must be satisfied a b t exactly once. we xe ≤ max_weight(j) e∈Ej Because each Individual Jet Network is acyclic, we need not be concerned about the existence of ∀ a b ∈  ∀ t ∈   ∀ j ∈  subtours (or closed directed cycles) in the solution. limiting the total weight on the flight. That is, every feasible solution to the constraints Flying Time (R5). To each arc e ∈ E into a gate defined above must consist of  paths, one for each j b e node G atb assign flying time jet j ∈  going from node Tj to Tj . j Finally, the objective function is defined as a linear

fe = flight_time(a b) function on the flights made by each individual jet. Objective Function. To each arc e ∈ E into a gate 5.1. The Rolling Forward Algorithm node Gj atb assign cost ce = flight_cost(a b).To To ensure the creation of an individual network all other arcs assign cost ce = 0. These costs are used to of acceptable size, we exploit the following three specify the objective function of the problem, which is observations: min c x  (P1) Feasibility Considerations May Lead to the e e Elimination of Arcs. Each jet is constrained by the j∈ e∈Ej earliest time at which it can depart from its home We have chosen to use the flying time f for arc e as a e base and the latest time by which it must return. Also, proxy for the cost c because operational costs primar- e each jet has constraints limiting its flying time and the ily depend on fuel consumption. (Pilots are salaried number of passengers and weight aboard at any time. employees.) It is a proxy because fuel consumption Therefore, for any given jet j ∈ , many of the arcs in is not a linear function of the flying time. Planes use the individual jet network as defined in the previous more fuel during take off and landing, and fuel use section cannot actually be used in any feasible path also depends on the weight of the plane (determined going from T b to T e. For example, consider an airport by the people and fuel aboard). j j a ∈  and time instants t 1440. To these time instants the set V, it is labeled unprocessed. The algorithm iter- we add three other types of time instants that capture ates forward through time by selecting unprocessed key moments during the day:   1. For each request r ∈  and for j ∈  that can nodes in V t and processing them. When V t con- j tains several nodes, they are processed in the follow- feasibly satisfy request r, add the earliest time tr at ing order: standby nodes, gate nodes, direct loading which jet j can pick up the passengers in request r nodes, and finally, indirect loading nodes. Processing to j a. a node v involves identifying all possible events that 2. For each jet j ∈  and each take off time t at air- can directly follow the event represented by node v, port a in the best-known feasible schedule (usually creating nodes representing these subsequent events generated by a heuristic before starting the optimiza- (unless the network already contains nodes represent- tion process), add time instant t to j a. This ensures ing these events), and adding arcs connecting v to that the best-known feasible schedule can be repre- these (new) nodes. Once all nodes in V t  are pro- sented in the resulting network. cessed, t is set to the next t >t such that V t  is 3. For each airport, add additional time instants nonempty. The algorithm proceeds in this way until (typically integer multiples of $/2) during con- all nodes in V are processed. Because the analysis of gested periods of the day, i.e., periods of the day with possible subsequent events is done using observations a high number of anticipated takeoffs. (P1), (P2), and (P3), every node v in the constructed 5.3. Aggregation network will be such that it is in some feasible path Even though the network formulation is judiciously from T b to T e. Note that when processing nodes in j j constructed, it may still be large, may have many side     V t , only nodes in V t with t ≥ t are added. constraints, and may have a weak linear program- To each airport, time instant pair at, with a ∈ A ming relaxation. To reduce the size of the formulation and t ∈  , we may possibly add labels indicating that and to increase the strength of the linear program- there are passengers arriving at their destination, or ming relaxation, we perform various aggregations. that there are passengers arriving and connecting to The idea of aggregation is very natural and can be their final destination(s). When the algorithm begins, used in any network. It is especially useful when there the pair (home_base(j) jet_begin(j)) is labeled as are tight side constraints. We will introduce our aggre- final-stop. All other pairs at are unlabeled, but this gation procedures for general networks and then dis-  can change as nodes are added to Vj . The possible cuss how these procedures apply to the dial-a-flight labels are final stop, and middle stop b, for all b ∈ . network. Note that a pair at may have several labels. Consider a network  with nodes V and arcs A. The processing of a node depends on the airport a, Assume that there are k resources (which are con- the time t, the labels defined at (a t), the time dis- k sumed additively), and let vector ra ∈ + represent the cretization, and the type of node. The details of the amount of resources consumed when traversing arc processing of nodes, even though important for the a ∈ A. Let R ∈ k represent the total resources avail- overall success of the solution approach, are tedious + able, and for each a ∈ A let x be a binary variable and repetitive. Therefore, they are presented in the a indicating whether or not we use arc a. Assume that appendix. we wish to find a min-cost flow of one integer unit 5.2. Time Discretizations from a node s ∈ V to a node t ∈ V , such that the resource usage constraint Executing the optimization algorithm with j a equal to all integer points in 0 1440 , corresponding to r x ≤ R the minutes in a 24-hour day, typically results in the a a generation of an excessively large network, even if a∈A the network is constructed carefully using the rolling is satisfied. forward algorithm. In this section, we discuss meth- For each node v ∈ V , let ( v represent the set of ods for generating customized discretizations strictly all arcs incident to v. Define (− v ((+ v) as the set − of all arcs in ( v whose head (tail) is v and let r v We define two arcs e1e2 ∈ A to be parallel if there + − + (r v) be such that for each i ∈ 1kri v (r v) is no directed path in  containing both e1 and e2. represents the minimum consumption of resource i A set of arcs F ⊆ A is said to be parallel if every pair of arcs in F is parallel. Furthermore, we define the required to get from node s to node v (node v to node t). support of constraint (Ri) e∈A reixe ≤ Ri to be Ai = An iteration of the aggregation algorithm works as e ∈ A rei = 0. Without loss of generality, we may follows: assume that every arc e ∈ Ai is such that rei ≤ Ri, else 1. Choose a node v ∈ V . the arc can be removed from the network.

2. Delete node v and all arcs in ( v from  . Now observe that if the supporting arcs Ai of a − + 3. For each arc e ∈ ( v and each arc f ∈ ( v constraint (Ri) are parallel, then constraint (Ri) can be define an arc ef such that its tail coincides with the tail dropped. This is due to the fact that when the set of b e of e and its head coincides with the head of f . Define arcs Ai is parallel, any path from Tj to Tj includes − + at most one arc e from A , and that arc will satisfy ref = re + rf .Ifr tail e + ref + r head f  ≤ R, then i add edge ef to  . rei ≤ Ri. Consider a network  with nodes A B C D This observation can be exploited to eliminate side EM connected to each other as depicted in Fig- constraints. Consider a set of nodes U ⊆ V with the ure 4(a). Assume that aggregation algorithm chooses following properties: (1) every arc e ∈ Ai for some node M. In Figure 4(b) we see what the resulting (Ri) has head e ∈ U , and (2) there does not exist a network looks like if the resource constraints do not directed path starting and ending in U . Then, if one allow us to eliminate any arcs in Step 3 of the aggrega- aggregates every node in U , constraint (Ri) can be tion algorithm. In Figure 4(c) we see what the result- eliminated. This is true because when we aggregate ing network may look like if the resource constraints every node in U , every pair of arcs generated by the do allow us to eliminate arcs in Step 3 of the aggre- aggregation will be parallel, and these arcs define the gation algorithm (in this case, the elimination of arcs support of constraint (Ri) in the aggregated network. (A C) and (BD)). In the individual jet networks, capacity and weight If the resource constraints are loose and few arcs side constraints can be eliminated with relative ease are eliminated in Step 3 of the aggregation algorithm, by successive aggregation iterations. Recall from §4.2 the size of the network may greatly increase. In fact, that there is one capacity constraint for each set of at each iteration of the aggregation algorithm, one indices a b ∈ t∈  , and j ∈ , and for each of these could potentially be adding a quadratic number of index sets, the edges with positive coefficients in the arcs relative to the number of arcs removed. As a corresponding constraints are such that they are inci- dent to a few specific nodes in the network. precaution, we choose a parameter - ∈ +, and the aggregation algorithm only deletes nodes v ∈ V such 5.4. Multiple Shifts − + − + that ( v( v≤( v+( v+-. Even for In the application developed for DayJet, there are - = 0, the aggregation algorithm can greatly reduce two pilot shifts per day, one morning shift and one the number of nodes and arcs by eliminating path- afternoon shift (shift changes happen only at the like and forklike structures, which seem to be very home base). More specifically, two time intervals are common in sparse networks such as the individual jet specified. Together, the two time intervals cover the networks. For ->0, significant network-size reduc- operating hours in a day. Each time interval has a tions can be obtained when resource limits are tight, beginning time and an ending time. The first time causing many arcs to be eliminated in Step 3 of the interval ends some time after the second time interval aggregation algorithm. We have observed that choos- begins; i.e., the time intervals overlap. The first time ing direct and indirect loading nodes in Step 1 of the interval has to contain the morning shift and the sec- aggregation algorithm can be very effective due to the ond time interval has to contain the afternoon shift. restrictive seat and weight capacity of the jets. The change in the problem is that now a jet must return to its home base sometime between the begin- ning of the second time interval and the ending of A C A C A C the first time interval so that there may be a pilot change. Pilot changes are assumed to be quick; i.e., M D D D they do not take any longer than the turnaround time at the home base and are allowed to occur while there are connecting passengers on board. After pilots are B E B E B E swapped, it is required that the jet returns to the home (a) (b) (c) base before the second shift ends. Also, the maximum Figure 4 The Aggregation Algorithm flying time constraint is imposed for each individual shift because the FAA regulation is intended to limit our focus is on improving given feasible schedules. the total daily flying hours of individual pilots. This focus is reflected in the presentation of computa- To deal with the shift change, it suffices to use two tional results, where we show improvements over the copies of the individual jet network for each jet (one best-known feasible schedule. Starting with a feasible for each shift) and link each of these by arcs going solution definitely helps the integer program because through the home base in the time window during the feasibility problem is itself difficult, and without which pilot changes must take place. The same basic the upper bound provided by a feasible solution, the ideas used to build the rolling forward algorithm can search tree might be larger. be modified to take into account the pilot changes. The goal of our computational experiments is to One must simply be careful to enumerate all possi- gain an understanding of (1) the quality of the for- ble cases by which the shifts can change at the home mulation obtained by the rolling forward algorithm, base. Given that the methodology is exactly the same, (2) the impact of the discretization scheme that is and that the notation and case analysis required for used, (3) the impact of the network aggregation tech- the two-shift case is much more extensive, we will niques, and, foremost, and (4) whether the technology not go into details. However, given the relevance of can significantly improve the solutions obtained by the two-shift model to the actual application, we will the DayJet heuristic in a reasonable amount of time. report computational results for two shifts rather than The results of the computational experiments are just one. presented in Tables 2–4. A time limit of four hours was imposed on the solution time of each integer pro- 6. Computational Results gram with optimality tolerance set to 0.01%. Linear To assess the value of the proposed multicommodity programs at root nodes were solved using the barrier network flow formulation and the effectiveness of the algorithm. Pseudo-reduced cost branching was used, rolling forward algorithm, the flexible discretization and the up branch was always explored first. CPLEX approach, and the aggregator, we performed a series heuristics were turned off. Finally, the value of the of computational experiments on instances provided schedule produced by the DayJet Corporation heuris- by DayJet. tic was provided as an initial upper bound. DayJet provided three sets of 23 instances. Each For the base experiment, we constructed the jet net- instance consists of a list of service requests cover- works using the rolling forward algorithm with the ing 17 airports in the southeastern United States. In most basic time discretization (i.e., $ = 1440, which addition, DayJet provided, for each instance, the best means only the “special” time instants) and with- feasible schedule generated by their internally devel- out using the aggregation algorithm. The results are oped and proprietary heuristic, which they developed shown in Table 2, which gives the problem set used to determine whether requests could be accepted. In (PSET), the fleet size (JETS), the average percentage the first set of instances, there is a fleet of eight jets improvement over the initial solution after four hours and an average of 81.36 requests, with an average of of computation (IMPROVE), the average percentage 101.10 passengers. In the second set of instances, there gap between the best upper and lower bounds after is a fleet of six jets and an average of 65.73 requests, four hours of computation (LP-GAP), the number of with an average of 80.95 passengers. Finally, in the instances for which we were able to find an improv- third set of instances, there is a fleet of four jets and ing solution (FEAS), and the number of instances for an average of 43.40 requests, with an average of 53.56 which we were able to complete the search (OPT). passengers. We observe that, even with this basic formulation, All the computational experiments were conducted we are able to obtain improved schedules for many on a cluster of 2.4 GHz Dual AMD 250 computers instances and that the average reduction in flying with 4 GB of RAMeach. The source code was writ- time is substantial, between 6% and 8%. On the other ten in the C programming language, compiled with hand, the remaining integrality gaps after four hours gcc version 3.4.3, and executed in Red Hat Enterprise of computing are still quite large, especially for the Linux ES, release 4. All linear and integer programs larger instances. were solved using CPLEX version 9.0. Next, we evaluate the impact of the aggregation Given the fact that a feasible schedule is avail- algorithm and analyze how this impact varies based able for each instance, our primary interest is eval- uating whether our technology is able to obtain Table 2 Results for the Base Experiment improved solutions in a reasonable amount of time. PSET JETS IMPROV LP-GAP FEAS OPT Even though our technology is capable of finding an optimal solution and proving its optimality, it is 18616 2620 11 0 unlikely that this can be accomplished in an accept- 26788 1281 20 3 able amount of time for larger instances; therefore, 34602 461 17 15 Table 3 Aggregation we contract all gate and loading nodes, regardless of their in and out degrees. PSET AGG IMPROV LP-GAP ROWS COLS NZS FEAS OPT The results are shown in Table 3. In addition to 10616 2620 10000 10000 10000 11 0 the information provided for the base experiment, 2887 1886 4177 7210 9130 15 0 we include the level of aggregation (AGG), i.e., the 41152 1379 3613 7321 9948 20 1 parameter -, the number of columns in the for- 61184 1285 3415 7542 10671 21 1 81290 1095 3275 7880 11626 22 2 mulation after aggregation relative to the number 10 1368 959 3208 8157 12403 22 2 of columns in the formulation before aggregation 12 1377 920 3160 8449 13203 22 2 (COLS), the number of rows in the formulation after 14 1462 785 3127 8717 13932 23 3 aggregation relative to the number of rows in the for- 16 1405 827 3096 9035 14797 22 3 mulation before aggregation (ROWS), and the num- “noGL” 1573 299 2921 29395 91464 22 7 ber of nonzeros in the formulation after aggregation 20788 1281 10000 10000 10000 20 3 relative to the number of nonzeros in the formulation 2841 976 4162 7082 8873 22 6 4912 748 3680 7162 9563 23 8 before aggregation (NZS). 6950 633520 7334 10135 23 9 The impact of the aggregation algorithm is most 8957 542 3401 7621 10963 23 12 apparent in the first problem set, i.e., for the larger 10 958 518 3345 7849 11596 23 14 instances. In fact, for this problem set, using the noGL 12 967 491 3309 8061 12170 23 13 level of aggregation results in an improved solution 14 977 464 3278 8260 12730 23 15 16 974 440 3257 8496 13376 23 14 for 22 out of the 23 instances, compared to only 11 “noGL” 1000 211 3136 15819 39962 23 16 improved solutions without aggregation, and an aver- 30602 461 10000 10000 10000 17 15 age reduction of flying time of 15.73%, which is more 2602 417 4241 7097 8844 17 16 than twice the reduction obtained without aggrega- 4602 336 3840 7140 9396 17 16 tion (6.16%). Furthermore, we see that the reduc- 6602 288 3703 7270 9824 17 16 tions in flying time increase gradually from 6.16% to 8602 215 3615 7474 10412 17 16 15.73% as we increase the level of aggregation and we 10 602 202 3572 7603 10771 17 17 12 602 167 3536 7811 11321 17 17 observe a similar change, although more pronounced 14 602 167 3516 7944 11670 17 17 (from 26.2% to 2.99%), for the decrease in the inte- 16 602 157 3501 8074 12038 17 17 grality gap. The fact that the decrease in integrality “noGL” 602 101 3440 10164 18945 17 17 gap is more pronounced indicates that aggregation not only improves the IP solutions found, but also on how aggressive we delete nodes. For each prob- the LP solutions found. This same phenomenon can lem set, we test several different values of the param- be observed for the second and third problem sets. eter -, which controls how aggressive we are with In the third problem set, with the smallest instances, deleting nodes. In addition, we introduce a special there is the least amount of change. In fact, the aggre- level of aggregation, denoted by “noGL,” in which gation does not increase the number of instances for which an improvement is found and the reduction in flying time remains the same. Only the integrality gap Table 4 Time Limit becomes smaller (reduces from 4.61% to 1.01%). This 5 minutes 15 minutes 30 minutes suggests that the quality of the schedules produced by PSET AGG IMPROV FEAS OPT IMPROV FEAS OPT IMPROV FEAS OPT the DayJet heuristic degrades as the instances become larger, thus leaving more room for improvement by 10000 0 0 026 1 0 305 5 0 4272 4 0 457 7 0 780 13 0 our optimization technology. In fact, we believe that 8348 4 0 654 10 0 1003 18 2 for the third problem set, we have produced the opti- 12 446 7 0 777 12 0 1176 20 1 mal schedule for all instances, which means that the 16 397 6 2 819 14 3 1077 17 3 DayJet heuristic found the optimal schedule for six “noGL” 470 6 4 765 10 5 1244 18 6 instances. It is important to note that although the 20333 9 2 471 12 2 552 12 2 use of the aggregation algorithm results in improved 4597 15 3 699 18 4 822 18 4 8730 19 6 788 21 8 850 21 8 performance, it comes at a price. The problem size 12 730 19 9 824 22 10 935 22 10 increases, especially in terms of number of nonzeros, 16 756 19 10 855 22 12 903 22 12 when the aggregation level increases, which affects “noGL” 868 21 12 993 23 13 996 23 13 the time it takes to solve linear programs. 30443 17 12 445 17 13 445 17 15 The time it takes to solve linear programs dur- 4445 17 14 445 17 16 445 17 16 8445 17 15 445 17 16 445 17 16 ing the search, especially the time it takes to solve 12 445 17 16 445 17 16 445 17 17 the linear program at the root, may affect the time 16 445 17 16 445 17 16 445 17 16 it takes to reach a first or substantially improved “noGL” 445 17 16 445 17 16 445 17 17 solution. This time is important because we are also developing parallel local search technology to solve not lead to improved solutions. In fact, the worst large-scale instances (see Espinoza et al. 2008). To get results are obtained with the finest level of discretiza- some insight into how quickly improved solutions are tion (note that for problem set 1 with discretization obtained, we conducted an experiment in which the level 1, an improvement was found for only one of running time of the search was limited to 5, 15, and the 23 instances!), and the level of discretization does 30 minutes. The results are given in Table 4. not seem to have much of an impact for discretiza- The results show that even if we allow only a lim- tion levels greater than or equal to 15 (for problem ited amount of time we are able to find improve- set 1, the improvements found range between 13.05 ments, but that there is a clear qualitative difference and 14.39). This demonstrates, most likely, that the set between the improved solutions found after 5, 15, and of “special” time instants added to the time instants of 30 minutes. Furthermore, there is no longer a grad- the discretization are crucial to obtaining high-quality ual monotonic change in the number of instances for schedules. The results also clearly demonstrate that which an improvement is found and in the reduction the problem size explodes at discretization levels of of flying time when we increase the level of aggrega- five or less. Given a limited amount of computing tion. In fact, for problem set 1, the largest number of time, it appears that a smaller formulation more than instances for which an improvement is found occurs makes up for the added precision in finer discretiza- with aggregation level 12 instead of with noGL. This tions and allows us to find improving solutions more is probably due to the fact that a larger part of the often and with larger reductions in flying time. search space can be explored due to faster linear pro- DayJet expects to operate with a fleet of 300 jets gramming solving. by 2008 with an expectation that the fleet should In the final experiment, we analyze the importance be several times larger by 2011. Therefore, DayJet of the selected time discretization. We chose aggrega- needs schedule optimization technology that can effi- tion level 10 for all experiments, and as before, a time ciently handle instances of the dial-a-flight problem limit of four hours was imposed. The results are pre- involving hundreds of jets and thousands of requests. sented in Table 5. The second column (DISC) specifies The integer multicommodity network flow model the discretization parameter $ used. with side constraints discussed above cannot be used At first glance, the results may appear counterintu- directly to satisfy their needs. In Part II, we demon- itive because decreasing the level of granularity does strate that by embedding this core optimization tech- nology in a parallel local search scheme, it is possible to produce high-quality solutions efficiently for large- Table 5 Discretization scale real-life instances. PSET DISC IMPROV LP-GAP NZ COLS ROWS FEAS

11085 1801 77104 79785 76530 1 Acknowledgments 5997 1483 23864 24231 23910 15 The authors would like to thank the DayJet corporation for 10 1181 1249 16435 16611 16498 19 financial support of this research and data, and the DayJet 15 1388 966 14194 14280 14236 22 team consisting of Ed Iacobucci, Alex Khmelnitsky, Bruce 30 1305 1071 11834 11859 11855 20 Sawhill, Bob Spaulding, and Eugene Taits for many valu- 60 1356 993 10824 10836 10840 21 able and stimulating discussions. 120 1439 880 10358 10378 10370 22 240 1389 943 10190 10210 10196 21 Appendix 1440 1430 887 10000 10000 10000 22 21626 1004 92326 98063 91770 16 Processing Standby Nodes 5896 667 27748 28779 27981 21 Consider a jet j at airport a at time t. Assume that this jet 10 925 639 18424 18859 18566 22 has no passengers on board and that it is ready for takeoff. 15 993 525 15515 15758 15593 23 30 955 553 12361 12477 12414 22 There are two possible decisions regarding the jet: either  60 952 538 11106 11133 11122 23 wait at airport a until some future time t or fly to some 120 928 564 10492 10501 10498 22 other airport. 240 968 511 10259 10273 10264 23 If the jet waits, then we may assume it is doing so for 1440 958 518 10000 10000 10000 23 one of two reasons: (i) it is waiting to pick up some passen- 31646 193 107514 115360 106150 17 ger whose origin is a, but whose earliest departure time is 5645 188 32488 34028 32839 17 greater than t, or (ii) it is currently at its home base and will 10 613 199 21023 21540 21161 17 not be operated anymore during the day. Observe that we 15 613 206 17421 17674 17520 17 are applying (P3) when making these assumptions. There is 30 575 196 13214 13224 13225 17 no reason for jet j to wait if after doing so it will only carry 60 571 203 11561 11487 11522 17 passengers available at time t. If the jet is to only satisfy 120 568 206 10667 10703 10688 17 requests already available, it will do so immediately. 240 568 202 10397 10401 10395 17 If the jet is to depart somewhere it will do so for one of 1440 568 207 10000 10000 10000 17 three reasons: either (i) the jet will relocate empty to pick up passengers at another airport, (ii) the jet will load some i.e., the first time at which jet j will be available for take- passengers at this airport and take them somewhere (either off from airport b after flying there from a at time t1. Let their destination, or some middle stop where additional + t2 = mint ∈  j b t ≥ t2 and  bt is nonempty, i.e., the passengers could be picked up), or (iii) the jet will pick up first time (no earlier than t2) at which a request becomes no more passengers during the day and will relocate empty available for pickup at airport b; if no such time exists, set to its home base. Note that here we can apply property (P2). + t2 =+. Ideally, we would like to allow the jet to relocate empty 1. Check whether the jet should be allowed to take off only if it has just arrived with passengers on board. This is without picking up any passengers. If at  has a final- where the labels come into play. If (a t) is labeled as a final 1 stop label, then add relocation arc G at  b S bt+ to stop, then there exists some itinerary in which jet j arrives j 1 j 2 model that the jet may take off without having loaded any with passengers to airport a and is next ready to fly at t.In passengers, and will be ready at airport b as soon as there this case, relocation without loading must be allowed at the are passengers available there (and no earlier). If at  node. Otherwise we can prohibit it. 1 has a middle-stop b label, then add indirect direct flight arc Formally, this is done as follows. Consider a node Sj at to be processed. Gj at1 b Sj bt2 to model that the jet may take off with- 1. Add an idle arc to model that the jet may wait out having loaded any passengers (to drop off connecting passengers) and be ready at b as early as possible (in case for passengers not yet available for pickup. Let t2 be the next moment in time after t at which a new pas- it needs to relocate). Mark bt2 as a final stop if an arc was senger is available for pickup in airport a. Formally, let added.   t2 = mint >t  t a \ ta =∅.Ift2 exists, then add 2. Check to see if the jet can load any passengers Sj a t Sj at2. that will fly directly to their destination. For every 2. If at the home base, add an idle arc connecting to the request r ∈  at1b (if any), add loading arc Gj at1b terminal node so as to allow the jet to retire for the day. DLj at1br. By this, we are allowing jet j to load any e That is, if a is the home base of the jet, then add Sj a t Tj . request r whose origin is a, whose destination is b, and that 3. Add departure arcs to allow satisfaction of requests can be satisfied by the flight departing at t1. whose origin is airport a. That is, for every b ∈  such that 3. Check whether the jet can load any passengers that  atb is nonempty, add Sj a t Gj atb. For every will fly indirectly to their destination. Let = t  ∪ t > t c ∈  and t ∈  such that  atbt c is nonempty, add 2 2 2 2  bt \ bt − 1 is nonempty, i.e., the time instants at S a t G atb. j j which new requests become available for pickup at airport b. 4. Add departure arcs allowing the jet to relocate after For every t ∈ , every c ∈ , and every r ∈  at bt c (if passengers have been dropped off. That is, if at has a 3 1 3 any), add loading arc Gj at1bILj at1bt3cr. Mark final-stop label, then add Sj a t Gj atb for every b ∈ . bt3 as a middle-stop c if an arc was added. Processing Gate Nodes 4. If no arcs were added out of node Gj at1b, elimi- nate the node. Consider a jet j that is at airport a at time t1. Assume that it has been decided that this jet will immediately fly to air- port b. The next decisions correspond to which passengers Processing Direct Loading Nodes (if any) will be loaded. Consider a jet j that is at airport a. Assume it has been If no passengers are to be loaded, then by (P2) we may decided that: (i) j will fly to airport b at time t1, and (ii) j will assume that passengers have just been dropped off. In this satisfy a request r whose origin is a and whose destination case we may further assume that the jet is either (i) relo- is b. After these decisions have been made, it is possible cating to pick someone up at airport b, (ii) relocating to to decide that, (iii) j will satisfy another request r whose its home base to finish up for the day, or (iii) taking indi- 2 origin is a and whose destination is b, (iv) j will satisfy a rect passengers to their destination. If the jet is relocating request r whose origin is a and whose destination is not b, (as opposed to dropping off indirect passengers) and not 2 retiring for the day, it will not fly again from b until some or (v) j will satisfy no more requests and fly directly to b. passenger is picked up there; that is, we can assume the jet Formally, this is done as follows. Consider a node has no need to fly two consecutive relocation flights. Note DLj at1br to be processed. Let t2 =t1 + relocate_ that because of (P2) we know that case (i) can only happen time ab, i.e., the first time at which jet j will be available for takeoff from airport b after flying there from a at time t . if (a t1) has a final-stop label, and case (iii) can only happen 1 if (a t1) has a middle-stop b label. 1. Model that we may wish to satisfy additional requests  If passengers are to be loaded, then either (i) all of them by direct flights. For every request r ∈  at1b such that   have destination b, or (ii) there exists some airport c such r >r, add loading arc DLj at1brDLj at1br . that all of them have destination b or c. In case we decide 2. Model that we may wish to satisfy additional requests to load passengers whose final destination is c, we must by indirect flights. Let = t2 ∪ t > t2  bt \ b decide at what time to depart from b. We may decide to t − 1 is nonempty, i.e., the time instants at which new take off from b as soon as possible, or we may decide to requests become available for pickup at airport b. For every wait to pick up some passenger that become available later  t3 ∈ , every c ∈  and every r ∈  at1bt3c (if any), in the day at b.  add loading arc DLj at1brILj at1bt3cr . Formally, this is done as follows. Consider a node 3. Model that we may not wish to satisfy requests with Gj at1b to be processed. Let this flight. Add direct flight arc DLj at1brSj bt2. t2 =t1 + relocate_time(a b) Mark bt2 as a final stop. Processing Indirect Loading Nodes DayJet Corporation. 2005. How to keep air transportation mov- Consider a jet j that is at airport a. Assume it has been ing at the speed of business. White paper, http://www.dayjet. decided that (i) j will fly from airport a to airport b at com/Resources/BusinessTravelers/WhitePapers.aspx. Desaulniers, G., J. Desrosiers, A. Erdman, M. M. Solomon, time t1, (ii) j will fly from airport b to airport c at time t2, and (iii) j will satisfy a request r whose origin is a and whose F. Soumis. 2002. VRP with pickup and delivery. P. Toth, destination is c. After these decisions have been made, it is D. Vigo, eds. The Vehicle Routing Problem. SIAMMonographs on Discrete Mathematics and Applications, Philadelphia, possible to decide that (iv) j will satisfy another request r2 137–153. whose origin is a and whose destination is c, or (v) j will Dumas, Y., J. Desrosiers, F. Soumis. 1991. The pickup and delivery satisfy no more requests and fly directly to b. problem with time windows. Eur. J. Oper. Res. 54 7–22. Formally, this is done as follows. Consider a node Espinoza, D., R. Garcia, M. Goycoolea, G. L. Nemhauser, M. W. P. ILj at1bt2cr to be processed. Savelsbergh. 2008. Per-seat, on-demand air transportation 1. Model that we may wish to satisfy additional requests part II Parallel local search. Transportation Sci. 42(3) 279–291.  by indirect flights. For every request r ∈  at1bt2c Fallows, J. 2005. Fly me to the moon? No, but the next best thing.  such that r >r, add loading arc ILj at1bt2cr, New York Times (July 10). http://www.nytimes.com/2005/06/  10/business/yourmoney/10flies.html. ILj at1bt2cr . 2. Model that we may not wish to satisfy more Fukasawa, R., H. Longo, J. Lysgaard, M. Poggi de Arago, M. Reis, E. Uchoa, R. F. Werneck. 2006. Robust branch-and-cut-and- requests with this flight. Add indirect flight arc ILj at1b t crG bt c. Mark bt  as a middle stop c. price for the capacitated vehicle routing problem. Math. Pro- 2 j 2 2 gramming 106 491–511. Hicks, R., R. Madrid, C. Milligan, R. Pruneau, M. Kanaley, Y. Dumas, B. Lacroix, J. Desrosiers, F. Soumis. 2005. Bom- References bardier flexjet significantly improves its fractional ownership Benoist, T., E. Bourreau, Y. Caseau, B. Rottembourg. 2001. Towards operations. Interfaces 35(1) 49–60. stochastic constraint programming: A study of online multi- Keskinocak, P., S. Tayur. 1998. Scheduling of time-shared jet aircraft. choice knapsack with deadlines. Proc. Internat. Conf. Constraint Transportation Sci. 32(3) 277–294. Programming CP-2001, Lecture Notes in Computer Science, Lysgaard, J., A. N. Letchford, R. W. Eglese. 2004. A new branch- Vol. 2239. Springer-Verlag, London, 61–76. and-cut algorithm for the capacitated vehicle routing problem. Bent, R., P. Van Hentenryck. 2003. A two-stage hybrid algo- Math. Programming 100 423–445. rithm for pickup and delivery problems with time windows. Martin, C., D. Jones, P. Keskinocak. 2003. Optimizing on-demand Lecture Notes in Computer Science 2833. Proc. Internat. Conf. aircraft schedules for fractional aircraft operators. Interfaces Constraint Programming CP-2003, Lecture Notes in Computer 33(1) 22–35. Science, Vol. 2833. Springer-Verlag, Berlin, 123–137. Bent, R., P. Van Hentenryck. 2004. Scenario-based planning for par- Ropke, S., D. Pisinger. 2006. An adaptive large neighborhood search tially dynamic vehicle routing with stochastic customers. Oper. heuristic for the pickup and delivery problem with time win- Res. 52(6) 977–987. dows. Transportation Sci. 40(4) 455–472. Bent, R., P. Van Hentenryck. 2005. A two-stage hybrid algorithm Savelsbergh, M. W. P., M. Sol. 1995. The general pickup and deliv- for the pickup and delivery vehicle routing problem with time ery problem. Transportation Sci. 29(1) 17–29. windows. Comput. Oper. Res. 33(4) 875–893. Savelsbergh, M. W. P., M. Sol. 1998. DRIVE: Dynamic routing of Borndorfer, R., M. Grotschel, F. Klostermeier, C. Kuttner. 1997. independent vehicles. Oper. Res. 46(4) 474–490. Telebus Berlin: Vehicle scheduling in a dial-a-ride system. United States Department of Transportation. 2003. America on the Preprint SC 97-23, Konrad-Zuse-Zentrum fur Information- go: U.S. business travel, http://www.bts.gov. stechnik, Berlin. Van Hentenryck, P., R. Bent, T. Vergados. 2006. Online stochas- Campbell, A., M. Savelsbergh. 2005. Decision support for consumer tic reservation systems. Second Internat. Conf. Integration of direct grocery initiatives. Transportation Sci. 39(3) 313–327. AI and OR Techniques in Constraint Programming for Combin. Cordeau, J.-F. 2006. A branch-and-cut algorithm for the dial-a-ride Optim. Problems CP-AI-OR-06, Lecture Notes in Computer Sci- problem. Oper. Res. 54(3) 573–586. ence, Vol. 3990. Springer, Berlin/Heidelberg, 212–227. Cordeau, J.-F., G. Laporte. 2003. The dial-a-ride problem (DARP): Xu, H., Z. L. Chen, S. Rajagopal, S. Arunapuram. 2001. Solving a Variants, modeling issues and algorithms. 4OR—Quart. practical pickup and delivery problem. Transportation Sci. 37(3) J. Belgian, French, Italian Oper. Res. Soc. 1(2) 89–101. 347–364. Cordeau, J.-F., G. Laporte, J.-Y. Potvin, M. W. P. Savelsbergh. 2007. Yao, Y., W. Zhao, O. Ergun, E. Johnson. 2005. Crew pairing Transportation on demand. C. Barnhart, G. Laporte, eds. Hand- and aircraft routing for on-demand aviation with time win- books in Operations Research and Management Science Transporta- dows. SSRN Working Paper Series, http://ssrn.com/abstract= tion. Elsevier, Amsterdam, 429–466. 822265.