INTRODUCTION
The airline revenue management business model has changed over the past few years. The older, traditional model assumed that the different fare levels published for a given flight or flight connection are well fenced by conditions attached to purchase. A typical condition, for example, is the Saturday night stay requirement. The lower fare can only be applied if the passenger's round-trip includes a Saturday night at the destination. For round-trips not satisfying this condition, a different fare level, usually higher, applies. Because of this fence it is possible to offer those two fare products simultaneously. The traditional revenue management model, implemented in most current systems, assumes that the demand for the different fare products is independent. That means the expected bookings for the higher fare are not dependent on whether the lower fare product is available or not.
As a reaction to the pricing policy of low-cost carriers, many airlines started to drop the restricting conditions. The fare levels become, in the extreme case of dropping all differentiating conditions, pure price points. With such a fare structure, customers will always buy the lowest fare available. Practitioners realised some time ago that the combination of fenceless fares with traditional revenue management systems would lead to a spiral-down of the prices to the lowest level. A thorough discussion of this effect can be found in Cooper et al. (2006). When customers buy down from higher to lower fares, the demand estimate of the higher fares is biased low. Hence, the optimisation algorithm tends to protect fewer seats for the higher fares, inducing even more buy down. Eventually the entire demand will be predicted at the lowest fare and thus seats will no longer be protected for the higher fares.
In practice, however, airlines learned to deal with buy down by introducing new, manual controls to their reservation systems. Those controls close booking classes even if the flights are not predicted to be full, for the purpose of preventing buy down. The downside of this practice is that most of the booking control systems are no longer capable of producing automated recommendations. The revenue management discipline again became more of an art than a science.
Science progressed as well, and there are optimisation and forecasting algorithms available that are capable of dealing with fenceless or semi-fenced fares (Gallego and van Ryzin, 1994; Talluri and van Ryzin, 2004a; Boyd and Kallesen, 2004). This raises the interesting question as to whether pricing can be made automatic, since proposing the lowest open booking class is the same as proposing the optimal fare level. Those algorithms still neglect the presence of competition, which drives many, if not most, of the pricing decisions in today's airline environment. We therefore pose the question as to what will happen if, for example, both of two competitors utilise those same new techniques.
Some partial results on what happens when airlines drop fare fences in a competitive environment, obtained using PODS (Hopperstad, 1996), have been reported by Tam (forthcoming, 2008). Because of the complexity of the involved networks and revenue management techniques, there is no conclusive outcome yet to indicate which modified revenue management methods perform best. There is also a difficulty in trying to compare the fenced with the unfenced environment, namely that in the former, price competition is not active, as the fares are fixed. Dropping fare conditions in a competitive simulation acts like switching on price competition. In this sense it is no surprise to see airline revenues drop dramatically.
This paper is organised as follows. In the second section, we review the simple single airline dynamic programming formulation of Gallego and van Ryzin (1994) that solves the optimisation problem for fenceless fares. Together with a demand forecast model adapted to the buy down behaviour this constitutes a model of the current state of the industry. In the third section, we simulate the situation when two airlines use those algorithms but neglect the fact that they are in competition. We use a simple choice model with exponentially distributed utilities and disutilities to model the passenger choice behaviour. In the fourth section, we extend the dynamic program to a Markov game for two competing airlines. We assume simultaneous price setting and that the airlines know the demand behaviour and the inventory counts of each other. A game theory analysis of the standard revenue management problem has been published already by Netessine and Shumsky (2005). We model fenceless fares and show that in the limit of continuous fares there is a unique pure strategy, subgame perfect equilibrium. The fifth section concludes with a discussion of the results.
SINGLE AIRLINE MODEL
The core model we consider has been introduced by Gallego and van Ryzin (1994). Consider one airline operating one flight with a seat capacity C. The booking horizon is divided into T time intervals with the property that in any one time interval the probability that more than one booking request will occur is negligible. The probability that a booking request arrives in time interval t, the arrival rate, is denoted by
t. At the beginning of each time interval, the airline posts a fare, ft. Let the probability of purchase, given an arrival, be pt(ft). We assume that the derivative of the probability of purchase is negative,
pt/
ft<0. This means that demand decreases when fares increase.
This optimisation problem (dynamic program) is solved by backward induction starting from the last time interval. Let the expected optimum revenue for the remainder of the booking horizon at time t, given x remaining seats, be Jt(x). The Bellman equations for J are

