stochastic programming in revenue management

STOCHASTIC PROGRAMMING IN REVENUE
MANAGEMENT
DISSERTATION
Presented in Partial Fulfillment of the Requirements for The Degree
Doctor of Philosophy in the Graduate School of The Ohio State University
By
Lijian Chen
THE OHIO STATE UNIVERSITY
2006
Dissertation Committee:
Dr. Tito Homem-de-Mello
Approved by
Dr. Clark Mount-Campbell
Dr. Mark McCord
Dr. Theodore Allen
Advisor
Graduate Program in
Industrial and Systems Engineering
c Copyright by Lijian Chen 2006
°
All Rights Reserved
ABSTRACT
Airline revenue management aims to assign the right seat to the right customer
with right prices at the right time. Due to the existence of large uncertainty in customer demand and the unavailability of perfect information, decisions must be made
in advance. Also, such decisions are subject to constraints, such as seat availability,
demand forecasts, and customer preferences. The objective of revenue management is
to maximize the long term booking revenue. In this research, we studied two models
in detail, the seat allocation model and the customer choice model based on preference
orders. The seat allocation model is to decide the number of seats available for booking at class level by assuming the demands among booking classes are independent.
The customer choice model is to assign seats at class level without forecasting demands individually. Both research topics in revenue management, the seat allocation
optimization and customer choice optimization, are built by stochastic programming
models.
We present a multi-stage stochastic programming formulation to the seat allocation problem that extends the traditional probabilistic model proposed in the literature. Because of the lack of convexity properties, solving the multi-stage problem
exactly may be difficult. In order to circumvent that obstacle, We use an approximation based on solving a sequence of two-stage stochastic programs with simple
recourse. Our theoretical results show that the proposed approximation is robust,
in the sense that solving more successive two-stage programs can only improve the
expected revenue. We also discuss a heuristic method to choose the re-solving points.
ii
Numerical results are presented to illustrate the effectiveness of the proposed approach.
Besides the strong uncertainty in customer demand, the customer’s preference can
make a difference in total revenue too. In our research, we assume that customers
make choices according to personal preferences, such as preferences for connected trips
or direct trips. We realize the fact that different customers might possess similar preference and behave. It becomes the idea to construct the customer preference orders.
Instead of forecasting the demands by classes in seat allocation model, our preference
order model requires the distribution information by preference orders. Essentially,
this model is also a stochastic programming model. With properly implementing
the model recommendation, the numerical experiment indicates that the preference
order method tends to generate no less operating revenue than independent demand
methods by catching more valued customers.
In this text, we also gave a detailed literature review in the Chapter 1 for most
up-to-date airline revenue management progresses. Compared with existing research,
we have made two major contributions. First, we proposed a network heuristic to
improve the rolling horizon method with analytic justification; second, we proposed
the first solvable network customer choice behavior model by mathematical programming. Those contributions open a way to incorporate the demands’ distributional
information and the customer choice behavior into the real airline booking optimization process.
iii
ACKNOWLEDGMENTS
Guidance and advice from my advisor, Dr. Tito Homem-de-Mello, have influenced
this text, and even my career path. I have been working with Dr. Homem-de-Mello
since 2001. During the almost five years thereafter, I have learned a lot from him.
Dr. Homem-de-Mello showed me the right way to conduct excellent research. He
verified most of the theoretical conclusions and provided many helpful suggestions
and most of which become part of my dissertation. Other faculty and students in
Northwestern University also contributed in my research. Dr. Birge showed the
applications of Monte Carlo simulation in financial engineering, and Dr. Nelson
presented the most recent research progress in simulation. The students, Xuemei
Shan, Zhen Liu, Liming Feng, Xiaodong Xu, Fang Liu, Jun Liu, Feng Yang, Liu Hong,
Min Huang, exchanged ideas and comments which lead to valuable improvements. I
really enjoyed the experience working in such a productive and creative environment.
I would like to thank all my committee members, Dr. Clark Mount-Campbell, Dr.
Mark McCord and Dr. Theodore Allen, for suggestions in my proposal. Dr. MountCampbell voluntarily took all academic and immigration paperwork in OSU. Dr.
McCord provided detailed and constructive suggestions about methods for estimating
transition probabilities in the preference order model. Also, my dear wife, Xituan,
and my colleagues, Samrat Sondhi, Xiaoyan Jiang, Alyssa Quill, and etc. provided
me great support at both home and work, the Department of Revenue Management,
Storage USA, LLC, Extra Space Storage, LLC.
iv
In preparing this text, I use TEX dissertation template developed by Miguel Lerma,
Department of Mathematics, Northwestern University to follow the graduate school
dissertation guidelines. All the numerical experiments are coded under C/Matlab/XpressMP. The dash-optimization customer support team’s timely support is another
critical input to our research.
During the first four years of research, I was fully supported by the National Science Foundation under grant DMI-0115385 from 2001-2004. Any opinions, findings,
and conclusions or recommendations expressed in this material are those of mine and
do not necessarily reflect the views of the National Science Foundation.
v
VITA
September 27, 1975 . . . . . . . . . . .
Born - City of Qinhuangdao, China
1997 . . . . . . . . . . . . . . . . . . . . . . . . . .
B.S., Industrial Engineering,
Tianjin University
1999 . . . . . . . . . . . . . . . . . . . . . . . . . .
M.S., Management Science,
Tianjin University
2000 - 2001 . . . . . . . . . . . . . . . . . . . . Researcher, McGill University
2001 - present . . . . . . . . . . . . . . . . .
Graduate Research Associate,
The Ohio State University
2003 - 2005 . . . . . . . . . . . . . . . . . . . . Visiting Scholar, Northwestern University
2005 . . . . . . . . . . . . . . . . . . . . . . . . . .
Assistant Manager, Revenue Management,
GE Commercial Finance
PUBLICATIONS
Research Publication
E. Qi and L. Chen, “Integrated System and Strategy for Manufacturing Industry”,
Journal of Industrial Engineering and Engineering Management, 13(3):61-64, 1999.
FIELDS OF STUDY
Major Field: Industrial and Systems Engineering.
vi
TABLE OF CONTENTS
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
VITA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
LIST OF TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
LIST OF FIGURES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x
CHAPTER 1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1. Review on airline revenue management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2. Research on origin and destination Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3. Research on the customer choice behavior models . . . . . . . . . . . . . . . . . . . . . . 10
1.4. Our airline revenue management solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CHAPTER 2. MULTI-STAGE STOCHASTIC PROGRAMMING IN
REVENUE MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1. Model description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Allocation methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3. Re-solving SLP model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Bid-price methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5. Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.6. Improving the partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
vii
CHAPTER 3. MODELING CUSTOMER CHOICE BY PREFERENCE
ORDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.1. Effect of the customer choice behavior in airline industry . . . . . . . . . . . . . . . 65
3.2. Our idea on modeling the network customer choice . . . . . . . . . . . . . . . . . . . . . 67
3.3. Model formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4. Our heuristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.5. Implement the policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.6. Relationship with the independent demand model . . . . . . . . . . . . . . . . . . . . . . 85
3.7. Numerical experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
APPENDIX A. NUMERICAL EXPERIMENTS CODES . . . . . . . . . . . . . . . . . . . . . 102
A.1. The structure of the program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
viii
LIST OF TABLES
2.1
Simulation results for allocation policy . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2
Simulation results for bid price policy. . . . . . . . . . . . . . . . . . . . . . . . . 45
2.3
Simulated expected revenue for plan A and B . . . . . . . . . . . . . . . . 60
2.4
Simulation results for allocation policy with new partition . . . . 61
2.5
Simulation results for bid price policy with new partition . . . . 61
2.6
Comparison between plan B and C in expected revenue . . . . . . 62
2.7
Wait-and-see values for examples 1 and 2 . . . . . . . . . . . . . . . . . . . . . 62
3.1
Experiment 2 fare level setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.2
Experiment 2 setting, budget - budget sensitive; time - time
sensitive; hybrid - hybrid type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.3
Model (3.11) simulation confidence interval summary . . . . . . . . . 91
3.4
SLP model simulation confidence interval summary . . . . . . . . . . . 91
3.5
Comparison results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
ix
LIST OF FIGURES
1.1
The rate level snapshot of coach class on Monday . . . . . . . . . . . . .
2
1.2
The rate level snapshot of coach class on Friday . . . . . . . . . . . . . .
3
1.3
Illustration of customer choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4
The position of revenue management department . . . . . . . . . . . . . 14
1.5
Our total solution for airline revenue management . . . . . . . . . . . . 15
2.1
Graph of the recourse function in a three-stage problem . . . . . . 25
2.2
Example 1 for Numerical Experiment . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3
Example 2 for Numerical Experiment . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4
Problem Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5
Our adaptive re-solving heuristic on identifying right solving
point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6
Graph of the function H(t) =
P
j,k qj,k E[ξjk (t)]
for Examples 1
(left) and 2 (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7
Rejection frequencies between plan A (left) and B (right)
happened in Example 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.8
Solving frequencies upon time points between plan A (left) and
B (right) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1
Small Example on Preference Orders . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2
Business Customers’ Preference Order . . . . . . . . . . . . . . . . . . . . . . . . 68
x
3.3
Budget Sensitive Customers’ Preference Order . . . . . . . . . . . . . . . . 69
3.4
The customer choice process inside a preference order . . . . . . . . 71
3.5
Example for the computational issue . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6
Roadmap of modeling the customer choice . . . . . . . . . . . . . . . . . . . 74
3.7
Applying the non-zero allocation heuristically . . . . . . . . . . . . . . . . 84
3.8
Applying heuristic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.9
The independent demand model’s structure . . . . . . . . . . . . . . . . . . . 86
3.10
The comparable preference order model’s structure . . . . . . . . . . . 87
3.11
Numerical Experiments Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.12
Preference orders in example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.13
Experiment to show the value of customer choice . . . . . . . . . . . . 92
3.14
Structure of preference orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
A.1
Brief program structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
xi
CHAPTER 1
INTRODUCTION
1.1. Review on airline revenue management
Revenue management involves the application of quantitative techniques to improve profits by controlling the prices and availabilities of various products that are
produced with scarce resources. Perhaps the best known revenue management application occurs in the airline industry, where the products are tickets (for itineraries)
and the resources are seats on flights. In view of many successful applications of
revenue management in different areas, this topic has received considerable attention
in the past few years both from practitioners and academics. The recent book by
Talluri and van Ryzin (2004b) provides a comprehensive introduction to this field,
see also references therein.
Most people who have experience of booking airline tickets realize the price
changes frequently as time goes. For example, suppose you want to book a round
trip ticket from Memphis to Washington, DC on Feb 23 through Feb 28, coach class
for one adult. The booking snapshots in Figure 1.1 and Figure 1.2 show a possible
outcome of the request.
The flight 2063’s coach class rate is $1043 on Monday and $1172 on Friday the
same week. Such changes result from the internal operations, pricing, and seat allocation. Although pricing is an important activity in revenue management, the model
for pricing is largely heuristic and empirical. Basically, the pricing method is based on
an internal parameter called performance index. The company usually picks several
sensitive parameters, such as occupancy percentage, competitor’s rate, sales forecast,
1
Figure 1.1. The rate level snapshot of coach class on Monday
and other related historical records, to calculate a number called the performance index. The performance index is a measure for market performance of certain product
offered. Usually, higher score on performance implies better performance, and therefore, higher price and vise versa. Although adjusting prices by performance index is
not a well recognized model for pricing, it has been widely used in various industries,
such as self-storage, retail and airline industries. We acknowledge that the methods
applied among individual companies might be different in formation and description.
Adjusting prices by performance index might backfire the revenue. The most
obvious impact is that it could confine the airplane occupancy at certain level. Also,
2
Figure 1.2. The rate level snapshot of coach class on Friday
due to the time lag in data processing and validating, this model can not handle all
the real time price change requests from the field.
Another important operation is the seat allocation which could reflect the price
change as well. The airline company makes the change on the number of available
seats with a fixed price. In the seat allocation operation, there are usually 18-22
classes for a 138 seats Boeing 737. All those classes have different prices and some
small classes only have fewer than 5 seats listed. Upon the booking requests, the
airline company makes decisions to open or shut down certain classes. This shapes a
3
way of dynamic pricing. In this dissertation, we focus on seat allocation method and
assume the rate levels are largely fixed.
1.2. Research on origin and destination Model
A common way to model the airline booking process is as a sequential decision
problem over a fixed time period, in which one decides whether each request for a
ticket should be accepted or rejected. A typical assumption is that one can separate
demand for individual itinerary-class pairs; that is, each request is for a particular
class on a particular itinerary, and yields a pre-specified fare. Typically, a class
is determined by particular constraints associated with the ticket rather than the
physical seat. For example, a certain class may require a 14-day advance purchase,
or a Saturday night stay, etc.
The existence of different classes reflects different customer behaviors. The classical example is that of customers traveling for leisure and those traveling on business.
The former group typically books in advance and is more price-sensitive, whereas the
latter behaves in the opposite way. Airline companies attempt to sell as many seats
as possible to high-fare paying customers and at the same time avoid the potential
loss resulting from unsold seats. In most cases, rejecting an early (and lower-fare)
request saves the seat for a later (and higher-fare) booking, but at the same time
this creates the risk of flying with empty seats. On the other hand, accepting early
requests raises the percentage of occupancy but creates the risk of rejecting a future
high-fare request because of the constraints on capacity.
The airline booking problem was first addressed by Littlewood (1972), when he
proposed what is now known as the “Littlewood Rule”. Roughly speaking, the rule —
proposed for a two-class model — says that low-fare bookings should be accepted as
long as their revenue value exceeds the expected revenue of future full fare bookings.
4
This basic idea was subsequently extended to multiple classes (see, e.g., Brumelle and
McGill (1993)). Later, it was shown that, under certain conditions, it is optimal to
accept a request only if its fare level is higher or equal to the difference between the
expected total revenues from the current time to the end when respectively rejecting
and accepting the request; see, for instance Subramanian, Stidham, and Lautenbacher
(1999). This rule immediately leads to the question “How to evaluate or approximate
the expected total revenue from the current time until the end of booking?” We will
return to that later.
Many of early models were built for single flights. While that environment allows
for the derivation of optimal policies via dynamic programming even with the incorporation of extra features Subramanian et al. (1999), the drawback is clear in that
the booking policy is only locally optimized and it cannot guarantee global optimality. To see this, consider the following example. A company operates among three
cities, A, B, and C. A request pays $100 for trip from A to C (via B) while two other
requests pay respectively $50 for a trip from A to B and $80 for a trip from trip B
to C. Suppose there is only one seat available on each of the flights (i.e., AB and
BC). If the company optimizes for each flight individually, then the A-to-C request
will probably be accepted. However, if the two flights are viewed together, then it is
clear that the A-to-B and B-to-C requests should accepted instead. For that reason,
we focus on the discussion of the network-based problem. In airline revenue management terminology, this model is sometimes called origin-destination (OD) model or
passenger-mix problem. This model was raised by Statistics and Forecasts Branch of
Transport Canada to generate air traffic forecasts in 1976. Since its structure could
be formulated into mathematical programming models (see Curry (1990)), OD model
has become one of most important models in network airline revenue management.
Williamson (1992) provided a detailed analysis on it.
5
In general, network models can only provide heuristics for the booking process,
since determining the optimal action for each request in a network environment is
impractical from a computational point of view. One type of heuristics is based
on mathematical programs, where the decision variables are the number of seats to
allocate to each class. In particular, methods based on linear programming techniques
have been very popular in industry, for several reasons. First, linear programming is
a well developed method in operations research; its properties have been thoroughly
studied for decades. Secondly, commercial software packages for linear programming
are widely available and have been proved efficient and reliable in practice. Finally, the
dual information obtained from the linear program can be used to derive alternative
booking policies, based on bid-prices; We will return to that in section 2.4.
Glover, Glover, Lorenzo, and McMillan (1982) were perhaps the first to describe
a network revenue management problem in airlines. By assuming that passenger
demands are deterministic, they focused on the network aspects of the model (e.g.,
using network flow theory) rather than on the stochastic aspect of customer arrivals.
Dror., Trudean, and Ladany (1988) proposed a similar network model, again with
deterministic demand. The proposed improvements allow for cancelations, which
often happens in the real booking process.
Booking methods based on linear programming were thoroughly investigated by
Williamson (1992). The basic models take stochastic demand into account only
through expected values, thus yielding a deterministic program that can be easily
solved. However, the drawback of such approach is obvious, as it ignores any distributional information about the demand. Furthermore, there is a method called
nesting which arranges all the booking classes by their net contributions. A higher
contribution implies a higher class. In a single leg setting, the net contributions
are the fare levels; in a network environment, the net contributions are the shadow
6
prices for legs involved. Usually, higher class customers could reserve seats from all
the allocations assigned to lower booking classes. Bertsimas and de Boer (2003) and
van Ryzin and Vulcano (2003) give a detailed algorithm about nesting under uncertain demand. However, the nesting method encounters a modeling difficulty. Also, it
is hard to evaluate revenue analytically rather than through simulation because the
customer arrival sequence involved. We provided detailed analysis in the Section 2.5.
Hence, in this dissertation, we did not simulate any nesting solutions.
A common way to attempt to overcome that problem is to re-solve the LP several
times during the booking horizon. While such an approach may seem intuitive, it
turns out that re-solving can actually backfire — indeed, Cooper (2002) shows a
counter example where re-solving the LP model may lower the total expected value.
An alternative way to incorporate demand distribution information into the model
is by formulating a stochastic linear program (SLP). In the simplest case, an SLP
contains two stages — in the first stage decisions are made before the uncertainty
is realized, and in the second stage (i.e. after uncertainty is realized) a correction is
made. Such a correction is called recourse. Stochastic programs have been used in
a wide range of settings; see, for instance, Birge and Louveaux (1997) for a comprehensive treatment. In the particular case of airline bookings, such models typically
reduce to a subclass of recourse models called simple recourse, a formulation that is
called probabilistic nonlinear program in the revenue management literature (see, e.g.,
Williamson (1992)). Higle and Sen (2001) propose a different stochastic programming
model, based on leg-based seat allocations, which yields an alternative way to compute bid prices. Their experiments suggest that the bid price policy derived from
the leg-based stochastic programming model tends to yield higher revenues than the
bid price policy generated by the standard deterministic linear programming model,
especially when the number of fare classes is not very large; we refer the reader to
7
that paper for details. Another stochastic optimization model is proposed by Cooper
and Homem-de-Mello (2003), who consider a hybrid method where the second stage
is actually the optimal value function of a dynamic program.
A natural extension of a two-stage stochastic program is a multi-stage stochastic
program (MSSP). Instead of making an initial decision and making adjustments at
the end as in the two-stage case, the basic idea of MSSPs is to revise the decisions
periodically over time, taking into account the realization of the uncertainty up to
that point. Thanks to this flexibility, it is clear that multi-stage models produce better
results than two-stage models; the price to pay, of course, is that such problems are
harder to solve. We refer again to Birge and Louveaux (1997) for a detailed discussion.
In this dissertation, we focus on various aspects of the multi-stage version of the
simple recourse model discussed above (henceforth denoted SLP). We show that, while
MSSP does provide a better policy than SLP in terms of expected total revenue, the
loss of computational efficiency resulting from the structure of the problem is costly —
simple recourse models can be solved very efficiently with linear integer programming,
whereas the multi-stage extension does not have convexity or concavity properties
(even its continuous relaxation). Lack of convexity/concavity prevents the application
of most techniques developed for multi-stage models (see, e.g., Birge (1985), Birge,
Donohue, Holmes, and Svintsiski (2005), Gassmann (1990)).
Given the difficulty to develop an exact algorithm for the underlying MSSP, we
propose an approximation based on solving a sequence of two-stage simple recourse
models. The main advantage of such an approach is that, as mentioned above, each
two-stage problem can be solved very efficiently, so an approximating solution to the
MSSP can be obtained reasonably quickly. The idea of solving two-stage problems
sequentially is not new, and appears in the literature under names such as rolling horizon and rolling forward ; see, for instance, Balasubramanian and Grossmann (2004),
8
Bertocchi, Dupacova, and Moriggia (2001), Kusy and Ziemba. (1986). The details
on the implementation of the rolling horizon, however, vary in the above works. Our
work is more closely related to Balasubramanian and Grossmann (2004) in that we
consider shrinking horizons, i.e., each two-stage problem is solved over a period spanning from the current time until the end of the booking horizon. This is called the
re-solving SLP approach.
Although the rolling horizon approach has been proposed in the literature, to the
best of our knowledge there have been no analytical results regarding the quality of
the approximation. We provide some results of that nature, though we do not claim
to give definitive answers. More specifically, we compare the policies obtained from
the re-solving SLP approach with the policies from SLP model without re-solving and
from MSSP. Our results indicate that solving the SLP sequentially cannot be worse (in
terms of expected revenue of the resulting policy) than solving it only once — a result
that, although seemingly intuitive, does not hold when one uses the deterministic LP
model Gupta and Cooper (2002). We also show that, for a given partition into stages,
the policy from MSSP is better than the policy from re-solving SLP. However, the
inclusion of just one extra re-solving point can make the re-solving approach better.
The importance of this conclusion arises from the fact that, because of the sequential
nature of the re-solving procedure, adding an extra re-solving point requires little
extra computational effort; in comparison, including an extra stage in a multi-stage
model makes the problem considerably bigger and therefore harder to solve.
Motivated by the flexibility of the re-solving approach, we also study the issue
of whether one can improve the results by carefully choosing the re-solving points
instead of using equally sized intervals as it is usually done. Indeed, the structure of
our problem allows us to do so, and we provide a heuristic algorithm to determine the
9
re-solving points. Our numerical results, run for two medium-sized networks, indicate
that the procedure is effective.
1.3. Research on the customer choice behavior models
In practice, customers are not completely segmented into classes. Consider the
following live example in Figure 1.3. I was booking a ticket from Salt Lake City to
Memphis for a business trip.
Figure 1.3. Illustration of customer choice
There were two possible choices, Delta 1231/5459 or Delta 1231/5461, that would
allow me to catch a meeting in the afternoon. However, there is a big difference
10
between prices of all the possible choices. In order to control the budget, I would like
to choose flight 1231/5459 to save some money. This illustrates the case where a customer may be willing to buy an expensive ticket for a particular class on a particular
itinerary, but if a lower-priced ticket is available on the same flight he or she will likely
take it. Such a shortcoming of the segmented-demand model has long been recognized by academicians and practitioners alike. However, that practice was considered
relatively harmless until it was realized that this model deficiency was leading to progressive deterioration of revenues, even though an underlying optimization model was
being used. To illustrate the point, suppose that there are two classes of tickets on a
single flight and that customers choose to buy a low-fare ticket unless there is none
available, in which case they purchase the high-fare one. Suppose also that the airline
chooses how many seats to reserve for high-fare tickets based on past sales of high-fare
tickets, while neglecting to account for the fact that availability of low-fare tickets will
reduce sales for high-fare tickets. Then, if more low-fare tickets are made available,
low-fare sales will increase and high-fare sales will decrease, resulting in lower future
estimates of high-fare demand, and consequently leading to smaller availability of
high-fare tickets and greater availability of low-fare tickets. The pattern continues,
resulting in a progressive decrease of high-fare sales and revenues. This phenomenon,
called “spiral-down”, was first demonstrated through simulation by Boyd, Kambour,
and Tama (2001), and subsequently analyzed in detail by Cooper, Homem-de-Mello,
and Kleywegt (2005).
A few papers in the literature deal with models for the customer choice behavior
in the airline setting. Belobaba (1989) models a heuristic called the expected marginal seat revenue (EMSR) to allocate seats to the different classes. The idea assumes
that every customer has a non-homogenous probability distribution on choosing multiple tickets. Although this work is based on the independent demands assumption
11
across classes, the ”buying up-down” model could be an excellent method for modeling customer choice behavior on discounted seats. Belobaba and Weatherford (1996)
and Bodily and Weatherford (1995) build their heuristics on the modified EMSR
model for solving customer choice in the single leg problem. Brumelle, McGill, Oum,
Sawaki, and Tretheway (1990) provide the optimal condition for the single leg customer buying-up model. Talluri and van Ryzin (2004a) provide an exact analysis of
a single leg model of RM under a general discrete choice model of demand. Despite
all those works reveals the customer choice in single leg problems, those models have
two common drawbacks: first, the operation in major airline is largely based on the
network environment which is expected to be a large and multiple resources problem;
second, all those models require the information of the next customer’s behavior.
Upon each request, we should know the probabilities for all the customer choices at
booking class level.
Both academia and industrial partners realize that a customer choice model for
the network environment would be a great step forward. Currently, most customer
choice models are usually built by dynamic programming. However, the problem
scale becomes more considerably huge to solve. To simplify the model, researchers
look for special structures and assumptions. For example, Zhang and Cooper (2004)
analyze the customer choice among different departure times between the same city
pair. They assume the customer will only make a choice among alternatives within
the same booking classes. Their model suggests that the customer cares about the
flight schedule most. They also developed the bounds and approximations for the
dynamic programming model. van Ryzin and Liu (2004) discussed a choice based
deterministic linear programming model which is to determine the amount of time
to offer each possible subset of available products. The author propose a dynamic
decomposition heuristic method to solve this problem. They applied simulation based
12
method to calculate virtual control offer set at certain time. This method avoids the
computational obstacle in dynamic programming. At the same time, since it is a
simulation based method, it might be hard to reach an analytic conclusion.
In our research, we propose a new model for the seat allocation problem in a
network environment that takes customer choices into account. A central concept
to our work is that of the customer preference order to describe the gross customer
behavior regarding the order of classes for which they will try to purchase tickets. If
the customer’s first choice is not available, she will either try her second choice or
decide not to purchase anything. If her second choice is not available either, then
again either she moves to her next choice or decides not to purchase anything, and
so on. We model each customer’s decision made at each step — i.e., between trying
the next choice or leaving the system — as a Bernoulli random variable with known
probability. Our basic assumption is that customers can be grouped into categories
so that all customers in the same category have the same preference order and the
corresponding probabilities reflect well their common behavior. Moreover, we assume
that the booking requests for each category are mutually independent with known
distribution.
Based on the above assumptions, we propose a stochastic programming model to
determine the number of seats to be allocated to each class within each preference
order. The form of that model prevents the use of efficient solution techniques;
hence, we propose an approximating model, whereby the random number of buyingup customers is replaced with its expected value. We show that the approximating
problem is a two-stage stochastic integer program, which can then be efficiently solved.
Despite its convenience in terms of allowing for solution techniques, our model
does not produce an allocation policy that is ready to be implemented. Its drawback
comes mainly from the fact that the allocations for each class are fragmented across
13
the various preference orders in which that class appears. To remedy that problem, we
use a post-optimization heuristic called “backup policy”, which essentially combines
the allocations of the various fragments for each class. Our numerical experiments
suggest that the use of the backup policy considerably improves the revenue.
1.4. Our airline revenue management solution
An airline revenue management department is a quantitative work related department. It takes models inputs from the planning and scheduling department, sales and
marketing department, and pricing department. The overall model output should be
a flexible seat allocation for the distribution department to use. All the operations
are initialized by scheduling and the planning department and ended by distribution
department.
Figure 1.4. The position of revenue management department
Our research focuses on the operation inside the revenue management department
only. Clearly, our research has two parts, the seat allocation optimization and the
customer preference order model. Although being discussed individually, they are
14
highly related and should be integrated in the revenue management process altogether. Applying the seat allocation model only would have to assume highly correlated demands which are not the case in the real business. On the other hand, the
customer preference order model only functions as a way to incorporate the demands
correlation. Therefore, our total solution for airline revenue management would be
shown in Figure 1.5.
Figure 1.5. Our total solution for airline revenue management
All those modules would be inside the revenue management department and we
believe this method would be compatible with all the other airline operations, such as
planning and pricing. This property gives us advantage to move forward for business
implementation. In the next several chapters, we would cover detailed discussion on
both parts.
15
CHAPTER 2
MULTI-STAGE STOCHASTIC PROGRAMMING IN
REVENUE MANAGEMENT
2.1. Model description
Following the standard models in the literature, we consider a network of flights
involving p booking classes of customers. This model can represent demand for a
network of flights that depart within a particular day. Each customer requests one
out of n possible itineraries, so we have r := np itinerary-fare class combinations.
The booking process is realized over a time horizon of length τ . Let {Njk (t)} denote
the point process generated by the arrivals of class-k customers who request itinerary
j. Typical cases customary in the revenue management literature are (i) {Njk (t)} is
a (possibly nonhomogeneous) Poisson process, and (ii) there is at most one unit of
demand per time period. we assume that arrival processes corresponding to different
pairs (j, k) are independent of each other.
The demand for itinerary-class (j, k) over the whole horizon is denoted by ξjk (i.e.,
ξjk = Njk (τ )) and we denote by ξ the whole vector (ξjk )jk . The network is comprised
of m leg-cabin combinations, with capacities c := (c1 , . . . , cm ), and is represented by
an (m × np)-matrix A ≡ (ai,jk ). The entry ai,jk ∈ {0, 1} indicates whether class k
customers use leg i in itinerary j.
Most policies we deal with are of allocation type. We denote by xjk the decision
variable corresponding to the number of seats to be allocated to class k in itinerary
j. Whenever a itinerary-class pair (j, k) is accepted, the revenue corresponding to
the fare fjk accrues. In that case, of course, a seat is assigned to that customer, so
16
there will be fewer seats available to sell to future customers (we do not consider
overbooking in our model). A customer’s request is rejected if no seats are available
for his itinerary-class, in which case no revenue is realized. The vectors of decision
variables and fares are denoted respectively by x = (xjk ) and f = (fjk ).
2.2. Allocation methods
Allocation methods require solving an optimization problem to find initial allocations before the booking process starts. Suppose for the moment that we want to keep
these initial allocations throughout the horizon. Then, since all costs and constraints
are linear, we can formulate the following linear program:
max f T x
[LP]
subject to
Ax ≤ c,
x ≤ ξ w.p.1
x ≥ 0.
Despite its apparently simplicity, the above model is not practical, because of the
constraint x ≤ ξ. Such a constraint implies that either x must be less than any
possible realization of ξ — which is too strong a restriction — or that x is determined
after the random vector ξ is realized. In our model, however — as is the case with
most practical problems where uncertainty is involved — the decision must be made
in advance. Therefore, formulation [LP] is not adequate.
A simple attempt to overcome the problem with the constraint x ≤ ξ is to replace the random vector ξ with its expected value. The resulting deterministic linear
17
program (DLP) is then written as follows:
max f T x
[DLP]
subject to
Ax ≤ c,
x ≤ E[ξ]
x ≥ 0.
Model [DLP] is well known in the revenue management literature, and indeed it
is often used by airline companies thanks to its simplicity. Implementation of the
resulting policy x∗ is very simple — accept at most x∗jk class k customers in itinerary
j. Notice that the policy is well-defined even if the solution x∗ is not integer. Notice
also that the objective function of [DLP] is not the actual revenue resulting from the
policy x∗ , even if x∗ is integer.
A major drawback of formulation [DLP] is the fact that it completely ignores
any information regarding the distribution of demand, except for the mean. It is
well known that, in general, the introduction of information about the distributions
of the underlying random variables leads to richer models — although there are
exceptions to this rule, see e.g. Williamson (1992) for a discussion in the context of
nested allocations. This suggests that, in order to capture the randomness inherent
to the problem, one should replace model [DLP] by something that explicitly models
randomness. As seen above, formulation [LP] is not the answer either. As discussed
extensively in Birge et al. (2005), rather than trying to find a solution for each specific
scenario, one should compute a solution that is “good” for all the possible scenarios,
18
in terms of maximizing the expected total revenue. This leads to the formulation
max f T E[min{x, ξ}]
subject to
Ax ≤ c,
x ∈ Z+ ,
where the min operation is interpreted componentwise (note that we have imposed
an integrality constraint on x to ensure we get an integer allocation of seats; we will
comment on that later). Equivalently, we have (see also Higle and Sen (2001))
max f T x + E[Q(x, ξ)]
[SLP]
subject to:
Ax ≤ c,
x ∈ Z+ ,
where
Q(x, ξ) = max {−f T y|x − y ≤ ξ, y ≥ 0}.
Notice that [SLP] is in the standard form of two-stage stochastic programs. In particular, it is a two-stage integer problem with simple recourse. A major advantage
of such models is that, when ξ has a discrete distribution with finitely many scenarios, problem [SLP] can be easily solved because of its special structure. In principle,
this may not be the case of our model, for example when the total demand for each
itinerary-class pair (j, k) has Poisson distribution, which has infinite support. It is
clear, however, that in that case all but a finite number of points in the distribution
have negligible probability; thus, we can approximate the distribution of ξjk by a
19
truncated Poisson. Thus, in what follows we assume that ξ takes on finitely many
values, and that those values are integer.
To describe the solution procedure, we need to introduce some notation. For each
S
itinerary-class pair (j, k), let {d1jk , . . . , djkjk } denote the possible values taken by ξjk ,
s
ordered from lowest to highest. Let {δjk
}, s = 1, . . . , Sjk be coefficients defined as
s
:= fjk P (ξjk ≤ dsjk ). As discussed in Birge and Louveaux (1997) and Kall and
δjk
Wallace (1994), problem [SLP] can then be re-written as
T
max f x −
x,u,u0
(2.1)
Sjk
XX
s s
δjk
ujk
j,k s=1
subject to:
Ax ≤ c
u0jk
+
Sjk
X
usjk − xjk = −E[ξjk ]
s=1
u0jk ≤ d1jk − E[ξjk ]
0≤u≤1
x ∈ Z+ .
Notice that the decision variables of the linear integer program (2.1) are the vectors
x = (xjk ), u0 := (u0jk ) and u := (usjk ), s = 1, . . . , Sjk . That is, problem (2.1) has
O(Snp) variables and O(Snp + m) constraints (where S := maxj,k Sjk ), which is
far smaller than the deterministic linear program corresponding to general two-stage
programs with finitely many scenarios — in that case, it is well known that the
number of constraints and variables is exponential on the number of scenarios, see for
instance Birge and Louveaux (1997). Thus, problem (2.1) can be solved by standard
linear integer programming software.
20
It is worthwhile pointing out that the objective function of [SLP] does correspond
to the actual expected revenue resulting from a feasible policy x — though this is not
true if the integrality constraint is relaxed. Note also that the solution obtained from
[DLP] yields the same expected revenue as its truncated version. Moreover, it is easy
to see that a truncated feasible solution to [DLP] is feasible for [SLP]. An immediate
consequence of these facts is that the optimal policy calculated from [SLP] is never
worse than that of the DLP model in terms of expected total revenue. We emphasize
that this is true in the present context of simple allocation policies — as mentioned
earlier, it has been observed that such a property does not hold for nested policies.
2.2.1. Multi-stage models
As discussed above, by taking uncertainty into account the SLP model yields a better
policy than the deterministic model DLP. However, both models have a major drawback — they are static, in the sense that they determine a policy at the beginning
of the horizon and follow this policy throughout the booking period. It is plausible
to think that, in a practical setting, one would revise the policy from time to time,
taking into account the information about demand learned so far. This is precisely
the idea of multi-stage stochastic programming (MSSP) models. We describe next a
MSSP formulation for the booking problem under study.
Suppose we divide the time horizon [0, τ ] into H + 1 stages numbered 0, 1, . . . , H.
The stages correspond to some partition 0 = t0 < t1 < . . . < tH−1 < tH = τ of
the booking horizon, so that stage 0 corresponds to the beginning of the horizon
and stage h (h = 1, . . . , H) consists of time interval (th−1 , th ]. The decision variables
at each stage are denoted x0 , . . . , xH , where xh = (xhjk )j,k . Also, we associate with
h
each stage h, h = 1, . . . , H, random variables ξjk
representing the total demand for
h
itinerary-class (j, k) between stages h − 1 and h, that is, ξjk
= Njk (th ) − Njk (th−1 ).
21
h
We denote by ξ h the random vector (ξjk
)j,k . Notice that the decision vector xh at
stage h is actually a function of x0 , x1 , . . . , xh−1 and ξ 1 , . . . , ξ h .
The resulting multi-stage model is written as follows:
£
¤
max f T x0 + Eξ1 Q1 (x0 , ξ 1 )
[MSSP]
subject to
Ax0 ≤ c
x0 ∈ Z+ .
The function Q1 is defined recursively as
Qh (x0 , . . . , xh−1 , ξ 1 , . . . , ξ h ) = max f T xh − f T [xh−1 − ξ h ]+ +
xh
£
¤
Eξh+1 Qh+1 (x0 , . . . , xh , ξ 1 , . . . , ξ h+1 )
subject to
h
Ax ≤ c − A
h
X
min{xm−1 , ξ m }
m=1
xh ∈ Z + ,
(h = 1, . . . , H − 1), where [a]+ := max{a, 0} and the max and min operations are
interpreted componentwise. Notice that we use the notation
£
¤
Eξh+1 Qh+1 (x0 , . . . , xh , ξ 1 , . . . , ξ h+1 )
22
£
¤
to indicate the conditional expectation E Qh+1 (x0 , . . . , xh , ξ 1 , . . . , ξ h+1 ) | ξ 1 , . . . , ξ h .
For the final stage H We have
QH (x0 , . . . , xH−1 , ξ 1 , . . . , ξ H ) = −f T xH ,
xH = [xH−1 − ξ H ]+ .
where
Observe that in the above formulations we use the equality E[min{a, Y }] = a − E[[a −
Y ]+ ], where a is deterministic and Y is a random variable.
From the discussion above, we see that the multi-stage stochastic program [MSSP]
is, in principle, the best model for the problem under study, since it takes the stochastic and dynamic features of the problem into account. More generally, multi-stage
stochastic programming models have proven to be very suitable for a variety of applications, from finance to energy planning — see e.g., Birge and Louveaux (1997).
Several methods have been developed for the case where all stages involve linear problems. One of the most well-known algorithms is an extension to the so-called L-shaped
algorithm developed for two-stage models by Slyke and Wets (1969). Roughly speaking, the L-shaped method computes successive outer linearizations of the expected
recourse function without violating the feasibility constraints. Each newly generated
cut leads to a relaxed model, and cuts are added to the relaxed model until the optimal solution is reached. Birge (1985) extended this idea to multistage stochastic
linear programs, see also Birge et al. (2005) and Gassmann (1990).
One requirement for the above mentioned algorithms to work is that the expected
recourse function be convex (or concave, for a maximization problem). Otherwise,
the linearization may not constitute an upper envelope to the objective function, and
the algorithm may not converge to the optimal solution. Moreover, these algorithms
were devised for continuous problems — research on multi-stage integer problems is
23
ongoing. Unfortunately, model [MSSP] described above does not fit that framework.
In fact, as we show below, even the continuous relaxation of that problem does not
have a concave expected recourse function.
Proposition 1. The continuous relaxation of model [MSSP] is neither convex nor
concave.
Proof. It suffices to show a counter-example. To do so, consider a three stage
programming problem. The second stage recourse function is
¤
£
T 1
T 0
1 +
1 2
2 Q2 (x , ξ )
Q1 (x0 , ξ 1 ) = max
f
x
−
f
[x
−
ξ
]
+
E
ξ
1
x
subject to
Ax1 ≤ c − A min{x0 , ξ 1 }
x1 ≥ 0,
where Q2 (x1 , ξ 2 ) = −f T [x1 − ξ 2 ]+ .
Suppose now that the model corresponds to a single-leg, two-class problem, with
the capacity equal to 9. There are two independent time periods. The demands
for the two time periods are deterministic, respectively ξˆ1 = (2, 6) and ξˆ2 = (3, 7).
ˆ is
Notice that it suffices to show that under this specific scenario the function Q1 (·, ξ)
neither convex nor concave, because we can assign probabilities to make this scenarios
significant. The fares for each class are respectively f1 = $500 and f2 = $100.
Figure 2.1 below shows the graph of the recourse function Q1 (x0 , ξˆ1 ) as a function
of the vector x0 . Notice that the negative values in the graph are artificial and simply
correspond to values of x0 that are infeasible, i.e., x01 + x02 > 15. The lack of concavity
or convexity is evident from the picture. In particular, we have Q1 ([2, 5], ξˆ1 ) = 1000
24
and Q1 ([2, 7], ξˆ1 ) = 400. The average of these values is 1400/2 = 700, which is larger
than 500, the value of Q1 at the midpoint [2, 6].
¤
3000
2000
1000
0
−1000
−2000
−3000
0
−4000
2
−5000
0
4
2
6
4
6
8
8
10
10
Figure 2.1. Graph of the recourse function in a three-stage problem
The lack of concavity of the recourse function imposes difficulties to solve problem
[MSSP]. Notice that this obstacle exists only for problems with three or more stages.
Based on the latter property, in section 2.3 we will discuss an alternative approach
to solve the allocation problem.
2.3. Re-solving SLP model
A natural alternative to the multi-stage approach described in section 2.2.1 is to
revise the booking policy from time to time by re-solving a simpler model such as
[SLP]. While intuitively it can be argued such an approach may yield policies that
are inferior to the ones given by [MSSP] — which by construction finds the optimal dynamic policy —, we believe that the re-solving approach is worth studying,
for several reasons. First, as discussed before, the multi-stage model [MSSP] lacks
25
the convexity structure that is an essential requirement for the use of efficient algorithms; consequently, solution of [MSSP] is likely to be computationally intensive,
especially for large networks. Re-solving a problem such as [SLP], on the other hand,
is reasonably fast, since as described earlier each instance of [SLP] is equivalent to
a moderately sized linear integer program. Finally, it is clear that the complexity of
[MSSP] increases rapidly as the number of stages grow, since the number of decision
variables and constraints becomes larger; the complexity of re-solving, on the other
hand, clearly grows linearly with the number of stages.
We formalize now the re-solving approach. As in the case of the multi-stage model,
we partition the booking time horizon [0, τ ] into segments {0}, (0, t1 ], (t1 , t2 ], . . . , (tH−1 +
1, τ ] with 0 = t0 < t1 < . . . < tH−1 < tH = τ , and define ξ h , h ∈ {1, . . . , H} as the
demand during the time interval (th−1 , th ]. By ξˆh we denote a specific realization of
the random variable ξ h .
We initially (i.e. at time 0) solve the following problem:
"
(
max f T E min x,
H
X
m=1
[SLPR-0]
subject to
Ax ≤ c
x ∈ Z+ .
26
)#
ξm
Let x0 denote the optimal solution of the above problem. Then, at each time th ,
h = 1, . . . , H − 1 we solve
"
(
max f T E min x,
H
X
m=h+1
[SLPR-h]
)¯
#
¯
¯
ξ m ¯ ξ 1 = ξˆ1 , . . . , ξ h = ξˆh
¯
subject to
Ax ≤ c − A
h
X
min{xm−1 , ξˆm }
m=1
x ∈ Z+
and denote the optimal solution by xh . Note that the above model makes use of
the information up to time th — this is the reason why the constraints involve the
realizations {ξˆm } instead of the random variables {ξ m }. Also, as seen in section 2.2
each model [SLPR-h] is relatively easy to solve, since it can be formulated as a not
very large linear integer program.
Notice that the expectation in the objective function of [SLPR-h] is calculated
with respect to the overall demand from period h + 1 on. The idea is that this would
be the problem one would solve if it was assumed that no more re-solving would occur
in the future.
The idea of re-solving an optimization model to use the available information
is not new. In the context of stochastic programming, this is sometimes called the
rolling forward approach in the literature, see for instance Bertocchi et al. (2001)
and Kusy and Ziemba. (1986). The specific aspects of each problem, however, lead
to different ways to implement the rolling mechanism. For example, in Bertocchi
et al. (2001) a two-stage model is initially solved where the realizations at the second
stage correspond to all possible scenarios of the original problem. That is, such
a problem can be enormous and must be solved via some sampling method (see
27
Shapiro and Ruszczyński (2004) for a compilation of results). In contrast, in our
P
m
case the two-stage program [SLPR-0] deals only with the total demand H
m=1 ξ .
This reduces the number of scenarios drastically, especially when the distribution of
PH
m
m=1 ξ can be determined directly. Such is the case, for example, when the demand
for each itinerary-class (j, k) arrives according to a Poisson process — in that case,
PH
m
has a Poisson distribution, which then can be truncated as discussed in
m=1 ξ
section 2.2. This results in tractable two-stage simple recourse problems that can be
solved exactly.
The approach of considering two-stage problems with increasingly smaller horizons
has been used by Balasubramanian and Grossmann (2004) in the context of a multiperiod scheduling problem. They call it the shrinking horizon framework. Their
motivation is similar to ours — to provide a practical scheme for a difficult multistage integer problem. Notice however that in our case we have the additional issue
of lack of convexity/concavity, as discussed in section 2.2.1.
The idea of re-solving an optimization model to take advantage of the information
accumulated so far has been a common practice in revenue management applications.
While intuitive, such an approach may actually “backfire” if not used carefully. Indeed, Cooper (2002) shows a simple counter example where re-solving [DLP] leads
to a worse policy (in terms of expected revenue) than what would be obtained if one
had kept the original policy throughout. As we show next, this does not happen in
case [SLP] is re-solved.
Proposition 2. The policy obtained from using models [SLPR-h], h = 0, . . . , H −
1, yields an expected revenue which is greater or equal to that given by the policy
obtained from solving [SLPR-0] only.
28
Proof. It suffices to show that the first re-solving cannot worsen the expected
revenue. Let x0 denote the optimal solution of [SLPR-0]. Then, during the time
interval (0, t1 ], the booking allocation policy is x0 regardless of whether we are resolving or not. The difference happens after time t1 . For the non-re-solving process,
1
0
0 ˆ1
the policy to be used from time t+
1 on is x := x − min{x , ξ } because the non-
re-solving process continues to apply the initial policy. The policy for the re-solving
process is obtained by solving (SLPR-1), i.e.,
#
)¯
¯
¯
max f T E min x,
ξ m ¯ ξ 1 = ξˆ1
¯
m=2
"
(
H
X
subject to
Ax ≤ c − A min{x0 , ξˆ1 }
x ∈ Z+ .
Notice that
Ax1 = Ax0 − A min{x0 , ξˆ1 } ≤ c − A min{x0 , ξˆ1 }
for any possible realization of ξ1 . That is, x1 is a feasible solution for the re-solving
model, which means that the policy obtained by re-solving cannot be worse than x1 .
Since the objective function of [SLPR-1] is the expected revenue from time t+
1 on, it
follows that re-solving can only improve upon the initial policy.
¤
Proposition 2 shows that solving [SLPR-h] successively will keep improving the
booking policy. Notice that the re-solving method is somewhat similar to the multistage model in the sense that both yield dynamic booking policies that take the
information available so far into account. As mentioned earlier, it is intuitive that in
general [MSSP] gives a better solution. The proposition below formalizes that result.
29
Proposition 3. Under the same partition setting, the booking policy from multistage model [MSSP] yields an expected revenue which is greater or equal to that given
by the policy obtained from solving [SLPR-h] successively.
Proof. Let Ωh be the set of all possible sample paths of (ξ 1 , . . . , ξ h ). A feasible
solution for problem [MSSP] has the form
0
(2.2)
x ×
H
Y
Y
xh (ξˆ1 , . . . , ξˆh ),
h=1 ξ̂ 1 ,...,ξ̂ h ∈Ωh
where
Q
indicates the cartesian product and each component xh (ξˆ1 , . . . , ξˆh ) satisfies
(2.3)
Axh (ξˆ1 , . . . , ξˆh ) ≤ c − A
h
X
min{xm−1 (ξˆ1 , . . . , ξˆm−1 ), ξˆm }.
m=1
On the other hand, consider model [SLPR-h] under a specific realization ξ¯1 , . . . , ξ¯h
in the scenario tree, and denote its optimal solution by x̄h (ξ¯1 , . . . , ξ¯h ). Consider the
vector formed by the cartesian product of such solutions for all realizations and all
stages, i.e.,
0
x̄ ×
H
Y
Y
x̄h (ξ¯1 , . . . , ξ¯h ),
h=1 ξ̄ 1 ,...,ξ̄ h ∈Ωh
It is clear that the resulting vector has the form (2.2). Moreover, since the [SLPRP
h] problem has the constraints Axh ≤ c − A hm=1 min{xm−1 , ξ¯m }, it follows that
x̄h (ξ¯1 , . . . , ξ¯h ) satisfies (2.3). Therefore, the combined solution from the [SLPR-h]
models is actually a feasible solution in [MSSP].
¤
Despite the above result, the proposition and corollary below show that, under
perfect information, re-solving is in fact optimal.
Proposition 4. Under perfect information, the policies given by models [SLPR-0]
and [MSSP] are equivalent, in the sense that they yield the same expected revenue.
30
Proof. First let us write problem [MSSP] in a single mathematical program. we
need one decision variable for each stage h and each possible sample path (ξˆ1 , . . . , ξˆh )
up to stage h, which we shall denote xh (ξˆ1 , . . . , ξˆh ). Then, [MSSP] can be written as
max
H X
X
...
X
h=1 ξ̂ 1
f T min{xh−1 (ξˆ1 , . . . , ξˆh−1 ), ξˆh }p(ξˆ1 , . . . , ξˆh )
ξ̂ h
[MSSP-exp]
subject to
Ax0 ≤ c
Ax1 (ξˆ1 ) ≤ c − A min{x0 , ξˆ1 }
Ax2 (ξˆ1 , ξˆ2 ) ≤ c − A min{x0 , ξˆ1 } − A min{x1 (ξˆ1 ), ξˆ2 }
..
.
AxH−1 (ξˆ1 , . . . , ξˆH−1 ) ≤ c − A
H−1
X
min{xh−1 (ξˆ1 , . . . , ξˆh−1 ), ξˆh }
∀ξˆ1,...,H−1
h=1
x ∈ Z+ ,
In the above, the notation
P
ξ̂ h
means the summation over all possible realizations of
the random vector ξ h . Also, p(ξˆ1 , . . . , ξˆh ) denotes the probability of the sample path
(ξˆ1 , . . . , ξˆh ).
Suppose now there is perfect information, i.e. there is only one sample path, which
we denote by (ξ¯1 , . . . , ξ¯H ). Each decision xh is made with knowledge of the whole
31
vector (ξ¯1 , . . . , ξ¯H ). Then, [MSSP-exp] is written as
H
X
max
f T min{xh−1 , ξ¯h }
h=1
(2.4)
subject to
Ax0 ≤ c
Ax1 ≤ c − A min{x0 , ξ¯1 }
Ax2 ≤ c − A min{x0 , ξ¯1 } − A min{x1 , ξ¯2 }
..
.
H−1
Ax
≤c−A
H−1
X
min{xh−1 , ξ¯h }
h=1
x ∈ Z+ .
It is clear from the above formulation that, if x̃ := (x̃0 , . . . , x̃H−1 ) in an optimal
solution for (2.4), then so is (min{x̃0 , ξ¯1 }, . . . , min{x̃H−1 , ξ¯H }). That is, we can rewrite
32
(2.4) as
H
X
max
f T xh−1
h=1
(2.5)
subject to
Ax0 ≤ c
(2.6)
Ax1 ≤ c − Ax0
(2.7)
Ax2 ≤ c − Ax0 − Ax1
..
.
(2.8)
Ax
H−1
≤c−A
H−1
X
xh−1
h=1
xh−1 ≤ ξ¯h
h = 1, . . . , H
x ∈ Z+ .
Since the region defined by each constraint (2.6)-(2.8) contains the region defined by
the next inequality (recall that A has only non-negative entries), it follows that the
above problem can be simplified to
max f
T
H
X
xh−1
h=1
(2.9)
subject to
A
H
X
xh−1 ≤ c
h=1
xh−1 ≤ ξ¯h
x ∈ Z+ .
33
h = 1, . . . , H
Consider now the problem
max f T y
(2.10)
subject to
Ay ≤ c
y≤
H
X
ξ¯h
h=1
y ∈ Z+ .
Notice that (2.10) is precisely problem [SLPR-0] under perfect information. Thus, to
show the property stated in the proposition, it suffices to prove that the policies derived from (2.9) and (2.10) are equivalent. To do so, define Cy := {x feasible in (2.9) :
PH h−1
= y}. Let F be a mapping from {Cy : y ∈ Rnp } into the feasible region
h=1 x
of (2.10), defined as F (Cy ) = y. Consider now the mapping G that represents the
application of the policy obtained from [SLPR-0]. We can express G as a mapping
from the feasible region of (2.10) into RH×np , defined as follows. For each pair (j, k),
Pajk ¯h
ξjk . Then, we define G as
let ajk ≤ H be the largest number such that yjk ≥ h=1
Gh−1 (y)jk



h

ξ¯jk




:= yjk − Ph−1 ξ¯m
m=1 jk






0
1 ≤ h ≤ ajk
h = ajk + 1
ajk + 2 ≤ h ≤ H.
h
Notice that from the above definition we have 0 ≤ Gh−1 (y)jk ≤ ξ¯jk
for all h =
1, . . . , H. Moreover,
H
X
h=1
h−1
G
(y)jk =
ajk
X
h
ξ¯jk
+ yjk −
ajk
X
m=1
h=1
34
m
ξ¯jk
+
H
X
h=ajk +2
0 = yjk .
It follows that G(y) := (G0 (y), . . . , GH−1 (y)) is feasible for (2.9) and, in addition,
PH
h−1
(y) = y. That is, G(y) ∈ Cy . By viewing Cy as an equivalence class, we
h=1 G
see that G is actually the inverse of F , i.e., F is a one-to-one mapping. Now, since F
preserves the objective function value, we conclude that the policies from (2.9) and
(2.10) are equivalent.
¤
Propositions 2, 3 and 4 together yield the following result.
Corollary 1. Under the same partition into stages and perfect information, the
policies given by models [SLPR-h], h = 0, . . . , H − 1 and [MSSP] are equivalent.
2.4. Bid-price methods
It is well known that allocation policies suffer from a drawback resulting from the
rigid segmentation of customers into classes. For instance, it could happen that all
seats allocated to a high-fare class are sold, while some low-fare class seats might
still be open for booking. Thus, all the requests for the high-fare class thereafter
would be rejected — even though there are seats available on the plane, which at
best will be sold to a low-fare customer. This is obviously not an optimal booking
policy. Some methods have been proposed in the literature to address this problem.
One of the methods is called nesting, which roughly speaking means that high-fare
customers can use seats that had been initially allocated to lower-fare classes. While
this is intuitive in a single-leg setting, in a network environment it is not immediate
how to implement such a mechanism, since there is no natural ranking of classes.
There are some heuristic methods to construct a ranking, such as the ones proposed
in Bertsimas and de Boer (2003) and de Boer., Freling, and Piersma., which yield a
nested allocation policy.
Another well-known approach is the bid price method. The basic idea of this
method is to assign prices to resources, and then accept only the requests whose
35
contribution is at least the same as the total bid price of resources used by that
request. In the context of airline booking, this means each leg has an incremental
price. A booking request corresponds to seat occupation in one or more legs; the sum
of the incremental prices for those legs is called bid price for this request. Then, the
request is accepted only if its fare is greater or equal to that amount.
Notice that this method automatically provides a form of nesting even in a network
environment, since by construction it cannot happen that a low-fare customer is
accepted while a high-fare request is rejected.
A natural way to determine the bid prices is to consider the expected benefit of
accepting a customer. Suppose that a request for class i (with fare fi ) arrives at
time t, and let u = (u1 , . . . , um ) denote the vector of unsold seats on each leg at
that point. Let Jt (u) be the expected total revenue from time t+ to the end given
the vector u of available seats. Then the bid price is Jt (u) − Jt (u − ei ), i.e., the
expected revenue obtained if the request is rejected minus the expected revenue if
the request is accepted (ei is the vector with 1 in component i and zeroes otherwise).
If fi ≥ Jt (u) − Jt (u − ei ), the request should be accepted, otherwise rejected. The
difficulty with this approach is that evaluation of Jt (u) and Jt (u − ei ) can be timeconsuming. Bertsimas and Popescu (2003) propose using the value of a deterministic
network linear programming problem in place of Jt , which allows for fast calculation
because of the structure of the problem.
An alternative way to determine bid prices is through the dual variables of the
allocation problems discussed in section 2.2. The argument for this approach is based
on two premises: first, the cost-to-go function Jt (u) can be approximated by the optimal value v(u) of a mathematical programming problem such as [DLP] or [SLP],
with capacity vector equal to u; second, the difference v(u) − v(u − ei ) can be approximated by sT ei , where s is a sub-gradient of v(·) at u. Under proper assumptions
36
— in particular, when v(·) is convex or concave — it is known that s is given by the
dual multipliers corresponding to the constraints Ax ≤ u. Thus, the approach works
well when the two approximations referred to above are reasonable.
Williamson (1992) studies the case where the bid prices are the dual variables
of [DLP]. This method is quite simple and easy to use. However, as pointed out in
Talluri and van Ryzin, it may behave poorly. As a remedy, Talluri and van Ryzin
propose a method based on a randomized linear programming. Essentially, the idea
of the method is to approximate the cost-to-go function Jt (u) by the optimal value
v P I (u) of problem [SLP] with capacity vector equal to u under perfect information.
That is, v P I (u) := E[V (u, ξ)] where V (u, ξ) = max{f T x|Ax ≤ u, 0 ≤ x ≤ ξ}. Since V
is a concave function (jointly in (u, ξ)), it follows that the sub-differential set ∂v P I (u)
is given by ∂E[V (u, ξ)] = E[∂V (u, ξ)]. Therefore, one can estimate a sub-gradient of
v P I (·) by drawing a sample ξ 1 , . . . , ξ N from the distribution of ξ and averaging the
dual multipliers of the problems max{f T x|Ax ≤ u, 0 ≤ x ≤ ξ i }, i = 1, . . . , N . This
estimate is then taken as the bid price for the problem. One significant advantage
of this approach over the bid prices from [DLP] is that it incorporates distributional
information on future demands.
An alternative method for calculating the bid price, also suggested in the literature, hinges on the two stage stochastic programming model [SLP]. That is, one
approximates the cost-to-go function Jt (u) by the optimal value v SLP (u) of problem
[SLP] with capacity vector equal to u. Notice the distinction between this approach
and the method of Talluri and van Ryzin — v SLP (u) is the optimal value of a “hereand-now” problem, whereas v P I (u) corresponds to a “wait-and-see” approach. A
related approach is described in Higle and Sen (2001), where the cost-to-go function
Jt (u) is approximated by a different here-and-now problem (a leg-based seat allocation
formulation).
37
Although the here-and-now methods seem to be more promising — in the sense
that the true cost-to-go function Jt (u) is of here-and-now nature — they may still
generate a worse policy, even comparing with the DLP method. Williamson (1992)
performed extensive simulation experiments on bid price policies. Her results show
that the bid price method from the deterministic model is not necessarily worse than
that from the stochastic model as one might expect. It is difficult however to provide a
theoretical comparison between the various methods. The reason is that the expected
total revenue from bid price is difficult to be evaluated analytically, since the arrival
order plays a role in the calculations. To illustrate this point, consider a single-leg
problem with two classes, and let f1 > f2 be the respective revenues. Suppose we
set the bid price at some value p < f2 . Then all the requests will be honored as
long as the capacity allows. It follows that the revenue corresponding to a sample
path where all class-2 customers arrive before class-1 customers will be different from
that corresponding to a sample path where all class-1 customers arrive before class-2
customers (assuming the total demand exceeds capacity). Thus, typically one resorts
to simulation in order to compare various bid-price policies. Despite this difficulty,
Talluri and van Ryzin provide an extensive analysis on bid price method in Talluri
and van Ryzin. In their work, they give two counter examples to show the suboptimality of the bid price method, but they also show that the bid price method is
asymptotically optimal as the capacity and customer demand grow.
2.4.1. Re-solving bid prices
It is clear from the structure of the bid-price policy that its form is too rigid —
depending on the values of the bid prices, entire classes may be rejected. In practice,
the bid prices are re-calculated on a regular basis in order to take into account new
information about the demand, thus providing a more flexible policy. When the bid
38
prices are obtained from dual multipliers of a mathematical program, this amounts
to re-solving the problem with updated information, which is precisely the setting of
section 2.3.
In light of the results of section 2.3, a natural question that arises is whether
the expected revenue under a bid price policy can be guaranteed to improve with a
re-solving approach. Unfortunately, the answer is negative, even if the bid prices are
calculated from the SLP model. We show below some small examples to illustrate this
issue, and the numerical results in section 2.5 for larger scale problems corroborate
our conclusions.
The example setting is the following. Consider a one-leg model with two booking classes, the less price-sensitive customers (class 1) paying $100 and more pricesensitive customers (class 2) paying $60. The capacity is 4. The demands for those
customers are denoted by ξ1 , ξ2 . Therefore the DLP model is
max 100x1 + 60x2
subject to:
x1 + x2 ≤ 4
0 ≤ x1 ≤ E[ξ1 ]
0 ≤ x2 ≤ E[ξ2 ].
For an arbitrary time t ≤ τ , let ξkt denote the (random) number of arrivals of class k
up to time t, and let η̂ t denote the actual number of sold seats up to time t. Therefore,
39
the re-solving DLP model is
max 100x1 + 60x2
subject to:
x1 + x2 ≤ 4 − η̂ t
0 ≤ x1 ≤ E[ξ1 − ξ1t ]
0 ≤ x2 ≤ E[ξ2 − ξ2t ].
The tables below show the possible outcomes of the corresponding bid price policy,
according to the values of the various quantities involved in the above problems.
Case 1 E[ξ1 ] > 4 and E[ξ1 − ξ1t ] > 4 − η̂ t :
Booking Methods
Open classes through time t Open classes thereafter
DLP without re-solving
1
1
DLP with re-solving
1
1
Case 2 E[ξ1 ] ≤ 4 and E[ξ1 − ξ1t ] > 4 − η̂ t :
Booking Methods
Open classes through time t Open classes thereafter
DLP without re-solving
1, 2
1, 2
DLP with re-solving
1, 2
1
Case 3 E[ξ1 ] > 4 and E[ξ1 − ξ1t ] ≤ 4 − η̂ t :
Booking Methods
Open classes through time t Open classes thereafter
DLP without re-solving
1
1
DLP with re-solving
1
1, 2
40
Case 4 E[ξ1 ] ≤ 4 and E[ξ1 − ξ1t ] ≤ 4 − η̂ t :
Booking Methods
Open classes through time t Open classes thereafter
DLP without re-solving
1, 2
1, 2
DLP with re-solving
1, 2
1, 2
Suppose now the demand for the whole horizon has the following distribution:
½
ξ1 =
5 with probability
1
2
1 with probability
1
2
½
,
ξ2 =
2 with probability
1
2
4 with probability 21 .
Moreover, suppose that we can divide the time horizon into two periods such that in
the first period there are two class-2 arrivals only. The capacity is c = 4. Notice that
we have E[ξ1 ] = 3 < 4 and ξ1t = 0 w.p.1, so E[ξ1 − ξ1t ] = 3.
From the tables above we see that the initial policy determined by the bid prices
is to accept all the requests. Then, after the first period, two seats are occupied, i.e.,
η̂ t = 2, and thus case 2 above applies. It follows that, when re-solving model [DLP] to
obtain new bid prices, the policy becomes only accepting class-1 customers. It is not
difficult to verify that the expected revenue for the second period is $155.95 under
non-re-solving policy, and $150 under the re-solving one. Since the expected revenue
for the first period is the same for both policies, it follows that the re-solving policy
behaves worse than the non-resolving one.
Similar results are obtained for the case of bid prices generated from model [SLP]
(under the same demand distribution as above), although the calculations are slightly
more complicated. The solution of the SLP problem is (2, 2)T , which implies that
the incremental price for the leg is $60. Thus, in the first time period two seats are
allocated to the class-2 customers, so the remaining capacity for the second period
is 2. When re-solving SLP model again, we get the new allocation at (2, 0)T which
implies the incremental price for the leg is $100. That is, the re-solving SLP method
41
changes policy from accepting all customers into accepting only class-1 customers. It
follows that the expected revenue for the second period is the same as in the DLP
case — $155.95 for non-re-solving, $150 for re-solving. This shows that re-solving
can be worse under the bid-price policy, even if it is generated from the SLP model.
Again, the results in section 2.5 corroborate these conclusions.
2.5. Numerical results
In this section we describe the results from numerical experiments performed with
the policies discussed above. Although our data set was randomly generated, we tried
to mimic real data as much as possible. To do so we imposed the following features,
which according to Weatherford, Bodily, and Pfeifer (1993) (1993), are characteristic
of actual booking processes. They are (1) uncertain number of potential customers;
(2) uncertain mix of high- and low-fare customers; (3) uncertain order of arrivals; and
(4) high-fare customers tend to arrive after the low-fare ones.
The first example is a 10-leg network described in Figure 2.2 below. We consider
all flights to/from the hub from/to each city, as well as the flights between two cities
connecting at the hub. Therefore, there are 30 possible itineraries in the network.
There are two booking classes for each flight, with the proportion of 1:3 between
high and low fare classes in terms of total requests. Following Weatherford et al.
Figure 2.2. Example 1 for Numerical Experiment
42
(1993) (1993), we model the booking process by a doubly stochastic non-homogeneous
Poisson process (NHPP), where the arrival intensity at time t has gamma distribution.
More specifically, for each itinerary j let λj1 (t) and λj2 (t) be the arrival intensity of
respectively high-fare and low-fare customers at time t. Denote by αj > 0 the total
expected number of requests for itinerary j over the booking horizon (i.e., for both
classes together). Let Gj be a random variable with gamma distribution with shape
parameter αj and scale parameter β 0 = 1 (that is, the density function of Gj is
fj (x) =
(x/β 0 )αj −1 e−x/β
β 0 Γ(αj )
0
, x ≥ 0).
We define λjk (t), k = 1, 2, as
where
λjk (t) = βjk (t) × Gj × ψk
µ ¶a −1 µ
¶b −1
1 t jk
t jk Γ(ajk + bjk )
βjk (t) =
1−
.
τ τ
τ
Γ(ajk )Γ(bjk )
The parameters ψ1 , ψ2 are set with the goal of reflecting the proportion of arrivals
for high- and low-fare customers. We take this proportion to be 1:3 in all itineraries,
so we set ψ1 = 0.25 and ψ2 = 0.75. Notice that, for each t, λjk (t) has gamma
distribution with shape parameter αj and scale parameter βjk (t)ψk . In particular,
E[λjk (t)] = αj βjk (t)ψk and hence the total expected number of arrivals for itinerary j
Rτ
is 0 E[λj1 (t)]+E[λj2 (t)]dt = αj ψ1 +αj ψ2 = αj , which is consistent with our definition
of αj .
The parameters βjk (t) are selected to reflect the arrival patterns of different classes.
High-fare customers tend to arrive close to the end of the booking horizon, whereas
low-fare customers usually appear early in the booking process. To model that, we set
aj1 > bj1 (high-fare customers), and aj2 < bj2 (low-fare customers). In our example
we used ajk , bjk ∈ {2, 6} for all j, k.
43
From Figure 2.2 we see that there are 10 one-leg and 20 two-leg itineraries. For
two-leg itineraries, we set the total expected number of requests equal to 100, that
is, αj = 100. The high and low fares are respectively fj1 = $500 and fj2 = $100. For
one-leg itineraries, we set the total expected number of requests equal to 40, that is,
αj = 40, with the high and low fares set as fj1 = $300 and fj2 = $80. All legs in the
network have capacity equal to 400, and the booking horizon has length τ = 1000
time units.
The second example is depicted in Figure 2.3. Again, we consider two classes for
each itinerary. Notice that there are 10 one-leg, 12 two-leg, and 8 three-leg itineraries.
The expected number of requests are 60, 150, and 100 respectively. The fare levels
for different type of itineraries are set as ($300, $80), ($500, $100), and ($700, $200).
The parameters ajk , bjk , ψ1 and ψ2 are the same as in the first example, as well as
the horizon length. The leg capacities are slightly different from the example 1. For
non-hub legs, such as leg 1, 2, 3, 4, 7, 8, 9, 10, the capacity is 400 seats. Leg 5, 6 are
hub legs whose capacity is 1000 seats.
Figure 2.3. Example 2 for Numerical Experiment
For each of the problems we implemented four basic policies: DLP, SLP, DLPbased bid price and SLP-based bid price. For each of the policies, we considered the
effect of solving it only once as well as twice and five times over the booking horizon.
The linear (integer) programs required to determine the policies were solved using
the software package XPressM P T M from Dash Optimization (under the Academic
44
Partnership Program). The results in Tables 2.1 and 2.2 show the average revenue
for each policy and each example, computed over 1000 replications. Next to each
number we display a 95% confidence interval for the corresponding expected revenue.
The results confirm the findings reported in sections 2.3 and 2.4 that the allocation
policy based on model [SLP] is more robust, in the sense that re-solving can only
improve the revenue. With bid prices or DLP-based allocation this is not necessarily
the case, as discussed in sections 2.3 and 2.4.
95% C.I.($)
Example 1
Example 2
E.R. ($), C.I.
Example 1
Example 2
LP
LP twice
LP five times
[401574,402386] [404094,44946] [409272,410208]
[583078,584182] [584050,585170] [591833,592941]
SLP
SLP twice
SLP five times
[414812,416008] [417425,418599] [418668,419856]
[594894,596346] [596560,597956] [602482,603694]
Table 2.1. Simulation results for allocation policy
95% C.I.($)
Example 1
Example 2
95% C.I.($)
Example 1
Example 2
LP
[346723,348657]
[282295,283685]
SLP
[347058,348922]
[294254,295666]
LP twice
[378647,380477]
[350111,351577]
SLP twice
[372819,374701]
[315813,317215]
LP five times
[390855,392681]
[390031,391377]
SLP five times
[413416,415204]
[331297,332747]
Table 2.2. Simulation results for bid price policy
2.6. Improving the partition
As discussed earlier, although the re-solving approach provides a computationally
attractive alternative to the multi-stage problem [MSSP], the resulting solution is
always sub-optimal (cf. Proposition 3). However, we must stress that such a result
is valid under the same partition into stages. Indeed, the flexibility of the re-solving
approach allows for the inclusion of additional re-solving points without much burden
— in other words, the complexity grows linearly with the number of stages, which
45
in general is not true for the multi-stage model. It is natural then to compare the
MSSP model and the re-solving SLP model with a refined partition.
Let us look at the following example. Consider a single-leg problem with two
independent booking classes, 1 and 2, with f1 = $300, f2 = $200. The capacity is
equal to 15, and the booking time horizon has three time periods, 1, 2, 3. During
period 1, the distribution of demand for classes 1 and 2 is
½
ξ11
=
0 with probability
1
2
1 with probability
1
2
,
ξ21 = 0 with probability one.
Likewise, the distribution of demand during period 2 is
½
ξ12
=
and
½
ξ13
=
3 with probability
1
2
7 with probability
1
2
5 with probability
1
2
7 with probability
1
2
½
,
ξ22
=
½
,
ξ23
=
3 with probability
1
2
5 with probability
1
2
4 with probability
1
2
8 with probability
1
2
during period 3.
Because of the limited scale of this problem, the multi-stage model can be solved
by enumeration. Suppose we solve a three-stage problem with the second and third
stages defined respectively as time intervals (0, 1] and (1, 3]. It is easy to check that
the optimal solution from this model is x0 = (15, 0)T , x11 = (10, 5)T (when ξ11 = 0
happens) and x11 = (10, 4)T (when ξ11 = 1 happens). The expected total revenue is
$3900.
For the re-solving SLP approach, x0 = (9, 6)T is the first stage decision. Although
this solution does not coincide with that from the MSSP model, it turns out that,
once we re-solve at time 1, we obtain the same expected revenue of $3900 resulting
from [MSSP]. When we re-solve again at time 2, the expected total revenue becomes
46
$4000, which is $100, or 2.56%, higher than that of MSSP model. For a large network,
the improvement would be significant. This example suggests that applying the resolving procedure can be more beneficial (in terms of expected revenue) than solving
a more complicated multi-stage model.
In addition to including additional re-solving points, one may also consider where
to place such points. Although the standard practice appears to be to re-solve at
equally sized intervals, there is no reason this must be done so — in fact, one may
benefit from a better choice of re-solving points. To illustrate, consider a situation
where re-solving is applied once, at some time t. That is, we have an initial allocation x0 and a revised allocation x1 , which is obtained from the problem solved at
time t. Using the notation defined earlier, let ξ1 (t) and ξ2 (t) be the vectors of total
number of requests during intervals (0, t] (stage 1) and (t + 1, τ ] (stage 2) respectively. Notice that, under this policy, the expected revenue from time t on is given
by f T E [min{x1 , ξ2 (t)}]. Thus, the improvement from re-solving is given by (2.11)
(2.11)
£
¤
£
¤
f T E min{x1 , ξ2 (t)} − f T E min{(x0 − min{x0 , ξ1 (t)}), ξ2 (t)} ≥ 0.
The second term above discounts the revenue resulting from keeping policy x0 from
time t on. The term min{x0 , ξ1 (t)} gives the number of sold seats up to time t, so x0
minus that quantity is the number of available seats at time t under the initial policy.
By maximizing (2.11) over t, we obtain the greatest benefit from re-solving.
Let us consider initially a single leg model. Assume we have the problem on time
horizon t = 0, . . . , T . Recall that the two stage model we solve to decide the initial
allocation is:
47
Figure 2.4. Problem Setting
maxf T Eξ1 (t)+ξ2 (t) min(ξ1 (t) + ξ2 (t), x)
x∈Z+
(2.12)
Subject to: Ax ≤ c
Its solution is x∗1 =argmax(SLP). If the re-solving point is t, and the remaining
demand is ξ2 (t), as a result, the new two stage stochastic programming should be,
maxf T Eξ2 (t) min(ξ2 (t), x)
x∈Z+
(2.13)
Subject to: Ax ≤ c − A(x∗1 − min(x∗1 , ξˆ1 (t)))
Its solution is x∗2 =argmax(SLP-R) which is a function of x∗1 and ξˆ1 (t). Notice,
x∗1 does not depend on particular realizations of ξ1 (t), ξ2 (t). The difference in expected revenue happens after time t. Under the scenario of ξˆ1 (t), ξˆ2 (t), the revenue
coming from non-re-solving process is, f T min(ξˆ1 (t) + ξˆ2 (t), x∗1 ) = f T min(ξˆ1 (t), x∗1 ) +
f T min(ξˆ2 (t), x∗1 − min(ξˆ1 (t), x∗1 )). Hence, the expected revenue is,
(2.14)
Eξ1 (t) (f T min(ξ1 (t), x∗1 )) + Eξ1 (t) Eξ2 (t) (f T min(ξ2 (t), x∗1 − min(ξ1 (t), x∗1 )))
Likewise, for re-solving problem, the expected value is,
(2.15)
Eξ1 (t) (f T min(ξ1 (t), x∗1 )) + Eξ1 (t) Eξ2 (t) (f T min(ξ2 (t), x∗2 ))
48
We have already discussed that re-solving always lifts the expected revenue. Hence,
the difference by subtracting non-re-solving revenue from re-solving revenue is always
positive, that is,
Eξ1 (t) Eξ2 (t) [f T min(ξ2 (t), x∗2 (x∗1 , ξ1 (t))) − f T min(ξ2 (t), x∗1 − min(ξ1 (t), x∗1 ))] ≥ 0
Intuitively, if we can re-solve the problem frequently, the expected revenue tends
to be higher. However, this idea is not true. Recall the settings for previous examples.
Our booking horizon is from time 0 to 1000. We have two placements for solving time
points, placement A at (0, 1, 2, 3, 4, 5) and placement B at (0, 500). The numerical
result for the placement A does not reflect any change after solving 6 times. On
the contrary, the placement B, which indicates only 2 times solving, shows a clear
improvement on the expected total revenue. Therefore, we need more time points for
solving only if we can catch more “uncertainty”. For the placement A, the problem
is that the solving points are too close to catch change. Another reason that we can
not do this in airline industry because re-solving the entire network frequently implies
huge cost in manpower and equipment capacity. Pulling out data from fields could
also be time consuming. Therefore, we have to re-solve the problem only when it
is necessary. By the discovery that solving more frequently does not imply higher
expected total revenue, we believe that the best way to improve the seat allocation
model is to decide the best solving points.
Good solving point would lead to an improvement on expected total revenue. In
our research, we realized that revenue management is trying to minimize two types
of risk. One type of risk is to reject valued customer with seats flying empty. Or, the
another type of risk is to accept discount customers early and have to reject valued
customers later. Therefore, the time points when rejection decisions are made would
have an impact on total expected revenue. Re-solving the model at this point and
49
updating seat allocation mean a “second thought” on rejecting decisions. It could cut
the risk of rejecting valued customer and has a direct impact on total revenue. Also,
updated seat allocation would minimize the risk of over-accepting discount customers
because it is an optimal seat allocation regarding the remaining demand.
Our heuristic implementation can then be as follows (observe the notation with
hats whenever we refer to realizations of the corresponding random variables):
ˆ be the first time (along the sample path ξ)
ˆ at which we have
(1) Let t0 = t0 (ξ)
ξˆ1i (t) > xi1 for some i;
(2) Take time t0 as a candidate for re-solving process. Other business variables,
such as re-solving cost and computational capability, should also be taken
into account in locating the re-solving point.
(3) Solve the model and update the seat allocation on selected t0 .
In our heuristic, the rejection could only been made when both the original and
the newly calculated seat allocations suggest so. We showed the our heuristics in
Figure (2.5).
The above analysis procedure is intuitive in the single leg case, since there is a
natural ordering of the classes by fare. However, as mentioned earlier the situation is
more complicated when dealing with a network environment. For example, consider
a situation where the fare for a certain itinerary-class pair that uses legs 1 and 2 is
$130, whereas the fare for another itinerary-class pair that uses leg 1 only is $100,
and the fare for another itinerary-class pair that uses leg 2 only is $70. Intuitively, if
one expects to see more arrivals of the latter classes, then the second class should be
preferred over the first one when making decisions about leg 1. One way to quantify
this is through the net contribution of each class. Suppose for example that the
bid price associated with each leg is $40. Then, the net contribution of the first
itinerary-class is $130 − $80 = $50, whereas the net contribution of the second one is
50
Figure 2.5. Our adaptive re-solving heuristic on identifying right solving point.
$100 − $40 = $60. That is, the second class is more profitable even though its fare is
smaller. Therefore, for network model, we have three plans to improve the partition.
2.6.1. Plan A
If there is a customer who requests a ticket from a closed booking class, she/he might
be rejected by seat allocation policy. However, it leads to two kinds of risk. First, we
might lose the sale. The second, if we honor this request, we might have to reject a
valued customer in the future. To minimize the risk, we suggest suspend the rejection
and re-solve at the time point. We will act by the new policy generating by re-solving
SLP. This becomes the plan A.
It is obvious that the plan A is not practical in the real business because it may
lead to huge number of re-solvings which might slow down the booking system. Also,
51
the cost related with re-solving might also be significant. In order to cut the re-solving
cost, we have another plan based on plan A.
2.6.2. Plan B
In plan B, we do not respond to all the potential rejections. Instead, we only re-solve
the SLP model when any rejection happens on selected classes, say business class or
higher. For any potential rejection on coach or lower classes, we will let it go. We
believe the risk of losing sale on low-fare class would not hurt the gross revenue in
the same level as the risk of losing high-fare customers.
2.6.3. Plan C
Some company would like to solve the model at fixed time points regardless the
demand realization already happened to make their life easier. In order to find an
appropriate re-solving point taking the above considerations into account, we propose
the following heuristic method. Consider initially an arbitrary class k in a single-leg
problem, and let us write the demands ξk1 = ξk1 (t) and ξk2 = ξk2 (t) as functions of the
re-solving epoch t. The idea to improve the partition is to find a point tk such that
E[ξk1 (t)] and E[ξk2 (t)] are relatively close to each other.
Clearly, all those tk s will not be necessarily the same. Therefore, we must develop
a process to determine a single re-solving time t. In a network environment, the
improvement in total revenue is decided partly by changes in actual arrivals and
52
partly by their fare levels. At time 0 we solve the problem
max f T min{x, E[ξ]}
(2.16)
subject to
n
X
xi ≤ c,
i=1
x ∈ Z+ ,
and the solution gives the initial allocation x0 . Assume that the classes are ordered
such that f1 ≥ f2 . . . ≥ fn . Then, we can easily solve (2.16). The solution is

x0

E[ξ1 ]




..


.








E[ξk ]




P
k

= 
c
−
E[ξ
]
i ,

i=1






0




..


.




0
where k is the smallest index such that
Pk
0
i=1 E[ξi ] = c, so xk+1 = 0.
Pk+1
i=1
53
E[ξi ] > c. For simplicity, assume that
Now consider the re-solving problem at time t. Let ξ 1 (t) and ξ 2 (t) have the same
meaning as before, so ξ 1 (t) + ξ 2 (t) = ξ. Then, the re-solving problem is
max f T min{x, E[ξ 2 (t)]}
subject to
n
X
xi ≤ c −
i=1
n
X
min{x0i , ξˆi1 (t)},
i=1
x ∈ Z+ .
From the value of x0 calculated above, we can rewrite the problem as
max f T min{x, E[ξ − ξ 1 (t)]}
(2.17)
subject to
n
X
xi ≤ c −
i=1
k
X
min{E[ξi ], ξˆi1 (t)},
i=1
x ∈ Z+ .
Again this is easy to solve, and we get


ξ11 (t)]
E[ξ1 −




..


.






1


E[ξ` − ξ` (t)]




P
1
`
,
1
x (t) = 
(t)]
E[ξ
−
ξ
c
−
i


i
i=1






0




..


.




0
54
where ` is the smallest index such that
`+1
X
E[ξi − ξi1 (t)] > c −
i=1
k
X
min{E[ξi ], ξˆi1 (t)}.
i=1
Again, for simplicity let us discard the “residual”, i.e., assume that x1`+1 (t) = 0. Note
Pk
that the assumption that c =
i=1 E[ξi ] means that the above condition can be
written as
(2.18)
`+1
X
E[ξi − ξi1 (t)] >
i=1
k
X
E[ξi ] − min{E[ξi ], ξˆi1 (t)} =
i=1
k h
X
i+
E[ξi ] − ξˆi1 (t) .
i=1
The expected objective function value of problem (2.17) is given by
X̀
£
¤
ν 1 (t) = E f T min{x1 (t), E[ξ − ξ 1 (t)]} =
fi E[ξi − ξi1 (t)].
i=1
Next, we calculate the value of re-solving. If we do not re-solve, the policy at time
t is given by x̄(t) = x0 − min{x0 , ξ 1 (t)}, which given the value of x0 calculated above
can be written as
h
i+ 
1
ˆ
 E[ξ1 ] − ξ1 (t) 


..


.


h
i+ 


 E[ξk ] − ξˆ1 (t) 
k


x̄(t) = 
.


0






.
..






0
As a side remark, notice that condition (2.18) implies that
n
X
x1i (t) ≤
n
X
x̄i (t).
i=1
i=1
The value of re-solving is given by the improvement in the objective value of
problem (2.17) when using the optimal solution x1 (t) instead of keeping x̄(t). The
55
objective value at x̄(t) is given by
k
h
n£
oi
X
£
¤
¤+
ν̄(t) = E f T min{x̄(t), E[ξ − ξ 1 (t)]} =
fi E min E[ξi ] − ξi1 (t) , E[ξi − ξi1 (t)] .
i=1
In order to compare ν 1 (t) and ν̄(t), let suppose that ` = k in the respective expressions. Define ∆(t) := ν 1 (t) − ν̄(t). Then, we have
(2.19)
∆(t) =
k
X
oio
n
h
n£
¤+
fi E[ξi − ξi1 (t)] − E min E[ξi ] − ξi1 (t) , E[ξi − ξi1 (t)]
i=1
To alleviate the notation, define µi := E[ξi ], and let Zi := ξi1 (t) (so EZi ≤ µi ). Note
that the second term in (2.19) can be rewritten as
(2.20)
£
©
ª¤
E min [µi − Zi ]+ , µi − EZi
= E [min {µi − min{µi , Zi }, µi − EZi }]
= µi − E [max {min{µi , Zi }, EZi }] ,
so by substituting the above into the expression for ∆(t) we have
(2.21)
∆(t) =
k
X
fi (E [max {min{µi , Zi }, EZi }] − EZi )
i=1
=
k
X
fi E [max {min{µi , Zi }, EZi } − EZi ]
i=1
=
k
X
£
¤
fi E [min{µi , Zi } − EZi ]+
i=1
56
Note that we can write the expectation inside the sum as
£
¤
£
¤
E [min{µi , Zi } − EZi ]+ = E [min{µi , Zi } − EZi ]+ I{Zi >µi }
£
¤
+ E [min{µi , Zi } − EZi ]+ I{Zi ≤µi }
£
¤
£
¤
= E (µi − EZi )I{Zi >µi } + E [Zi − EZi ]+ I{Zi ≤µi }
(2.22)
£
¤
= (µi − EZi )P (Zi > µi ) + E [Zi − EZi ]+ I{Zi ≤µi } .
Recall that the goal is to find the re-solving point t such that t maximizes ∆(t). The
second term in (2.22) is difficult to evaluate, so we will modify our objective as to
find t that maximizes
(2.23)
(µi − EZi )P (Zi > µi ).
Using the Markov inequality P (Zi > µi ) ≤ EZi /µi and substituting this bound for
P (Zi > µi ), we obtain the problem
max (µi − EZi )EZi /µi .
EZi
It is easy to check that the solution to this problem is EZi = µi /2. That is, we want
to find t such that E[ξ 1 (t)] = E[ξi ]/2.
This suggests that we choose t such that
X
fk E[ξk1 (t)] ≈
k
X
fk E[ξk2 (t)]
k
or, equivalently,
X
fk E[ξk1 (t)] ≈
k
where as before ξk :=
ξk1
1X
fk E[ξk ],
2 k
+ ξk2 denotes the class-k demand for the whole horizon.
57
The above idea can be generalized to multiple re-solving points. In a single leg
problem, suppose we decide we want to re-solve R times. Then the time we pick for
the rth re-solving point is t such that
X
(2.24)
fk E[ξk (t)] ≈
k
r X
fk E[ξk ].
R+1 k
We omit the superscript 1 from ξk (t), which represents class-k demand up to time
t. Notice that ξk = ξk (τ ). One way to pick t such that (2.24) holds is to solve the
P
P
one-dimensional problem mint | k fk E[ξk (t)] − r/(R + 1) k fk E[ξk ]|.
It is clear that, in a single-leg environment, the net contribution is actually the
fare level. For networks, one can apply heuristic procedures to rank the classes based
on the net contribution. Such procedures are proposed in Bertsimas and de Boer
(2003) and de Boer. et al., for example. Borrowing from their ideas, we apply the
follow steps to aggregate the demand vector into a one-dimensional quantity. Let fjk
be the fare level for certain itinerary-class pair (j, k) and let Sjk denote the set of
legs which are used for that itinerary. We use the following algorithm to determine
R re-solving points:
(1) Solve model [SLP] at time 0. Let p` denote the bid price for leg `, obtained
from the dual variables.
(2) Let qjk be the net contribution of itinerary-class (j, k), calculated as fjk −
P
`∈Sjk p` .
(3) For each r, r = 1, . . . , R, the rth re-solving point tr is a t that satisfies
X
j,k
qjk E[ξjk (t)] ≈
r X
qjk E[ξjk ],
R + 1 j,k
where as before ξjk (t) is the class-k demand for itinerary j up to time t.
58
We applied the above procedure to the two examples discussed in section 2.5. The
demand distributions used in the examples allow us to calculate E[ξjk (t)] exactly. It
turns out that E[ξjk (t)] = αj ψk Bjk (t/τ ), where
Bj1 (s) := −6s7 + 7s6
Bj2 (s) := −6s7 + 35s6 − 84s5 + 105s4 − 70s3 + 21s2
for all j. Notice that, as discussed in section 2.5, the expected number of arrivals
of itinerary-class (j, k) over the whole horizon is E[ξjk ] = E[ξjk (τ )] = αj ψk Bjk (1) =
P
αj ψk . Figure 2.6.3 shows the plot of the function H(t) := j,k qjk E[ξjk (t)] for both
examples. It is clear that re-solving occurs more often as the slope of H gets larger
— so equally sized intervals are appropriate only when H is linear, which is not the
case in these examples.
Figure 2.6. Graph of the function H(t) =
ples 1 (left) and 2 (right).
P
j,k qj,k E[ξjk (t)]
for Exam-
In order to provide a comparison, we consider the same number of re-solving
points as before, i.e., one and four. For one time re-solving, the algorithm changed
the re-solving point from time 500 (which corresponds to equally sized intervals) to
time 757 in Example 1, and to time 735 in Example 2. For four times re-solving,
59
the re-solving points were changed from (200, 400, 600, 800) to (587, 712, 797, 875)
in Example 1 and to (504, 682, 782, 867) in Example 2. Notice that the algorithm
suggests re-solving more often as the end of the horizon approaches, which reflects
the fact that high-fare customers tend to book later than low-fare ones.
2.6.4. Simulation results
The difference between plan A and plan B is the frequency of re-solving activities. In
Figure 2.7, we have the rejection frequency in plan A and plan B happened in example
1. Since plan A responds to any rejection while plan B only respond to rejections on
business or higher classes, there is clear difference for example 1 between both plans.
Besides, we also compared the solving frequency upon time points. In Figure 2.8, we
showed the frequency difference between plan A and B for individual time points in
example 1.
Figure 2.7. Rejection frequencies between plan A (left) and B (right)
happened in Example 1
95% C.I.
Plan A
Plan B
Example 1 [429707,431939] [425060,426070]
Example 2 [659670, 662419] [655270,657862]
Table 2.3. Simulated expected revenue for plan A and B
The results indicate that re-solving upon high-fare rejection, or plan B, could
control the total re-solving activities significantly. The reason is due to the rejections
60
Figure 2.8. Solving frequencies upon time points between plan A (left)
and B (right)
on low-fare customers might happen at the early stage of booking. As we stated
before, the marginal revenue of coach customers is far less than that of the business
or higher customers. Table 2.3 shows that the simulated expected total revenue for
plan A is higher than plan B which is reasonable due to more computational efforts
for all the potential rejections. However, if we take the re-solving cost, which could
be high in network model, into the balance, the company might prefer plan B to A.
Tables 2.4 and 2.5 below display the results for plan C. As before, the numbers
correspond to a 95% confidence interval. Comparing with Tables 2.1 and 2.2, we see
that a well picked partition definitely yields better allocation policies. With bid-price
policies the results are mixed, which reflects the fact the procedure laid out in this
section was devised to improve the revenues from the allocation model.
95% C.I.
SLP
SLP twice
SLP five times
Example 1 [414812,416008] [418732,419354] [421281,422507]
Example 2 [594894,596346] [600410,601902] [604261,605457]
Table 2.4. Simulation results for allocation policy with new partition
95% C.I.
SLP
SLP twice
SLP five times
Example 1 [347058,348922] [357083,358997] [378527,380337]
Example 2 [294254,295666] [311325,312751] [329872,331260]
Table 2.5. Simulation results for bid price policy with new partition
61
So far, plan B and C look promising to us. If you want to solve fixed times prior
to booking, we can use plan C to set the time points for re-solving. Plan B gives
us an adaptive process to improve the model with a random number of re-solving
activities. The remaining question is, if the average solving workload from plan B is
close to that of the plan C, which plan is expected to yield more revenue? To answer
the question, we found that the average solving times from plan B for example 1 is
5.87 times, and 5.24 times for example 2. To conduct a fair comparison, we solve
plan C 5 times and 6 times respectively on both examples. The numerical results
are listed in Table 2.6, which indicates that the adaptive method tends to generate
more revenue. Hence, if there is no control requirement on re-solving times for every
sample path but at the average level, we should prefer plan B as our final plan.
95% C.I.
Plan C 5 times Plan C 6 times
Plan B
Example 1 [421281,422507] [421890,424125] [425060,426070]
Example 2 [604261,605457] [606786,609247] [610270,612862]
Table 2.6. Comparison between plan B and C in expected revenue
In order to assess the quality of these results we computed the wait-and-see solutions. These solutions determine the actions that would be taken if all uncertainty
was known in advance. Although this does not yield a practical policy, it does provide
an upper bound for the expected revenue. Table 2.7 displays the expected revenue
and the 95% confidence intervals for the wait-and-see value.
95% C.I.
Wait-and-see value
Example 1 433880,[433310,434450]
Example 2 618654,[669170,670690]
Table 2.7. Wait-and-see values for examples 1 and 2
In both cases, the gap between the plan B wait-and-see values and the values on
the third column of Table 2.4 is only about 2.0% for both examples. This suggests that
62
the re-solving approach — with improved partition — can be an attractive low-cost
approach for the models we have studied in our research..
2.7. Conclusions
We have discussed the airline booking process based on the origin-destination
model. More specifically, we have presented a multi-stage stochastic programming
formulation to the seat allocation problem, which extends the traditional two-stage
model proposed in the literature. Our study suggests that solving this multi-stage
problem exactly may be difficult, because of the lack of convexity properties. In
order to circumvent that obstacle, we have used an approximation based on solving a
sequence of two-stage stochastic linear integer programs (SLPs) with simple recourse.
Our analysis suggests that the proposed approach is robust, in the sense that
solving successive SLPs can only improve the expected revenue — i.e., it is never
better not to re-solve. While intuitive, to our knowledge such a property had not
been shown in the literature. Moreover, this gives an advantage of SLPs over the
standard deterministic linear program formulation, for which it is known that resolving can actually “backfire”. As it turns out, the same phenomenon happens
with some bid-price policies, and we have presented some examples where re-solving
worsens the expected revenue.
We have also shown that, under perfect information, the multi-stage model and
the re-solving approach for the seat allocation problem coincide; this may have some
algorithmic implications (e.g., by applying the progressive hedging algorithm of Rockafellar and Wets. (1991)), which is a topic for further research. Note that theoretical
comparisons involving bid-prices policies are harder to obtain, since those policies
highly depend on the arriving order which might lead to a substantial differences on
revenue.
63
The flexibility of the re-solving approach has allowed us to propose a heuristic
method whereby the re-solving points are chosen with the goal of maximizing the
incremental expected revenue; our numerical results, run for two medium-sized models
(each with a different network structure) suggests that the approach is effective.
We must remark that we have not included in our models some of the recent
developments proposed in the literature, such as algorithms that include nesting of
classes (see, e.g., de Boer, Freling, and Piersma (2002), van Ryzin and Vulcano (2003))
and consumer-choice modeling techniques (see, e.g., G. Gallego and Dubey. (2004),
van Ryzin and Liu (2004)). There are two basic reasons for our decision: first, incorporation of the above features leads to different models which lie outside of the scope
of our research — for example, the problems in de Boer et al. (2002), van Ryzin and
Vulcano (2003) are non-convex problems that are solved with simulation-based methods, whereas the linear programs in G. Gallego and Dubey. (2004), van Ryzin and Liu
(2004) are of different nature than the ones discussed here. Second, our conversations
with people in the airline industry have shown to us that the basic origin-destination
model, particularly the deterministic linear programming formulation, is widely used
in practice; thus, our goal is to provide the practitioners an easily implementable
algorithm that can improve upon what is currently in use. Again, our theoretical
and numerical results show that the methods proposed here have the potential to
accomplish that goal. Nevertheless, we plan to study the applications of those methods under other settings, particularly when consumer choice is incorporated into the
model. Research on that topic is in the next chapter.
64
CHAPTER 3
MODELING CUSTOMER CHOICE BY PREFERENCE
ORDER
3.1. Effect of the customer choice behavior in airline industry
In Chapter 2, we discussed the seat allocation method intensively with the assumption of independent demands among booking classes. Inside the organization,
the marketing department provides the demand forecast as one of the model inputs.
Typically, the major airline companies use the historical booking data as the primary
data source which is organized by booking classes. As a result, the demand forecasting is conducted individually by booking classes. This is debatable in the practice of
the airline revenue management, since in reality customers do not start the booking
process with a specific class in mind but rather choose among available alternatives.
Ignoring such behavior can lead to undesired consequences. For example, Boyd et al.
(2001) and Cooper, Homem-de-Mello, and Kleywegt (2004) have shown a phenomenon called “spiral-down” which would lead to a progressive decrease of high-fare sales
and revenues. Besides that, individual demands require clear customer stereotypes.
All business customers should never purchase a coach or first class ticket even if those
choices seems more promising to them. Likewise, coach class customers should always
be price-sensitive, and have flexible schedules. Unfortunately, in the real booking process, independent demands assumption would not sustain. We have to take another
critical input into account, the customer choice behavior.
For each individual customer, there would be multiple different choices. There are
many factors would make a difference, such as the departure time, the arrival time,
65
price, service during the trip, number of connections, etc. Consider the following
case, whenever a business traveler on a business trip will prefer a coach ticket to
business class ticket if both classes are open. Similar thing happens if a wealthy leisure
customer tends to book a first class ticket for the excellent service during the trip. If
the most wanted tickets are sold out, some customers would go back for other choices.
That is, a rejection on the coach class might end up with a business class ticket for
the same trip. Therefore, there are no clear stereotypes for business customers, coach
customers, or wealthy customers and demands for different classes are correlated
rather than independent. This is a serious matter in airline revenue management
because the existence of customer choice could jeopardize the independent demand
assumption, thereby the validity of the traditional OD seat allocation model. We
would like to refer readers to Chapter 1 for detailed literature review on customer
choice models.
Both industrial partners and academic researchers realize the effect of discrete customer choice. As we stated in Chapter 1, many researchers model the customer choice
by Markov Decision Process (MDP). For example, Talluri and van Ryzin (2004a)
model the customer choice in a single leg problem as (3.1), (3.2), and (3.3).
Basic problem settings are listed in the following,
t = 1, . . . , T time periods
x number of seats remaining
(3.1)
N = {1, 2, . . . , n} set of fare products
λ = P {customer arrives in period}
rj = revenue of fare product j, r1 ≥, . . . , ≥ rn ≥ 0
66
The decision variable is St which is the “offer set” at each time t = 1, . . . , T
(3.2)
St ⊆ N set of open fare products at time t
Pj (St ) = P {customer chooses j|St }
Built by MDP process, the Bellman equation is,
Vt (x) = max {
St ⊆N
(3.3)
= max {
St ⊆N
X
λPj (St )(rj + Vt−1 (x − 1)) + (λP0 (St ) + 1 − λ)Vt−1 (x)}
j∈St
X
λPj (St )(rj − 4Vt−1 (x))} + Vt−1 (x)
j∈St
Where 4Vt−1 (x) = Vt−1 (x) − Vt−1 (x − 1)
The solution is St ⊆ N for all the t = 1, . . . , T which is recognized as the optimal
booking policy. However, this model has limited value on business implementations
because of the computational obstacle.
All the major airlines operate on nationwide networks. The customer choice model
should be applicable to operating networks. Under this setting, there would be huge
amount of St at given time t. Further, the MDP model suffers the curse of dimension
which is a long term flaw for them. Even if we would be able to find all St , we could
not solve it under current computational capability. Therefore, in order to incorporate
the customer choice behavior, a solvable network based model is desired.
3.2. Our idea on modeling the network customer choice
Before moving forward to model description, we illustrate the problem by the
following example. Suppose you, currently in working in Columbus OH, would attend
a team meeting with a brief lunch reception at Washington DC on next Monday. You
favorite online travel agent gives all the possible choices in Figure 3.1.
67
Figure 3.1. Small Example on Preference Orders
The team meeting should be held at 1:00pm. Before the meeting, there might be
a lunch reception at 12:00pm. Instead of assuming independence on demands and
forecasting demands by booking classes, we categorize customers into different groups
by their preferences. For instance, we have the budget-sensitive customer group, the
time-sensitive customer group, etc. Inside each group, customers share the same
behavior when facing multiple choices. For each group of customers, we arrange all
the possible booking classes from the most wanted ticket to the least wanted ticket.
The shift from one class to another will be associated with a probability because not
all the customers would keep on trying to get a ticket. Some customers would leave
for a less expensive way to be there, say the ground transportation. So, I believe you
would like to purchase tickets in the order of Figure 3.2. The probabilities of leaving
Figure 3.2. Business Customers’ Preference Order
the booking process are 0.9 and 0.3. Likewise, if you are a leisure traveler with limited
68
budget and you are not scheduled to attend any social events up there, you are more
likely to purchase tickets in the order of Figure 3.3 with transition probabilities 0.6
and 0.2.
Figure 3.3. Budget Sensitive Customers’ Preference Order
Modeling the customer choice by preference orders is aiming to solve the modeling
and the solving issues discussed in Section 3.1. There are two major contributions by
the preference order model. First, the preference order model is based on a network
operation. Since there is no state space involved, modeling preference order in network
would not increase the modeling complexity. Also, our preference order model is a
mathematical programming model which is solvable by most commercial software
packages.
3.3. Model formulation
In a general way, assume in the booking time 1, . . . , T , the airline company has
S combinations of origin and destinations with index i = 1, . . . , S. For each specific
origin and destination, say ith OD combination, the company has ni itineraries with
index ji = 1, . . . , ni . Inside this itinerary, there is ki booking classes with index
qi = 1, . . . , ki . Therefore, there are ni ki booking classes available to complete this
trip. For example, in a small airline company who has S = 10 origin and destination
combinations, let i = 1st combination which is from New York City to Columbus.
There are 1 direct itinerary and 3 connected itineraries over Pittsburgh, Philadelphia,
and Chicago. Then for this combination of origin and destination, there are four
possible itineraries, that is n1 = 4. To simplify the problem, for all those itineraries,
69
we have k1 = 3, say first class, business, and coach booking classes. For all the
customers flying from New York to Columbus, they have n1 k1 = 4 × 3 = 12 possible
choices. For a specific OD combination, we have ni ki booking classes to construct
the preference order. Assume we have li preference orders with index t for this OD
combination. As matter of fact, li ≤ (ni ki )!. In most cases, the real number of
preference orders in the model is much fewer than ni ki for OD combination i because
only a few selected preference orders would be sufficient to reflect all possible customer
choice behaviors.
During the booking process, some customer inside a preference order might give
up booking because either budget becomes beyond control or time schedule becomes
less attractive to them. To model this feature, we define random variables for each
shift inside each preference order. Each random variable represents the choice of each
customer confronting a shift, to leave or stay. Let us assign a probability p to the
scenario that customer chooses to stay. Then, all the customers, say N customers,
from this group actually form a N times bernoulli experiment. This fact implies
that the number of customers who choose to stay is a binomial random variable with
parameter N, p. Let us look at the following example to show the leave or stay process.
Consider a preference order with three booking classes, class 1, 2, and 3 arranged in
the order of decreasing customer interest. The transition probability from No.1 class
in the preference order to No.2 class is p12 and from No.2 class in this order to No.3
is p23 . Assume the total demand from this customer group is ξ1 and allocations
for No.1, 2, and 3 booking classes are x1 , x2 , x3 . Then min(ξ1 , x1 ) customer(s) get
ticket immediately. If the demand is large enough such that ξ1 − min(ξ1 , x1 ) > 0,
then ξ1 − min(ξ1 , x1 ) customers will face the choice of to stay or leave. Then the
number of customers who actually buy up is actually B[ξ1 − min(ξ1 , x1 ), p12 ]. Let
ξ2 = B[ξ1 − min(ξ1 , x1 ), p12 ], and repeat the process if there are some customers who
70
have to face the choice from class 2 to class 3. Likewise, B[ξ2 − min(ξ2 , x2 ), p23 ]
remaining customers who choose to stay for the last booking class, class 3. The
process is illustrated as the chart in Figure 3.4.
Figure 3.4. The customer choice process inside a preference order
Before introducing the model, we should clear the notations first. c is the vector for
legs and it is the exactly same thing in the traditional OD allocation model. Assume
P
we have m legs with index q in the network. The dimension for A is m × ( Si=1 li ni ki )
P
matrix. aq,s = 1, s = 1, . . . , ( Si=1 li ni ki ) implies that xq,s allocation is used in leg
q, otherwise, it is not in this leg. The remaining demand is a binomial random
variable and depends on all the previous decisions. For ith OD combination, there
are li preference orders with index of t. Those preference orders are arrangements of
different booking classes. To make it clear, we define the following 1-1 mapping Bi
such that Bi : Si → Ni where Si is the set of all the booking classes and Ni is the
set of integers from 1, . . . , ni ki with index r. Therefore, for t preference order, the
preference order is actually an arrangement of set Ni .
Definition 1. Inside an origin destination combination, a preference order is an
arrangement of integers from 1 to the number of booking classes available for this OD
combination.
Then, for t preference order, the arrangement is Pt . We use r to denote the
position in the arrangement, or preference order and Pt (r), r = 1, . . . , ni ki becomes
the integer from mapping. Still the previous example, P1 (3) is class 4, or P1 (3) = 4.
Also, in the model, we use r as part of the index for decision variables. xitr indicates
71
the allocation inside the ith OD combination, preference order t, the rth class. The
actual booking class is Pt (r) in the network. Therefore, for each preference order,
the initial demand is ξit1 and the demand thereafter should be ξitr = B(ξit(r−1) −
min(ξitj(r−1) , xit(r−1) ), pit(r−1)r ) in a recursive way where r = 1, . . . , ni ki .
We have,
maxEξ
x
(3.4)
li X
n i ki
S X
X
fitr min(ξitr , xitr )
i=1 t=1 r=1
Subject to: Ax ≤ c
xitr ≥ 0, xitr are integers
ξitr = B(ξit(r−1) − min(ξitj(r−1) , xit(r−1) ), pit(r−1)r )
Unlike the MDP model, the preference order model does not require to identify
individual customer’s behavior. The model input is actually the number of customers
possessing the same behavior under given choices. Due to this property, the preference
order model avoids the difficulty on constructing the state space and the “offer set”.
This advantage makes the preference order model closer than other models to business
implementations.
On the other hand, the preference order model is still a stochastic problem with
a huge number of scenarios. For instance, consider a small airline company with just
one OD combination for a one-way trip, S = 1. There are only 2 itineraries, A, and
B, such that n1 = 2. For all the itineraries, there are two classes, business, and coach
classes that k1 = 2. Then, there are n1 k1 = 2 × 2 = 4 choices for all customers. We
also assume there are only two preference orders, one for budget sensitive customers
and the other one for time sensitive customers. The four booking classes are itinerary
1 business class (Class 1), itinerary 1 coach class (Class 2), itinerary 2 business class
(Class 3), and itinerary 2 coach class (Class 4). Itinerary 1’s departure time is more
72
attractive than that of the itinerary 2. As a result, the fare level for the comparable
class in itinerary 2 is lower than that in itinerary 1. Therefore, the preference order
for business travelers would be Class 2, Class 1, Class 4, and finally Class 3. For
budget sensitive travelers, the preference order should be Class 4, Class 2, Class 3,
and finally Class 1.
Figure 3.5. Example for the computational issue
Even if we know the initial demand ξ1 = {ξ11 , ξ12 } = {20, 5} and the seat allocation
x = {x111 , x112 , x113 , x114 , x121 , x122 , x123 , x124 } = {8, 3, 1, 1, 1, 1, 3, 2}, the size of the
scenario tree would still be huge because of the involvement of binomial random
variables. Look at the budget sensitive customers’ preference order, ξˆ11 = 20, x111 = 8,
then there are 12 customers who would have to make a choice either to buy up or
to leave. Because of the binomial distribution, there could be 13 scenarios as the
random input for the allocation x112 . Then the total number of scenarios for the
budget sensitive preference order is 178. Similarly, for the time sensitive preference
order, the total number of scenarios is realization ξˆ12 = 5 and x112 = 1, there would
be 5 possible scenarios for the next allocation x122 and the overall number of scenarios
for this preference order is 11. Therefore, for this simple problem, which is shown in
Figure 3.5, the number of scenarios is 178 × 11 = 1958.
73
3.4. Our heuristics
Due to the existence of binomial variable, it is hard to solve the model with
exploding dimensions. To remedy this, we need solvable models for the model recommendation. In our research, we proposed two solvable models. In order to motivate
them, we went through a sequence of models with modifications to proposed models.
In order to show the track of our analysis, we developed a road map in Figure 3.6.
Figure 3.6. Roadmap of modeling the customer choice
At the beginning, we build model (3.5) from model (3.4).
maxEξ
x
(3.5)
li X
n i ki
S X
X
fitr min(ξitr , xitr )
i=1 t=1 r=1
Subject to: Ax ≤ c
xitr ≥ 0, xitr are integers
Where ξitr = pit(r−1)r (ξit(r−1) − min(ξitj(r−1) , xit(r−1) ))
74
Comparing with model (3.4), we use the expected value of binomial variable rather
the variable itself. Model (3.5) is a stochastic programming model with initial demands ξit1 , i = 1, . . . , S, t = 1, . . . , li . Our idea for further analysis is to focus on
specific sample pathes. For one sample specific sample path, ξˆit1 , we have,
max
x
(3.6)
li X
n i ki
S X
X
fitr min(ξitr , xitr )
i=1 t=1 r=1
Subject to: Ax ≤ c
xitr ≥ 0, xitr are integers
ξitr = pit(r−1)r (ξit(r−1) − xit(r−1) )
ξit1 is known.
The reason we remove “min” from the constraints in (3.6) is due to the perfect
information we posses. The optimal allocation should be less or equal to the demand
because allocating seats to nobody means non-optimality. Further, we build the
following model,
max
x
(3.7)
li X
n i ki
S X
X
fitr min(ξitr , xitr )
i=1 t=1 r=1
Subject to: Ax ≤ c
ξitr ≥ xitr ≥ 0, xitr are integers
ξitr = pit(r−1)r (ξit(r−1) − xit(r−1) )
ξit1 is known.
Consider the optimal solution x∗ from (3.6). Inside given preference order, if
ξitr < x∗itr , then ξit(r+1) . . . ξit(ni ki ) = 0 As an optimal solution, all the allocations
75
thereafter should become 0 as a result. Therefore, we can find multiple solutions
whose difference only happens on the last non-zero seat allocation in the preference
order. Define the last non-zero seat allocation x∗bitr = min{ξitr , x∗itr }. Further, for
the last non-zero optimal allocation in each preference order, ξitr ≤ x∗itr , that is,
ξitr = x∗itr .
Definition 2. The base solution of (3.6) is an optimal solution, x∗b , whose last
non-zero seat allocation is equal to the remaining demand, x∗bitr = ξitr
Lemma 1. For ∀ base optimal solution from (3.6), x∗b , is a feasible solution in
(3.7).
Proof. By Definition 2.
¤
Lemma 2. ∀ optimal solution from (3.7) is a base optimal solution in (3.6).
Proof. Since the feasible region in model (3.7) is smaller or equal to that of model
(3.6), with the same objective function, the optimal objective value is less or equal
to that of the model (3.6). Combined with Lemma 2
¤
In order to solve the problem, we need to remove the “min” operation from the
objective function and make it linear, then we have the following model,
max
x
(3.8)
li X
n i ki
S X
X
fitr xitr
i=1 t=1 r=1
Subject to: Ax ≤ c
ξitr ≥ xitr ≥ 0, xitr are integers
ξitr = pit(r−1)r (ξit(r−1) − xit(r−1) )
ξit1 is known.
76
Lemma 3. ∀ optimal solution from (3.8) is a base optimal solution in (3.7).
Proof. Apply previous theorem and the definition of base solution.
¤
Theorem 1. The following linear programming model,
max
li X
n i ki
S X
X
x
fitr xitr
i=1 t=1 r=1
Subject to: Ax ≤ c
0 ≤ xitr , xitr are integers
n i ki
X
(3.9)
r=2
xitr
+ xit1 ≤ ξit1
b pit(b−1)b
Qr
ξit1 is known., i = 1, . . . , S, t = 1, . . . , li
has the same optimal solution set as (3.8).
Proof. In model (3.8), we have xitr ≤ ξitr where r = 1, . . . , ni ki , i = 1, . . . , S. We
have,
xit1 ≤ ξit1
xit2 ≤ (ξit1 − xit1 )pit21
......
xitni ki ≤ (ξit(ni ki −1) − xit(ni ki −1) )pit(ni ki −1)ni ki
They imply the constraint
Pni ki
r=2
Qr xitr
b pit(b−1)b
+ xit1 ≤ ξit1 in model (3.9). For optimal
solutions in model (3.9), then for each non-zero remaining demand ξit(r+1) = (ξitr −
xitr )pitr(r+1) . That is, the feasible regions are identical for two models.
¤
Eventually, we reach a linear programming model with a specific sample path.
Recall the analysis in Chapter 2, we use the similar idea to construct similar models for
77
independent demands. After the sample path analysis, we have a linear programming
model for a specific sample path. However, we have no perfect information on which
sample path will happen. We have to find a “good” booking policy in advance for
all scenarios. In Chapter 2, we have two methods for a “good” booking policy. One
method is to replace random variables by their expectations and the other method is
to build a two-stage stochastic programming model to maximize the expected revenue.
In this chapter, we encounter model (3.9) under a known scenario as one of model
inputs. In a parallel way of thinking, we still have two methods to solve the seat
allocation problem with correlated demands. From model (3.9), we could have a
concept model (3.10) which possesses random variables.
max
x
li X
ni ki
S X
X
fitr xitr
i=1 t=1 r=1
Subject to: Ax ≤ c
(3.10)
0 ≤ xitr , xitr are integers
ni ki
X
r=2
xitr
+ xit1 ≤ ξit1
b pit(b−1)b
Qr
ξit1 is random vector., i = 1, . . . , S, t = 1, . . . , li
For model (3.10), it shows the way to incorporate gross random demands for
preference orders because its random parts only appear on the right hand side of
constraints. If we take demand point estimates as real demands, we have model
(3.11).
78
max
x
(3.11)
li X
ni ki
S X
X
fitr xitr
i=1 t=1 r=1
Subject to: Ax ≤ c
0 ≤ xitr , xitr are integers
n i ki
X
xitr
+ xit1 ≤ E(ξit1 ), i = 1, . . . , S, t = 1, . . . , li
b pit(b−1)b
Qr
r=2
Model (3.11) is a solvable, deterministic linear programming model. Thereby, we
can solve model (3.11) for model recommendations.
Alternatively, we have another candidate for the model recommendation. We can
build,
max
x
li X
n i ki
S X
X
fitr xitr − Q
i=1 t=1 r=1
Subject to: Ax ≤ c
(3.12)
0 ≤ xitr , xitr are integers
Where Q = Eξ Q(x, ξ)
Q(x, ξ) = min{
ni ki
li X
S X
X
fitr yitr |
i=1 t=1 r=1
ni ki
X
(xitr − yitr )
Qr
0≤
+ (xit1 − yit1 ) ≤ ξit1 ,
b pit(b−1)b
r=2
xitr − yitr ≥ 0}
i = 1, . . . , S, t = 1, . . . , li , r = 1, . . . , ni ki
79
for a booking policy maximizing the expected total revenue. By one of the conclusions
in Chapter 2, the booking policy calculated from model (3.12) would never be worse
than that of the model (3.11) in terms of the expected total revenue.
Although model (3.12) has a complicated looking, it is a two stage stochastic
programming model with fixed recourse which can be easily solved by a few matured methods, such as the stochastic decomposition method, L-shaped method,
simulation based methods or the sampling based method. Also, research on two
stage stochastic programming with fixed recourse has already showed that the function Q = E(Q(x, ξ)) is actually piecewise linear and convex function for discrete distributed random variables. For the research on preference orders, solving model (3.12)
is not the point of our research. Basically, we want solution to allocate seats to maximize the expected revenue without the perfect information. So far, we have two
solvable models for the network seat allocation problem with customer choice, model
(3.11) and model (3.12). In the following research, our work is mainly based on those
models.
By Figure 3.6, we have a clear view of modeling customer choice with preference
orders. In order to build a solvable model like model (3.11) and (3.12), we need to
go through the following steps,
• Step 1, Working closely with the sales and marketing department to construct
a reasonable number of preference orders to reflect the customer choice.
• Step 2, Estimating transition probabilities for all preference orders constructed by historical records.
• Step 3, Estimating demand distributions for all preference orders constructed
by historical records.
• Step 4, Solve model (3.11) and (3.12) for model recommendations.
80
At the beginning, we have the network structure i = 1, . . . , S, OD combinations
with all ni ki available booking classes. Theoretically, we could build up to (ni ki )! preference orders which is actually the number of permutations by ni ki booking classes.
However, the huge number of preference orders would write off the model advantage
and makes the model practically unsolvable as existing MDP models. Actually, we
just need much fewer preference orders to model customer choice. Therefore, we
need to work closely with sales and marketing department in modeling the complete
customer choice. Seasoned experience, and deep knowledge on customer choice are
highly appreciated.
We still need to estimate transition probabilities and demand distributions on all
preference orders constructed. We hardly discussed them in this dissertation because
our focus is on the model formulation and we take them as model inputs. In business
implementation, these inputs will be decisive parameters for the model performance
and they deserve our close attention in the future research.
3.5. Implement the policy
When an allocation policy for customer choice model becomes available, we can
try to apply it. However, the allocation policy suggested in the model is not ready
to apply yet. This section is designed to focus on the issue of optimizing the booking
process based on the model recommendation.
3.5.1. Drawbacks of applying the model recommendation directly
In our model recommendation, we have detailed allocations for each ”cell” in preference orders. Assume an airline company has two itineraries, itinerary A and itinerary
B. Itinerary A is a connected trip while itinerary B is a direct trip. There are two
classes for both itineraries, coach class and business class. The rates for coach and
81
business class are $80, $300 respectively in itinerary A and $100, $500 for itinerary B.
In this setting, we have three preference orders for budget sensitive, time sensitive, or
budget-time hybrid customers. The rates for budget sensitive customers arranged by
preference is $80, $100, $300, $500. Likewise, $100, $500, $80, $300 for time sensitive
customers and $100, $80, $500, $300 for hybrid customers. The demands for those
three preference orders are ξ1 , ξ2 , ξ3 which are all random variables. For the budget
sensitive customer preference order, the transition probabilities are 0.9, 0.4, 0.4. Likewise, for the time sensitive customer preference order, the transition probabilities are
1, 0.5, 1 and for hybrid customer preference order is 0.9, 0.5, 0.7. The first drawback
happens when booking requests on high-fare classes are rejected while there are still
some seats at the same physical booking class left available somewhere.
We will use an example to illustrate the second drawback. Suppose the time
sensitive customer is booking $100 class and the hybrid customers are also booking
$100 classes. But the next classes’ rates are significantly different from each other,
$500 and $80. If the hybrid customers could use $100 seats from both allocations for
time sensitive customers and hybrid customers, the shift for hybrid customers to buy
$80 ticket would be delayed and the shift for time sensitive customers to buy $500
ticket will tend to happen earlier. Intuitively, those delays or accelerations would
benefit the booking process by lifting the total revenue. Therefore, we need to figure
out a way to use the model recommendation more efficiently. We developed a heuristic
in an attempt to improve the booking performance.
3.5.2. Backup heuristic on the model recommendation
To formalize the heuristic, we need to introduce additional notation. For each class
open for booking, we have three values; xitr is the model allocation, fitr is the fare
82
level, and
(3.13)
n
r
i ki
Y
Y
max{[ pit(b−1)b ]fit(r+1) , . . . , [ pit(b−1)b ]fit(r+1) }.
b=r
b=r
is the unit buying up revenue which indicates the unit revenue if the next booking
request is forwarded to the next but less favorite choice. The term “buy-up” is the
activity to forward booking requests to the next available but less favorite choice
in the given preference order. Certainly, some customers might leave the booking
process because of buy-up. The purpose of UBUR is to decide if we should use other
allocations in the same physical booking class to honor requests happen here. If
UBUR> fitr , we believe asking customers in given preference order to buy-up would
tend to generate more revenue. Therefore, we should try to let buy-up activity happen
once the allocation is used up. Otherwise, if UBUR≤ fitr , we believe buy-up activity
might hurt revenue. We should try to find all available resource to postpone buy-up.
Look at the following Figure 3.7. There are three values in each booking class. The
first bucket is the model recommended allocation, x. The second bucket denotes the
fare level while the third bucket is the UBUR calculated. Before introducing the
algorithm, we define one operation, “backup”.
Definition 3. When UBUR ≤ fitr for a certain choice in a given preference
order, we would use the same physical booking class seats in other allocations to
accept upcoming booking requests until all seats in this physical class are sold. This
is the operation called “backup”.
We have UBUR values calculated in Figure 3.7 and the backup decision made
accordingly in Figure 3.8.
We also realize that UBUR values would change upon the current seat availability.
It would happen when all the seats for the next choice have been sold. Then the
83
Figure 3.7. Applying the non-zero allocation heuristically
Figure 3.8. Applying heuristic
UBUR value should updated accordingly to reflect the projected unit revenue when
buy-up. The update could be triggered at any time when a reservation is made.
Regarding this situation, our heuristic could be developed into two methods, the
static backup method which is based on initial UBUR values and the dynamic method
which updates UBUR values upon changes on current seat availabilities.
Here is the dynamic backup heuristic algorithm,
• Step 1: Pull out recommended allocation from the model (3.11) or (3.12).
• Step 2: Initialize UBURs by physical class allocation.
• Step 3: Calculate the backup policy by UBUR and open for booking.
3.1 If requested allocation is Non-Backup (fare level is lower than UBUR),
then check the allocation seat availability, in step 3.2. Otherwise, go to
step 3.3.
84
3.2 If no seat available this allocation, upon customer’s buying up decision,
go to step 3.1 to start over. Otherwise, honor the request and update
UBUR. Go to step 4.
3.3 Check seat availabilities from all allocations for the same physical booking class, if there is no seat for given physical booking class, upon customer’s buying up decision, go to step 3.1 to start over. Otherwise,
honor the request and update UBUR, go to step 4.
• Step 4: Check seats availability and demand, if either of them equals to zero,
exit. Otherwise, go back Step 3.
Till now, we are solving model (3.11) and model (3.12) for the model recommendation to allocate limited seats for all types of customer at the expected revenue level.
Those efforts lead to the following question. What is the booking performance by
backup heuristics compared with its counterpart by applying allocation directly? Or
which method tends to generate more revenue, the dynamic backup method or the
static backup method? To show the value of this heuristic, in Section 3.7, we try to
answer those questions by conducting simulation experiments on all those heuristics
in the network environment.
3.6. Relationship with the independent demand model
There is another important question about the preference order model, “what
is the value of the preference order model comparing with the independent demand
models?” In order to answer this question, we would like to review the traditional
85
independent demand model,
max f T x
[LP]
subject to
Ax ≤ c,
x ≤ ξ w.p.1
x ≥ 0.
In this model, each booking class has a random demand ξ. This model has been
discussed in chapter 2. In this model, the customer in each class just requests a
reservation once and leaves the booking process without looking at other available
booking classes. Usually, the preference order model assumes the customer will also
look at other alternatives.
For any booking class x, the demand is ξ. Instead of leaving the booking process,
the customer being rejected will look at other available booking classes. We can build
a preference order by customizing the customer choice. Suppose we have n booking
classes in the network. Figure 3.9 and Figure 3.10 illustrate the process.
Figure 3.9. The independent demand model’s structure
If certain groups of customers have quite different choices for their second choice,
we can split the total demand and construct more preference orders to fit the real
86
Figure 3.10. The comparable preference order model’s structure
situation. There is no doubt that the preference order model has more flexibility than
the traditional independent demand model.
On the other hand, the traditional independent demand is a particular case of
P
model (3.4) with the total number of booking classes, Si=1 ni ki , preference orders
with all zero transition probabilities. Then the model become
maxEξ
x
(3.14)
n i ki
S X
X
fir min(ξir , xir )
i=1 r=1
Subject to: Ax ≤ c
xitr ≥ 0, xitr are integers
which is exactly the same model as the traditional independent demand model. Therefore, we can conduct numerical experiments in Section 3.7 to show the advantage of
models that takes the customer choice into account.
87
3.7. Numerical experiments
In this section, we present the numerical result related with our model. We
construct three examples. First, we solve two examples by model (3.11) and model
(3.12). For the allocations from the models, we show that implementing our backup
heuristic will greatly improve the total revenue compared with implementing model
recommendations directly. In the next step, we also test another backup method, all
backup method which is to backup all booking requests at choices regardless UBUR
values. These numerical results suggest that the combination of dynamic backup
method with model (3.12) provides the best booking policy for dependent demands.
Besides the comparisons above, we also conduct a few numerical experiment to
compare the preference order model and the traditional independent demand models.
The final results indicate that taking the customer choice into account will benefit
the airline company by capturing more valued sales.
3.7.1. Experiment settings on our heuristic
We use two examples to show the value of model (3.11), (3.12 and backup methods.
The network structure is showed in the figure 3.11.
In example 1, assume an airline company has two itineraries, itinerary 1 and
itinerary 2. Itinerary 1 is a connected trip while itinerary 2 is a direct trip from city
A to city B. There are two classes for both direct trip and connected trip, coach class
and business class. The rates for them are $350, $500 for connected trip and $420,
$750 for direct trip respectively. We have three preference orders, budget sensitive,
time sensitive, and a budget-time hybrid preference order. The rates for budget
sensitive customers arranged by preference is $350, $420, $500, $750. Likewise, $420,
$750, $350, $500 for time sensitive customers and $420, $350, $750, $500 for hybrid
customers. The demands for those three preference orders are ξ1 , ξ2 , ξ3 which are all
88
Figure 3.11. Numerical Experiments Settings
poisson variables with λ1 = 25, λ2 = 12, λ3 = 8. In order to simplify the model by
reducing number of scenarios, we truncate the poisson distribution at probability 0.95.
For budget sensitive customer preference order, the buy up probabilities are 0.9, 0.7,
0.6. Likewise, for time sensitive customer preference order, the transition probabilities
are 1, 0.4, 0.7 and 1, 0.6, 0.8 are the transition probabilities for the hybrid customer
preference order. There are 32 seats in total for this origin destination combination.
20 seats are for connected trip and the remaining 12 seats for direct trip. The figure
3.12 is the structure of three preference orders,
The second example are processed in the same way. There are 6 OD combinations,
A to B, A to C, B to C, B to A, C to A, and C to B. For each combination, there are two
itineraries, one direct trip, and one connected trip. Also, for all the OD combinations
but C to A and C to B, there are three preference orders, time sensitive, budget
sensitive, and hybrid one. For the OD combinations of C to A and C to B, there are
two preference orders, budget and comfortable. Notice, for different OD combination,
the transition probabilities could be different even if the booking classes arrangements
are identical. For itineraries from A to B, A to C, B to C, and B to A, there are four
89
Figure 3.12. Preference orders in example 1
choices, the direct trip in the coach class, the direct trip in the business class, the
connected trip in the coach class, and the connected trip in the business class. For
itineraries from C to A, and C to B, there are two choices, the direct trip in the coach
class, and the direct trip in the business class. Fare levels for all itineraries are listed
in Table 3.7.1. The preference order setting is listed in table 3.7.1.
OD Direct/Coach Direct/Business Connected/Coach Connected/Business
AB
$300
$500
$250
$400
AC
$300
$500
$250
$400
BC
$450
$700
$400
$500
BA
$550
$750
$350
$600
CA
$200
$350
NA
NA
CB
$280
$400
NA
NA
Table 3.1. Experiment 2 fare level setting
Based on this setting, we solve model (3.11) and (3.12) for both examples. Also,
our backup methods, both the static method and the dynamic method are tested
against the non-backup method and the all backup method. The results for model
(3.11) with backup policy are in following table 3.3 while counterparts of model (3.12)
results are in table 3.4.
90
OD arrival rate
AB
55
AB
55
AB
12
AC
45
AC
10
AC
8
BC
48
BC
15
BC
10
BA
55
BA
15
BA
10
CA
60
CA
19
CB
62
CB
17
type
budget
time
hybrid
budget
time
hybrid
budget
time
hybrid
budget
time
hybrid
budget
comfort
budget
comfort
class arrangement
$250, $300, $400, $500
$300, $500, $250, $400
$300, $250, $500, $400
$250, $300, $400, $500
$300, $500, $250, $400
$300, $250, $500, $400
$400, $450, $500, $700
$450, $700, $400, $500
$450, $400, $700, $500
$350, $550, $600, $750
$550, $750, $350, $600
$550, $350, $750, $600
$200, $350
$350, $200
$280, $400
$400, $280
transition probability
0.7, 0.5, 0.4
1, 0.3, 0.8
1, 0.5, 1
0.7, 0.5, 0.4
1, 0.3, 0.8
1, 0.5, 1
0.7, 0.4, 0.4
1, 0.4, 0.9
1, 0.4, 1
0.4, 0.8, 0.6
1, 0.2, 1
1, 0.4, 1
0.3
0.7
0.2
0.7
Table 3.2. Experiment 2 setting, budget - budget sensitive; time - time
sensitive; hybrid - hybrid type
Example
No backup All backup Static backup Dynamic backup
Example 1 $10216±26 $10230±33 $10873±22
$11270±54
Example 2 $122400±78 $122910±53 $126528±78
$133217±92
Table 3.3. Model (3.11) simulation confidence interval summary
Example
No backup All backup Static backup Dynamic backup
Example 1 $10938±27 $10981±37 $11357±23
$11470±51
Example 2 $129456±83 $129188±69 $132591±81
$134892±89
Table 3.4. SLP model simulation confidence interval summary
All those simulation results tell us that applying well designed backup policy
on the model recommendation could lift the booking performance to a higher level.
Moreover, the dynamic backup policy tends to generate more expected revenue than
the static backup policy. According to these results, we should always apply the
dynamic backup policy to the model recommendation for better performances.
91
3.7.2. Experiment on the value of preference orders
Besides comparisons above, we also compared our method with the traditional booking allocation method. In order to make a fair comparison, we build an example for all
traditional booking allocation model discussed in chapter 1. The network structure
is the example 3 in Figure 3.13.
Figure 3.13. Experiment to show the value of customer choice
Assume an airline company has two itineraries, itinerary 1 and itinerary 2. Itinerary
1 is a connected trip while itinerary 2 is a direct trip from city A to city B. There
are two classes for both direct trip and connected trip, coach class and business class.
The rates for them are $250, $450 for connected trip and $300, $850 for direct trip
respectively. The capacity for the direct trip is 15 seats and 10 seats for the connected
trip. The arrival rates for the business class and the coach class are 8, 12 for the direct
trip and 3, 10 for the connected trip respectively.
If we want to take the customer choice into account, we have to build preference
orders. Since we believe assumption of independent demand is not going to hold, we
92
Model Independent demand PO w/o backup PO with backup
DLP $10568 ± 40.31
$13056 ± 39.24 $15724 ± 9.64
SLP
$10716± 39.77
$13212 ± 43.15 $16365 ± 12.19
Table 3.5. Comparison results
can construct the new dependent choice for this example. In figure 3.14, we show
preference orders’ structure.
Figure 3.14. Structure of preference orders
Under this setting, the improvement in the total expected revenue by incorporating customer choice is significant over the traditional linear programming model with
independent demands. Results are in table 3.5.
3.7.3. Numerical experiment summary
From the simulation results, we have the following facts.
• The model recommendation from model (3.12) tends to generate more expected revenue than the counterpart from model (3.11) no matter which
backup method applied.
93
• The backup heuristic is one of the critical points for the preference order
model. Applying backup heuristic would significantly improve the booking
performance according to both Table 3.3 and Table 3.4.
• The dynamic backup method tends to generate more revenue than the static
backup method for both model recommendations from model (3.11) and
(3.12).
• In Table 3.5, comparing with the independent demand model, the preference
order model improves the booking performance by granting other choices to
them upon rejections.
Based on those results, we tend to believe the preference order model (3.12) with
our dynamic backup method could be the best combination to calculate and apply
seat allocations. The experiment on example 3 suggests the seat allocation model
with customer choice tends to generate more revenue than the independent demand
model by granting customers other choices.
3.8. Conclusions
Revenue management research on the discrete customer choice is one of ongoing
research topics with great potential. It has been well recognized that the discrete
customer choice is an important part of booking process. There are quite a few models
designed already, such as Van Ryzin and Vulcano (2004), Talluri and van Ryzin
(2001), and Zhang and Cooper (2004).
In our research, we proposed our preference order model for the network customer
choice optimization. Unlike all existing customer choice models, our model is mainly
a parallel extension of the traditional seat allocation model with customer choice
integrated. Our goal is to find a seat allocation to maximize the expected revenue
94
instead of “offer sets” at a given time. Hence, we do not encounter the curse of
dimensions and modeling issues about state spaces in a network.
We provide two models for seat allocations, model (3.11) and model (3.12). According to numerical experiment results, we prefer model (3.12). This conclusion is
consistent with the conclusion in the research of seat allocations with independent
demands. Recall that we have DLP and SLP models in Chapter 2, we proved that
SLP’s booking policy is better than that of the DLP model in terms of the expected
revenue. The counterparts for DLP and SLP models in the preference order model
are model (3.11) and model (3.12) respectively. We can reach the similar conclusion
in the preference order model that model (3.12)’s booking policy is better than that
of the model (3.11) in terms of the expected revenue also. Actually, besides the difference in constraints, the preference order model and traditional seat allocation model
are quite similar. Most of established conclusions from the traditional OD model
would also hold in the preference order model. That is, our customer choice model is
compatible with major airlines’ current booking systems which are primarily based
on the OD seat allocation model. Further, both models could be solved by most
commercial optimization packages.
Besides our efforts on modeling customer choice, we also discussed the way to
implement the model recommendations. We proposed our backup heuristic by the
static backup model and the dynamic backup model. Numerical experiment results
suggest that our dynamic backup model is more adaptive at the scenario level. We
also conducted the comparison between the preference order model with the independent demand model. Simulation results indicate significant increases in the expected
revenue by the preference order model. Therefore, our model has a greater chance to
incorporate the customer choice in business implementations.
95
We still have unsettled issues on estimating parameters, such as transition probabilities and demand distributions. These issues are on the top of our to-do list. Also
seasoned experience and complete knowledge in customer choice are also appreciated
in constructing preference orders.
96
REFERENCES
J. Balasubramanian and I. Grossmann. Approximation to multistage stochastic optimization in multiperiod batch plant scheduling under demand uncertainty. Ind.
Eng. Chem. Res., 43:3695–3713, 2004.
P. P. Belobaba. Application of a probabilistic decision model to airline seat inventory
control. Operations Research, 37:183–197, 1989.
P. P. Belobaba and L. R. Weatherford. Comparing decision rules that incorporate
customer diversion in perishable asset revenue management situations. Decision
Sciences, 27(2):343–363, 1996.
M. Bertocchi, J. Dupacova, and V. Moriggia. Horizon and stages in applications of
stochastic programming in finance. Preprint, 2001.
D. Bertsimas and S. de Boer. Simulation-based booking limits for airline revenue
management. Manuscript,Massachusetts Institute of Technology, 2003.
D. Bertsimas and I. Popescu. Revenue management in a dynamic network environment. Transportation Science, 37:257–277, 2003.
J. Birge. Decomposition and partitioning methods for multistage stochastic linear
programs. Operations Research, 33:989–1007, 1985.
J. Birge, C. Donohue, D. Holmes, and O. Svintsiski. A parallel implementationi of
the nested decomposition algorithm for multistage linear programs. Mathematical
Programming, To appear., 2005.
J. Birge and F. Louveaux. Introduction to Stochastic Programming. Springer-Verlag,
Berlin, 1997.
97
S. E. Bodily and L. R. Weatherford. Perishable-asset revenue management: Generic
and multi-price yield management with diversion. Omega, 23(2):173–185, 1995.
E. A. Boyd, E. Kambour, and J. Tama. The impact of buy down on sell up, unconstraining, and spiral down, 2001. Presented at 1st Annual INFORMS Revenue
Management Section Conference.
S. L. Brumelle and J. I. McGill. Airline seat allocation with multiple nested fare
classes. Operations Research, 41:127–137, 1993.
S. L. Brumelle, J. I. McGill, T. H. Oum, K. Sawaki, and M. W. Tretheway. Allocation
of airline seats between stochastically dependent demands. Transportation Science,
24:183–192, 1990.
W. L. Cooper. Asymptotic behavior of an allocation policy for revenue management.
Operations Research, 50:720–727, 2002.
W. L. Cooper and T. Homem-de-Mello. A class of hybrid approaches for revenue
management. Working paper, University of Minnesota, Department of Mechanical
Engineering., 2003.
W. L. Cooper, T. Homem-de-Mello, and A. J. Kleywegt. Models of the spiral down
effect in revenue management. Technical Report TLI-04-02, School of Industrial
and Systems Engineering, Georgia Institute of Technology, 2004.
W. L. Cooper, T. Homem-de-Mello, and A. J. Kleywegt. Models of the spiral-down
effect in revenue management. Operations Research, 2005. To appear.
R. E. Curry. Optimal airline seat allocation with fare classes nested by origins and
destinations. Transportation Science, 24:193–204, 1990.
S. de Boer., R. Freling, and N. Piersma. Mathematical programming for network
revenue management. Euproean Journal of Operations Research.
98
S. V. de Boer, R. Freling, and N. Piersma. Mathematical programming for network
revenue management revisited. European Journal of Operational Research, 137:
72–92, 2002.
M. Dror., P. Trudean, and S. Ladany. Network models for seat allocation on flights.
Transportation Science, 22B:239–250, 1988.
R. P. G. Gallego, G. Iyengar and A. Dubey. Managing flexible products on a network.
CORC Technical Report TR-2004-01, IEOR Department, Columbia University.,
2004.
H. Gassmann. Mslip: A computer code for the multistage stochastic linear programming problem. Mathematical Programming, 47:407–423, 1990.
F. Glover, R. Glover, J. Lorenzo, and C. McMillan. The passenger mix problem in
scheduled airlines. Interfaces, 12, 1982.
D. Gupta and W. L. Cooper. Stochastic comparisons in production yield management and airline revenue management. Working paper, Department of Mechanical
Engineering, University of Minnesota, 2002.
J. Higle and S. Sen. A stochastic programming model for network resource utilization
in the presence of multi-class demand uncertainty, 2001. Applications of Stochastic Programming, SIAM Series on Optimization, W.T. Ziemba and S.W. Wallace
(eds.).
P. Kall and S. W. Wallace. Stochastic Programming. John Wiley & Sons, New York,
1994.
M. Kusy and W. Ziemba. A bank asset and liability management model. Operations
Research, 34:356–376, 1986.
K. Littlewood. Forecasting and control of passenger bookings. In AGIFORS Symposium Proceedings, volume 12, pages 95–117, 1972.
99
R. Rockafellar and R. J.-B. Wets. Scenario and policy aggregation in optimization
under uncertainty. Mathematics of Operations Research, 16:119–147, 1991.
A. Shapiro and A. Ruszczyński. Stochastic Programming. Elsevier, 2004.
R. V. Slyke and R. J.-B. Wets. L-Shaped Linear Programs with Applications to Optimal Control and Stochastic Programming. SIAM Journal on Applied Mathematics,
17, 638-663, 1969.
J. Subramanian, S. Stidham, and C. J. Lautenbacher. Airline yield management
with overbooking, cancellations, and no-shows. Transportation Science, 33:147–
168, 1999.
K. Talluri and G. van Ryzin. A randomized linear programming method for computing
network bid prices. Transportation Science, 33:207.
K. Talluri and G. van Ryzin. Revenue management under a general discrete choice
model of consumer behavior. Working paper, Universitat Pompeu Fabra, 2001.
K. Talluri and G. van Ryzin. Revenue management under a general discrete choice
model of consumer behavior. Management Science, 50(1):15–33, 2004a.
K. Talluri and G. van Ryzin. The Theory and Practice of Revenue Management.
Kluwer Academic Publishers, Dordrecht, Netherlands, 2004b.
G. van Ryzin and G. Vulcano. Simulation-based optimization of virtual nesting controls for network revenue management. Working paper DRO-2003-01, Columbia
University, Graduate School of Business, 2003.
G. Van Ryzin and G. Vulcano. Computing virtual nesting controls for network revenue
management under customer choice behavior. Working paper, Columbia University,
Graduate School of Business, 2004.
G. J. van Ryzin and Q. Liu. On the choice-based linear programming model for
network revenue management. Working paper, Columbia University, Graduate
School of Business, 2004.
100
L. Weatherford, S. Bodily, and P. Pfeifer. Modeling the customer arrival process and
comparing decision rules in perishable asset revenue management situations. TS,
27:239–251, 1993.
E. L. Williamson. Airline Network Seat Control. PhD thesis, Massachusetts Institute
of Technology, 1992.
D. Zhang and W. L. Cooper. Revenue management for parallel flights with consumer
choice behavior. Operations Research, 53(3):414–431, 2004.
101
APPENDIX A
NUMERICAL EXPERIMENTS CODES
A.1. The structure of the program
To conduct the numerical experiments, we choose matlab as the main coding
language because of its proven excellence in generating random numbers and matrix manipulation which is demanded intensively for SLP models. The most popular
random number generators are poisson distribution random generator, uniform distribution random generator, gammar distribution random generator, and the normal
distribution random generator. Also, the density function and distribution function
for poisson, normal distribution are also highly appreciated.
Besides, matlab also offers math programming solver. However, for our problem,
matlab is incapable to give us solutions. This is because our problems are mixed integer programming which requires some complicated solver, such as the global search
method. Fortunately, we have a licenced solver, XpressMP from Dash Optimization.
XpressMP is a complete optimization package with:
• Xpress-Optimizer features optimization algorithms which enable clients to
solve linear programming problems (LP), mixed integer programming problems (MIP), quadratic programming problems (QP) and mixed integer quadratic programming problems (MIQP).
• Xpress-SLP is a solver for non-linear programming problems (NLP) and
mixed integer non-linear programming problems (MINLP).
• Xpress-SP is a Stochastic Programming tool for solving optimization problems involving uncertainty. Notice, there is no specific algorithm integrated
102
into it, such as sampling or Monte-Carlo simulation. This module is largely
to model the SP problem and export the standard model formation.
• Xpress-Mosel allows the client to formulate problem, solve it using one
or several of the Xpress solver engines, and analyze the solution, using a
fully-functional compiled programming language specifically designed for the
purpose.
• Xpress-BCL is an object-oriented library for building, solving, and analyzing problems directly within an application. Our code is mainly based on
this module.
There are also other fancy features on Xpress, such as API for graphic programmer, or IVE (integrated visual environment). Since we code in Linux/Debian operating system, we could not go deep on those.
The interface between matlab main code and Xpress solver, we use some files
as program interfaces. Matlab code generates the initial problem setting and write
them into individule files first. Then activate the solver code to read input and output
solutions files. After the main code takes the control, the solution file will be loaded
in order to simulate the expected total revenue. The structure of simulation could be
shown in Figure A.1.
A.1.1. Matlab codes
This is a typical matlab code to solve the SLP problem and conduct the customer
demand simulation. The reader could locate the file interfaces easily.
clear ;
tau =1000;
load setting ;
arrivalrate = zeros (60 , tau );
generator ;
103
Figure A.1. Brief program structure
load setting ;
load matrixa ;
load arrivalrate ;
b =400* ones (10 ,1);
u_coeff = zeros (5400 ,1);
u_matrix = zeros (60 , 5400);
u_truncation = zeros (60 ,1);
for i =1:60
104
u_truncation (i ,1)= poisscdf (89 , sum ( arrivalrate (i ,:)));
end
for i =1:60
for j =0:89
u_coeff ((( i -1)*90+( j +1)) ,1)= setting (i ,5)* poisscdf (j ,
sum ( arrivalrate (i ,:) ’) ’)/ u_truncation (i ,1);
u_matrix (i ,(( i -1)*90+( j +1)))=1;
end
end
u_zero_coeff = zeros (60 ,1);
f =[ - setting (: ,5) ’ u_zero_coeff ’ u_coeff ’] ’;
f_x = setting (: ,5);
f_u = u_coeff ;
demand = sum ( arrivalrate (: ,:) ’) ’;
save ( ’ demand . txt ’ , ’ demand ’ , ’ - ASCII ’);
save ( ’ capacity . txt ’ , ’b ’ , ’ - ASCII ’);
save ( ’ f_x . txt ’ , ’ f_x ’ , ’ - ASCII ’);
save ( ’ f_u . txt ’ , ’ f_u ’ , ’ - ASCII ’);
save ( ’ leg . txt ’ , ’ matrixa ’ , ’ - ASCII ’);
dos ( ’ slp . exe ’);
load demand . txt
load solution . txt ;
load bidprice . txt ;
load f_x . txt ;
replication =1000;
revenue = zeros ( replication , 1);
rand ( ’ state ’ ,0);
for i =1: replication
eee = solution ;
for j =1: tau
ddd = poissrnd ( arrivalrate (: , j ));
revenue (i ,1)= revenue (i ,1)+ f_x ’* min ( eee , ddd );
eee = eee - min ( eee , ddd );
end
105
end
mean ( revenue )
std ( revenue )/(0.5* sqrt ( replication ))
This is the code to generate random arrival rates.
for t =1: tau
for i =1:60
arrivalrate (i , t )= gamrnd ( setting (i ,4) , 1)* setting (i ,8);
arrivalrate (i , t )= arrivalrate (i , t )/ tau ;
arrivalrate (i , t )= arrivalrate (i , t )* gamma ( setting (i ,6)+ setting (i ,
7))/( gamma ( setting (i ,6))* gamma ( setting (i ,7)));
arrivalrate (i , t )= arrivalrate (i , t )*( t / tau )^( setting (i ,6) -1)*(1 - t / tau )^( setting (i ,
7) -1);
end
end
save arrivalrate arrivalrate ;
A.1.2. Xpress-MP codes in C
The XpressMP solver is coded in C language by calling the Xpress-BCL library.
# include < stdio .h >
# include " xprb . h "
/***********************************************************************/
main ()
{
FILE * fp ;
int i =0 , j =0;
float f_x [60] , f_u [5400] , leg [10][60] , capacity [10] , demand [60];
106
double objval ;
XPRBvar x [60];
/* Number of small chess sets to make
*/
XPRBvar u_0 [60];
/* Number of large chess sets to make
*/
XPRBvar u [5400];
XPRBctr cap [10] , revenue_total , sto [60];
XPRBprob prob ;
prob = XPRBnewprob (" Airline Booking Optimization ");
problem in BCL */
/**** read files ****/
fp = fopen (" capacity . txt " , " r ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <10; i ++)
fscanf ( fp , "% f " , & capacity [ i ]);
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
puts (" File close error ");
fp = fopen (" f_x . txt " , " r ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <60; i ++)
fscanf ( fp , "% f " , & f_x [ i ]);
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
107
/* Initialize a new
puts (" File close error ");
fp = fopen (" f_u . txt " , " r ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <5400; i ++)
fscanf ( fp , "% f " , & f_u [ i ]);
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
puts (" File close error ");
fp = fopen (" demand . txt " , " r ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <60; i ++)
fscanf ( fp , "% f " , & demand [ i ]);
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
puts (" File close error ");
fp = fopen (" leg . txt " , " r ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <10; i ++)
for ( j =0; j <60; j ++)
fscanf ( fp , "% f " , & leg [ i ][ j ]);
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
108
else
puts (" File close error ");
/**** VARIABLES ****/
for ( i =0; i <60; i ++)
{
x [ i ]= XPRBnewvar ( prob , XPRB_UI ," seat _al lo ca tio ns " ,0 ,400);
u_0 [ i ]= XPRBnewvar ( prob , XPRB_PL ," u_0_variable " , -10000 ,
- demand [ i ]);
}
for ( i =0; i <5400; i ++)
u [ i ]= XPRBnewvar ( prob , XPRB_PL ," u_variable " ,0 , 1);
/**** OBJECTIVE ****/
revenue_total = XPRBnewctr ( prob ," REVENUE WITH RECOURSE " , XPRB_N );
for ( i =0; i <60; i ++)
XPRBaddterm ( revenue_total , x [ i ] , f_x [ i ]);
/* Define
the objective function */
for ( i =0; i <5400; i ++)
XPRBaddterm ( revenue_total , u [ i ] , - f_u [ i ]);
XPRBsetobj ( prob , revenue_total );
/* Select objective function */
/**** CONSTRAINTS ****/
/* Define the constraint
*/
for ( i =0; i <10; i ++)
{
cap [ i ]= XPRBnewctr ( prob ," capacity constraints " , XPRB_L );
for ( j =0; j <60; j ++)
XPRBaddterm ( cap [ i ] , x [ j ] , leg [ i ][ j ]);
XPRBaddterm ( cap [ i ] , NULL , capacity [ i ]);
}
for ( i =0; i <60; i ++)
{
109
sto [ i ]= XPRBnewctr ( prob ," stochastic constraints " , XPRB_L );
XPRBaddterm ( sto [ i ] , x [ i ] ,1);
XPRBaddterm ( sto [ i ] , u_0 [ i ] , -1);
for ( j =0; j <90; j ++)
XPRBaddterm ( sto [ i ] , u [ j +90* i ] , -1);
XPRBaddterm ( sto [ i ] , NULL , demand [ i ]);
}
/**** SOLVING ****/
XPRBmaxim ( prob ,"");
/* Solve the LP - problem */
objval = XPRBgetobjval ( prob );
printf (" The maximum profit is % f \ n " , objval );
fp = fopen (" solution . txt " , " w ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <60; i ++)
fprintf ( fp , "% f \ n " , XPRBgetsol ( x [ i ]));
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
puts (" File close error ");
fp = fopen (" bidprice . txt " , " w ");
if ( fp == NULL )
puts (" File open error ");
for ( i =0; i <10; i ++)
fprintf ( fp , "% f \ n " , XPRBgetdual ( cap [ i ]));
i = fclose ( fp );
if ( i ==0)
printf (" O , K \ n ");
else
110
puts (" File close error ");
XPRBdelprob ( prob );
XPRBfree ();
}
This code is compiled and linked under GNU/Linux Debian/Windows XP environments. Switching platform might require re-compile the source code.
111