Diplomarbeit Airline Schedule Planning Integrated Flight Schedule Design and Product Line Design Universität Karlsruhe (TH) Fakultät für Informatik Institut für Algorithmen und Kognitive Systeme Fakultät für Wirtschaftswissenschaft Institut für Wirtschaftstheorie und Operations Research Betreuer (IAKS): Prof. Dr. Jacques Calmet Betreuerin (WIOR): Dr. Cornelia Schoen Autor: Andriniaina Rabetanety Matrikel-Nr.: 1193724 Sommersemester 2006 Hiermit bestätige ich, dass ich diese Arbeit alleine und ohne fremde Hilfe erstellt habe. Ich habe keine anderen als die angegebenen Literaturhilfsmittel verwendet. Karlsruhe, den 22. Juni 2006 Andriniaina Rabetanety Contents 1 Introduction 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Outline of the thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 Airline Schedule Design 2.1 The Five steps of Airline Schedule Design . . . . . 2.1.1 Route Development . . . . . . . . . . . . . 2.1.2 Schedule Design . . . . . . . . . . . . . . . 2.1.3 Fleet Assignment . . . . . . . . . . . . . . . 2.1.4 Aircraft Maintenance Routing . . . . . . . . 2.1.5 Crew Paring or Crew Scheduling . . . . . . 2.2 State-of-the-art of Airline Schedule Design . . . . . 2.2.1 Incremental Airline Schedule Design . . . . 2.2.2 Integrated models . . . . . . . . . . . . . . 2.2.3 Pricing problem in Airline Schedule Design 2.2.4 Solution methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 5 6 6 7 7 8 8 9 3 Product Line Design 3.1 Conjoint analysis . . . . . . . . . . 3.2 State-of-the-art of conjoint analysis 3.3 Preference model . . . . . . . . . . 3.4 Choice rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 12 12 13 . . . . . . . . . . . . . . 14 14 15 15 16 16 18 18 19 20 22 23 24 24 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Integrated model for airline schedule generation and product line design 4.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Mandatory and Optional flight legs . . . . . . . . . . . . . . . . . 4.1.2 Airline Passenger Demand . . . . . . . . . . . . . . . . . . . . . . 4.1.3 Airline Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.4 Fleet Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.5 Competitive flights . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Interaction between passenger demand and airline supply . . . . . . . . 4.2.1 Passenger Mix Model . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Conjoint analysis at the itinerary attribute level . . . . . . . . . 4.2.3 Conjoint analysis at the itinerary level . . . . . . . . . . . . . . . 4.3 Objective Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Formulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Formulation with utility at itinerary attribute level . . . . . . . . 4.4.2 Formulation with utility at the itinerary level . . . . . . . . . . . 4.4.3 Formulation with utility at the itinerary level without demand segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii . 26 5 Solution Approaches 5.1 Problem class . . . . . . . . . . . . 5.2 Branch-and-Bound . . . . . . . . . 5.3 Sequential Quadratic Programming 5.4 Incremental airline schedule model . . . . . . . . . . . . methods . . . . . . 6 Implementation 6.1 Framework . . . . . . . . . . . . . . . . . . . 6.2 Numerical Algorithms Group library (eu04cc) 6.3 Branch-and-Bound algorithm . . . . . . . . . 6.3.1 Formal description . . . . . . . . . . . 6.3.2 Improving Branch-and-Bound through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 28 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . search strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 29 29 33 33 33 . . . . . . schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 37 41 46 48 . . . . . . . . . . . . . . . . 7 Computational Results 7.1 Problem with 1 OD-Pair . . . . . . . . . . . . . . . . 7.2 Influence of the consumer preference on the optimum 7.3 Performance of the first call of the SQP function . . 7.4 Performance of the Branch-And-Bound algorithm . . 7.5 Truncated Branch-And-Bound algorithm . . . . . . . . . . . . . . . . . . . . . . . 8 Conclusion 50 8.1 Summary of contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.2 Future Research Directions . . . . . . . . . . . . . . . . . . . . . . . . . . 51 iii List of Figures 1 2 3 4 5 6 7 8 9 10 11 12 13 Airline Schedule Design subproblems. . . . . . . . . . . . . . Incremental approach with base and master flight list . . . . Time Line Network for an aircraft type . . . . . . . . . . . . Unfeasible schedule based on the Time Line Network figure 3 Feasible schedule based on the Time Line Network figure 3 . Flow Chart for incremental solution. . . . . . . . . . . . . . . Formal description of the basic Branch-And-Bound algorithm Branch-and-Bound with Best first search. . . . . . . . . . . . Combination of Best first and Depth first tree search. . . . . Formal description of the Branch-and-Bound algorithm with search strategies. . . . . . . . . . . . . . . . . . . . . . . . . . Example with 2 OD-Pairs. . . . . . . . . . . . . . . . . . . . . Example with 5 OD-Pairs. . . . . . . . . . . . . . . . . . . . . Time line Network for the example with 5 OD-pairs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . combined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 15 17 17 18 30 33 34 35 . . . . 36 38 43 44 Three itineraries with two attributes . . . . . . . . . . . . . . . . . . . . . Conjoint analysis with two attributes and six level sets . . . . . . . . . . . Examples of itinerary attributes . . . . . . . . . . . . . . . . . . . . . . . . State-of-the-art of conjoint analysis. . . . . . . . . . . . . . . . . . . . . . Numerical values of the parameters for the first example. . . . . . . . . . Initial and final point for the first example . . . . . . . . . . . . . . . . . . Parameters for an airline network with 2 OD-Pairs . . . . . . . . . . . . . Initial and final point for the second example . . . . . . . . . . . . . . . . Influence of the utility to the flight f1 . . . . . . . . . . . . . . . . . . . . Initial point with both flight legs included . . . . . . . . . . . . . . . . . . Other convergence point. . . . . . . . . . . . . . . . . . . . . . . . . . . . Three outcomes of the SQP function for feasible starting points . . . . . . Size of the constraint matrix . . . . . . . . . . . . . . . . . . . . . . . . . Parameters for an example with 5 OD Pairs . . . . . . . . . . . . . . . . . Approximative evaluation of the performance to find the starting point of the Branch-And-Bound. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starting point for the Branch-And-Bound algorithm. . . . . . . . . . . . . Output of the Branch-And-Bound algorithm. . . . . . . . . . . . . . . . . ”Bad” starting point for the Branch-And-Bound algorithm. . . . . . . . . Output of the Branch-And-Bound algorithm with a ”bad” starting point. Performance of the complete algorithm with five OD-Pairs. . . . . . . . . 11 11 12 12 37 38 39 40 40 41 42 42 43 45 List of Tables 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 46 46 47 48 48 49 1 Introduction The growing gap between airport capacity and airline passenger demand has forced airlines to improve their quality of service. At best, an airline would transport its consumers at their desired time and with their desired level of service. Matching customers expectations enable to capture a large flow of airline passengers but does not ensure the maximization of profit. Regarding to the revenue of an airline company, the airline schedule planning represents the most critical service. This task involves a complex and long lasting decision-making process. Basically marketers choose a set of flights and decide which flights they want to serve and how much they will charge the consumers. Furthermore, they have to take into account a large set of constraints of different types, from the airspace and airport congestion (operational constraint) to the crews working conditions (human resource condition). Not only that the overall size of the problem is enormous, but a ”bad” schedule could terribly affect the revenue and the market share of the airline, causing a loss of millions of euros. Because of the complexity of the problem, the pressure that the planners are undertaken, and the turnover of the airline at stake, the airline industry has been a great concern of the operations research community for the past 30 years. 1.1 Motivation Models of airline schedule design focus nowadays on integrating consecutive steps involved in airline schedule design, that will be presented in section 2.1. And most of them care less of how airline passenger choice might evolve if price of one flight is raised. How many of these passengers will decide to choose another flight? Which other flight will they choose? Will the profit be reduced? In this diploma thesis, we propose a model that answers questions related to the passenger choice, with the maximization of airline revenue as objective function. Unlike previous schedule design efforts, we concentrate on the pricing problem (Product Line Design), namely how to adjust fares to meet the maximum profit, associated with an integrated schedule and fleeting assignment problem (Airline Schedule Design). By this mean, our model can control the capture of airline passenger traffic by adjusting prices of flights. We have based our approach on the integrated model of Lohatepannont M. and Barnhart C. [4] for the airline schedule design and discrete choice models described by Gaul W., Aust E., Baier D. [9] for the preference measurement. 1.2 Outline of the thesis As mentioned earlier, our work is built on two research fields: Airline Schedule Design and Product Line Design. That is the reason why we dedicate two sections of our diploma thesis, section 2 and section 3, to present separately challenges, literature reviews and state-of-the-art in each field. These sections provide a general understanding of fundamental notions, such as the schedule generation and the fleeting assignment model or 2 conjoint analysis and discrete LOGIT model, that will be used throughout this thesis. In section 4, we present our approach of the problem and the assumptions that we consider for ease’s reason. As for the passenger choice measurement, we differentiate between two approaches: one at itinerary attribute level and the other one at the itinerary level. This section ends up with different formulations of our model and the explanations of the operational constraints. In section 5, we describe common approaches to solve this problem, given the class that this problem belongs to (Mixed Integer Nonlinear Problem): Branch-and-Bound and Sequential Quadratic Programming (SQP) methods. The section 6 deals with our implementation of a solver for this model that realizes a Branch-and-Bound algorithm with a Depth and Best First search strategy, which solves a Sequential Quadratic Programming (SQP) problem at each node. We discuss the programming package used to realize the SQP function and a formal description of the Branch-And-Bound algorithm. In section 7, we discuss the performance of our implementation for a set of examples, in order to estimate whether the optimum of the objective function is found or not and with which percentage the optimum is met. We analyse the influence of the utility and the choice of the initial schedule on the optimal schedule. Finally computational results for bigger problems are compared to estimate the efficiency of our Branch-And-Bound algorithm. Because the problem size grows exponentially, we can not run the Branchand-Bound algorithm until the end. We rather stop the Branch-and-Bound algorithm when a feasible solution close to the optimum is found. In section 7.5, we discuss possible stopping criterium for the truncated Branch-and-Bound. 2 Airline Schedule Design In this section, we introduce first the components of the airline schedule generation problem and the related mathematical models, then the state-of-the-art of Airline Schedule Design by reviewing different integrated models. Here, we give notions that are essential to understand the formulation of our problem. We also position our work in the current research field. 2.1 The Five steps of Airline Schedule Design The airline schedule generation problem takes the airline passenger demand, airport and aircraft characteristics, maintenance and personal requirements as incomes. The outcome is a selection of flight legs (Origin-Destination pair, aircraft’s type,arrival/departure time) that maximizes airline profit subject to resource constraints (aircraft and airport capacity, maximal working hour, minimal ground time,...). A flight leg is defined with three attributes: an Origin-Destination pair (an OD pair is a couple of airports), an aircraft’s type and an arrival/departure time. Ideally, this large scale problem should be solved all at once. However, due to the enormous amount of parameters and decision variables, it has been divided into five more manageable and sequentially computed 3 Figure 1: Airline Schedule Design subproblems. subproblems: Route development, Schedule Design, Fleet Assignment, Aircraft Maintenance Routing and Crew Scheduling. Each subproblem happens at different point in time of the airline schedule design process. Stages are operated in the order, displayed in the figure 1. Each step has particular constraints and purposes, that are the subject of the following subsections. 2.1.1 Route Development In this stage, planners should decide upon the sets of origin-destination pairs they want to offer. This stage happens 12 months before operation of the airline schedule. In this thesis, we consider that the route development has already been done. 2.1.2 Schedule Design Decision makers have to determine routes or itineraries for the aircrafts, such that costs are minimized. To choose the set of itineraries is the most determinant part of the process because all the other phases take the generated schedule as input. Schedule can be created for one day and repeated every day. The schedule design involves the two following phases: (1) Frequency Planning. Planners choose the frequency associated to each flight. (2) Timetable Development or route selection. Planners decide when each flight 4 will be offered and included in the schedule. The result of the timetable development is a list of flight legs, called base schedule. In this thesis, we focus on the route selection. Since we limit our model to a short period of time, we do not consider the frequency of a flight. However, the frequency planning stage can be operated with the outcome of our model. 2.1.3 Fleet Assignment Once the schedule is determined, each flight must be assigned to a fleet type so as to minimize assignment cost of flight legs to aircraft types subject to the three following constraints: (1) Assignment constraints. Each flight must be assigned to one fleet. (2) Flow balance or Flow conservation. Considering an airport at a time t, the combined number of aircrafts that land at the airport and aircrafts on the ground immediately before t, compensates the combined number of aircrafts that take off and aircrafts on the ground immediately after t. (3) Plane count. Planners can not use more than the available number of aircrafts. Aircrafts can be on the ground or in the air. The fleet assignment model takes as input the available types of aircraft and a given schedule with fixed departure times. The fleet assignment problem requires a network structure as input to represent the flight legs. In a time-space flight network, a node is an airport, including every activities in this airport (taking off, landing) at a time t. An aircraft movement in space and time is associated with an arc. The network has flight arcs, between departure and arrival airport of the same flight, ground arcs, between two activities in the same airport, and wraparound arcs, between the first and the last node of the time horizon. The related decision variables are the binary fleet assignment variable θf k and the ground plane count variable zk,a,t . The fleet assignment problem is given by: X min( cf k θf k ) (1) k∈K X θf k = 1 ∀f ∈ Ω (2) k∈K X θf k + zk,a,t+ − X θf k − zk,a,t− = 0 ∀{k, a, t} ∈ P (3) f ∈O(k,a,t) f ∈I(k,a,t) X a∈A zk,a,t + X θf k ≤ Nk ∀k ∈ K (4) f ∈Ωk θf k binary and zk,a,t ≥ 0 5 (5) where A: P : Set of airports, indexed by a. Set of nodes of the underlying network. A node is composed by a time, an airport and an aircraft, indexed by {k,a,t}. Ω: Set of flight legs in the flight schedule, indexed by f. K: Set of aircrafts, indexed by k. Nk : Number of aircrafts in fleet-type k. Ωk : Set of flight legs that pass the count time when flown by fleet-type k. I(k, a, t) : Set of inbound flight legs to node {k,a,t}. O(k, a, t) : Set of outbound flight legs to node {k,a,t}. cf k : Cost for the assignment of the aircraft k to the flight leg f. δf m : = 1, when the itinerary m includes the flight leg f, = 0 otherwise. θf k : = 1, when the flight leg f is flown with the aircraft k, = 0 otherwise. The number of aircraft k on the ground at the airport a immediately after time t. zk,a,t+ : zk,a,t− : The number of aircraft k on the ground at the airport a immediately before time t. Constraints (2)-(4) express the assignment constraint, the flow conservation and the plane count constraint, described at the beginning of the section. 2.1.4 Aircraft Maintenance Routing The purpose is to determine feasible aircraft routes, sequences of flight legs flown by an aircraft type, under maintenance requirements. A routing is a set of aircraft routes. Rotations are routings which begin and end at the same airport. Routings and rotations partition flight legs in the schedule. The aircraft maintenance routing problem takes a fleeted schedule and the available number of aircrafts as input. Maintenance requirements are modeled approximatively by aircraft staying overnight at an airport. Each aircraft type needs specific technical checks and a mandatory ground-time. This step ensures that all the flights in the schedule respect maintenance conditions. The aircraft maintenance routing problem has been cast as a network circulation problem with side constraints. 2.1.5 Crew Paring or Crew Scheduling In the crew scheduling problem, both cabin and cockpit crew are assigned to a flight leg, minimizing the crews costs. An airline crew can only be assigned to an aircraft it is qualified to run. Work schedules must satisfy maximum time-away-from-base (period that flight crews are away from their home station) restriction, and airline crews are not allowed to stay on duty longer than a maximum flying time requirement. The crew paring problem are usually formulated as a set-partitioning problems where each row of the constraint matrix corresponds to a scheduled flight and each column corresponds to a legal crew pairing. 6 2.2 State-of-the-art of Airline Schedule Design The decomposition into sequential stages has simplified the model but it has also decreased the accuracy to describe the reality of the problem. Therefore, researchers attempt to integrate two or more consecutive stages of airline schedule design. Another attempt to reduce the size of the problem is the incremental approach, where a schedule is iteratively constructed. In the next section, we review the incremental approach, integrated models and solution methodologies. 2.2.1 Incremental Airline Schedule Design Actually, planners usually do not build the schedule from scratch but start with an existing schedule. The existing schedule could be the schedule from the last season or last year. Incremental models improve a given schedule by applying modifications to the flight legs. These changes can be: (1) re-scheduling within small time windows, (2) adding subsets of flights to or deleting them from the schedule. Therefore, there are four different approaches to the problem, namely, (1) allowing only flight re-timing, (2) allowing only flight additions and/or deletions, (3) allowing both flight re-timings and flight additions and/or deletions sequentially (4) allowing both flight re-timings and flight additions and/or deletions simultaneously. The process iterates until all combinations of flights have been explored or the optimum objective function has been found. Lohatepanont M., Barnhart C. [4] develop an incremental model allowing only additions and deletions that solves, at each iteration, an integrated model for schedule design and fleet assignment (ISD-FAM) and a passenger mix model (PMM).(for a detailed description1 see the paper of Barnhart C., Cohn A. [1]). The ISD-FAM gives a feasible good schedule to the PMM, that finds the most profitable flow of passengers over this schedule. The PMM allows to capture the best amount of passengers on each flight leg. The objective function of the passenger mix model is to maximize revenues from the flow of passengers on itineraries. The formulation of the passenger mix problem will be shown in the section 5.3. Lohatepanont M., Barnhart C. underline the decisive interaction between passenger demand and airline supply. The profitability of one itinerary 1 Barnhart C., Cohn A. detail impact, challenges and modelling approach of each steps involved in the schedule planning. Thus they present examples of integrated models and solution approaches such as Branch-and-Price algorithm. 7 is indeed correlated with all other itineraries in the schedule, since passengers can be rejected from one flight and take another flight instead. This diploma thesis refers to their incremental approach. However, we integrate a customer choice model to cast the relationship between demand and supply. 2.2.2 Integrated models Researchers have built integrated models to overcome the simplications introduced by the decomposition in steps. We review the state-of-the-art of integrated models but we restrict our model to the integration of the two first stages: schedule design and fleet assignment. - Schedule Design and Fleet Assignment. Lohatepanont M., Barnhart C. present two integrated models that optimize the selection of legs and the assignment of aircraft types observing the demand and supply interaction: the integrated schedule design and fleet assignment model (ISD-FAM) and the approximate schedule design and fleet assignment model (ASD-FAM). The ASD-FAM holds a constant market share model that uses the recapture mechanism to adjust demand approximately. The ISD-FAM holds a variable market share model that uses demand correction term to adjust demand explicitly. - Fleet Assignment and Aircraft Routing. Barnhart C. et al. [8] develop an integrated model for fleet assignment model and the aircraft routing problem by using strings of flights. Their model contains one core aircraft routing model for each aircraft type under the constraint that each flight leg is assigned with only one aircraft type. Their integrated model achieves a near-optimal fleeting and routing solution. - Aircraft Routing and Crew Scheduling. Klabjan D. [9] proposes to solve the crew pairing problem before the aircraft routing problem. To combine both problems, he adds the so called plane count constraint to the crew pairing problem. These constraint guarantees that forced turns (all pairings that imply a plane turn) can be extended into a feasible rotation if and only if the number of planes on the ground does not exceed the plane count imposed by the fleet assignment model solution. 2.2.3 Pricing problem in Airline Schedule Design Our model casts the interaction between the consumer choice of itineraries and the optimization of the airline’s profit. To date, there is no model of airline schedule design that evaluates the passenger preference with conjoint analysis. But other methods have been used to describe how an airline charges its consumer. Teodorovic D., Kremar-Nozic E. [3] use, for instance, the relationship between market share and flight frequency to define the total expected number of passengers on a route 8 as a function of the market share. The decision support system TALLOC determine the passenger behaviour as a pricetime ”behavioural desirability” function, which is calculated for each flight service, as described by Grosche T., Heinzl A. [10]. Soumis, Perland and Rousseau [19] consider the problem of selecting passengers that will fly on their desired itinerary with the objective of minimizing spill costs. No recaptures are considered. Flight schedules are optimized by adding and deleting flights. When flights are added or dropped, their heuristic recalculates demand only in markets with significant amount of traffic. Then the passenger selection problem is solved. Their heuristic go through all possible combinations of additions and deletions. By comparison, our model recalculates demands at each deletion or additions of optional flights in every market. Dobson G., Lederer P. [2] propose a model for the competitive choice of flight schedules and route prices in a hub-and-spoke system in order to maximize airline profit. Passengers have preferences that might vary between itineraries. The demand forecasting model is a linear function of the most desired departure time, the duration of the flight and the price. They consider only one class of service, one size of aircraft, and through traffic via hubs. Demand is therefore a weighted logit function. The utility function is supposed to be constant during each slot (the day is divided into 1-hour-slots). The more the real travel time deviates from the ideal one, the more the utility decreases. They develop a two-stage heuristic: First, all candidate flights are assigned to two-hours intervals in the schedule, then non-profitable ones are eliminated. The contributions are measured as the difference between the schedule with all candidate flights and the one without the considered one. In the second stage, schedule feasibility is verified by solving the fleet assignment problem. Instead of a continuous utility function, we have chosen a discrete path-worth utility where each itinerary will be described by a set of attributes. Methods of conjoint analysis are used to get such preference measurements. 2.2.4 Solution methodologies Airline schedule models are often enormous in terms of number of variables and usually exhibit binary and/or integer variables. They require solution methodologies that decompose and reduce the size of the problem. We give an overview of the most common techniques for large scale problems. Large scale linear problems are often solved by a delayed column generation. In this algorithm, only a subset of columns of the constraint matrix, called the restricted master problem, is solved. Then the column generation subproblem is iteratively solved until we cannot find a column with negative reduced cost, that means an optimal dual function to the original function was found. Erdmann A., Nolte A., Noltemeier A., Schrader R. [6] solve the path-based mixed integer programming formulation with column generation. They cast the aircraft rotation subproblem as the problem of finding shortest paths in 9 a constraint network. The purpose is to find the path that generates the cheapest cost. The constrained shortest path algorithm use the same framework as the shortest path algorithm. Lohatepanont M., Barnhart C. [4] construct first a restricted master problem (RMP) of their integrated model and then solve the LP relaxation of the RMP using row and column generation. Branch-and-Cut and Branch-and-Price algorithms use LP relaxations with variable and constraint generation at the subproblems. Constraint generation strengthens the LP relaxation at the subproblems, while variable generation extends their feasible domains. Subproblems are parallely processed. Lagragian relaxation is a common technique for solving large-scale integer problem. Difficult constraints are moved to the objective function with linear penalty. The new problem is then solved by a Lagragian subgradient algorithm. By Benders decomposition, the algorithm solves a mixed integer program with a single continuous variable at every iteration . Branch-and-bound algorithms are developed for problems, in which the decision variables take discrete values from a specified set. A Branch-and-Bound algorithm covers the solution space by dividing the solution space into subregions (branching). For each subregion (node), we calculate an upper bound and a lower bound. The approach bases on the assumption that (for a minimization problem) if the lower bound for a subregion A is greater than the upper bound for another subregion B, then A may be safely discarded from the search. The algorithm is detailed in the section 5.2. The branch-and-bound approach is not a heuristic, but it is an exact procedure. 3 Product Line Design When firms want to introduce products or line of products into a new market with many customer segments, they face the known marketing problem of product line design and pricing. Product line design models take the measurement of customer preference as input. From a sample of consumer data, a global market can thereby be modelled. Product line design models help marketing managers to predict the profitability of a new product in a market. Models adjust prices to maximize either the total consumer welfare or the company profit. Due to the complexity of the problem, most of researchers have focused on the case of single product. Our model integrates a product line design model with multiple products, where products are itineraries. The purpose is to evaluate itinerary prices regarding passenger preferences. Utility measurement is done via conjoint analysis before the schedule generation stage. In the next section, we introduce the stages of a conjoint measurement. 3.1 Conjoint analysis We introduce the idea of conjoint analysis with a basic example, where products are itineraries. We consider three itineraries with prices and durations of the trip as attributes, ranked in table 1. This table does not bring information about the importance of price compared to the duration. The idea of the conjoint analysis is to evaluate both 10 Rank 1 2 3 Price (euros) 100 120 140 Duration (minutes) 60 70 75 Table 1: Three itineraries with two attributes Price/Duration 100 120 140 60 1 4 7 70 2 5 8 75 3 6 9 Table 2: Conjoint analysis with two attributes and six level sets features conjointly. The ranking of the nine possible combinations of levels for a respondent is displayed in table 2. We can observe that the respondent tends to trade-off duration for price. From this data, we can deduce the preference for each level set. In conjoint analysis, products are described as a set of attributes or features, of which level sets can vary. Respondents rank in terms of preference each combination of attribute level sets, called product profiles. The conjoint analysis allows to determine the relative importance of each product feature by measuring the consumer preference for each product profile. Running a conjoint analysis involves the following steps: - Choose a preference model for measuring the preference function. - Determine attributes for example price, number of stopovers, duration or delay of the trip. - Choose level sets for each attribute. - Define products as a combination of attribute levels. - Choose the form in which the combinations will be presented to the respondents. - Select the technique to be used to analyse the collected data. - Select the measurement scale. - Choose an estimation method. In our model, each itinerary is described by a set of attributes. An itinerary is a trip characterized by an origin-destination pair (a departure airport and an arrival airport). It can contain stopovers and can be flown by different aircrafts. The discrete criteria can be product-oriented as well as schedule-oriented as shown in table 3: 11 Product-oriented criteria Price of the flight Reservation/Flight class Sales conditions Quality of Service Schedule-oriented criteria Departure/Arrival airport Duration or delay of the trip Number of stopovers Frequency of the flight Table 3: Examples of itinerary attributes Stage Preference Model Measurement Scale Estimation Procedure Choice Rules Variants of Conjoint Analysis Models Vector Model; Mixed Model; Ideal Point Model; Rating Scale; Paired Comparison; Rank order; Choice-based; Metric and Non-Metric Regression; MONANOVA; PREFMAP;LINMAP; Multiple Regression; LOGIT; PROBIT; Hybrid; Maximum Utility (First Choice); Average Choice; LOGIT; PROBIT; Adaptive CA; bridging CA; Limit CA; Table 4: State-of-the-art of conjoint analysis. 3.2 State-of-the-art of conjoint analysis The table 4 gives the list of common models involved in each step of conjoint analysis. In the next section, we present the three preference models and choice rules for multipleproduct. 3.3 Preference model The first step of conjoint analysis is to define a mathematical model for the preference function. We define N the set of attributes, xjn the j-th level of the n-th attribute, wn the weight for the n-th attribute and uj the preference for the j-th level. The most common models are listed below: - The Ideal Point model establishes an inverse relationship between preferences and the weighted squared distance between the level of the attribute and the ideal point In for this attribute. The preference is given by: X u2j = wn (xjn − In )2 (6) n∈N - The Path-Worth model applies a piecewise linear curve fn to each level of the n-th attribute. The preference is given by: X fn (xjn ) (7) uj = n∈N 12 - The Vector model is represented by the weighted sum of all levels, where each level of attribute is associated with an individual weight. The preference is given by: X uj = wn xjn (8) n∈N 3.4 Choice rules Choice rules allow to estimate the probability of choice from utility data. The three common models are described below: - First Choice Rule Consumers select the product that maximizes their utility. The probability takes only the value 1 or 0, as shown in equation (9). Dobson G., Kalish S.[12] use the first choice rule in their pricing subproblem to ensure that customers select only the product with the highest utility. 1 when uid = maxi′ ∈I (ui′ d ) pid = (9) 0 otherwise where pid : The probability that a customer d chooses the product i. uid : The utility of the d-th customer for the product i. I: The set of all the products, indexed with i. - Bradley-Terry-Luce (BTL) or share of utility rule The probability to select a product corresponds to the relative utility of the product, as shown in equation (10). uid (10) pid = X ui′ d i′ ∈I where P i′ ∈I ui′ d > 0, ∀d ∈ D. All preference values must be positive. Gaul W., Aust E., Baier D. [13] propose a new approach of the model with a probabilistic consumer behaviour model based on the BTL model, called PROLIN. They extend the formulation of the BTL model by adding a market parameter α that allows a calibration of the model to the market, as shown in equation (11). uα pid = X id uαi′ d i′ ∈I where α : The market parameter. 13 (11) - Multinomial Logit (MNL) Rule The LOGIT model uses an assigned choice probability that is proportional to an increasing monotonic function of the alternative’s utility. The probability that a consumer chooses a product is given by dividing the contribution of one product by the contribution of all other products in the same way as the BTL model, as described in equation (12). Negative utilities are possible. exp(uid ) pid = X (12) exp(ui′ d ) i′ ∈I Our integrated model will include a Multinomial Logit model as choice rule. For the First-Choice model, market share is the number of trials with highest utility divided by all the trials. For the BTL and MNL model, market share is the arithmetical mean of individual probabilities. There are, among others, two contributions in the conjoint-based product line design literature: Green, Krieger [14] and Kohli, Sukumar [19]. We base our approach on both approaches. The fundamental difference between both formulations is that decisions are made at different level. Green, Krieger decisions are made at the attribute level and Kohli, Sukumar decisions at the product level. By analogy, we will differentiate two formulations of our model as well: one at the itinerary level (product level) and the other at the attribute level. We discuss the formulation of the passenger preference at the itinerary attribute level in section 4.2.2 and the one at the attribute level in section 4.2.3. 4 Integrated model for airline schedule generation and product line design In this section, we introduce the framework of our work before we formulate our model. We detail the interaction between airline passengers demands and airline supply. Finally we gave three formulations of our model. Notations are given at the end of the thesis. 4.1 Assumptions An airline company seeks to integrate a set of markets, composed by a set of airports. Each OD-pair (couple of source airport and destination airport) defines a market. For example, Paris-Berlin is a market and Berlin-Paris is another market, and both are called opposite markets. Each OD-pair can be flown by a set of itineraries. An itinerary is a sequence of flight legs, that are characterized by an airport-source, an airportdestination, a departure time and an arrival time. Itineraries are products that the airline company wants to offer in a market. For the purpose of conjoint analysis, each product is described by a set of attributes whose level set will be decided by the managers of the marketing’s department. Each flight can be direct (without stops) or with one or more stopovers. Flights with stopovers are called via flights. 14 Figure 2: Incremental approach with base and master flight list . 4.1.1 Mandatory and Optional flight legs Planners want to construct a schedule, which is basically a list of itineraries. In the incremental approach, they build it from a base schedule. The base schedule is modified until the best schedule is found. At each iteration, the model takes as input a master flight list, that is composed by mandatory flight legs and optional flight legs. Mandatory flights have to be included in the final schedule while optional flights do not necessary have to. The modifications are the deletion or addition of flight legs. The output is a list of flight legs that maximizes the airline profit. An iteration of the schedule generation process is modelled in figure 2. The final list of flight legs does not have to be a list of rotations (itineraries that start and end at the same airport). We do not restrict our approach to a daily schedule or a schedule that will be repeated. Our model is designed for an airline company, that desires to optimize a subset of their actual schedule by introducing new flights or deleting non-profitable flights. In this case, itineraries are not rotations. 4.1.2 Airline Passenger Demand Demand for air travel is indeed a derived demand. It is derived from other needs of passengers. People rarely fly from cities to cities for the mere sake of travelling on a plane. Airline passenger demand follows the standard assumptions of a product line design problem, namely, 15 (1) Each market is composed of different customer segments of various size. In our thesis, we similarly talk about passenger segment or passenger d. Each segment d of the demand represents a subset of passengers that follows the same consumer behaviour. An example of segment could be students between 20 and 24 years old. In each customer segment, the unconstrained demand is the maximal number of passengers that the airline can capture. (2) Airline passengers choose the flight, that provides the maximum utility. They can not buy two tickets of one flight. Each passenger preference will be determined during the conjoint analysis stage. When the capacity of the aircraft is too small with regard to demand, passenger requests are rejected and the company loses the opportunity to increase its profit. This phenomenon is referred to as spill. But the company can cope with the spill by offering alternative flights to the original offer, a flight with a stopover instead of a direct flight for example. Our model takes the spill-recapture phenomenon into account by controlling demand/passenger choice among available alternatives indirectly through pricing and fare product selection. 4.1.3 Airline Supply Airlines commonly use a network structure to develop their supply strategy. As exposed in section 2.1.3, the structure underlying our model is a time line or time-space network. The figure 3 displays an example of a time line network for an aircraft type with three airports and four time points. Nodes represent activities of aircraft type, in an airport and at a time t. Arcs represent the movement of aircraft either in the air or on the ground. The network defines the airline company’s market. It describes all crucial information to ensure the feasibility of a schedule: input/output flights at each node, ground arcs, number of flights by OD-pairs and number of aircrafts in the air. 4.1.4 Fleet Assignment The firm owns a finite fleet of different aircrafts or aircraft types. Each aircraft type has special characteristics, such as the number of seats or the minimum ground time. We assume that all aircrafts are available. The airline company can not assign more aircraft capacity to flight legs than the available. Every mandatory flight has to be assigned an aircraft, while some optional flights not. To fulfill operational constraints mentioned in section 2.1.3, the fleet assignment stage takes the time line network as input. Figure 4 displays an unfeasible schedule based on the simple time line network, shown in figure 3. Each colour represents an aircraft. In figure 4, the flow conservation constraint is not fulfilled at the node ”Paris 15 : 30”. The ”red” aircraft disappears after the node ”Paris 15 : 30”. The aircraft has to go either to the node ”Paris 15 : 55” or to ”Boston 15 : 55”. The aircraft either has to 16 Figure 3: Time Line Network for an aircraft type . Figure 4: Unfeasible schedule based on the Time Line Network figure 3 . 17 Figure 5: Feasible schedule based on the Time Line Network figure 3 . stay in the same airport (ground arc) or fly to another airport (normal arc). Figure 5 shows the feasible solution, where the aircraft stays at Paris airport between 15 : 30 and 15 : 55. The assignment cost vary depending on the flight legs flown and the aircraft type used. It represents the main cost in our model. 4.1.5 Competitive flights A consumer can also be attracted by a competitive flight. Our model takes the competition into account. Customers generally choose the best flight among all possible options: flights offered by the same airline company to another booking class non the same flight or to a low cost flights from other airlines. That is the reason why we model choice behaviour that accounts for competitive flight legs. 4.2 Interaction between passenger demand and airline supply As mentioned in the introduction, we base our approach of airline schedule design on the integrated model of Lohatepannont M. and Barnhart C. [4], where the flow of airline passengers is determined by the passenger mix model. Our model adjusts the price of itinerary considering the consumer preference. In the next subsection, we introduce the passenger mix model and compare it to our model. 18 4.2.1 Passenger Mix Model Given a fleeted schedule and the unconstrained itinerary demands, the Passenger Mix Model finds the flow of passengers that maximizes the airlines profit. The formulation is given by: X X M ax (13) f arem xmm′ m∈M m′ ∈M X X m∈M δmf xmm′ ≤ CAPf ∀f ∈ Ω (14) m′ ∈M X xmm′ ≤ Dm bmm′ ′ ∀m ∈ M (15) m ∈M xmm′ ≥ 0 ∀m, m′ ∈ M (16) where variables are: xmm′ : the number of passengers who fly on itinerary m that desire to travel on itinerary m′ . f arem : the average fare of itinerary m. CAPf : the capacity of flight f . the recovery rate of passengers desiring itinerary m who are offered itinerary m′ . bmm′ : δmf : equals 1 if flight f covers itinerary m and 0 otherwise. Dm : unconstrained demand on itinerary m. Constraints (14) are the capacity constraints that ensure that the number of passengers on a flight does not exceed the number of seats available. Constraints (15) are the demand constraints ensuring that the total number of passengers that is accommodated or spilled does not exceed the corresponding unconstrained demand. Our approach is to express xmm′ with consumer preferences and to consider a pricing problem. The number of passengers who fly on one itinerary is now the result of the product between the probability that passengers select this itinerary and the unconstrained demand for the corresponding itinerary. Hence, the demand constraints are not needed anymore because the fraction of passengers on a flight is now always inferior to the unconstrained demand . The probability that passengers choose an itinerary is a function influenced by the price. The price is modelled as a continuous decision variable. With our notations and the assumption of a demand segmentation, we formulate the model as the adjustment of prices that maximizes the profit: X X M ax f arem pdm ωd (17) m∈M d∈demm X X δf m pdm ωd ≤ CAPf ∀f ∈ Ω (18) m∈M d∈demm 0 ≤ pdm ≤ 1 19 (19) f arem ≥ 0 (20) The probability pdm that a passenger decides to fly the itinerary m as a function of price and other fare product attributes will be the subject of sections 4.2.2 and 4.2.3. We have modelled the preference measurement with the methods of conjoint analysis. We observed two approaches, by comparison to the formulations of Green, Krieger and the one of Kohli, Sukumar [14]: (1) Conjoint analysis with decisions at the itinerary attribute level. (2) Conjoint analysis with decisions at itinerary level. We discuss advantages and disadvantages of each approach in the next two sections. 4.2.2 Conjoint analysis at the itinerary attribute level Each itinerary is described by a finite set of attributes. Prior to the schedule generation stage, the marketing’s department conducts the analysis that gives the utility of the passenger d for the assignment of j-th level to the n-th attribute. The probability that a passenger selects an itinerary for a BTL model is given by equation (21) and for a MNL model by equation (22): pdm = N1 X Jn X xjnmudjn n=1 j=1 |M |+|M c | N1 Jn X XX ( m1 =1 xjnm1 udjn ) n=1 j=1 exp( pdm = (21) N1 X Jn X xjnmudjn ) m=1 j=1 |M |+|M c | X m1 =1 (exp( N1 X Jn X (22) xjnm1 udjn )) n=1 j=1 where: N1 : Set of attributes of an itinerary, indexed by n. Jn : Set of level sets for the attribute n, indexed by j. xjnm : = 1, when the n-th attribute is assigned to the j-th level in the itinerary m, = 0 otherwise. These are binary constants for m ∈ M c (competitive itineraries) and binary decision variables for m ∈ M . udjn : Utility of the passenger d for the assignment of j-th level set to the n-th attribute. Utilities can be negative in a MNL model. The choice of a consumer for an itinerary is considered only if the itinerary is included in the master flight list. Hence, the probability pdm should be equal to zero when the 20 itinerary is not served (qm = 0). In equations (21) and (22), we should differentiate the price from the other attributes, because decisions on prices yield revenue. In our model, we consider price as first attribute, indexed with 0 (n = 0). Marketers select the price of an itinerary among a set of possible prices. The choice of charging a passenger with a price level for an itinerary influences the passenger preference for this itinerary. The assignment of the j-th price level to an itinerary has an utility udj0 , given by conjoint analysis. The choice of itinerary prices directly intervenes in the objective function. The price of an itinerary m is shown in equation (23). J0 X xj0m f arejm ∀m ∈ M (23) j=1 where J0 : Set of possible prices, indexed by l. xj0m : =1, when a passenger is charged with the j-th possible price for itinerary m. f arejm : j-th level of the price for the itinerary m. With the contribution of the price, the probability that a consumer selects an itinerary becomes (24) for the BTL model and (25) for the MNL model. pdm = N X Jn X xjnm udjn qm n=0 j=1 |M | N Jn X XX |M c | xjnm1 udjn qm1 + m1 =1 n=0 j=1 (24) x′jnm1 udjn m1 =|M |+1 n=0 j=1 exp( pdm = N X Jn X X N X Jn X xjnm udjn )qm n=0 j=1 |M | X m1 =1 exp( N X Jn X |M c | xjnm1 udjn )qm1 + n=0 j=1 X m1 =|M |+1 exp( N X Jn X (25) x′jnm1 udjn ) n=0 j=1 where N: xjnm1 x′jnm1 qm : Set of attributes of an itinerary, with the price as first attribute and the other attributes are service-oriented. are decision variables. are binary constant. =1 when itinerary m is included in the schedule, = 0 otherwise. In product line design, decision makers must assign exactly one level to each attribute if the product is offered. Furthermore, each product should have all attributes assigned, in order to be introduced in a market. As itineraries are products in our model, every 21 itinerary included in the schedule has to fulfill both constraints. Condition (26) ensures that each attribute of an itinerary/fare product is assigned at most one attribute level once. Jn X xjnm ≤ qm ∀n ∈ N, ∀m ∈ M (26) j=1 To be included in the master flight schedule, each itinerary should have all attributes assigned. Equation (27) guarantees this requirement. Jn X Jn+1 xjnm = j=1 X xj(n+1)m ∀n ∈ N, ∀m ∈ M (27) j=1 We cast both requirements in equation (28). Jn X xjnm = qm ∀n ∈ N, ∀m ∈ M (28) j=1 This approach considers the assignment of a level to an attribute (xjnm ) as decision variables, with price as first attribute and other schedule-oriented attributes. The first disadvantage of this approach is the large number of decision variables. The measurement of the utility for each attribute and the determination of decision variables could be computationally challenging. If there are 10 passenger segments, 10 attributes with 10 levels, then there are 10.1010 utilities to measure and |M | ∗ 10 ∗ 10 decision variables per itinerary are to be determined. Furthermore the relationship between the choice of itinerary prices and the passenger behaviour is not accurate because of the restriction of the prices to a finite set of possible values. That is why we propose an approach at a higher level where prices are continuous decision variables. 4.2.3 Conjoint analysis at the itinerary level At the itinerary level, utilities are associated with itineraries, instead of itinerary attributes. Utility as monetary value represents the price that a customer is willing to pay for an itinerary. We assume here that these values are not influenced by the price but are indeed schedule-oriented or related to the quality of service. We suppose that utilities have been determined by conjoint analysis before schedule’s operation. Decision makers choose price and select which itineraries as combination of non-price attribute levels to offer. Itineraries as combinations of non-price attributes are defined exogenously prior to the decision making process considered here and can be regarded as input to the optimization model. Prices are continuous variables in this approach. The expression of the probability that a customer chooses an itinerary is given by (29) for a BTL model and (30) for a MNL model: pdm = max(Udm − f arem , 0)qm |M | X max(Udm′ − f arem′ , 0)qm′ + Ud0 m′ =1 22 (29) e(Udm −f arem ) qm pdm = |M | X (30) e(Udm′ −f arem′ ) qm′ + Ud0 m′ =1 where Ud0 : Given utility of passenger segment d for competitive itineraries. f arem : Price of the itinerary m. Passengers preferences are driven by the fare of itineraries. Since prices are continuous variables, the expression Udm − f arem can take negative values when the price charged by the airline company exceeds the price expected by the consumer. But a BTL model is defined for positive utilities only. That is why the probability that a customer selects an itinerary is equal to zero, when the price is bigger than the utility (f arem ≫ Udm ) in the BTL model (max(Udm − f arem , 0) in equation 29). As far as the MNL model is concerned, the passenger preference is close to zero, when the price is bigger than the utility. The influence of the price on the customer’s behaviour is more accurate at itinerary level than at itinerary attribute level. We choose to integrate the MNL model as choice rule. We suggested that this method considers the passenger choice model from a higher level. The relationship between the utility at itinerary attribute level and at itinerary level is given by: N X Jn X xjnm udjn (31) Udm = n=0 j=1 |M c | Ud0 = X Jn N X X x′jnm1 udjn (32) m1 =|M |+1 n=0 j=1 Thus (24) can be deduced from (29). We decided to implement the product line design model at the itinerary level, because prices are represented as continuous variables and passenger behaviours are more sensitive to prices in this approach. 4.3 Objective Function Our problem maximizes the airline profit considering assignment costs and passenger costs. The objective function is composed by the following components: - The profit gained from the price of tickets. The total profit R is given by (33) for discrete prices and (34) for continuous prices: R= X J0 X X xj0m f arejm pdm ωd (33) m∈M d∈demm j=1 R= X X m∈M d∈demm 23 f arem pdm ωd (34) - The total cost for assigning fleets to flight legs: XX C1 = cf k θf k (35) f ∈Ω k∈K - The total cost for carrying passengers: X X C2 = cm pdm ωd (36) m∈M d∈demm - Maximizing the profit and minimizing the costs the objective function becomes: M ax(R − C1 − C2 ) (37) 4.4 Formulations We give in this section three formulations of our integrated model. The first two formulations differentiate the two approaches of the consumer preference. The third formulation is the special case where we do not consider the demand segmentation. This last simplification was decided for implementation’s purpose. 4.4.1 Formulation with utility at itinerary attribute level max( X X J0 XX X xj0m f arejm − cm )pdm ωd − ( cf k θf k ) m∈M d∈demm j=1 (38) f ∈Ω k∈K subject to X X m∈M d∈demm ∀f ∈ Ω capk θf k N X Jn X xjnm udjn )qm n=0 j=1 |M | X exp( m1 =1 X Jn N X X |M c | xjnm1 udjn )qm1 + n=0 j=1 X exp( m1 =|M |+1 X θf k + zk,a,t− − f ∈I(k,a,t) (39) k∈K exp( pdm = X δf m pdm ωd ≤ Jn N X X (40) x′jnm1 udjn ) n=0 j=1 θf k − zk,a,t+ = 0 ∀{k, a, t} ∈ P (41) f ∈O(k,a,t) X zk,a,t + θf k ≤ Nk ∀k ∈ K (42) f ∈Ωk a∈A qm − X X θf k ≤ 0 ∀f ∈ Ωm , ∀m ∈ M k∈K 24 (43) qm − X X θ f k ≥ 1 − Nm ∀m ∈ M O (44) f ∈Ωm k∈K X θf k ≤ 1 ∀f ∈ ΩO (45) X θf k = 1 ∀f ∈ ΩM (46) k∈K k∈K Jn X xjnm = qm ∀n ∈ N, ∀m ∈ M (47) j=1 zk,a,t ≥ 0 θf k xjnm ∀{k, a, t} ∈ P ∀f ∈ Ω, ∀k ∈ K binary binary qm (48) (49) ∀j ∈ Jn , ∀n ∈ N, ∀m ∈ M ∀m ∈ M binary (50) (51) Constraints (39) ensure that the available capacity of the aircraft limits the constraining demand. Constraints (40) are related to the preference measurement calculated in (24) with a MNL model. Constraints (41) and (42) are fleet assignment constraints. The flow conservation constraint for aircraft routings is given by (41). The optimal solution fulfills the classical plane count constraint given by (42). The sum of aircrafts of one type in the air and on the ground are limited by the fleet size of this aircraft type at each time. Constraints (43) and (44) are itinerary status constraints. Constraints (43) ensure that aircraft capacity is assigned to all flights included in the schedule. Constraint (44) ensures that an itinerary m is included if all of its flight legs are flown. Constraints (45) and (46) are cover constraints. They ensure that at most one aircraft is assigned to a optional/mandatory flight. Constraints (47) are related to product line design problem and pricing. They guarantee that if an itinerary is included in the schedule, all attributes of this itinerary are assigned to a level. 4.4.2 Formulation with utility at the itinerary level max( X X (f arem − cm )pdm ωd − XX cf k θf k ) (52) f ∈Ω k∈K m∈M d∈demm subject to X X δf m pdm ωd ≤ m∈M d∈demm pdm = X e(Udm −f arem ) qm |M | X capk θf k ∀f ∈ Ω (53) k∈K ∀d ∈ demm , ∀m ∈ M e(Udm′ −f arem′ ) qm′ + Ud0 m′ =1 25 (54) X X θf k + zk,a,t− − θf k − zk,a,t+ = 0 ∀{k, a, t} ∈ P (55) f ∈O(k,a,t) f ∈I(k,a,t) X X zk,a,t + θf k ≤ Nk ∀k ∈ K (56) f ∈Ωk a∈A qm − X θf k ≤ 0 ∀f ∈ Ωm , ∀m ∈ M (57) k∈K X X qm − ∀m ∈ M O θ f k ≥ 1 − Nm (58) f ∈Ωm k∈K f arem ≤ X ∀m ∈ M f aref (59) f ∈Ωm X θf k = 1 ∀f ∈ ΩM (60) X θf k ≤ 1 ∀f ∈ ΩO (61) k∈K k∈K zk,a,t ∈ N ∀{k, a, t} ∈ P (62) ∀m ∈ M (63) f arem ≥ 0 θf k binary qm ∀f ∈ Ω, ∀k ∈ K (64) ∀m ∈ M (65) binary Schedule generation and fleet assignment constraints are the same as the first formulation. The preference in (54) is modelled at the itinerary level with a MNL model. Constraints (59) guarantee that a via flight is not more expensive than the sum of its flight legs. We do not use separate variables for the price of an itinerary (f arem ) and the price of a flight leg (f aref ) considering that flight legs are fleeted itineraries reduced to a flight arc in the network. 4.4.3 Formulation with utility at the itinerary level without demand segmentation max( X (f arem − cm )pm ωm − XX cf k θf k ) (66) f ∈Ω k∈K m∈M subject to X δf m pm ωm ≤ m∈M pm = X capk θf k ∀f ∈ Ω (67) k∈K e(Um −f arem ) q m |M | X e(Um′ −f arem′ ) qm′ + U0 m′ =1 26 ∀m ∈ M (68) X X θf k + zk,a,t− − θf k − zk,a,t+ = 0 ∀{k, a, t} ∈ P (69) f ∈O(k,a,t) f ∈I(k,a,t) X X zk,a,t + θf k ≤ Nk ∀k ∈ K (70) f ∈Ωk a∈A qm − X θf k ≤ 0 ∀f ∈ Ωm , ∀m ∈ M (71) k∈K qm − X X θ f k ≥ 1 − Nm ∀m ∈ M O (72) f ∈Ωm k∈K f arem ≤ X f aref ∀m ∈ M (73) f ∈Ωm X θf k = 1 ∀f ∈ ΩM (74) X θf k ≤ 1 ∀f ∈ ΩO (75) k∈K k∈K zk,a,t ∈ N ∀{k, a, t} ∈ P (76) ∀m ∈ M (77) f arem ≥ 0 θf k binary qm binary ∀f ∈ Ω, ∀k ∈ K (78) ∀m ∈ M (79) The variables Udm , pdm and ωd have become independent of the demand segment d. All constraints stay the same. 5 Solution Approaches As for the solution approaches, we consider the formulation with utility at the itinerary level, exposed in 4.4.2. 5.1 Problem class The first observation is that our model is not linear because of the choice model leading to nonlinear objective function (54) and nonlinear capacity constraint (55). Our model has continuous decision variables (f arem ) and integer decision variables (zk,a,t , θf k and qm ). Our model belongs then to the Mixed Integer nonlinear Programming class. Classical methods decompose the problem by separating the nonlinear part from the integer part. A Branch-and-Bound algorithm performs a tree-search and solves a nonlinear problem (NLP) at each node. We have chosen this implementation because optimization software packages (Numerical Algorithms Group Library) are available to solve the nonlinear part with Sequential Quadratic Programming (SQP) methods. We integrate 27 this SQP methods into our own implementation of the Branch-and-Bound algorithm. We acknowledge that a better way could have been an integrated algorithm as realized by Leyffer [20]. Leyffer proposes an algorithm where the tree search and the iterative solution of the nonlinear problem are interlaced. Thus, the nonlinear part is solved whilst searching the tree. The underlying idea is to branch before an iteration of the Sequential Quadratic Programming (SQP) solver. The section 5.2 introduces the two methods Branch-and-Bound and Sequential Quadratic Programming. 5.2 Branch-and-Bound The solution space of an integer programming problem can be assumed finite. The simplest way to solve the integer problem is to go through all integer points, discarding infeasible ones and always keeping track of the feasible solution with the best objective value. The Branch and Bound considers a continuous problem defined by relaxing the integer restrictions on the variables (θf k and qm in our model). Therefore, the solution space of the integer problem is only a subset of the continuous problem. If the optimal continuous solution is all integer, then it is also optimal for the integer problem. The Branching operation partitions the continuous solution space into subspaces, which are also continuous. The purpose of the partitioning is to eliminate points that are not feasible for the integer problem. The Bounding operation helps locating the optimum solution by comparing the objective function value of the current node to the objective function value of the current best feasible solution (this upper bound is set to infinite until a feasible solution is found). The optimum integer solution is available when the subproblem having the greatest upper bound (considering a maximization problem) among all subproblems yields an integer solution. The tree to explore could have a very large number of branches and nodes. Branch-And-Bound algorithms may require large computer storage since each node has an associated subproblem whose solution and objective function must be stored. The Branch-and-Bound method proceeds as followed: First, the integer problem is replaced by a continuous space by relaxing the integer conditions. Then branching is used to eliminate parts of the continuous one that are not feasible by reactivating some of the integer restrictions. The process operates branching and bounding until all integer points have been tried. Branch-and-Bound algorithms grow exponentially with the problem size but are exact solution methods. 5.3 Sequential Quadratic Programming methods Sequential Quadratic Programming (SQP) methods solve an nonlinear problem via a sequence of quadratic programming (QP) approximations obtained by replacing the nonlinear constraints by a linear first order Taylor series approximation and the nonlinear objective by second order Taylor series approximation augmented by a second order information from the constraints. They can converge quadratically near a solution. But they can fail to converge if they start far from a local solution. To ensure convergence, 28 each iteration of the SQP must decrease a penalty function, which is a linear combination of the objective function and some measures of the constraint violation. 5.4 Incremental airline schedule model The solution approach with Branch-and-Bound and SQP methods can not ensure to find the optimum solution. The convergence of the SQP function relies on the choice of the feasible starting point. That is the reason why an incremental approach fits our problem. As shown in the flow chart of figure 6, we start with a base schedule that we incrementally improve. If the stopping criteria is not met (for example, insufficient improvement of the objective function), non-profitable itineraries can be identified, a better starting point can be chosen and the heuristic can be started again. This method allows to improve the starting point, until the objective function can not be improved further. But the determination of non-profitable itineraries is uneasy. Therefore is this stage manually operated. Branch-and-Bound combined with SQP is not the only way to solve the problem. Other heuristics are possible such as Greedy algorithm, Nearest Neighbour algorithm or genetic algorithm. 6 Implementation 6.1 Framework We have implemented an Branch-and-Bound algorithm with a sequential QP method at each node to solve the third formulation of our problem. We discuss in this section the key point of the implementation. The algorithms are implemented in the C language. We used a function of the Numerical Algorithms Group’s Library to realize the SQP methods, briefly described in section 6.2. And we have implemented our own Branchand-Bound with different search strategies. 6.2 Numerical Algorithms Group library (eu04cc) The function nag opt nlp of the package eu04cc allows to solve a problem with non-linear constraints using a sequential quadratic programming (SQP) method. It takes as input: the number of decision variables n, the number of linear constraints nclin, the number of nonlinear constraints ncnlin upper and lower bound for each variable bl and bu, matrix of coefficients of linear constraints a, functions that calculate the first derivative of the objective function objf un and nonlinear constraints conf un, the current objective function objf and the associated first derivatives objgrd and a feasible starting point x. The declaration of the function is displayed below. e04ucc(n, nclin, ncnlin, &a[0][0], tda, bl, bu, objf un, conf un, x, &objf, objgrd, E04 DEF AU LT, N AGCOM M N U LL, N AGERR DEF AU LT ); 29 Figure 6: Flow Chart for incremental solution. 30 We also have to calculate the partial derivative of the non-linear constraints and the objective function with respect to all the variables as input. The derivatives allow to calculate the first and second order Taylor series approximation for nonlinear constraints and the objective function. They are written in the functions conf un and objf un respectively, declared as: staticvoidN AG CALLobjf un(Integern, doublex[], double ∗ objf, doubleobjgrd[], N ag Comm ∗ comm) staticvoidN AG CALLconf un(Integern, Integerncnlin, Integerneedc[], doublex[], doubleconf [], doubleconjac[], N ag Comm ∗ comm) The Nag function solves only a minimization problem, while our problem is a maximization problem. Thus, we have to transform our problem into a minimization problem: XX X min( cf k θf k − (f arem − cm )pm ωm ) (80) f ∈Ω k∈K m∈M subject to X δf m pm ωm ≤ m∈M X (81) k∈K e(Um −f arem ) q pm = ∀f ∈ Ω capk θf k m ∀m ∈ M |M | X (82) e(Um′ −f arem′ ) qm′ + U0 m′ =1 X X θf k + zk,a,t− − f ∈I(k,a,t) θf k − zk,a,t+ = 0 ∀{k, a, t} ∈ P (83) f ∈O(k,a,t) X θf k ≤ Nk ∀k ∈ K (84) f ∈Ωk a∈A qm − X zk,a,t + X θf k ≤ 0 ∀f ∈ Ωm , ∀m ∈ M (85) k∈K qm − X X θ f k ≥ 1 − Nm ∀m ∈ M O (86) f ∈Ωm k∈K f arem ≤ X f aref ∀m ∈ M (87) f ∈Ωm X θf k = 1 k∈K 31 ∀f ∈ ΩM (88) X ∀f ∈ ΩO θf k ≤ 1 (89) k∈K zk,a,t ∈ N ∀{k, a, t} ∈ P (90) ∀m ∈ M (91) f arem ≥ 0 θf k , qm ∈ [0, 1] ∀f ∈ Ω, ∀k ∈ K, ∀m ∈ M (92) The partial derivative of the objective function (f ) and the nonlinear constraints (c1 ) are given in the appendix, at the end of the thesis. In our solution, we differentiate two calls of the SQP functions, depending on the number of decision variables. At the very beginning, we employ the SQP methods to find the root of the Branch-and-Bound algorithm. All the variables are relaxed, qm and θf k changed into continuous decision variables between 0 and 1, instead of binary variables, as shown in the constraints 92. The Branch-and-Bound algorithm will branch on the values of qm and θf k , that are not set 0 or 1. The algorithm goes through all the possible combinations of qm and θf k . At each node of the search tree, we operate another call of the SQP function, where qm and θf k are not variables anymore. The starting point of the SQP methods is randomly chosen. In practice, we have manually tried different points until we find a point that converges to an optimum. Once we have found a relative good starting point, we start the Branch-and-Bound algorithm. At each node, we solve the same problem but the two binary variables qm and θf k are now fixed by the branching strategy. The problem is given by: X XX cf k θf k − (f arem − cm )pm ωm ) (93) min( f ∈Ω k∈K X m∈M δf m pm ωm ≤ m∈M pm = X ∀f ∈ Ω capk θf k (94) k∈K e(Um −f arem ) q m ∀m ∈ M |M | X (95) e(Um′ −f arem′ ) qm′ + U0 m′ =1 X θf k + zk,a,t+ − f ∈I(k,a,t) X θf k − zk,a,t− = 0 ∀{k, a, t} ∈ P (96) f ∈O(k,a,t) X zk,a,t + X θf k ≤ Nk X f aref ∀k ∈ K (97) f ∈Ωk a∈A f arem ≤ ∀m ∈ M (98) f ∈Ωm zk,a,t ∈ N ∀{k, a, t} ∈ P (99) ∀m ∈ M (100) f arem ≥ 0 In this case, the formulas of the first derivative are the same as before. But the only decision variables are now f arem and zk,a,t and all the others are parameters. 32 CreateQueue(Q) /*Q queue with priority: each element is a couple (Node,Estimation) */ A = a feasible solution for the first SQP iteration Root=SQP1(A) /* first call of the SQP function */ Z=Root Push(F,(Z,f(Root))) ubound=infinite While Not is Empty(F) Pop(F,Z) x = Last Node of Z If x is not a feasible solution y1 , ..., yk successors of x that don’t belong to Z For i = 1 to k A’=Z + yi /*Branching*/ T=SQP2(A’) /* Second call of SQP function*/ Push(F,(T,f(yi ))) End For Else if estimation value ≤ ubound ubound = estimation value End If fathom End If End While Figure 7: Formal description of the basic Branch-And-Bound algorithm 6.3 Branch-and-Bound algorithm 6.3.1 Formal description Branch-and-Bound algorithms allow to reduce the ”solution space”. Each node is evaluated regarding to an estimation function f, which is the value of the objective function after applying the SQP method. An upper bound, that represents the objective function value of the best feasible solution, is chosen beforehand to decide whether a node will be fathomed or not. It is fixed to infinite at the beginning. The tree search goes on until all integer points have been tried. The basic formal Branch-and-Bound algorithm applied to our problem is given in figure 7. 6.3.2 Improving Branch-and-Bound through search strategy A way to improve the efficiency of the Branch-and-Bound method is to find a feasible solution as fast as possible and then allow to reduce the solution space by fathoming with a small upper bound. To do so, we combine two different tree-search strategies: 33 Figure 8: Branch-and-Bound with Best first search. Best First strategy and depth first search strategy. Our Branch-and-Bound algorithm performs first a Depth First search until it finds a feasible solution then it switches to the Best First strategy allowing a faster reduction of the space solution. In figure 9, our combined algorithm is applied, while a Best First strategy is applied figure 8. The Depth First strategy found a relative bad feasible solution (objective function value = −970) compared to the Best First strategy (objective function value = −992). But the upper bound was found faster than the Best First strategy, 2 iterations against 3 iterations. This difference in iterations is already important, given that the example has only 4 leaves. The difference between the two search strategies depends on how the queue is prioritized. The queue is realized as an ordered list by decreasing estimation values for the best first strategy and ordered by depth in the search tree for the depth first strategy. We name the functions, that add a new element to the stack, for each search strategy bP U SH and dP U SH and the function, that takes the best element according to the objective function (for the best first strategy) or the depth (for the depth first strategy) off the stack, P OP . The P OP function stays the same in both cases, since the best solution is always on top of the stack. The Branch-and-Bound algorithm with combined search strategies is shown in figure 10. The Branch-and-Bound algorithms are exact solution methods but they can still explore a large set of nodes. In practice, we implement a truncated Branch-and-Bound for large scale problems. In section 7.6, we discuss a stopping criteria that determines when a reasonable feasible solution is found. 34 Figure 9: Combination of Best first and Depth first tree search. 7 Computational Results In this section, we present the performance analysis that we have conducted to test our implementation. The intention is to provide some insights about the solvability of our approach. Since it is difficult if not impossible to prove whether the algorithm reaches the optimum or not for a large nonlinear problem, we use small time line networks to reduce the complexity of the problem. We start with a schedule with only one flight leg. We study the influence of the passenger preference to the optimum schedule. At the end, we present and discuss the results of our algorithm for a problem with 5 OD Pairs. The time line networks are based on data from European airline websites. The utility values, assignment costs, passenger costs and aircraft capacities are randomly fixed. 7.1 Problem with 1 OD-Pair First, we consider the problem reduced to one OD-pair, one flight leg and the parameters shown in table 5. We consider that the airline only owns two aircrafts. The optimum is the maximum of the following objective function subject to operational constraints (67)-(79). e(U −f are) qω − (c00 θ00 + c01 θ01 )) (101) max((f are − c) (U −f are) e q + U0 We note that is already difficult to find the optimum of the problem. In this particular case, the SQP function converges 98% of the cases to the same convergence point with a profit of 131, 021721. Even though all variables are relaxed, all binary decision variables are 0 or 1. The convergence is sensitive to the choice of the starting point. The table 6 35 CreateQueue(Q) A = feasiblesolutionfor the first SQP iteration Root=SQP1(A) /* first call of the SQP function */ Z=Root dPush(F,(Z,f(Root))) Found=False Depth = 0 ubound=infinite While Not isEmpty(F) Pop(F,Z) x = Last Node of Z Depth=Depth+1 If x is not a feasible solution y1 , ..., yk successors of x that don’t belong to Z For i = 1 to k A’=Z + yi /*Branching*/ T=SQP2(A’) /* Second call of SQP function*/ if Found bPush(F,(T,f(yi ))) else lPush(F,(T,f(yi )),k) End If End For Else if estimation value ≤ ubound ubound = estimation value End If if Found = False order Q by estimation value Found = True End If fathom End If End While Figure 10: Formal description of the Branch-and-Bound algorithm with combined search strategies. 36 UTILITY U0 U1 DEMAND FACTOR ω0 ASSIGNMENT COST costa00 costa01 PASSENGER COST costm0 CAPACITY OF AIRCRAFT cap0 cap1 Value 20 23 20 10 20 10 50 40 Table 5: Numerical values of the parameters for the first example. shows the initial point and the optimum. 7.2 Influence of the consumer preference on the optimum schedule Our model gives an important part to the consumer preference. We are about to test how consumer preference influences price. We choose a network with two OD-Pairs and one flight leg per OD pair, as shown in figure 11. Both flights are optional. Parameters are given in table 7. We set up a flight leg with a low utility (U1 = 23) and another one with high utility (U2 = 40). The most preferred flight has a bigger cost per passenger than the other. With a starting schedule that includes only one flight leg, the SQP method always ends up including the most preferred flight leg and excluding the other. In this case, some calls of SQP converge to the same point with objective function 575.402129 and the flight f1 included in the final schedule, detailed in table 8. We try to build manually schedules including only the flight f1 and with a price close to the optimum price (between 30 and 40). Since the solution that we try to improve is a local maximum, we did not find better objective function value than 575.402129. We also try schedules that only include the first flight leg (f0 ). The objective function does not exceed 40 and the solver often stops, because the first-order-Kuhn-Tucker constraints have failed. This point is the best convergence point but we have found other convergence points with objective function value 555.402107, that include both flight legs in the optimum schedule. One of this local convergence point is displayed in table 10. If we increase the price of the first flight leg, the convergence point stays the same with the new price instead. The contribution of the first flight does not yield profit to the airline, when it is included. The probability that a passenger chooses the first flight is close to zero, because of the contribution of the second flight (the most preferred flight). The expo- 37 initial zk,a,t z000 = 0 z001 = 0 z010 = 0 z011 = 0 z100 = 1 z101 = 0 z110 = 0 z111 = 1 final zk,a,t z000 = 1 z001 = 0 z010 = 0 z011 = 1 z100 = 0 z101 = 0 z110 = 0 z111 = 0 initial θf k θ00 = 0 θ01 = 1 initial f arem f are0 = 22 initial qm q0 = 1 initial objf un 8,716416 final θf k θ00 = 1 θ01 = 0 final f arem f are0 = 18.051086 final qm q0 = 1 final objf un 131,021721 Table 6: Initial and final point for the first example Figure 11: Example with 2 OD-Pairs. 38 UTILITY U0 U1 U2 DEMAND FACTOR ω0 ω1 ASSIGNMENT COST costa00 costa01 costa10 costa11 PASSENGER COST costm0 costm1 CAPACITY OF AIRCRAFT cap0 cap1 Value 20 23 40 20 18 10 20 10 20 10 20 50 40 Table 7: Parameters for an airline network with 2 OD-Pairs nentials in the preference intensify the difference between utilities. If the utility of the most preferred flight (f1 ) decreases of 10%, the optimum schedule will still include it and the optimum price will be reduced of 29%. The probability that a passenger chooses f1 will only diminish of 2%. A small difference between utilities can imply great changes in the optimum schedule. With the numerical parameters that we choose in this example with 2 OD-Pairs, it is always more profitable to include only one flight leg in the schedule. Even if we start the solver when flights have exactly the same assignment costs, same fare and same utility, the SQP function will end up including only one flight with the maximum fare. Including the other flight leg introduce more costs than it yields revenue. In practice, if we keep the maximum fare for the second flight and try to add the first flight to the schedule, it converges to another convergence point. If the starting point is too far from the optimum, the SQP function will not converge. After trying several starting points, we observe three outputs with the frequencies displayed in table 12. The execution time is always less than 1 second. The SQP function did not converge in only 5% of times. But these percentages do not accurately represent the reality, because the starting points of our test have not been generated by a random function and we did not try all possible starting points. These percentages are correlated with the probability to 39 initial zk,a,t z000 = 1 z001 = 0 z010 = 0 z011 = 1 z020 = 0 z021 = 0 z100 = 0 z101 = 0 z110 = 0 z111 = 0 z120 = 1 z121 = 1 final zk,a,t z000 = 0 z001 = 0 z010 = 0 z011 = 1 z020 = 1 z021 = 0 z100 = 0 z101 = 0 z110 = 0 z111 = 0 z120 = 0 z121 = 0 initial θf k θ00 = 0 θ01 = 1 θ10 = 0 θ11 = 0 initial f arem f are0 = 22 f are1 = 20 initial qm q0 = 1 q1 = 0 initial objf un 15.213931 final θf k θ00 = 0 θ01 = 0 θ10 = 1 θ11 = 0 final f arem f are0 = 0 f are1 = 33.522340 final qm q0 = 0 q1 = 1 final objf un 575.402129 Table 8: Initial and final point for the second example Utility 40 35 30 27 (optimum) Price 33.522340 28,683434 23.874256 19,107958 Probability (f1 ) 0.970169 0.965137 0.958114 0.952399 Table 9: Influence of the utility to the flight f1 40 initial zk,a,t z000 = 1 z001 = 0 z010 = 0 z011 = 1 z020 = 0 z021 = 0 z100 = 0 z101 = 0 z110 = 0 z111 = 0 z120 = 1 z121 = 1 initial θf k θ00 = 0 θ01 = 1 θ10 = 1 θ11 = 0 initial f arem f are0 = 37 f are1 = 33.5700 initial qm q0 = 1 q1 = 1 initial objf un 555.382006 Table 10: Initial point with both flight legs included generate a schedule with two flight legs (respectively with one flight leg). This second test underlines two aspects of our approach: (1) In our model prices and the probability of choosing a flight leg are sensitive to utilities. Even a small difference in utility values can completely change the optimum schedule. (2) The convergence of the SQP function depends on the distance between the starting point and the optimum point. The incremental approach allows to improve the starting point at each iteration. So far, the computational results have given contribution to the convergence of the SQP function and to the interaction between high passenger demand and airline supply. In the next section, we evaluate the performance of the complete algorithm (Branchand-Bound and SQP function) for a larger problem. 7.3 Performance of the first call of the SQP function We consider a set of five OD-pairs with only one flight per OD-pair, as shown in figure 12, with the time line network in figure 13 and the parameters in table 14. There are only two aircrafts, in order to keep the problem size small (80 variables and 95 constraints). Table 13 presents the size of the constraint matrix. Like the example with two flight legs, we run the SQP function with all variables relaxed to find a good starting point for the Branch-And-Bound algorithm. We try schedules, that include exactly one flight leg, as input of the SQP function and analyse the outcome. The SQP function has converged in 75% of the cases. If it 41 initial zk,a,t z000 = 1 z001 = 0 z010 = 0 z011 = 1 z020 = 0 z021 = 0 z100 = 0 z101 = 0 z110 = 0 z111 = 0 z120 = 1 z121 = 1 final zk,a,t z000 = 1 z001 = 0 z010 = 0 z011 = 1 z020 = 1 z021 = 0 z100 = 0 z101 = 0 z110 = 0 z111 = 0 z120 = 1 z121 = 1 initial θf k θ00 = 0 θ01 = 1 θ10 = 1 θ11 = 0 initial f arem f are0 = 33 f are1 = 33.6 initial qm q0 = 1 q1 = 1 initial objf un 555.402107 final θf k θ00 = 0 θ01 = 1 θ10 = 1 θ11 = 0 final f arem f are0 = 33.000072 f are1 = 33.522340 final qm q0 = 0.999932 q1 = 1.000000 final objf un 427.485113 Table 11: Other convergence point. OUTCOME Current point can not be improved upon. First-Order-Kuhn-Tucker constraints are not satisfied Convergence to the optimum convergence point Convergence to the second convergence point PERCENTAGE OF CALLS 5% 80% 15% Table 12: Three outcomes of the SQP function for feasible starting points 42 Variables zk,a,t f arem θf k qm Total number of variables Constraints Linear Nonlinear Total number of constraints 60 5 10 5 80 90 5 95 Table 13: Size of the constraint matrix Figure 12: Example with 5 OD-Pairs. 43 Figure 13: Time line Network for the example with 5 OD-pairs. 44 UTILITY U0 U1 U2 U3 U4 U5 DEMAND FACTOR ω0 ω1 ω2 ω3 ω4 ASSIGNMENT COST costa00 costa01 costa10 costa11 costa20 costa21 costa30 costa31 costa40 costa41 PASSENGER COST costm0 costm1 costm2 costm3 costm4 CAPACITY OF AIRCRAFT cap0 cap1 Value 20 23 21 24 29 49 20 23 18 20 35 10 20 12 19 38 43 46 23 48 50 10 15 17 16 23 50 40 Table 14: Parameters for an example with 5 OD Pairs 45 OUTCOME Current point can not be improved upon. First-Order-Kuhn-Tucker constraints are not satisfied Convergence to the optimum convergence point Large error in the derivatives Convergence to other convergence points PERCENTAGE OF CALLS 5% 80% 5% 10% Table 15: Approximative evaluation of the performance to find the starting point of the Branch-And-Bound. θ40 θf k θ00 = 0 θ01 = 0 θ10 = 0 θ11 = 0 θ20 = 0 θ21 = 0 θ30 = 0 θ31 = 0 = 0.692170 θ41 = 0 f arem f are0 = 38 f are1 = 20 f are2 = 39 f are3 = 39 f are4 = 42.707412 qm q0 = 0 q1 = 0 q2 = 0 q3 = 0 q4 = 0.692170 objf un 621.535666 Table 16: Starting point for the Branch-And-Bound algorithm. does not converge, either the starting point implies a large error in the nonlinear constraints or the final point can not be improved upon and does not satisfy the first order of Kuhn-Tucker condition. But if it converges, the final point is always the same, shown in table 16. Afterwards we try base schedules that include couples of flight legs, as input of the SQP function. When the SQP function does not converge, we modify each price of flight legs or assignment variables to improve the final schedule. When it converge, we have found 2 distinct optimum, one with an objective function value of 533.989454 and another with 621.535666. The table 15 shows an approximative evaluation of the performance of the first call of the SQP function. The SQP function converges in 90% of the cases. The best objective function value was 621.535666. We choose this final solution to be the root of the Branch-and-Bound algorithm. 7.4 Performance of the Branch-And-Bound algorithm Given the previous starting point, we analyse the performance of the Branch-and-Bound algorithm. In this example, the search tree of the Branch-and-Bound algorithm has 215 leaves in the worst case, if no fathoming is operated. We consider that the number of 46 θf k θ00 = 0 θ01 = 0 θ10 = 0 θ11 = 0 θ20 = 0 θ21 = 0 θ30 = 0 θ31 = 0 θ40 = 1 θ41 = 0 f arem f are0 = 38 f are1 = 20 f are2 = 37.973351 f are3 = 37.221707 f are4 = 43.056842 qm q0 = 0 q1 = 0 q2 = 0 q3 = 0 q4 = 1 objf un 618.989454 Table 17: Output of the Branch-And-Bound algorithm. covered nodes represents the number of iterations of the algorithm. The number of available aircrafts can limit the number of covered nodes. For example, we suppose q1 = 0, 5, q2 = 0, 5 and q3 = 0, 5. Since there are only 2 aircrafts only 2 q-values can be set to 1. Or else the schedule will not be feasible (flight leg included in the schedule but not assigned or a flight leg non-included but assigned). That allows to drop the leaf q1 = 1, q2 = 1, q3 = 1 in the tree. In our heuristic, the SQP function will find the subproblem unfeasible. If we reduce the size of the search tree before operation, we can save unnecessary calls of the SQP function. This pre-processing makes the algorithm more complex in terms of memory storage and branching strategy. Constraints for feasible nodes have to be stored before operation and the current node has to fulfill those stored requirements at each iteration. The SQP function has now converged in less than 20% of the calls, because most of them are no good starting points for the SQP function. As far as the performance of the Branch-And-Bound algorithm is concerned, the depth first strategy allows to find a feasible solution after two iterations. When we mention iterations, we do not mean branching. After another iteration, the best first strategy leads to the optimum, displayed in table 18. With the current upper bound the branch with θ40 = 0 is fathomed. After 4 iterations, the Branch-And-Bound algorithm stops. As expected, the best solution is the one with the variables θ40 and q4 set to 1. Compared to the root of the Branch-and-Bound, the objective function has decreased but the price of the flight 4 has been increased. But if we compare with the schedule before the first call of the SQP function, the objective function has increased of 9% (565.934055 to 618.989454). Two flights (f2 and f4 ) are now mandatory flights. The first call of the SQP converges in 75% of times to distinct points. We will start the Branch-And-Bound algorithm with a feasible ”bad” solution shown in table 18 regarding to the objective function value. The SQP function converges in less than 8% of the cases. The Branch-and-Bound algo- 47 θf k θ00 = 1 θ01 = 0 θ10 = 0.7897521 θ11 = 0 θ20 = 1 θ21 = 0 θ30 = 0 θ31 = 0.897212 θ40 = 0 θ41 = 1 f arem f are0 = 27.000004 f are1 = 21.038100 f are2 = 42.793679 f are3 = 27.000000 f are4 = 60.210052 qm q0 = 0 q1 = 0 q2 = 0.887961 q3 = 0 q4 = 0.996996 objf un 307.650319 Table 18: ”Bad” starting point for the Branch-And-Bound algorithm. θf k θ00 = 1 θ01 = 0 θ10 = 1 θ11 = 0 θ20 = 1 θ21 = 0 θ30 = 0 θ31 = 0 θ40 = 0 θ41 = 1 f are0 f are1 f are2 f are3 f are4 f arem = 27.000004 = 21.038100 = 42.793679 = 27.000000 = 60.210052 qm q0 = 0 q1 = 0 q2 = 1 q3 = 0 q4 = 1 objf un 293.286222 Table 19: Output of the Branch-And-Bound algorithm with a ”bad” starting point. rithm founds an optimum, displayed in table 18, after 13 iterations. If we set q1 = 0.5, the algorithm iterates 18 times and the SQP function converges in less than 12% of the cases. The final point is the same as the former one. If we set q1 = 0.5 and q0 = 0.5, the f are4 has been lightly improved to 60.210051 after 26 iterations. If we stop the algorithm before 38 iterations, the final point is not optimum and can be far from the optimum. But if we choose a starting point with values close to 0 or 1, the Branch-And-Bound will converge faster to the optimum. In this example, we can reduce the number of iterations of the Branch-and-Bound algorithm to 36. 7.5 Truncated Branch-And-Bound algorithm For larger problems, we will not be able to run the Branch-and-Bound until it finds the optimum, because the number of nodes grows exponentially. We apply a truncated 48 UNKNOWN VARIABLES 2 5 6 9 NB MAX ITERATIONS 4 19 26 40 CONVERGENCE OF SQP 20% − 30% less than 12% less than 8% less than 6% Table 20: Performance of the complete algorithm with five OD-Pairs. Branch-and-Bound instead. We stop the algorithm when a feasible ”good” solution is found. That is why our implementation is a heuristic. The difficulty is to find the criteria that determines when a solution close to the optimum is met. A limited number of iterations that depends on the size of the problem is a wrong approach. We can not suppose that after the Branch-and-Bound algorithm covers 60% of the search tree, then a ”good” suboptimum has been met. This upper bound does not fit to the nonlinear aspect of our model. An alternative could be to set a time limit for the Branch-And-Bound algorithm. It relies on the running time of the SQP function. With the percentage of convergence, the size of the tree and the running time of each outcome, we can estimate the maximum running time of the Branch-and-Bound. In our example, the SQP function converges less than 8% and does not fulfill Kuhn-Tucker constraint around 70% of times (that takes one second). The rest of the time, the function loops through a maximum number of 516 iterations and than stops (that takes 3 seconds). Given this data, we can determine a time limit for the algorithm, before a suboptimum is found. Another alternative is to operate in two phases. First the problem is solved with a greedy algorithm, in order to obtain an objective function value of a good feasible solution that we store for the second phase. Then we run our Branch-and-Bound algorithm, where we compare the objective function of the current feasible solution to the stored value. We consider that we have found a good solution, when both values are ”close enough”. We fix a maximal difference between the upper bound and the expected feasible solution prior to the operation of the Branch-and-Bound. This maximal difference defines the stopping criteria. This last approach is the most suitable but costs more than the other alternatives in terms of processing time because two algorithms are operated. To reduce this costs, we can start the Branch-and-Bound before the greedy algorithm. Or as upper bound for the truncated Branch-and-Bound, we can consider the root of the Branch-and-Bound algorithm, because the Branch-and-Bound algorithm will not improve the objective function of the root. The root is an optimum of the optimization problem, where θf k and qm are relaxed. In practice, a good feasible solution is found, when the difference in objective function values is less than 20% of the objective function value of the root. In this last section, we have made the following observations to the performance of 49 the complete algorithm: (1) The performance of the Branch-And-Bound, in terms of numbers of iterations until the optimum is found, based on the choice of the starting point. (2) We can save calls of the SQP function by eliminating unfeasible leaves before operation. But this requires memory storage. (3) A good criteria to find a feasible solution close to the optimum, is difficult because of the exponential growth of the problem size. A good solution is to solve the problem in two stages: the first time to find an upper bound, that will be compared to the current solution of the Branch-and-Bound in a second time. 8 Conclusion 8.1 Summary of contributions The objective of this diploma thesis was to build a model integrating Airline Schedule Design and Product Line Design. Our model solves an incremental integrated airline schedule generation and fleet assignment problem along with the pricing problem considering customer preference. A base schedule, composed by mandatory and optional flight legs, is given as input. Our model maximizes the profit of the airline, while adding and deleting optional flight legs. The airline schedule design model integrates model of Lohatepannont M. and Barnhart C. [4] for the airline schedule design with choice-based product line design at product and attribute level. The formulated problem is a Mixed Integer Nonlinear problem with large number of decision variables and sets of constraints. Due to the size and complexity of the problem, we aim to implement a heuristic to find a solution close to the optimum. Our solution approach was to decompose the model into nonlinear part and integer part. We implement a Branch-And-Bound algorithm, for the integer part, that solves at each branch the nonlinear part with integer variables fixed, with a sequential quadratic programming function. We use the library of the Numerical Algorithms Group to implement the sequential quadratic programming method. We implement by ourselves a Branch-AndBound with a depth first combined with a best first tree search strategy. In the example with two flight legs, we have shown that the convergence of the SQP function is sensitive to the choice of the initial point. We have also shown the influence of the consumer preference on the optimal solution. Our model captures always the flow of passenger that optimizes the profit. In the example with 5 OD-pairs, the more integer variables are to determine, the less is the percentage of convergence for the SQP function. For larger problems, we have tried to find a stopping criteria for a truncated Branch-and-Bound. The stopping criteria depends on the difference between the objective function value of the root (of the Branch-and-Bound) and the one of the current feasible solution. A difference in objective function values of less than 20% of the profit corresponding to the root implies that a feasible good solution is met. 50 8.2 Future Research Directions This thesis represents a contribution in the area of market-oriented airline schedule design. There are many research questions left unexplored. In the short term, case studies to measure the sensitivity of MNL and BTL model at itinerary and itinerary attributes level must be performed. The results will allow us to validate our approach with the conjoint analysis. Otherwise, we should express the consumer preference by an other alternative than conjoint analysis, such as a linear or semi-linear utility. In the medium term, supposing that our model has been validated, we should enable our incremental model to perform re-schedule with time-windows in addition to additions/deletions. This will fine-tune the optimization of the base schedule. In the long term, we can concentrate on improving our implementation with the following research directions: - Apply the an integrated algorithm realized by Leyffer [20] to our model. This requires the self-implementation of the SQP function. This will enable the Branch-And-Bound to branch before an iteration of the SQP solver. This can significantly speed up our implementation. - Implement a solution with genetic algorithm. This requires to find an adapted mutation and recombination functions for the itineraries. 51 Notations PARAMETERS General: A: Set of airports, indexed by a. K: Set of aircrafts, indexed by k. Nk : Number of aircrafts in fleet-type k. Nm : Number of flight legs in itinerary m. N : Set of attributes of an itinerary, with the price as first attribute and the other attributes are service-oriented. N1 : Set of attributes of an itinerary, indexed by n. Jn : Set of level sets for the attribute n, indexed by j. J0 is the set of possible prices. P : Set of nodes of the underlying network. A node is composed by a time, an airport and an aircraft, indexed by {k, a, t} T : Sorted set of all event. Itineraries: M : Set of itineraries including null itinerary, indexed by m. M O : Set of itineraries containing optional flight, indexed by mit m. M C : Set of competitive itineraries. Flight legs: Ωm : Set of flight legs in itinerary m, indexed by f . Ω: Set of flight legs in the flight schedule, indexed by f . ΩM : Set of mandatory flight legs in the flight schedule, indexed by f . ΩO : Set of optional flight legs in the flight schedule, indexed by f . Ωk : Set of flight legs that pass the count time when flown by fleet-type k. I(k, a, t): Set of inbound flight legs to node {k, a, t}. O(k, a, t): Set of outbound flight legs to node {k, a, t}. cf k : Cost for the assignment of the aircraft k to the flight leg f . cm : Cost pro passenger. capk : Number of seats in the aircraft k. demm : Demand for the itinerary m. These represents all the passengers that want to travel from origin-airport to destination-airport regardless of the operational constraints. That is called the unconstraint demand. δf m : = 1, when the itinerary m includes the flight leg f , = 0 otherwise. Preference measurement: Udm : Service related utility of the passenger d for the itinerary m. This utility is independent of the price. Ud0 : Given utility of passenger segment d for competitive itineraries. pdm : Product demands or market shares described by the probability that the passenger 52 d choose the itinerary m. ωd : Size of the segment d. DECISION VARIABLES Schedule generation and fleet assignment: qm : = 1, if itinerary m is included in the flight schedule, =0, otherwise. θf k : = 1, when the flight leg f is flown with the aircraft k, = 0 otherwise. zk,a,t+ : The number of aircraft k on the ground at the airport a immediately after time t. zk,a,t− : The number of aircraft k on the ground at the airport a immediately before time t. If t1 and t2 are the times associated with adjacent events then zk,a,t+ = zk,a,t− . 1 2 Pricing model: f arem : Price charged to every passenger on the itinerary m. We make a slight abuse of notation by modelling the price of a flight leg with the same variable but indexed with f. xjnm : = 1, when the n-th attribute is assigned to the j-th level in the itinerary m, = 0 otherwise. These are binary constants for m ∈ M c (competitive itineraries) and binary decision variables for m ∈ M . xj0m : =1, when a passenger is charged with the j-th possible price for itinerary m. f arejm: j-th level of the price for the itinerary m. 53 Annexe - Derivatives with respect to f arem for a given m f= e(Um −f arem ) qm ωm M X e(Udm1 −f arem1 ) qm1 − U0 e(Um −f arem ) qm − 1 m1 =1 + (f arem − cm ) M M X X ( e(Um1 −f arem1 ) qm1 + U0 )2 e(Um1 −f arem1 ) qm1 + U0 m1 =1 m1 =1 M (Um2 −f arem2 ) q X m2 ωm (Um −f arem ) (f arem2 − cm2 )e + qm e M X m2 6=m e(Um1 −f arem1 ) q + U )2 ( m1 0 m1 =1 M X e(Um1 −f arem1 ) qm1 − U0 e(Ud m−f arem ) qm − m1 =1 c1 = δf m e(Um −f arem ) M X 2 (Um1 −f arem1 ) q +U ) e ( m1 0 m1 =1 M (U −f arem2 ) q X (Um −f arem ) e m2 m2 δf m2 ωm + e M X m2 6=m 2 (Um1 −f arem1 ) qm1 + U0 ) e ( m1 =1 - Derivatives with respect to zk,a,t for a given {k, a, t} f =0 c1 = K X capk k=1 - Derivatives with respect to θf k for given f and k f = −cf k c1 = 0 54 - Derivatives with respect to qm for given m M X e(Um1 −f arem1 ) qm1 + U0 − qm e(Um −f arem ) m =1 f = (f arem − cm ωm e(Um −f arem ) 1 M X 2 (Um1 −f arem1 ) qm1 + U0 ) e ( m1 =1 M X (Um −f arem ) (f arem2 − cm2 )e(Um2 −f arem2 ) qm2 ωm2 − e M X m2 6=m e(Um1 −f arem1 ) qm1 + U0 )2 ( m1 =1 M X (Um1 −f arem1 ) (Ud m−f arem ) qm1 + Ud0 − qm e e m =1 c1 = δf m ωm e(Um −f arem ) 1 M X e(Um1 −f arem1 ) qm1 + U0 )2 ( m1 =1 M (U −f arem2 ) δ X (Um −f arem ) e m2 f m2 qm2 ωm − e M X m2 6=m e(Um1 −f arem1 ) qm1 + U0 )2 ( m1 =1 55 References AIRLINE SCHEDULE DESIGN Overview of airline schedule planning problem: [1] Barnhart C., Cohn A. (2004), Airline Schedule Planning: Accomplishments and Oppertunities, MANUFACTURING SERVICE OPERATIONS MANAGEMENT, Vol. 6, No. 1, Winter 2004, 3-22. Airline schedule models with passenger behaviour model: [2] Dobson G., Lederer P. (1993), Airline Scheduling and Routing in a Hub-andSpoke System, Transportation Science, Vol. 27, 281-297. [3] Teodorovic D., Kremar-Nozic E.(1989), Multicriteria models to determine flight frequencies on an airline network under competitive conditions, Transportation Science 23 (1), 14-25 Integrated airline schedule models: [4] Lohatepanont M., Barnhart C. (2004), Airline Schedule Planning: Integrated Models and Algorithms for Schedule Design and Fleet Assignment, Transportation Science, Vol. 38, 19-32. [5] Brueckner J., Zhang Y. (2001), A Model of Scheduling in Airline Networks, Journal of Transport Economics and Policy, Vol. 35, Part 2, May 2001, 195-222 [6] Erdmann A., Nolte A., Noltemeier A., Schrader R. (1999), Modelling and Solving the Airline Schedule Generation Problem, Working Paper, ZAIK University of Cologne. [7] Soumis P., Ferland J.A., Rousseau M. (1980), A Model for Large Scale Aircraft Routing and Scheduling Problems, Transportation Research, No. 14B, 191-201. [8] Barnhart C., Lu F., Shenoi R. (1998), Integrated airline schedule planning, Operations Research in the Airline Industry, 9, 384-403. [9] Klabdjan D. (2003), Large-scale models try, Column Generation, Kluwer Academic https://netfiles.uiuc.edu/klabjan/www. in the airline indusPublishers. Available at Implementation of airline schedule planning problem: [10] Grosche T., Heinzl A. (2003), Simultane Erstellung von Flugänen mit Genetischen Algorithmen, Working Papers in Information Systems, Working Paper 8 / March 2003, University of Mannheim [11] Mathaisel D. (1997), Decision Support for Airline Schedule Planning, Journal of Combinational Optimization 1, 251-275 56 PRODUCT LINE DESIGN [12] Dobson G., Kalish S. (1998), Positionning and Pricing a Product Line, Marketing Science 2 (2), 107-124 [13] Gaul W., Aust E., Baier D. (1995), Gewinnorientierte Produktliniengestaltung unter Berücksichtigung des Kundennutzens, Zeitschrift für Betriebswirtschaft 65 (8), 835-855. [14] Green P.E., Krieger A.M.(1985), Models and Heuristics for Product Line Selection, Marketing Science 4 (1), 1-19 [15] Kohli R., Krishnamurti R.(1989), Optimal product design using conjoint analysis: Computational complexity and algorithms, European Journal of Operational Research 40, 186-195 [16] Natter M., Feurstein M.(2001), Real World Performance of Choice-Based Conjoint Models, Report Series, Report No. 58, June 2001, Vienna University of Economics and Business Administration [17] Oppewal H., Louviere J. J., Timmermans H.(1994), Modeling Hierarchical Conjoint Processes with Integrated Choice Experiments, Journal of Marketing Research, Vol. 31, 1994, 92-105 [18] Green P.E., Krieger A. M., Agarwal M. K.(1991), Adaptive Conjoint Analysis: Some Caveats and Suggestions, Journal of Marketing Research, Vol. 28, 1991, 215-222 [19] Kohli R., Sukumar R.(1990), Heuristics for Product Line Design Using Conjoint Analysis, Managemenent Science, Vol. 36(12), December, 1464-1478 [20] Leyffer S.(1998), Integrating QP and branch-and-bound for Mixed Integer Nonlinear Programming, 1998, 1-13 [21] Eliashberg J., Lilien G.L.(1998), Marketing, Handbooks in Operations Research and Management Science, Volume 15, 467-515 57