We dropped the t indices on the arrival rate and the purchase probability, assuming those quantities to be constant over the whole booking horizon. This assumption is not relevant in the following and is purely for the sake of simplicity. The boundary conditions are

as no more revenue can be made without seats or at the end of the booking horizon. At t=0 we set x=C, the seat capacity before bookings arrive.
We refer to the difference of the expected revenue at capacity x and x-1 as opportunity cost or bid price. Introducing the difference operator
Jt(x)=Jt(x)-Jt(x-1) as short-hand notation for the opportunity cost, the recursion formula becomes quite simple,

The optimal fare strategy for time interval t, given remaining seats x, satisfies; therefore

Since the derivative of the purchase probability is negative, the optimal fare is always higher than the bid price. For the same reason, p(f) is invertible and we can consider p as decision and f(p) as dependent variable. The left-hand side of the above equation then has the economical interpretation of the marginal revenue, that is, the derivative of the expected revenue, f(p)
p, with respect to the quantity sold, p.
The optimisation problem is therefore solved straightforwardly in the dynamic programming model. The more difficult task is, however, to find good estimates of the arrival rates and the buying probabilities for given fares. In practice, airlines usually adopt a fixed set of prices indexed by a single letter, the booking class. The traditional forecast model assumes that the demand is independent per booking class and that it is sufficient to estimate the demand per booking class from historical observations. In the case of pure price points one has to modify this model and estimate the demand per booking class, given that this class is the lowest open class. We do not delve further into the problems of forecasting here but only remark that there are system components commercially available that are capable of producing such estimates. For an overview of that active field of research, see Boyd and Kallesen (2004) and Talluri and van Ryzin (2004b).
TWO COMPETING AIRLINES
As we have argued in the previous section, the revenue management problem with completely unfenced fare structures can be tackled by modifications of the standard methods of optimisation and forecasting, which are available from commercial system vendors. However, the interesting question is that of whether pricing can be automated, similar to the automated revenue management task with completely fenced fare structures.
One important aspect of pricing has not been touched so far, namely the question of how to deal with competition. The buying probability introduced in the previous section is, of course, very much dependent on the competitive offers available at other airlines. The competitor fares are, however, not taken into account by the forecast model explicitly. They are taken into account implicitly, in the sense that when they change, the forecast will adapt to the new situation. This will, however, take a few iterations.
We will analyse this problem by a simulation approach. Assume that two airlines buy the same system, capable of dealing with unfenced fare structures, and just switch on the 'autopilot' mode. The exact description of the simulation is as follows. Each airline is equipped with the dynamic programming optimiser described in the previous section and a demand forecast predicting the arrival rate and the buying probability. While the former was shown to be optimal, we use a shortcut procedure for the forecast problem by letting the airlines know for each arrival what the highest fare capturing the passenger would have been. A similar trick has been used in PODS simulator studies and is called psychic power forecast (Cléaz-Savoyen, 2004). The rationale behind this is that we want to isolate the effect of the competitive situation as sharply as possible and are not concerned with the problem of how to build the forecast itself.
The results will be given in terms of revenue per flight for varied symmetric capacities. The competitive effect will become visible when comparing the revenue per flight to the monopoly revenue value, where a single airline offers twice the capacity.
The simulation framework and the demand model
The booking process is the same as in the second section except that now two airlines offer their flights. Hence, at each time step, a customer arrives with some probability
and then chooses between airlines A and B, or may decide not to buy at all. This choice is modelled by means of utility maximisation as follows. Going from origin to destination has a random base utility U0 for the customer. Flying usually also generates some disutilites so let us assume that flying with airlines A and B generates disutilities U and
, respectively. The total utility for the customer is therefore UA=U0-U if flying on airline A and UB=U0-
on airline B. If the fares offered by airline A and B are f and
, respectively, the customer will choose airline A if, and only if

The condition for choosing airline B is obtained by symmetry. If none of these two conditions are satisfied, the customer will choose not to fly at all.
In order to obtain a simple model, we assume that the base utility as well as the disutilities are independent and exponentially distributed:

The psychic power forecast works as follows. We let each airline know, after each time step, what the willingness-to-pay of a potential customer would have been. The forecasting task is then only to build the statistics of the recorded observations and to derive conclusions on the future willingness-to-pay. Also, some kind of forgetfulness for past events needs to be applied in order to adjust for changes in the demand for the respective airline. In our toy model such changes will always be driven by the other airline's price because we leave the underlying utility model fixed and time independent. Next we describe some implementation details.
Simulation parameters
The booking horizon of each pair of departures consists of T=60 time steps, each with arrival probability
=0.505. For forecast purposes it is useful to split the booking horizon into sub-periods, so-called data collection points, DCP for short. We work with 20 DCPs of equal length, containing three time steps.
For the utility model, we use
=0.01 and
=
= 0.5. When the airlines have to publish their price at the beginning of a time step, they may do so choosing from a list of price points, f1
f2
...
fN, as stated in Table 1. This fare structure may look a little unrealistic at first glance, since it is tuned such that discretisation effects are minimal. (See the fifth section for further details) We can look at it either as a subset of a very fine, equally spaced grid like some low cost carriers use, or as some approximation of a continuous fare model. Since the grid is large enough and rather uniform, this is hardly a restriction compared to continuous fares and makes implementation much easier. We will, however, admit continuous fares in the game analysis later on.
We vary the capacity C, being the same for both airlines, from 1 to 30. For a given capacity, one simulation run consists of 3,200 pairs of departures, with the first 200 serving as a burn-in phase and the last 3,000 being used for evaluation.
The forecast engine
Let us take the perspective of one airline, say airline A. At each time step before departure, A wants to know the probability of purchase as a function of its price to be quoted. Let W be a random variable describing willingness-to-pay in the following way. If no customer arrives, or if the customer is not willing to pay even the lowest fare, fN, we set W=N+1. Otherwise, if he is ready to pay fi , but no higher price from the grid (including the case of i=1), we set W=i. Due to decreasing fare indexing, larger values of W code for lower willingness-to-pay. If A considers quoting f=fj, the associated purchase probability,
p(f), can be expressed as

As the airline is equipped with psychic power, it knows, after each time step, the value of W even when its flight was closed. Exploiting that information, maximum likelihood estimators for the qi can be built: Let ei denote the number of cases with W=i in a certain collection of past observations. Then we set

Since W is a combined result of the passenger's utility and the price quoted by the other airline, we have to take into account the fact that the latter may change as departure comes closer. We do so by estimating the qi per DCP without making the DCP explicit in the notation.
It is convenient to apply an incremental update for the maximum likelihood estimations. Having observed R realisations of W, a subsequent observation, W=i, can be inserted by the following scheme:

Similarly, it is possible to remove an observation W=i as follows:

Using these schemes, we can start with zero observations and an arbitrary (because irrelevant) start vector, (q1, ..., qN+1). We then keep updating according to the first scheme until R has reached a maximum value, Rmax. In subsequent steps, we can remove the oldest observation with the second scheme before we insert a new one, thus keeping the number of observations constant. This way, we allow the forecast to flexibly adapt to new trends in the demand, as it may be induced by an altered pricing strategy of the competition. We used Rmax=30, thus limiting the 'memory' of the forecaster to ten departures.
Simulation results
Before the booking process for a new pair of flights commences, the optimisers of both airlines are invoked. Each airline then applies the resulting fare strategy. The average revenue per flight, measured over 3,000 departures, is shown in Figure 1 as a function of the — symmetric — capacity of each airline. The curve above it displays the outcome of an optimal strategy in the monopoly case or, equivalently, if the two carriers cooperate perfectly.
Both curves coincide for small capacities, indicating that the simulation with psychic power elasticity forecast produces nearly optimum results. However, from a certain point (C
8 in this simulation), the revenue in the competitive simulation drops quite rapidly. In the case of large overcapacity (beyond 21), it approaches a fixed, very small value, corresponding to the expected revenue of an airline always quoting the lowest fare, fN.
The resulting number of accepted passengers and the corresponding loads are displayed in Figure 2. The number of accepted passengers in the cooperation case saturates at the capacity where the revenue of the competitive simulation drops, because fares were still lowered to capture more passengers. Under competition, the passenger numbers saturate at a much higher capacity, although at very low yields.
These results can be described as a competitive spiral-down: the airlines derive the market's price elasticity with respect to their own fare, without considering the price strategy of their opponent. Given this elasticity, the optimal behaviour for the next flight is to undercut the opponent. Due to symmetry, the opponent drops prices as well, and so on.
There is also a third curve in Figure 1, corresponding to another well-known type of spiral-down, namely that of an airline using a fenceless pricing scheme together with a traditional revenue management system for independent demand per fare level (Cooper et al., 2006). As can be seen, the effect is far more severe than the competitive spiral-down, with revenues starting to drop for much lower capacities. We close this section by giving a formal description of how this independent-demand assumption was implemented in our simulation.
Ignoring buy down
In this variant of the simulation, the demand model is as before, but the airlines will mistakenly assume it to be the result of independent demand streams. Hence, instead of first determining a willingness-to-pay, i, and then using the scheme (9), it is sufficient to simply apply that scheme with i being the index of the booked fare at the own flight, if any. If no fare is chosen from an airline, it uses the second line of the scheme, which can be read as adding a zero observation for those fares that were available at the time of booking. For the closed fares, however, we applied a moderate unconstraining measure: as if adding a fraction
of a booking, a modified last line is applied,

We set
=0.05. Without that unconstraining measure, the spiral-down effect would have been even more severe.
GAME MODEL
The relatively poor performance in the previous section for intermediate and large capacities might be attributed to ignoring the competitor. One might be tempted to argue that the solution should be to include the competitor fare in the forecast model as well, and try to predict the buying probability as a function of the own and the competitor fare, p(f,
). The optimisation problem, however, will then become elusive, as the future fares of the competitor are not known either. Therefore, one would need to predict those as well. A way out of this dilemma is proposed by Nash's concept of equilibrium: it is sufficient to assume that the competitor will optimise his revenue as well. The predicted outcome will be an equilibrium state where neither airline A nor B can improve their revenue as long as the other airline keeps its strategy fixed.
In the following, we will generalise the dynamic programming model of the second section to a game model with two competing airlines. We are given the two purchase probabilities p(f,
) and
(f,
), which depend on both airlines' fares f and
. There are several options as to how the exact process may work. We choose simultaneous price setting, where at the beginning of each time interval both airlines simultaneously choose prices f and
. We again assume that in a given time interval at most one customer arrives, and we denote the arrival probability by
. If a customer arrives he will choose between airline A and airline B, or may decide not to buy at all. The state variable now becomes a vector with two components, x and
, denoting the number of seats still available for the corresponding airline. An important ingredient for defining a game is the information structure. In our context it represents the information an airline has when the price must be set. Since price setting is simultaneous, airline A cannot know the price of airline B and vice versa. We assume that everything else is known, specifically that the airlines know the remaining capacity x and
of each other and also the behaviour of the demand,
, p and
. This is a bit unrealistic as it would be very uncommon for an airline to know the exact inventory counts of a competitor throughout the whole booking horizon. As we will show in the following, however, this full information setting makes it possible to analyse the equilibria.
The game structure above allows for a generalisation of the dynamic programming principle of backward induction. To this end, we use, once again, the expected future revenue at time t for airlines A and B, this time denoted by Jt(x,
) and
t(x,
), respectively. Given some fare strategies contingent on the state vector for both airlines, ft(x,
) and
t(x,
), airline A's future revenue satisfies the following recursion equation:

By introducing the difference operators,
J(x,
)=J(x,
)-J(x-1,
) and similarly
J(x,
) = J(x,
)-J(x,
-1) we can write this equation as

The recursion relation for
is obtained by the substitutions J
, 

, p
and f
, except in the argument lists of p and
. The expected future revenue functions satisfy the boundary conditions

The situation is much like in the one airline case, where one has to optimise the expected revenue backwards in time for each step. In the game model, however, we have to find the Nash equilibria in each subgame for each state vector (x,
) at time step t, thus obtaining a so-called subgame perfect equilibrium of the entire process.
Here it is important that the airlines know the inventory counts of each other, since in this case the continuation from each time step t and state value (x,
) is a proper subgame. Without knowing the inventory counts, the game is much more difficult to analyse. For a discussion of this case see Gallego and Hu (2006).
Although this formulation might afford a quite general analysis, we now restrict ourselves to the simple passenger choice model with the exponentially distributed utilities and disutilities as used in our simulation. The explicit form of the purchase probabilities follows from the distribution of the utilities (7) and the maximum utility principle (5). It is

Again, the equation for
is obtained by reversing the bars. We can thus write the second line above in a more convenient form:

It is not hard to verify that p(f,
) and its first derivatives with respect to f and
are continuous functions of f.
If we now restrict the fares to the fare grid introduced above (Table 1) and use the same value for the parameters as in the simulation, we have to find the equilibria with (11) as utility for each value of t, x and
, proceeding backwards in time. There are several software packages available to find Nash equilibria. We actually used Gambit (McKelvey et al., 2006) to solve (11). In the discrete case, there is the additional difficulty that there may be several pure and mixed Nash equilibria. Many of them are a trivial consequence of the discrete strategy space and are of no further significance. An equilibrium of the entire game is obtained by choosing any one of the stage equilibria. We tested several variants for choosing the stage equilibria but the outcome was always very similar. In the following we prove that if the fares are continuous, there is a unique pure strategy, subgame perfect equilibrium.
Continuous fares
The equilibrium conditions with continuous fares for the subgames at each step are

We also impose a constraint on the lowest fare, because we want to compare the results with the simulation. Therefore, we require that f, 
f13=5. In order to find the equilibrium, we have to solve (15) parametrically. This will lead to the response functions of the optimal fare as functions of the competitor fare, f*(
) and
*(f). The equilibrium fare is then found at the intersection of those two curves. We have to find the equilibrium for all possible values of the parameters
J,
J,
Jmacr and
. Let us discuss the response function f*(
). We insert (13) into (15) and restrict again to the symmetric case
=
. Because of symmetry, we will discuss the equation for airline A only. If we can assume that f
, the solution is found immediately,

which is independent of
. On the other side, f<
, the equations cannot be solved analytically and we have to resort to a numerical procedure. The equation to be solved can be written as

where we introduced the abbreviation

for the limiting solutions of (17) if

. If
J=-1/
both values coincide. This is then the unique constant solution, which also equals (16) as it should be by continuity. We therefore consider the case
J
-1/
in the following.
Observe that a solution of (17) must be in the range

as the terms of equation (17) must have opposite signs. While we cannot give an analytic expression for f*(
), we can easily write down its inverse
(f*),

which is well defined in the range given by (19). In order to check monotonicity, we compute the first derivative:

Since the denominator is always negative in the allowed range for f*, the derivative is always positive if
J>1/
. The bound can be extended by observing that the denominator obtains its minimum at (f++f-)/2 and thus we conclude that (20) is monotonous if

It actually turns out that this is sufficient for our purposes. We can check during the backward induction that (22) is always satisfied for our chosen parameters.
Since the response functions are monotonic and bounded, the unique pure strategy equilibrium is now easily determined as follows. First check which airline has a larger solution f>. If both coincide, this is the equilibrium fare for both airlines. Otherwise, f> is the equilibrium fare for the airline with the higher value and the equilibrium fare of the other airline is obtained by inverting (20).
Figure 3 displays the discrete and continuous equilibrium revenues as functions of the symmetric capacity. They are quite close to each other, meaning that the discreteness of the fare grid is not very restrictive.
Cooperation
The simple form of the buying probabilities (13) allows us to find an exact solution for the monopoly case when both legs belong to a single airline, or alternatively, if both airlines were in perfect cooperation. In this case, the total expected revenue Jtot=J+
has to be optimised in each time step by choosing f and
. A straightforward calculation shows that the unique solution to this problem is

The revenues from this solution were actually displayed in Figure 1.
DISCUSSION AND CONCLUSION
Figure 4 summarises our findings.
The equilibrium solution exhibits very similar features to the simulation outcome except that it achieves higher revenues for intermediate capacities. A closer analysis of the equilibrium load probabilities for those capacities actually showed that those were concentrated on either almost empty or almost full. This indicates that the equilibrium strategies will try to let the competitor fill up with cheap fares and thus induce monopoly. The simulation result was not as good in this capacity range because the forecast does not consider the competitor fare explicitly.
At larger values of the capacity, all solutions lead to complete spiral-down. This is known in game theory as the Bertrand paradox for price competition (Bertrand, 1883), which is just a variant of the prisoner's dilemma. This outcome was also suggested by Burger and Fuchs (2005). In our context all
J's are 0 if the probability of filling up is low for both airlines and the equilibrium strategy is to charge the lowest fare. While this result is immediate for continuous fares, a discrete fare grid requires some care. The grid used in the simulation (Table 1) is actually tuned such that it is always beneficial to go to a lower fare and capture a larger portion of the demand from the competitor instead of sharing the demand at the higher fare 1:1. This is the typical setting for the prisoner's dilemma.
We make the claim that the revenues achieved by the continuous-fare perfect information equilibrium are the 'optimal' revenues in a competitive environment. No revenue management technique, however sophisticated it may be, will be able to go beyond that barrier. Spiral-down is inevitable for larger capacities. The lowest fare to which the strategies converge is given by our constraint f, 
f13. Relaxing the latter restriction, the lowest fare would actually be fspiraldown=1/(
+
), which tends to 0 for
. Smaller values of
imply larger disutilities and thus higher probabilities that the customer assigns a different valuation to the two flight alternatives. The
parameters can therefore serve as a measure for the degree of differentiation of the competing products.
How can the adverse consequences of price competition be mitigated? Essentially, we see three possibilities:
First, if there are situations where the entire market capacity is not too large. Specifically, the demand at the lowest nondiluting fare, fcoop=1/
, is higher or equal to capacity. With our parameter values, the load at this fare would amount to something less than six, which is exactly the capacity value where the competitive equilibrium departs from the cooperative solution.
Secondly, the flights of the competing airlines are sufficiently differentiated, for example by departure time, in such a way that both alternatives have enough exclusive demand. We have deliberately chosen a very small differentiating value, fspiraldown
2. Our lower bound keeps the lowest fare at f13=5, however. The corresponding load is then approximately 14 for each airline. Thus, if capacity exceeds 28, no airline can expect to be full, even when obtaining the entire demand, and therefore prices will spiral down to this value as predicted by the Bertrand equilibrium. Both airlines will run at a load factor of less than 50 per cent.
The third, and in our opinion most important, possibility is related to the following. Our model implicitly assumes that there is only one flight offered by each airline. In reality, the airlines usually offer many flights on a day-to-day basis. In other words, the game theory setting is rather that of a repeated game. It is well known that in a repeated game many other equilibria exist. In fact, almost any strategy can be enforced to be an equilibrium strategy (Fudenberg and Maskin, 1986). This is closer to our intuition that airlines, or any other firm for that matter, will consider the long-term impact of a pricing strategy in one form or another. It is therefore possible that when both competitors realise that in the long run undercutting each other is detrimental, a fare higher than fspiraldown is found in the market.
In this sense, we answer the question posed initially in the negative. Pricing, and specifically the necessary long-term components of the pricing strategy, cannot be automated entirely. When using automated systems along the lines described above, it is important to observe competitor behaviour and use overrides of the system according to a defined long-term strategy. This aspect is still the same as it was before airlines dropped fare fences. It is rather unlikely that it will be possible to enlarge the scope of the revenue management objective to repeated games, since the interesting results for those are obtained in the limit of infinite repetitions, or when the number of repetitions is not known. We argue therefore that long-term objectives should be imposed as overrides or constraints on the short-term optimisation.
We close with the remark that the competitive dynamics described in our paper may also arise between flights of the same airline, for example when several flights are offered on the same day. If passengers are very price sensitive and prefer the cheapest flight of the day irrespective of the scheduled time, we have a situation comparable to the one studied here. It may therefore become important to refine the optimisation models to account for the internal competition effects.
References
- Bertrand, J. (1883) (Review of) Theorie mathematique de la richesse sociale and of recherches sur les principles mathematiques de la theorie des richesses', Journal de Savants, 67, 499–508.
- Boyd, E. A. and Kallesen, R. (2004) 'The science of revenue management when passengers purchase the lowest available fare', Journal of Revenue and Pricing Management, 3, 171–177. | Article |
- Burger, B. and Fuchs, M. (2005) 'Dynamic pricing — a future airline business model', Journal of Revenue and Pricing Management, 4, 1, 39–53. | Article |
- Cléaz-Savoyen, R. (2004) 'Psychic power and elasticity', PODS consortium summit, Minneapolis-Saint-Paul.
- Cooper, W. L., Homem-de-Mello, T. and Kleywegt, A. D. (2006) 'Models of the spiral-down effect in revenue management', Operations Research, 54, 5, 968–987. | Article |
- Fudenberg, D. and Maskin, E. (1986) 'The folk theorem in repeated games with discounting or with incomplete information', Econometrica, 54, 3, 533–554. | Article |
- Gallego, G. and Hu, M. (2006) 'Dynamic Pricing of Perishable Assets Under Competition', Working Paper, Columbia University.
- Gallego, G. and van Ryzin, G. J. (1994) 'Optimal dynamic pricing of inventories with stochastic demand over finite horizons', Management Science, 40, 8, 999–1020. | Article | ISI |
- Hopperstad, C. A. (1996) 'Passenger O&D Simulator–PODS v.6.', AGIFORS Annual Sympos. Proc.
- McKelvey, R. D., McLennan, A. M. and Turocy, T. L. (2006) 'Gambit: software tools for game theory', The Gambit Project, Version 0.2006.01.20, http://gambit.sourceforge.net.
- Netessine, S. and Shumsky, R. A. (2005) 'Revenue management games: horizontal and vertical competition', Management Science, 51, 5, 813–831. | Article | ISI |
- Talluri, K. T. and van Ryzin, G. J. (2004a) 'Revenue management under a general discrete choice model of consumer behavior', Management Science, 50, 1, 15–33. | Article | ISI |
- Talluri, K. T. and van Ryzin, G. J. (2004b) The Theory and Practice of Revenue Management, Kluwer Academic Publishers, Dordrecht.
- Tam, W. (forthcoming, 2008) 'Dynamic programming in fully restricted fare environments', MS Thesis, MIT, Cambridge, MA.





