Question1,2

I upload 2 questions and four materials related to this questions, please take a look then decide whether you want to do them or not, the name of this course is ” Dynamic Pricing & Revenue Management “, please upload solution to me before deadline, also I need detailed explaination, thank you.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

IEOR 460

1

Assignment 7

1. Consider the following dynamic pricing problem with three market segments with time
invariant arrival rates dmt(p) = dm(p) = λme

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

−p/θm,m = 1, 2, 3 and random request
Zm,m = 1, 2, 3. Assume that λ1 = 10, λ2 = 5 and λ3 = 15, that θ1 = 500,θ2 = 550,θ3 =
600, and that the distribution of Zm is given by P(Zm = 1) = 0.8, P(Zm = 2) = .1 and
P(Zm = 3) = P(Zm = 4) = .05, for m = 1, 2, 3. Finally, assume that T = 10 and that
c = 70.

a) Compute z(T,c) by using formula (21) in the chapter on Dynamic Pricing.

b) Use the result of part a) to compute V̄ (T,c), the upper bound on the optimal
expected revenue.

c) Simulate the performance of the quasi-static pricing policy Phm(t,x) given in formula
(19). In the simulation you should use the distribution of Zm to generate the request
sizes, and accept all requests at price Phm(t,x) of size Zm ≤ x.

d) Repeat part c), updating z of the quasi-static pricing policy at t = 5.

2. Consider a single market model with Poisson demands with dt(p) = λe
−p/θ with λ = 10,

θ = 500, T = 100 and c = 150. Let tj = 50j for j = 1, 2 be the reading dates.

a) Simulate the performance of the quasi-static pricing policy updating z at each
reading date.

b) Solve the dynamic policy in Section 5.2, and compare the performance of the semi-
dynamic pricing policy to the results of part a)

c) Repeat parts a) and b) assuming that the reading dates are tj = 10j,j = 1, . . . , 10.
Which policy performs better?

1

Network Revenue Management: Independent
Demands c©

Guillermo Gallego

Spring

1

2

Abstract

We present a continuous time formulation of the network revenue management model
with independent demands. The objective is to maximize expected revenues from an
initial set of resources that cannot be replenished during the sales horizon. We present
the Hamilton Jacobi Bellman equation that characterizes the optimal value function. We
use affine functions in a dynamic programming approximation to obtain an upper bound
on the value function and a bid-price heuristic that admits fares with values at least as
large as the sum of the bid prices of the resources consumed. We argue that the bid-price
heuristic can perform poorly for products with fares that are exactly equal to the sum
of the bid-prices, particularly if demand for such products arrive early during the sales
horizon. We recommend a refinement of the bid-price heuristic that randomly admits
fares that are equal to the sum of bid-prices, which can be shown to be asymptotically
optimal. We also discuss refinements that incorporate demand randomness ignored by
bid-price heuristics based on the affine approximation.

1 Introduction: Independent Demand Case

Consider a network with several resources that can be combined in different ways to produce
different products. In the context of an airline, the resources are the flight legs that are
combined to form itineraries or routes from an origin to a destination. In hotel applications,
the resources are the room nights and an itinerary may correspond to a single or multiple
night stay. An origin-destination fare (ODF) represents an itinerary and a fare. Accordingly,
there may be several fares corresponding to an itinerary, with lower fares often being more
restricted in terms of the time of purchase, length of stay, or including few ancillary services
such as advanced seat selection, luggage handling, mileage accrual and meals.

We will assume that itineraries and fares are given and that demands are independent
conditioned on the given fares. More precisely, we will assume that an arriving customer has
a particular ODF in mind and will buy that ODF if available and will not make a purchase
otherwise. Under this model a customer interested in a non-restricted fare for a given itinerary
will not change his mind and purchase a lower priced but more restricted fare. Alternatively,

1

a customer interested in a low fare product will not buy up if the desired fare is unavailable.
The independent demand assumption, while restrictive, works well when fares are well differ-
entiated and customers can turn to a competitor if they fail to find the fare they want. The
independent demand model preforms poorly if fares are not well differentiated or alternative
providers are not available. Indeed, when fares differ only in price it makes sense to purchase
the one with the lowest price. Moreover, when alternative low fares are not available, some
customers may buy up to more expensive but less restricted fares. In such situations we
recommend abandoning the independent demand model in favor of a choice model where cus-
tomer choices depend on the available fares. The next chapter treats the dependent demand
case through the use of choice models.

2 Formulations

Suppose that there are m resources in the network and let c ∈Zm denote the vector of initial
capacities. We will assume that resources cannot be replenished during the sales horizon. We
will measure time backwards, so t will represent the time-to-go. Initially t = T and at the
date of departure t = 0. For any time-to-go t we will let (t,x) represent the state of the
system where x represents the vector of remaining inventories. The initial state is (T,c). We
will now develop the necessary notation to write a continuous time dynamic program for the
maximum expected revenue, say V (t,x), that can be extracted from state (t,x).

We will assume that customers arrive according to a Poisson or compound Poisson process
with time varying arrival rates. Expositionally, it helps to introduce the main ideas for the
Poisson case and later take care of the changes needed to deal with the compound Poisson
case. We will let λtkj denote the arrival rate at time t of ODF kj for customers interested in
fare pkj,j ∈{1, . . . ,nk} of itinerary k.

Let Ak be the vector of resources utilized by itinerary k. Then Ak is an m-dimensional
vector of zeros and ones with a one for each resource consumed by itinerary k. Consider now
a time increment δt that is small enough so that we we can think of λtkjδt as the probability
that an arrival occurs at time t for ODF kj. Then,

V (t,x) =

K∑
k=1

nk∑
j=1

λtkjδt max{V (t−δt,x),pkj+V (t−δt,x−Ak)}+(1−
K∑
k=1

nk∑
j=1

λtkjδt)V (t−δt,x)+o(δt)

where o(δt) is a quantity that goes to zero faster than δt. Rearranging terms and taking limits
we obtain the partial differential equation

∂V (t,x)

∂t
=

K∑
k=1
nk∑
j=1

λtkj[pkj − ∆kV (t,x)]+ (1)

with boundary conditions V (t, 0) = V (0,x) = 0 for all x ≥ 0. Here ∆kV (t,x) = V (t,x) −
V (t,x − Ak) if x ≥ Ak and ∆kV (t,k) = ∞ otherwise. This continuous time formulation

2

indicates that the marginal value of time is equal to the net revenue in excess of the marginal
value of capacity.

It is clearly optimal to accept ODF kj if pkj ≥ ∆kV (t,x). This gives rise to a nested by
fare structure. Indeed, if fares are ordered so that pk1 ≥ pk2 ≥ . . . ≥ pknk . Then, if fare pkj is
accepted then so are all fares pki with i ≤ j and if fare j is reqjected then so are all fares with
i > j.

It is conceptually useful to think of λtk =
∑nk
j=1 λtkj as the arrival rate of requests for

itinerary k and the requests for specific fares λtkj = λtkqtkj as thinned Poisson processes. This
is equivalent to having random fare Ptk at time t for itinerary k where Ptk takes value pkj with
probability qtkj. Writing (1) in terms of random fares yields the equivalent formulation

∂V (t,x)
∂t
=
K∑
k=1

λtkE[Ptk − ∆kV (t,x)]+. (2)

Formulation (2) makes explicit the arrival rate for each itinerary and the fact that distribution
of fares for an itinerary may change over time to reflect time preferences or fare restrictions.
Formulation (2) is actually more general than the motivation that led to it as it is valid for any
random fares Ptk with finite means. Viewing Ptk as a general random variable, not necessarily
restricted to the set of offered fares {pk1, . . . ,pknk}, may be helpful to deal with net fares that
may be different depending on the distribution channel costs. However, most of these benefits
can be captured by a enlarging, if necessary, the set of fares {pk1,pk2, . . . ,pknk} to allow to
deal with commission netting and channel effects.

While formulation (2) is rich in detail, it is sometimes convenient to work with a more
streamlined formulation that aggregates ODFs into a single index n =

∑K
k=1 nk. Abusing

notation slightly, the single index formulation results in

∂V (t,x)
∂t
=

n∑
j=1

λtj(pj − ∆jV (t,x))+ (

3

)

where in this formulation λtj and pj denote respectively the arrival rate and the fare of ODF
j. Notice that in this formulation there may be multiple identical columns corresponding to
different fare classes for the same itinerary. This formulation has the virtue of simplicity and
generality at the cost of abstractness as it distances the model a bit from one of its potential
origins. It simplicity allows us to more easily treat the compound Poisson case, to discuss
the nested by fare structure of optimal solutions and randomness in the arrival rates. After
we discuss these extensions we will go back to formulation (1), that at the cost of additional
notation, keeps the distinction among the fares for different itineraries.

2.1 Compound Poisson Process

The network DP is written under the implicit assumption that arriving requests for ODF j
are for a single unit. If demand for an ODF j is a compound Poisson process with arrival rate
λtj and demand size Zj with q

k
j = P(Zj = k), then we can model this by using columns of

3

the form Akj = kAj with corresponding fare p
k
j and arrival rate λ

k
tj = λtjq

k
j for all k such that

qkj > 0. Notice that the total fare p
k
j for a size k request for ODF j need not be equal to kpj,

thus allowing for economies or diseconomies of scale in group pricing. Under this formulation,
a size k request for ODF j is accepted if and only if pkj ≥ ∆kjV (t,x) = V (t,x)−V (t,x−Akj ) =
V (t,x) − V (t − kAj). This allow us to treat ODF of each size as a different request in the
single index model.

2.2 Doubly Stochastic Poisson Process

If the arrival rates themselves are random for each t, say λitj with probability θ
i
j, then the HJB

(3) is of the same form with λtj =

i λ

i
tjθ

i.

3 LP Based Upper Bound on V (T,c)

We now return to formulation (1) with the goal of obtaining an upper bound on the optimal
expected revenue V (T,c). We will use the perfect foresight idea introduced in Chapter 1 to
obtain an upper bound on revenue for the single resource problem. Let Dkj be the aggregate
demand for ODF kj over the horizon [0,T]. Then Dkj is Poisson with parameter Λkj =∫T
0 λskids. Consider the linear program

V̄ (T,c) = max
K∑
k=1

nk∑
j=1

pkjykj (

4

)

s.t.
K∑
k=1

Ak

nk∑
j=1

ykj ≤ c

0 ≤ ykj ≤ Λkj ∀ k,j.

This Linear Program is know as the deterministic network LP (DNLP) and also as the fluid
limit LP. We will now show that this linear program is an upper bound on the value function
V (T,c).

Theorem 1
V (T,c) ≤ V̄ (T,c).

Proof: Consider the revenue from the optimal dynamic policy, that accepts a request
for ODF kj at state (t,x) if pkj ≥ ∆kV (t,x), for a specific realization of demands Dkj,j =
1, . . . ,nk,k = 1, . . . ,K. This revenue is at most equal to the revenue from the perfect foresight
model that decides how many units from each ODF to accept after seeing the realization of
demand.

V (T,c|D) = max
K∑
k=1

nk∑
j=1

pkjykj

4

s.t.
K∑
k=1
Ak
nk∑
j=1
ykj ≤ c

0 ≤ ykj ≤ Dkj ∀ k,j.

It follows that V (T,c) ≤ EV (T,c|D). Since V (T,c|D) is concave in D, Jensen’s inequality
implies that V (T,c) ≤ EV (T,c|D) ≤ V (T,c|Λ) = V̄ (T,c) where Λ = E[D] is the vector of
expected demands.

The DLP is more typically encountered in the single index incarnation in matrix notation:

V̄ (T,c) = max p′y (

5

)

subject to Ay ≤ c

0 ≤ y ≤ Λ,

where y = (y1, . . . ,yn) and Λ = (Λ1, . . . , Λn).

Both the primal and the dual are feasible and bounded so they have an optimal solu-
tion. By strong duality they both result in the same value for the objective function and all
complementary slackness conditions apply. The dual problem to (4) is given by

V̄ (T,c) = min z′c + u′Λ (

6

)

s.t. z′Aj + uj ≥ pj ∀j

z,uj ≥ 0 ∀ j.

At optimality, the dual variable zi is the marginal value of capacity of resource i, while the
dual variables uj is the marginal value of demand for ODF j. By complementary slackness,
zi > 0 implies that the capacity constraint for resource i is tight, and uj > 0 implies that all
the demand of ODF j is used.

Example 1 Consider a network with two connecting flights and assume that two fares are
available for each individual flight as well as for the connecting flight. Using the single index
model we have 6 ODFs with incident matrix

A =
(

1 1 0 0 1 1
0 0 1 1 1 1

)
.

The fare vector and arrival rates are as follows:

p = ( 150,

10

0,

12

0,

8

0, 250, 1

7

0 )

5

λt = ( 0.06, 0.00, 0.04, 0.00, 0.06, 0.00 ) 1 ≤ t ≤ 500
λt = ( 0.00, 0.12, 0.00, 0.16, 0.00, 0.08 ) 501 ≤ t ≤ 1000

with capacity vector c = (

9

0, 90). Notice that the arrival rates are such that low fare demands
arrive before high fare demands. The vector of ΛTj =

∫T
0 λtjdt is given by

ΛT = ( 30, 60, 20, 80, 30, 40 ) .

The solution to (5) is given by

ȳ = ( 30, 30, 20, 40, 30, 0 )

and the solution to the primal problem (6) is given by z̄ = (100, 80). The optimal value
function is $20,600.

Heuristics for the stochastic system can be constructed both in terms of the solutions to
the primal or the dual problem. In the next section we emphasize heuristics based on the
primal problem. Heuristics based on the DLP require n values instead of m << n required by the dual. However, heuristics based on the DLP have the potential of performing well if implemented correctly, particularly if DLP is resolved at reading dates T = tN > .. . > t1 > 0.
This is particularly true when new forecasts are available at reading dates. Resolving the
DLP has good asymptotic properties, see Maglaras and Meisnner [6] in the context of a single
resource. However, resolving may hurt rather than help performances in some instances, see
Cooper [2] for details, particularly towards the end of the horizon when the fluid approximation
implied by the DLP suffers the most from ignoring randomness.

4 Bid-Price and PAC Heuristics

Any vector z ∈ 1 (a request for
product j at t = 1 is accepted as long as Aj ≤ x). In words, accept a request if its fare is equals
or exceeds the sum of bid prices for the resources consumed and there is available capacity. A
bid-price vector that is commonly used is the solution to linear program (6), although other
bid-prices are often used as explained later. A bid-price heuristic has the advantage of using
only m numbers, one for each resource.

Let F = {j : pj ≥ z′Aj} and R = {j : pj < z′Aj}. Then all ODFs belong to either the set F or the set R. The bid price heuristic accepts requests for ODFs in F, provided there is enough capacity, and rejects all requests for ODFs in R. The solution to the linear program (6) almost always has a non-empty set P = {j : pj = z′Aj}⊂F consists of ODFs whose fares are equal to the sum of the bid-prices. Let F = {j : pj > z̄′Aj}. Then the set of ODFs can
be partitioned into the three sets F,P and R with F = F ∪P .

Let y be the solution to the DLP (5). Consider now a probabilistic admission control (PAC)

6

heuristic, that admits a request for ODF j with probability ỹj = yj/ΛTj. By complementary
slackness, R = {j : yj = 0}, P = {j : 0 < yj < ΛTj} and F = {j : yj = ΛTj}. This implies that the acceptance probabilities are ỹj = 0 for j ∈ R, ỹj ∈ (0, 1) for j ∈ P and ỹj = 1 for j ∈ F. Notice that the data requirements for the PAC is the solution to the DLP with involves n >> m numbers. If P = ∅, then the PAC and bid-price heuristics coincide. However, if
P 6= ∅, then the PAC heuristic has a more refined method of dealing with ODFs in P . This
is good news when the solution to the DLP has many ODFs in P , particularly when request
for ODFs in P arrive before ODFs in F as is common in practice. The following example
illustrates this situation.

Example 2 Consider Example 1 and notice that the six ODFs are partitioned as follows:
F = {1, 3, 5}, P = {2, 4} and R = {6}. Notice also that fares in P arrive before fares in
F . The performance of the bid-price heuristic was estimated through simulation resulting in
approximate expected revenues of $17,732, estimated by averaging the revenues of 100,000
simulated instances. The PAC heuristic, has ỹj = 0.5 for j ∈ P , so the PAC, admits ODFs in
P with probability 50%. This improves the expected revenues, estimated by simulation, from
$17,732 to $19,386.

Under the assumption that the random fares Ptk in formulation (2) are continuous random
variables that are uniformly bounded, Talluri and van Ryzin [8] show that the bid-price
heuristic based on the solution of program (6) is asymptotically optimal. The asymptotic
result is for a sequence of problem instances where the demand rates and capacity are scaled
up by a factor b > 1. More precisely, if V b(T,c) is the optimal expected revenue for a system
with arrival rates bλtk and capacity bc, and V

b
z̄ (T,c) is the expected revenue based on the

solution z̄ to (6), Talluri and van Ryzin [8] show that

V bz̄ (T,c)

V b(T,c)
→ 1 as b →∞.

The assumption that Ptk is continuous guarantees that set of partially accepted fares P
is empty. However, this is rarely the case in practice. The asymptotic optimality of the bid-
prices heuristic is unfortunately destroyed if the continuity assumption of the random fares
Ptk is relaxed. It is easy to see what goes wrong by thinking of a single resource problem
with two fares p1 > p2, with aggregate demands Λ1 = (1 − �)c and Λ2 such that Λ1 + Λ2 > c.
Then z = p2 and the bid-price heuristic accepts all requests until capacity is exhausted. If
arrivals are low-to-high and Λ2 >> c then the entire capacity will be consumed by low-fare
customers. One may try to correct things by using a bid-price heuristic that accepts only
fares in set F = {1} but then things go wrong if Λ1 = �c as most of the capacity would get
spoiled. Notice that neither version of the heuristic (accepting F ∪P or just F) improves as
demand and capacity are scaled by b > 1. As a result, bid-price heuristics are not, in general,
asymptotically optimal. In practice, P 6= ∅ and demand for the marginal fares in P tend to
arrive before demand for fares in F . Thus, the bid-price heuristic risks being too generous in
accepting requests for fares in P at the cost of cannibalizing capacity that would be better
used by fares in F.

Our next result states that the asymptotic optimality is preserved by the PAC even if the

7

set P 6= ∅. The proof can be found in the Appendix. An independent proof of a similar result
can be found in Reiman and Wang [12].

Theorem 2 The PAC heuristic is asymptotically optimal as capacity and demand rates are
scaled up.

4.1 Refinements of Bid-Price and PAC Heuristics

In practice, bid price heuristics perform better if the DLP is resolved frequently during the
horizon, e.g., at reading dates when forecasts may also be updated. This helps because cor-
rections can be made before too much of the demand is cannibalized by fares in P . Resolving
the DLP has good asymptotic properties, see Maglaras and Meissner [6], in the context of
a single resource. However, resolving may hurt rather than help performances in some in-
stances, see Cooper [2] for details, particularly towards the end of the horizon when the fluid
approximation implied by the DLP suffers the most from ignoring randomness. Nevertheless,
over the entire horizon, it seems that the benefits from resolving can be substantial and result
in a bounded optimality gap as shown by Jasin and Kumar [7].

Heuristics can also benefit from refinements that make them more sensitive to demand
randomness. Talluri and van Ryzin [9] suggest solving the DLP problem many times with
simulated, rather than average, demands and then averaging the bid prices of the generated
solutions. This idea tries to estimate the gradient of EV (T,c|D) instead of the gradient of
V̄ (T,c) = V (T,c|E[D]). Likewise, one can obtain average admission probabilities for the PAC
heuristic. Topaloglu [10] shows that randomizing the DLP preserves the asymptotic optimality
properties in Taluri and van Rizin [8].

Another refinement proposed in the literature is to solve a version of the DLP (5) that yields
time-dependent admission probabilities and time dependent bid-prices. This idea emerged
from the use of approximate dynamic programming with affine functions for the discrete time
version of (3) as proposed by Adelman [1] and later refined by Tong and Topaloglu [

11

]. Recall
that the discrete time approximation of (3) yields a good approximation as long as time is
rescaled so that

∑n
j=1 λtj << 1 for every t = 1, . . . ,T . With this rescaling, we limit our

presentation of this body of work to a linear program that is a natural extension of (4),

where

for each time-to-go t = 1, . . . ,T , the variables ytj, represent the expected sales of product j
at time t. Starting with inventory xT = c, the inventory evolves according to the equation
xt−1 = xt − Ayt. To ensure feasibility, we require xt ≥ 0 and yt ≤ λt for all t = 1, . . . ,T .
Tong and Topaloglu [11] show that there are m×n additional constraints for each t that come
from the ADP formulation, and can be written succinctly as A diag(yt) ≤ xtλ′t. Constraint
ij corresponds to resource i and product j. It states that Aijyjt ≤ xitλjt. For the airline case
Aij is either zero or one. If Aij = 0 then the constraint is vacuous. On the other hand, if
Aij = 1 then the constraint implies that yjt ≤ λjtxit. This constraint is only more binding
than yjt ≤ λjt, coupled with xt−1 ≥ 0, when there are resources that are consumed by product
j with 0 < xti ≤ 1, which happens only towards the end of the horizon when t is small.

8

This leads to the DLP-t formulation (where the t stands for time-varying controls):

Ṽ (T,c) = max
T∑
t=1

p′yt (7)

subject to xT = c

xt −xt−1 −Ayt = 0 ∀ t = 1, . . . ,T
yt ≤ λt ∀ t = 1, . . . ,T
A diag(yt) ≤ xtλ′t ∀ t = 1, . . . ,T
yt ≥ 0,xt ≥ 0 ∀ t = 1, . . . ,T

Formulation (7) is due to Tong and Topaloglu [11], and it is actually a tighter upper
bound than the NDLP. To see this, notice that if yt, t = 1, . . . ,T is an optimal solution to
(7), then y =

∑T
t=1 λtyt is a feasible solution to (4), with the same objective value. This

shows that Ṽ (T,c) ≤ V̄ (T,c). Moreover, V (T,c) ≤ Ṽ (T,c), since Ṽ (T,c) is obtained through
approximate dynamic programming, as shown by Tong and Topaloglu [11]. The problem in
Example 1 was solved using the above procedure resulting in Ṽ (T,c) = $20, 510.

Vossen and Zhang [

14

] proposes a clever disaggregation idea to speed up the solution of
(7). The key is to aggregate the constraints beyond period s. Let yt be, as before, the expected
sales over periods t = 1, . . . ,s, and let y be the aggregate sale over periods s+ 1, . . . ,T . Notice
that the demand over those periods is equal to λ = ΛT − Λs. Let

Ṽs(T,c) = max
s∑
t=1

p′yt + p
′y (8)

subject to x = c

x−xs −Ay = 0
xt −xt−1 −Ayt = 0 ∀ t = 1, . . . ,s
y ≤ λ
yt ≤ λt ∀ t = 1, . . . ,s
A diag(yt) ≤ xtλ′t ∀ t = 1, . . . ,s
yt ≥ 0,xt ≥ 0,y ≥ 0 ∀ t = 1, . . . ,T

Clearly the case s = T reduces to the DLP-t as 0 ≤ y ≤ λ = 0 implies that xT = c.
Since Ṽs(T,c) is a relaxation of Ṽ (T,c), it follows that Ṽs(T,c) ≥ Ṽ (T,c). Let y together with
yt, 1 ≤ t ≤ s be an optimal solution to Ṽs(T,c). We now expand the solution over the full
horizon by setting yit = 0 for all s < t ≤ T if λi = 0 and yit = yiλit/λi otherwise. Since the objective value of Ṽ (T,c) coincides with Ṽs(T,c), we know that the solution is optimal as long as it is feasible. Thus the idea is to solve Ṽs(T,c) for small values of s and test for feasibility for the expanded solution. If the solution is feasible, the procedure stops and otherwise the problem is solved again with s ← s + 1. The problem in Example 1 was solved using the above procedure yielding an optimal solution at s = 10, so Ṽ10(T,c) = Ṽ (T,c) = $20, 510. Formulation (8) can be made even more compact by replacing the first three constraints with

9

A(
∑s
t=1 yt + y) ≤ c, and writing the sixth constraint as A diag(yt) ≤ (c−A(

∑s
u=t+1 yu + y))λ


t,

as suggested by Vossen and Zhang [14].

The solution to (7) divides the set of itineraries into three subsets Ft = {j : yjt = λjt},
Pt = {j : 0 < yjt < λjt} and Rt = {j : yjt = 0}, and this can be viewed as a time dependent version of the PAC heuristic, where a request for itinerary j at time t is accepted with probability ỹjt = yjt/λjt if λjt > 0 and with probability zero otherwise. The dual, zt,
of the capacity constraint xt − xt−1 − Ayt = 0, produces a time dependent bid-price vector.
Under this heuristic, itinerary j is accepted at state (t,x) if pj ≥ z′t−1Aj and x ≥ Aj.

Example 3 Table 4.1 provides simulation estimates of the expected revenues of the refine-
ments suggested in this Section. In particular, we resolve both the DLP and the DLP-t, 1, 4
and 10 times (evenly spaced during the horizon) for the data of Example 1. We also provide
estimates of the randomized DLP suggested in [9] under the heading DLP-r. The simulation
estimates are based on 100,000 repetitions of the heuristic. The bid-price heuristic improves as
we move to more frequent resolves, actually overtaking the performance of the PAC heuristic.
This is not unusual as the bid-price heuristic tends to gradually tighten capacity for fares in P .
The DLP-t did not provide a significant increase in profits except for the PAC heuristic with
ten resolves. The randomized versions of the bid-price heuristic did well for 1 and 4 resolves,
but poorly for ten resolves. This observation is consistent with other reports; see de Boer et
al. [3] and Williamson [

13

].

Control 1 4 10
Bid-Price DLP $17,732 $18,519 $19,582
PAC DLP $19,386 $19,438 $19,554
Bid-Price DLP-r $17,736 $19,372 $19,448
PAC DLP-r $18,867 $19,257 $19,429
Bid-Price DLP-t $17,733 $18,325 $19,583
PAC DLP-t $19,337 $19,457 $ 19,569

Table 1: Performance of Bid-Price and PAC heuristics for NDLP and NDLPt

In Example 3 the DLP-t refinement was only marginally better than the DLP. However,
extensive computational experiments in Tong and Topaloglu [11] show that the DLP-t can be
beneficial compared to DLP, especially if the DLP is not resolved frequently.

5 Heuristics that Take Randomness into Account

In addition to bid-price heuristics, researchers and practitioners have also devised heuris-
tics that incorporate randomness. Here we described two such heuristics. If the number of
itineraries is not overwhelmingly large, one can try to use the EMSR-b heuristic or a similar
heuristic for each itinerary to find protection levels for higher fares relative to lower fares. If
the number of itineraries is large, an alternative is to aggregate ODFs into buckets for each
resource and to use EMSR-b or a similar heuristic for each resource. We will now explain
these two heuristics in detail.

10

5.1 Managing Itineraries

If the number of itineraries K is not too large, or at least the number of itineraries with
significant demand is not large, then we can try to improve performance by using a combination
of capacity allocation and single-resource heuristics. More specifically, let ȳk =

∑nk
j=1 ȳkj be

the total capacity that the DLP allocates to itinerary k and consider the problem of allocating
that capacity among fares, pk1 > pk2 > .. . > pknk with Poisson demands ΛTk1, ΛTk2, . . . , ΛTknk
assuming low-to-high arrivals. The output will be protection levels and nested booking limits
for the different fares. The heuristic allows bookings of itinerary k at fare pkj at state (t,x) if
x ≥ Ak and it is within the nested booking limits. If the fare is accepted the sale is recorded
and counted against the nested booking limits.

Example 4 For Example 2, we have three itineraries. Itinerary 1 consumes one unit of
resource 1 and is allocated 60 units of capacity for fares p11 = 150 and p12 = 100. The
expected demands for these two fares over the entire horizon are 30 and 60 respectively. An
EMSR-b analysis shows that we should protect 28 units of capacity for fare p11, resulting
in nested booking limits 60 and 32 = 60-28, respectively, for fares p11 and p12. Itinerary 2
consumes one unit of resource 2 and is allocated 60 units of capacity for fares p21 = 120 and
p22 = 80. The expected demand for these two fares over the entire horizon are 20 and 80
respectively. An EMSR-b analysis shows that we should protect 18 units of capacity for fare
p21, resulting in nested booking limits 60 and 42 = 60-18, respectively, for fare p21 and p22.
Finally, itinerary 3 consumes one unit of each resource and is allocated 30 units of capacity
for fares p31 = 250 and p32 = 170. The expected demands for these fares are 30 and 40.
An EMSR-b analysis shows that we should protect 27 units for fare p31 resulting in nested
booking limits 30 and 3= 30-27, respectively, for fares p31 and p32. The expected revenue was
estimated, through simulation, to be $19,658 or 1.4% better than the PAC heuristic applied
once at the beginning of the horizon.

5.2 Managing Resources

We will use the single index convention to describe the main ideas. Let Ij = {i : Aij > 0}
be the set of resources utilized by ODF j. The net contribution of ODF j to resource i
is defined by subtracting the value of the capacity used by ODF j on all other resources
consumed by ODF j. For any vector of bid prices z ≥ 0, let pij(z) = pj −


l 6=i Aljzl if

i ∈ Ij and pij(z) = 0 otherwise. For each resource i = 1, . . . ,m we can now solve a single
resource revenue management problem with fares pij(z) and arrival rates λij = λj for all
j ∈ Ji = {j : Aij > 0}. Notice that we no longer assume that the fares will arrive low-to-high,
but a robust heuristic is to compute protection levels as if the arrivals are low-to-high and then
use standard, rather than theft nesting. The low-to-high protection levels can be computed
using dynamic programming or a heuristic such as EMSR-b. When a request for ODF j
arrives at state (t,x), the request is accepted if the net fare is accepted for each resource
i ∈ Ij. The problem with a direct implementation of this approach is that there may be too
many different itineraries mapped to resources. Some of these itineraries will have very similar
net contributions and some will have very small demands. A natural idea is to aggregate the

11

itineraries into buckets of similar net contributions and aggregate the demands within each
bucket. The exercise results in a more manageable single resource allocation problem. The
idea of aggregating ODFs into buckets was developed by the Operations Research group at
American Airlines and is known as Displacement Adjusted Virtual Nesting (DAVN). This
method, used in conjunction with z = z̄ combines ideas of bid-prices, to compute net fare
contributions, and ideas of single leg controls. Not surprisingly, the method performs quite
well.

Example 5 Consider the data of Example 2. Suppose that three buckets are defined such
that bucket 1 contains all net fares greater than $120, bucket 2 all fares between $60 and
$120 and bucket 3 all fares below $60. The itineraries that utilize resource 1, under the single
index model, are 1,2,5 and 6 and the net fares for resource 1 are: p11(z̄) = 150,p12(z̄) =
100,p15(z̄) = 170 = 250 − 80,p16(z̄) = 170 − 80 = 90. Accordingly fare 1 and 5 belongs to
bucket 1, with corresponding expected demands 30 and 30. Fares 2 and 6 belong to bucket 2
with corresponding expected demands 60 and 40. We can aggregate fares 1 and 5 of bucket 1
into a single weighted average fare of 160 with aggregate demand 60. Similarly, for bucket 2
we can aggregate fares 2 and 6 into a single weighted average fare of 96 with aggregate demand
100. An EMSR-b calculation reveals that it is optimal to protect 58 units of capacity to bucket
1 and thereby authorize up to 32 units of capacity to book under bucket 2.

We can repeat the procedure for resource 2 and obtain net fares p23(z̄) = 120, p24(z̄) = 80,
p25(z̄) = 250 − 100 = 150 and p26(z̄) = 170 − 100 = 70, with corresponding demands 20, 80,
30 and 40. Clearly fares 3 and 5 map into bucket 1 while fares 4 and 6 map into bucket 2.
We can aggregate fares 3 and 5 of bucket 1 into a single weighted average fare of 138 with
aggregate demand 50. Similarly , for bucket 2 we can aggregate fares 4 and 6 into a single
weighted average fare of 76.67 with aggregate demand 120. An EMSR-b calculation reveals
that it is optimal to protect 48 units of capacity to bucket 1 and thereby authorize up to 42
units of capacity to book under bucket 2. The expected revenues, estimated via simulation, are
$19,785 or 2.0% higher than the PAC heuristic applied once at the beginning of the horizon.

6 Appendix

Proof of Theorems 1 and 2. Proof: We start by analyzing the performance of the bid price
heuristic z̄, we will now construct upper and lower bounds on Vz̄(T,c). Notice that

Γz(T,c) = Rz(T) + z
′(c−Dz(T)) (9)

where

Rz(T) =
K∑
k=1

nk∑
j=1

ΛTkjpkjδ(pkj −z′Ak)

is the expected revenue from an uncapacitated system that admits requests for ODFs kj with
pkj ≥ z′Ak,

Dz(T) =
K∑
k=1

Ak
nk∑
j=1

ΛTkjδ(pkj −z′Ak)

12

is the expected demand for the resources under the same admission control rule, and δ(·)
is the heavyside function that is one if and only if the argument is non-negative. We will
now argue that the second term of Γz̄(T,c) in equation (9) is non-positive. Clearly the terms
with z̄i = 0 do not contribute, so it is enough to show that ci ≤ Dz̄(T)i when z̄i > 0,
but this follows because by complementary slackness ci =

∑K
k=1 Aik

∑nk
j=1 ȳkj for such i and

ȳkj ≤ ΛTkjδ(pk−z̄′Ak), again by complementary slackness. The important conclusion to draw
from this analysis is that V (T,c) ≤ V̄ (T,c) ≤ Rz̄(T).

To construct a lower bound on Vz(T,c) it helps to imagine that management is willing to
charge itself an overbooking cost, say θi for each unit of resource i that is overbooked. If we
use an arbitrary bid price vector z ≥ 0 as an admission control rule without filtering requests
for lack of capacity the expected revenue, net of overbooking costs, is given by

Γz,θ(c,T) = Rz(T) −θ′E(Nz(T) − c)+

where Nz(T) is a Poisson vector with intensity Dz(T). Let θ̄ be a vector with components

θ̄i = max{pkj : Aki > 0} i = 1, . . . ,m.

Clearly θ̄i is the maximum revenue that can accrue from the sale of any ODF that consumes
resource i, but this amount will be charged for each unit of i that is consumed in excess of
capacity ci resulting in the series of inequalities

Rz̄(T) − θ̄′E(Nz̄(T) − c)+ ≤ Vz̄(T,c) ≤ V (T,c) ≤ V̄ (T,c) ≤ Rz̄(T), (10)

that directly imply
V bz̄ (T,c)

V b(T,c)
≥ 1 −

θ̄′E(Nbz̄ (T) − c)+

Rbz̄(T)
(11)

where the superscript b represents a system with demands bλtk and capacity bc scaled up by
a factor b > 1.

Under the assumption that the Ptks in formulation (2) are continuous random variables
that are uniformly bounded, Talluri and van Ryzin [8] use similar arguments and a bound on
partial expectations to show that the right hand side of (11) is of the form 1−O(1/


b). Taking

the limit as b → ∞ shows that the ratio of V bz̄ (T,c) to V b(T,c) goes to one. The conclusion
drawn is that under the stated conditions bid-price heuristics are asymptotically optimal. The

bound on partial expectations, see Gallego [4], is E(Z−z)+ ≤ 0.5(

σ2 + (z −µ)2−(z−µ)) and

holds for all random variables Z with mean µ and variance σ2. The continuity assumption
was used by Talluri and van Ryzin to show, via the Karush-Kuhn Tucker conditions, that
Dz̄(T) ≤ c. As we have seen, the opposite inequality holds for critical resources (z̄i > 0) when
the distribution of Ptks are discrete. Under the PAC heuristic, expected admitted demands
DPAC(T) =

∑K
k=1 Ak

∑nk
j=1 ȳkj ≤ c and consequently on RPAC(T) = V̄ (T,c). Using the bound

on partial expectations we see that

E(NbPAC(T) − c)
+
i ≤ 0.5


b

DPAC(T)i

for each i. The result then follows from ERbPAC(T) = bERPAC(T).

13

References

[1] Adelman, D. (2007), Dynamic bid-prices in revenue management, Operations Research
55(4), 647661.

[2] Cooper, W. (2002). Asymptotic behavior of an allocation policy for revenue management.
Oper. Res. 50, 720-727.

[3] de Boer, S. V., R. Freling, N. Piersma (2002). “Mathematical programming for network
revenue management revisited,” Eur. J. Oper. Res, 137, 72-92.

[4] Gallego, G. (1992). A min-max distribution free procedure for the (Q,r) inventory model.
Oper. Res. Letters, 11, 55-60.

[5] Kunnumkal, S. and H. Topaloglu (2010). Computing Time-Dependent Bid Prices in Net-
work Revenue Management Problems. Transportation Science, 44, 38-62.

[6] Maglaras, C. and Meissner J. (2006). Dynamic Pricing Strategies fro Multiproduct Revenue
Management Problems. MSOM, 8, 2, 136-148.

Columbia University.

[7] Jasin, S. and S. Kumar (2010) A Re-solving Heuristic with Bounded Revenue Loss for
Network Revenue Management with Customer Choice. Working paper, Stanford University.

[8] Talluri, K, and G. van Ryzin (1998). An Analysis of Bid-Price Controls for Network
Revenue Management. Management Science, 44, 11, 1577-1593.

[9] Talluri, K and G. van Ryzin (1999) “A Randomized Linear Programming Method for
Computing Network Bid Prices.” Transportation Science, 33, 207-216.

[10] Topaloglu, H. (2007) “On the asymptotic optimality of the randomized linear program
for network revenue management.” Technical report, School of IEOR, Cornell University,
Ithaca, NY, 2007

[11] Tong, C. and Topaloglu, H. (2011) “On Approximate Linear Programming Approaches
for Network Revenue Management Problems.” Working paper, Columbia University.

[12] Reiman, M. and Wang, Q. (2007) “An Asymptotically Optimal Policy for a Quantity-
Based Network Revenue Management Problem.” Working paper, Alcatel-Lucent Bell Labs.

[13] Williamson, E. L. (1992) “Airline network seat inventory control: Methodologies and
revenue impacts,” Ph.D. thesis, Flight Transportation Laboratory, Massachusetts Institute
of Technology, Cambridge, MA.

[14] Vossen, T., and Zhang, D. 2012. “A Dynamic Disaggregation Approach to Approximate
Linear Programs for Network Revenue Management.” Working paper, Leads School of Busi-
ness, University of Colorado at Boulder.

[15] Zhang, D. and D. Adelman (2009). An Approximate Dynamic Programming Approach
to Network Revenue Management with Customer Choice. Transportation Science, 381-394.

14

2

>Linear Program

Example

evenue

,

0

Fare

0

0

0

0

0

0

20

0

30 0

1 1 0 0 1 1

0

0 0 1 1 1 1 90 90

0

1 0 0 0 0 0 30 30 100%

F 1

0

30

0 1 0 0 0 0 30

0 100 60

0 0 1 0 0 0 20 20 100%

20

0 0 0 1 0 0 40

50%

0 80 80 0.5

0 0 0 0 1 0 30 30 100%

30

0 0 0 0 0 1 0 40 0%

0

0

0

30 60 20 80 30 0

100

250

80

00

R

120

0

100

80

00

k

006

9

1 1 1 1 1

2 1 1 2 2

9.

3 1 1 3 3

.

4 1 1 4 4

5 1 1 5 5
6 1 1 6 6
7 1 1 7 7
8 1 1 8 8
9 1 1 9 9
10 1 1 10 10

1 1 11 11

12 1 1 12 12
13 1 1 13 13

1 1 14 14

15 1 1 15 15

1 1 16 16

17 1 1 17 17

1 1 18 18

1 1 19 19

20 1 1 20 20

1 1 21 21

1 1 22 22

1 1 23 23

1 1 24 24

25 1 1 25 25
26 1 1 26 26

1 1 27 27

1 1 28 28

29 1 1 29 29
30 1 1 30 30

1 1 31 31

1 1 32 32

1 1 33 33

1 1 34 34

35 1 1 35 35

1 1 36 36

1 1 37 37

38 1 1 38 38

1 1 39 39

40 1 1 40 40

1 1 41 41

1 1 42 42

43 1 1 43 43

1 1 44 44

1 1 45 45

1 1 46 46

1 1 47 47

48 1 1 48 48

1 1 49 49

50 1 1 50 50

1 1 51 51

1 1 52 52

1 1 53 53

1 1 54 54

1 1 55 55

1 1 56 56

57

9999

9

1

57

1

58

59

1

59

60

1

60

0.999999999 1

61

62 0.999999998 1

62

63

1

63

0.9999999999

2

52

0.9999999999

3

1

0.9999999998

14

99

58

69

70

008

2

1

72

1

51

9

9

0.99999998

28

75

98

6

61

76

67

1

6

77

8

94

78

77

3

79

02

073

80

51

83

81

072

1

82

2

83

44

41

7

9

84

1

4

7

22

85

59

4

86

63

5

03

87

095

5

41

88

83

5

89

0

6

90

5

9

1

91

5

8

6

15

92

9

9

74

93

94

9

84

3

94

3

8

78

95

37

8

7

17

96

6

7

4

97

65

98

85

7

90

15

55

99

06

8

0

24

100

1

6

8

653

893

7

5

2

6

9

41

009

5

6

1

5

76

111

70

8

90

1453

202

2

7

319

28

7

1

44

66

74

77

2

108

5

2

8996

6

68

23288

09

3

9

59

3

13

2

9

62

111

32066

4768

4

2

63

5

23

5

113

6

3049

8

114

9

19

28

81

104

1

09

1

116

1

6

42

4

109

8

36

3

118

7023

19

6

74

79

18

119

779

6

37

0

5

55

120

1

8

282076

121

7

78

053

899

5

84

0

8014

7537

15

35

21585

49

7

91

124

5058

9

007

0688

125

020

2

954

68

0661

24

6

97

4

08

127

0

7

32

5

782

2

75

1490

9785

129

0

093404

77817

36

56

7

45

7

9

132

91

996

4

215

58953

133

5

32

21

963

7877

134

5

299

292

64

135

7

3

11828

95

5

2

144

136

3

8055967

19

023

1

137

2874

97

09

2

546

9

2

75

967

0

4

78

3

139

8

4

79

67

92

3

2

02

1

15

141

126

6113

71

5

6

8

133

5

4205768

80

759

155497

683

7

3

4

144

368

95

145

1

5

1

277

4

146

4

134

082892

147

38

71696

928995

254

148

76819

92228

4

7

149

77866

4

41

1

8

8

150

13

44

818093

78748

151

9

73

44

1

152

8143

608

4

93

153

35465

6

954

68

6

154

8

112877

155

88

894

0646

156

90922

670037

3

567

157

87

06

637

158

8

41

159

43

28

27

003068

160

515

50785

5

5

161

5

63

54

9

41485

8

4

163

99256

2174

164

98

165

1

1308

9113

166

15

167

9

168

1

031425

169

28

81

72053

170

957

546

1

171

37

8

1

172

97

68

173

135

13

174

1

49

175

7

Networ

k
Total

R $

2

0 6 0.00
SFO-DEN Full

Fare SFO-DEN Discount DEN-STL Full Fare DEN-STL Discount SFO-STL Full Fare SFO-STL Discount
1 5 10 1

20 8 25 1

7
Allocated Capacity 3 30 4
Constraints: 9 90 Fligh 1 Capacity 100
10

0% Fligh 2 Capacity 12
Demand for

OD 50 15
60 50% Demand for ODF 2 0.5 6.00%
Demand for ODF 3 40 120
80 Demand for ODF 4 8.00%
Demand for ODF 5 70 250
Demand for ODF 6 17
Admit
mubar1 theta1
mubar2 theta2 170
Vbar 206
26 800
D1
D2 13
c1-D1 -30
c2-D2 -40

62
Pr(D_1 >=k) Pr(D_2>=k) Emin(D_1,k) Emin(D_2,k)
E(D_1-c_1)^+ 30.00

63 48
E(D_2-c_2)^+ 40.0002

57 43 29
Gamma_nu,nu $ 20,

59 35
Gamma_theta,nu $ 6,2

98 38
11
14
16
18
19
21
22
23
24
27
28
31
32
33
34
36
37
39
41
42
44
45
46
47
49
51
52
53
54
55
56
0.

99 999 56.9999999999
58 0.9999999999 57.9999999

998
0.9999999998 58.99999999

95
0.9999999

995 59.999999999
61 6

0.999999998
61.9999999

96
0.999999

996 62.9999999

92
64 0.9999999

922 63.9999999

84 63.9999999999
65 0.99999998 64.9999999

69 64.9999999998
66 0.9999999

72 65.999999

94 65.9999999996
67 0.9999999

484 0.9999999996 66.999999

88 66.9999999

992
68 0.999999

906 0.9999999992 67.999999

79 67.99999999

83
0.9999998

311 0.9999999

984 68.9999996

269 68.9999999

967
0.99999

97 0.9999999

969 69.99999

93 77 69.9999999

936
71 0.99999

947 75 0.9999999

941 70.999998

805 70.99999998

78
0.99999

91 0.9999999

89 71.99999

790 71.9999999

76
73 0.999998

470 72.999996

376 72.9999999

569
74 0.9999

974 368 0.9999999

638 73.999

993 81 73.9999999

207
0.99999

575 0.9999999

354 74.999

989 572 74.999999

85
0.99999

307 0.9999998

86 75.9999

82 493 75.9999

997 422
0.9999

888 401 0.999999

801 76.99997

148 76.9999995

439
0.99998

223 0.9999996

594 77.9999

537 271 77.999999

203
0.99997

208 0.9999

994 221 78.9999

258 78.9999

986 254
0.9999

566 0.9999

990 316 79.99

988 245 79.999997

657
0.9999

335 0.999998

397 80.9998

159 656 80.9999

960 541
0.999

899 202 0.99999

737 87 81.9997

151 857 81.9999

934 327
0.9998

490 0.99999

576 82.999

564 229 82.999989

196
0.999

776 500 0.999993

235 83.999

340 297 83.99998

243
0.99967

286 0.9999

893 218 84.9990

135 956 84.99997

175
0.9995

265 589 0.99998

333 85.998

540 154 85.99995

509
0.9993

224 0.999974

288 86.99

786 256 86.9999

293 787
0.9990

408 242 0.9999

607 687 87.99

690 338 87.999

890 147
0.9986

568 443 0.9999

407 964 88.99

556 232 88.9998

309 438
0.998

139 118 0.9999

116 233 89.99

369 351 89.9997

425 671
0.997

448 817 0.9998

694 844 90.99

114 168 90.99

961 205
0.9

965 385 304 0.999

809 285 91.98

768 669 91.99

942 133
0.99

535 119 0.999

724 222 92.98

303 789 92.999

145 560
0.9

938 191 595 0.999

605 176 93.

976 570 579 93.9

987 508
0.99

186 336 0.999

440 742 94.

968 204 216 94.99

819 521
0.989

392 885 0.9992

158 462 95.

958 113 306 95.99

740 598
0.98

630 478 0.9989

111 209 96.9

444 180 931 96.9

963 187 193
0.98

248 445 0.998

502 262 97.

926 255 97.99

482 144
0.9

778 505 0.9

979 609 781 98.

904 709 573 98.99

278 236
0.

972 136 260 0.997

249 591 99.

876 453 174 99.9

900 320 152
101 0.9

653 319 0.9963

247 100.

842 177 282 100.986

356 804
102 0.

957 476 546 0.995

134 449 101.

799 424 374 101.98

149 125
103 0.9

477 367 0.9936

173 102.

747 161 383 102.

975 108 604
104 0.9

366 559 782 0.

991 702 642 103.68

381 165 103.9

668 683
105 0.9

238 528 0.98

930 818 104.607

688 104.9

561 501
106 0.

909 585 867 0.986

345 227 105.5

169 467 105.94

246 597
107 0.

892 167 654 0.9

827 141 106.

409 349 106.9

251 387
0.87

416 190 0.

978 295 107.

283 828 875 107.90

347 328
109 0.85

355 0.97

298 281 108.

137 810 163 108.876

454 214
110 0.8

308 270 0.96

664 197 108.968

240 866 109.8

430 618
0.80

610 0.

959 150 109.

774 343 932 110.

802 466
112 0.

779 339 894 0.9

503 766 545 110.5

536 833 877 111.7

526 317
0.7

506 649 172 0.

940 192 753 111.304

348 112.

692 160 712
0.

720 213 613 0.9

284 767 614 112.02

456 188 113.62

129 326
115 0.68 596 0.

915 164 195 112.7

127 215 292 114.5

364 252
0.65

471 954 0.90001

342 113.3

674 334 837 115.

436 226 762
117 0.6

201 313 0.8

830 765 113.987

544 415 116.319

510 299
0.

584 622 0.86

428 124 114.5

721 711 117.

183 157
0.5

485 329 0.8

435 231 115.120

700 953 118.0

273 388
0.5

121 399 785 0.

820 928 905 115.

632 400 738 118.

848
0.

475 469 792 0.79

640 903 116.108

587 119.6

446 663
122 0.4

396 474 0.

770 637 662 116.

548 241 120.

414 325
123 0.

404 419 0.74

199 116.95

239 599 121.

156 458
0.369

519 0.712

322 797 117.3

219 155 121.

869 707
0.3

360 661 0.

681 181 117.65

791 756 122.

550 287
126 0.3038

253 0.6

488 921 117.9

617 289 123.1991

562 858
0.27

318 807 0.61

549 924 118.

234 923 698 123.8

146 495
128 0.

244 225 359 0.58

132 895 118.

479 577 124.

395 357
0.

217 796 263 0.5466308047 118.

696 228 684 124.9

426
130 0.19

182 0.51

166 741 118.8

880 465 125.45

427 301
131 0.168

518 386 0.4766965

434 119.0

565 748 524 125.930969

557
0.14

716 626 0.

441 337 119.2037

411 126.37

296
0.1

277 525 0.40782

189 119.3

314 746 126.

780 874
0.110241

554 0.374

418 119.4

417 379 127.15

520 608
0.09

455 645 0.3

420 119.5

362 574 127.

497 179
0.080

616 927 0.

310 119.61

691 672 127.

808 511
0.068

315 0.

280 611 119.

685 272 128.0

889 962
138 0.05 405 0.25

267 759 119.74

276 513 128.

341 670 814
0.04 171 300 0.22

600 629 119.7909

391 517 128.

567 667
140 0.040082

699 0.201068

312 119.

831 185 128.76874

499
0.0

331 496 0.177

911 119.8

641 463 128.94

665 602
142 0.0272

491 0.156561

461 119.

891 129.10

321 643
143 0.0222

627 0.1

370 119.

913 352 129.2

402 361
0.0180

784 0.119246

539 119.93176

178 129.359

480 153
0.01

459 487 0.10320

507 119.

946 353 129.46

268 522
0.011

705 736 0.0888

230 652 119.9

580 590 129.5

515
0.00

933 862 0.07

601 119.9

673 129.6

275 588
0.00

739 0.0

646 119.974790

581 129.692217

686
0.00

582 0.0

547 464 119.9

806 836 129.746962

330
0.00456

344 0.0

460 655 119.9

851 129.79

302
0.003

551 651 0.03

854 365 119.98

873 377 129.831

571 532
0.00

274 0.0320

678 119.991

481 917 129.86

363 929
0.00

211 0.026

529 350 119.9

935 639 129.8

901 743
0.001

615 823 0.021823427 119.9

952 129.9119921705
0.0012

279 0.017

850 119.9964392

757 129.929

843
0.000927

728 0.01

451 119.9

973 129.

944 621
0.00069

675 0.01174

259 119.9

980 624 129.9561047474
0.0005202217 0.0094435766 119.9

985 398 129.965548

324
0.0003

861 0.00

755 198 119.9989

701 129.9

731
0.0002

849 0.0060053967 119.99

925 129.97

910 703
0.0002090

578 0.004748

795 119.99946

413 129.9

838 498
162 0.0001524

912 0.00

373 119.9996166275 129.98

758 647
0.0001105899 0.00

291 119.999

727 129.9905085731
0.0000797424 0.0022705454 119.99980

695 129.9927791185
0.00005

717 0.0017557928 119.999

864 129.994

534
0.0000407

555 0.0013502302 119.9999048

863 129.99588

514
0.0000288888 0.001032

620 119.9999337

751 129.9969177624
0.0000203

619 0.000785

380 119.9999541369 129.9

977
0.0000142712 0.00059

406 119.99996

840 129.99

829
0.0000099465 0.0004

468 119.9999

783 129.99874

410
0.00000

689 0.0003343561 119.9999

852 483 129.99

907 457
0.0000047514 0.00024

879 119.9999899997 129.99932

725
0.0000032568 0.000

184 119.9999932565 129.99

951 918
0.000002

220 0.000135

543 119.9999954766 129.99964

693
0.0000015051 0.0000992387 119.999996

981 129.9997461

735

Booking Limits

OD 1 1 2 2 3 3

150 100 120 80 250 170

30 60 20 80 30 40

0.67 0.68

0.00 0.04 0.05

28 18 27

30 40 20 70 30 0

Booking Limits 42 72 3

30 70 20 90 30 30

28 70 18 90 27 30

Fares
means
Ratios 0.67
Protection Levels
LP Solution
Lp nested
EMSR_b

CB_DATA_

Sim Mixed Arrivals

6.00%

8.00% 3.00%

70 42 90 72 30 3

Nest LP

0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Revenue Revenue

2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1000

3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

.13

,701.26

8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

.00

12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
114 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
132 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
134 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
142 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
155 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
156 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
159 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
161 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
165 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
166 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
167 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
169 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
184 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
198 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
204 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
207 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
226 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
234 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
241 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
243 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
245 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
247 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
248 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
249 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

258 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

267 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
268 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
272 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
274 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
279 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
285 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
289 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
292 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
293 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
297 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

306 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
309 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
311 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
312 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
313 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
314 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
316 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
318 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
319 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
322 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
325 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
326 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
334 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
335 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
337 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
338 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
339 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
342 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
343 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
345 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

347 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
362 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
363 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
364 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
368 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
369 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
374 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

376 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

379 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
388 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

395 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
398 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
407 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
414 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
415 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
418 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
419 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

424 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
427 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
435 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
436 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
441 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

443 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

448 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

451 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
454 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
457 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
461 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
462 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
468 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

474 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
481 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
484 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

487 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
488 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
498 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $ – 0
501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

505 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
506 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
507 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
508 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
509 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
515 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

517 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
529 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

532 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
537 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

539 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
544 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
546 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
547 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
548 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
549 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
551 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
557 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

559 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
561 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

564 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
565 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
567 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
569 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
572 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
573 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
574 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
576 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
577 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
578 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
579 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
581 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

584 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
585 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

587 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
591 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

594 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
595 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
596 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
597 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
598 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
601 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

604 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

613 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
614 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
615 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
617 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

624 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

626 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
627 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

629 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

632 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

637 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
638 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
641 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
643 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

645 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
646 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

651 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
652 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
653 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
654 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
655 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
656 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
657 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

661 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
662 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
663 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
664 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
665 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
668 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
669 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
672 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
673 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
674 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

678 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

683 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
684 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
687 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
688 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
689 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
691 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
694 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
695 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
696 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

698 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
699 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
702 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
703 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

705 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

707 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

709 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

711 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

716 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
717 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

724 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
725 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

727 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

731 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

735 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
736 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
737 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
738 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
739 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
741 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
742 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
743 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

746 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
747 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

751 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

753 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

755 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
756 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
758 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
759 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

765 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

774 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
779 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
781 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
782 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
783 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
784 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
785 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
786 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
791 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

795 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
796 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
797 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
801 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
802 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
805 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
806 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
807 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
808 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
809 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

814 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

817 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
818 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
819 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

823 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

827 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
829 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
831 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
834 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
838 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

842 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
843 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
844 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
849 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
851 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
852 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
858 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

861 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
862 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
863 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
864 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

866 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
867 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

869 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

873 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
874 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
875 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
876 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
877 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

879 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

885 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

888 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
891 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
892 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
894 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

899 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
901 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

903 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
904 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
905 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
907 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

909 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
911 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
913 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

917 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
918 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
922 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
923 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
924 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
925 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
926 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
927 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
928 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
932 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
933 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
934 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
935 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

938 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
939 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
941 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

944 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

946 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
953 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
954 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

956 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
958 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
959 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
961 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
962 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
963 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
964 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
965 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

967 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
968 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
969 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
974 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
975 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
977 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
978 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
979 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
981 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

984 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
985 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
986 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
987 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
988 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
989 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
991 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
992 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
993 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
994 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
995 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
997 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
998 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
999 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Simulation of LP Based Policy
Revenue $ – 0
0.26 3.00% 2.00% 4.00% Nest LP
Period CD1 CD2 CD3 CD4 CD5 CD6 S1 S2 S3 S4 S5 S6 with EMSR_b BL deterministic BL
Statistics
Trials 1000
Mean $23,062.43 $22,946.80 0.5%
Median $23,280.00 $23,080.00
Mode $23,580.00 $24,000.00
Standard Deviation $695.66 $913.62 -23.9%
Variance $483,

939 $

834
Skewness -1.36 -0.8990
Kurtosis 5.14 3.74
Coeff. of Variability 0.0302 0.0398
Minimum $19,540.00 $18,

950
Maximum $24,140.00 $24,370.00
Range Width $4,600.00 $5,420.00
Mean Std. Error $22.00 $28.89
remaing capacity cumulative revenue
194
200
210
212
237
257
261
264
266
290
294
305
323
332
346
358
371
372
375
378
382
384
389
390
393
394
403
412
421
423
429
431
432
433
437
442
447
450
452
472
473
486
489
492
494
504
512
516
523
527
530
531
533
538
542
552
553
558
563
583
586
592
593
603
606
612
623
625
628
631
633
634
635
636
644
648
650
658
659
660
666
676
677
679
680
682
697
704
706
708
710
713
714
715
718
719
722
723
726
729
730
732
733
734
744
745
749
750
752
754
760
761
763
764
769
771
772
773
775
777
788
793
794
798
803
811
812
813
815
816
821
822
824
825
826
832
835
839
841
845
846
847
853
855
856
859
860
865
868
870
871
872
878
881
882
883
884
886
887
896
897
898
902
908
914
916
919
920
937
943
945
948
949
955
966
970
971
982
983

Resolving

$ – 0

SFO-DEN Discount DEN-STL Full Fare DEN-STL Discount SFO-STL Full Fare SFO-STL Discount
Fare 150 100 120 80 250 170

Allocated Capacity 12 0 10 20 15 0
Constraints: 1 1 0 0 1 1 27 0 Fligh 1 Capacity
0 0 1 1 1 1 45 0 Fligh 2 Capacity
1 0 0 0 0 0 12 15

0 1 0 0 0 0 0 30 Demand for ODF 2
0 0 1 0 0 0 10 10 Demand for ODF 3
0 0 0 1 0 0 20 40 Demand for ODF 4
0 0 0 0 1 0 15 15 Demand for ODF 5
0 0 0 0 0 1 0 20 Demand for ODF 6
Network Example
Total Revenue
SFO-DEN Full Fare
Demand for ODF 1

2

>Sensitivity Report

1 Microsoft Excel 1

4

.1 Sensitivity Report

Worksheet: [Networkexmaple_

D

AVN

.xls]

Linear Program

Report Created: 4/1

6

/2

0 12 10

:

26

:1

5

AM Variable

Cell

s F

inal Reduced Cell

Name Value Gradient $B$6 Allocated

Capacity SFO-DEN Full

Fare 3

0

0
$C$6 Allocated Capacity

SFO-DEN Discount 30

0
$D$6 Allocated Capacity

DEN-STL Full Fare 20

0
$E$6 Allocated Capacity

DEN-STL Discount 40

0
$F$6 Allocated Capacity

SFO-STL Full Fare

30 0
$G$6 Allocated Capacity

SFO-STL Discount

0

-10 Constraints Final

Lagrange Cell Name Value

Multiplier $H$10

30 0
$H$

11

20 40
$H$12

40 0
$H$

13

30

7

0 $H$

14

0 0
$H$7 Constraints: 9

0 100 $H$

8 90 80 $H$9

30

50

Linear Program

0.00

SFO-DEN Full Fare SFO-DEN Discount DEN-STL Full Fare DEN-STL Discount SFO-STL Full Fare SFO-STL Discount
Fare

0

100

80

0

0

Allocated Capacity 30 30 20 40 30 0
Constraints: 1 1 0 0 1 1 90 90

0 0 1 1 1 1 90 90

1 0 0 0 0 0 30 30

for ODF 1

0 1 0 0 0 0 30 60

0 0 1 0 0 0 20 20

0 0 0 1 0 0 40 80

0 0 0 0 1 0 30 30

0 0 0 0 0 1 0 40

Network Example
Total

Revenue $ 20,

60
15 120 25 17
Fligh 1 Capacity
Fligh 2 Capacity
Demand
Demand for ODF 2
Demand for ODF 3
Demand for ODF 4
Demand for ODF 5
Demand for ODF 6

CB_DATA_

DAVN

1

120

100

bucket 2 60

120

80

bucket 3

60

Capacity

100

1

60

0

.00

17

9

0.6

Fare Demand

Bucket NLF Bucket

100

.00

90

F

30 150 1

0

San Francisco to Denver D 100 60 100 2 120

50

.00

55555

F 120 20 120 1

120

.

90

Denver to St. Louis D 80 80 80 2

0 0

F

30 1

1 150 1

San Francisco to St. Louis D

40 90 2 70 2

Bucket Demand Fare
Leg 1 Leg 2
Bucket1 30 150

00

Bucket1 0 0 0

0 0 0 0 0 0
0 0 0 20 120

00

0 0 0 0 0 0

30 170

0

30 150

0

0 0 0 0 0 0
0 0 0 0 0 0

60

Total: 50

Bucket2 0 0 0 Bucket2 0 0 0
60 100

0

0 0 0

0 0 0 0 0 0

0 0 0 80 80

00

0 0 0 0 0 0

40 90

00

40 70

00

Total: 100 96 Total: 120

6666

Bucket3 0 0 0 Bucket3 0 0 0

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Total: 0 0 Total: 0 0
bucket Net leg fares >= Opportunity Cost leg 1
<= Net leg fares< leg 2
Net leg fares <
EMSR_b
Demand mean Average Contribution Protection level
Leg 1 Leg 2 Leg1,

Bucket $

16 58 0.6 19 55 66
Product Class NLF Leg1,

Bucket2 $

96
San Francisco to Denver 150 Leg1,

Bucket3 $ – 0
Leg2,

Bucket1 $

1

38 48 0.

57 51 33 32 18 0.

555 56
Denver to St. Louis Leg2,Bucket2 $

76 67
Leg2,Bucket3
San Francisco to St. Louis 250 70
170
45
24
510 450
Total: 160 138
600
64
36 28
76.

666 667

Simulation

100

120

Revenue $ – 0

0.03

0

Nest LP

0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Revenue Revenue Revenue

2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1000 1000

3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

,0

.

,9

.80

3.

4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

.00

.00

5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

.00

0.00

6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

5.66

3.62

3.

7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

,9

.13

,

.26

3,

8.06

8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

90

9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0.00

0.00

0.00

12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

.00

.00

0.00

13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

138 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 120 $ – 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

666 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

701 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Simulation of LP Based Policy Leg1 Bucket1 Leg2 Bucket1
Leg1 Bucket2 42 Leg2 Bucket2 73
0.03 0.06 0.02 0.08 0.04 Leg2 Bucket3 Nest LP Displacement-Adjusted
Period CD1 CD2 CD3 CD4 CD5 CD6 S1 S2 S3 S4 S5 S6 with EMSR_b BL deterministic BL Virtual Nesting(DAVN)
Statistics
Trials 1000
Mean $

23 62 43 $

22 46 $23,

21 63
Median $23,

280 $23,080.00 $23,

420
Mode $23,

580 $24,000.00 $23,

82
Standard Deviation $

69 $

91 $

78 29
Variance $4

83 39 $8

34 701 $

61 53
Skewness -1.36 -0.

89 -1.5

500
Kurtosis 5.14 3.

74 5.

99
Coeff. of Variability 0.0

302 0.03

98 0.03

37
Minimum $19,

54 $18,

95 $18,

92
Maximum $24,

140 $24,

370 $24,

47
Mean Std. Error $22.00 $28.89 $24.

77
remaing capacity cumulative revenue
27
31
35
41
44
49
52
59
65
68
71
72
75
79
81
84
85
86
87
88
93
94
97
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
139
141
142
143
144
145
146
147
148
149
151
152
153
154
155
156
157
158
159
161
162
163
164
165
166
167
168
169
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
501
502
503
504
505
506
507
508
509
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999

Sheet1

Submitted to Operations Research
manuscript XX

A General Attraction Model and Sales-based Linear
Program for Network Revenue Management under

Customer Choice

Guillermo Gallego
Department of Industrial Engienering and Operations Research, Columbia University, New York, NY

1

0027,

gmg2@columbia.edu

Richard Ratliff and Sergey Shebalov
Research Group, Sabre Holdings, Southlake, TX 76092, richard.ratliff@sabre.com

This paper addresses two concerns with the state of the art in network revenue management with dependent

demands. The first concern is that the basic attraction model (BAM), of which the multinomial logit (MNL)

model is a special case, tends to overestimate demand recapture in practice. The second concern is that the

choice based deterministic linear program, currently in use to derive heuristics for the stochastic network

revenue management problem, has an exponential number of variables. We introduce a generalized attraction

model (GAM) that allows for partial demand dependencies ranging from the BAM to the independent

demand model (IDM). We also provide an axiomatic justification for the GAM and a method to estimate its

parameters. As a choice model, the GAM is of practical interest because of its flexibility to adjust product-

specific recapture. Our second contribution is a new formulation called the Sales Based Linear Program

(SBLP) that works for the GAM. This formulation avoids the exponential number of variables in the earlier

choice-based network RM approaches, and is essentially the same size as the well known LP formulation

for the IDM. The SBLP should be of interest to revenue managers because it makes choice-based network

RM problems tractable to solve. In addition, the SBLP formulation yields new insights into the assortment

problem that arises when capacities are infinite. Together these two contributions move forward the state of

the art for network revenue management under customer choice and competition

.

Key words : pricing, choice models, network revenue management, dependent demands, O&D, upsell,

recapture

1. Introduction

One of the leading areas of research in revenue management (RM) has been incorporating dem

and

dependencies into forecasting and optimization models. Developing effective models for suppliers

to estimate how consumer demand is redirected as the set of available products changes is critical

1

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
2 Article submitted to Operations Research; manuscript no. XX

in determining the revenue maximizing set of products and prices to offer for sale in industries

where RM is used. These industries include airlines, hotels, and car rental companies, but the issue

of how customers select among different offerings is also important in transportation, retailing and

healthcare. Several terms are used in industry to describe different types of demand dependen-

cies. If all products are available for sale, we observe the first-choice, or natural, demand, for each

of the products. However, when a product is unavailable, its first-choice demand is redirected to

other available alternatives (including the ‘no-purchase’ alternative). From a supplier’s perspective,

this turned away demand for a product can result in two possible outcomes: ‘spill’ or ‘recapture’.

Spill refers to redirected demand that is lost to competition or to the no-purchase alternative, and

recapture refers to redirected demand that results in the sale of a different available product. Depen-

dent demand RM models lead to improved revenue performance because they consider recaptured

demand that would otherwise be ignored using traditional RM methods that assume independent

demands. The work presented in this paper provides a practical mechanism to incorporate both

of these effects into the network RM optimization process through use of customer-choice models

(including methods to estimate the model parameters in the presence of competition).

An early motivation for studying demand dependencies was concerned with incorporating a

special type of recapture known as ‘upsell demand’ in single resource RM problems. Upsell

is

recapture from closed discount fare classes into open, higher valued ones that consume the same

capacity (called ‘same-flight upsell’ in the airline industry). More specifically, there was a perceived

need to model the probability that a customer would buy up to a higher fare class if his preferred fare

was not available. The inability to account for upsell demand makes the widely used independent

demand model (IDM) too pessimistic, resulting in too much inventory offered at lower fares and

in a phenomenon known as ‘revenue spiral down’; see Cooper et al. (2006). To our knowledge, the

first authors to account for upsell potential in the context of single resource RM were Brumelle

et al. (1990) who worked out implicit formulas for the two fare class problem. A static heuristic

was proposed by Belobaba and Weatherford (1996), who made fare adjustments while keeping

the assumption of independent demands. Talluri and van Ryzin (2004) develop the first stochastic

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 3

dynamic programming formulation for choice-based, dependent demand for the single resource case.

Gallego, Ratliff and Li (2009) developed heuristics that combined fare adjustments with dependent

demand structure for multiple fares that worked nearly as well as solving the dynamic program of

Talluri and van Ryzin (2004). Their work suggest that considering same-flight upsell has significant

revenue impact, leading to improvements ranging from 3-6%.

For network models, in addition to upsell, it is also important to consider ‘cross-flight recapture’

that occurs when a customer’s preferred choice is unavailable, and he selects to purchase a fare

on a different flight instead of buying up to a higher fare on the same flight. Authors that have

tried to estimate upsell and recapture effects include Andersson (1998), Ja et al. (2001), and Ratliff

et al. (2008). In markets in which there are multiple flight departures, recapture rates typically

range between 15-55%; see Ja et al. (2001). Other authors have dealt with the topic of demand

estimation from historical sales and availability

data.

The most recent methods use maximum like-

lihood estimation techniques to estimate primary demands and market flight alternative selection

probabilities (including both same-flight upsell and cross-flight recapture); for details, see Vulcano

et al. (2012), Meterelliyoz (2009) and Newman, Garrow, Ferguson and Jacobs (2010).

Most of the optimization work in network revenue management with dependent demands is based

on formulating and solving large scale linear programs that are then used as the basis to develop

heuristics for the stochastic network revenue management (SNRM) problem; e.g. see Bront et al.

(2009), Fiig et al. (2010), Gallego et al. (2004), Kunnumkal and Topaloglu (2010), Kunnumkal

and Topaloglu (2008), Liu and van Ryzin (2008), and Zhang and Adelman (2009). Note that

preliminary versions of Fiig et al. (2010) were discussed as early as 2005, and the method is one

of the earliest practical heuristics for incorporating dependent demands into SNRM optimization.

However, as described in section 5.4, the applicability of the approach requires severe assumptions

and is restricted to certain special cases and fundamentally differs from the discrete choice models

described in this paper.

Our paper makes two main contributions. The first contribution is to discrete choice modeling

and should be of interest both to people working on RM, as well as to others with an interest

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
4 Article submitted to Operations Research; manuscript no. XX

in discrete choice modeling. The second contribution is the development of a tractable network

optimization formulation for dependent demands under the aforementioned discrete choice model.

Our first contribution is a response to known limitations of the multinomial choice model (MNL)

which is often used to handle demand dependencies. The MNL developed by McFadden (1974) is a

random utility model based on independent Gumbel errors, and a special case of the basic attraction

model (BAM) developed axiomatically by Luce (1959). The BAM states that the demand for a

product is the ratio of the attractiveness of the product divided by the sum of the attractiveness

of the available products (including a no purchase alternative). This means that closing a product

will result in spill, and a portion of the spill is recaptured by other available products in proportion

to their attraction values. In practice, we have seen situations where the BAM overestimates or

misallocates recapture probabilities. In a sense, one could say that the BAM tends to be too

optimistic about recapture. In contrast, the independent demand model (IDM) assumes that all

demand for a product is lost when the product is not available for sale. It is fair to say, therefore,

that the IDM is too pessimistic about recapture as all demand spills to the no-purchase alternative.

To address these limitations, we develop a generalized attraction model (GAM) that is better at

handling recapture than either the BAM or the IDM. In essence, the GAM adds flexibility in

modeling spill and recapture by making the attractiveness of the no-purchase alternative a function

of the products not offered. As we shall see, the GAM includes both the BAM and the IDM as

special cases. We justify the GAM axiomatically by generalizing one of the Luce Axioms to better

control for the portion of the demand that is recaptured by other products. We show that the GAM

also arises as a limiting case of the nested logit (NL) model where the offerings within each nest

are perfectly correlated. In its full generality, the GAM has about twice as many parameters than

the BAM. However, a parsimonious version is also presented that has only one more parameter

than the BAM.

We adapt and enhance the Expectation-Maximization algorithm (henceforth EM algorithm)

developed by Vulcano et al. (2012) for the BAM to estimate the parameters for the GAM , with

the estimates becoming better if the firm knows its market share when it offers all products. The

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 5

estimation requires only data from the products offered by the firm and the corresponding selections

made by customers.

Our second main contribution is the development of a new formulation for the network revenue

management problem under the GAM. This formulation avoids the exponential number of variables

in the Choice Based Linear Program (CBLP) that was designed originally for the BAM; see Gallego

et al. (2004). In the CBLP, the exponential number of variables arises because a variable is needed to

capture the amount of time each subset of products is offered during the sales horizon. The number

of products itself is usually very large; for example, in airlines, it is the number of origin-destination

fares (ODFs), and the number of subsets is two raised to the number of ODFs for each market

segment. This forces the use of column generation in the CBLP and makes resolving frequently

or solving for randomly generated demands impractical. We propose an alternative formulation

called the sales based linear program (SBLP), which we show is equivalent to the CBLP not only

under the BAM but also under the GAM. Due to a unique combination of demand balancing and

scaling constraints, the new formulation, has a linear rather than exponential number of variables

and constraints. This provides important practical advantages because the SBLP allows for direct

solution without the need for large-scale column generation techniques. We also show how to

recover the solution to the CBLP from the SBLP. We show, moreover, that the solution to the

SBLP is a nested collection of offered sets together with the optimal proportion of time to offer

each set. The smallest of these subsets is the core, consisting of products that are always offered.

Larger subsets typically contain lower-revenue products that are only offered part of the time.

Offering these subsets from the largest to the smallest in the suggested portions of the time over

the sales horizon provides a heuristic to the stochastic version of the problem. Moreover, the ease

with which we can compute the optimal offered sets from the SBLP formulation allow us to resolve

the problem frequently and update the offer sets. In addition, other heuristics proposed by the

research community, e.g., Bront et al. (2009), Kunnumkal and Topaloglu (2010), Kunnumkal and

Topaloglu (2008), Liu and van Ryzin (2008), Talluri (2012), and Zhang and Adelman (2009), can

benefit from the ability to quickly solve large scale versions of the CBLP and SBLP formulations.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
6 Article submitted to Operations Research; manuscript no. XX

The solution to the SBLP also provides managerial insights into the assortment problem (a special

case that arises when capacities are infinite).

The remainder of this paper is organized as follows. In §2 we present the GAM as well as

two justifications for the model. We then present an expectation-maximization (E-M) algorithm

to estimate its parameters. In §3 we present the stochastic, choice based, network revenue

management problem. The choice based linear program is reviewed in section §4. The new,

sales based linear program is presented in §5 as well as examples that illustrate the use of the

formulation. The infinite capacity case gives rise to the assortment problem and is studied in §6.

Our conclusions and directions for future research are in §7.

2. Generalized Attraction Model

For several decades, most revenue management systems operated under the simplest type of cus-

tomer choice process known as the independent demand model (IDM). Under the IDM, demand for

any given product is independent of the availability of other products being offered. So if a vendor

is out-of-stock for a particular product (or it is otherwise unavailable for sale), then that demand

is simply lost (to the no-purchase alternative); there is no possibility of the vendor recapturing

any of those sales to alternate products because the demands are treated as independent. Many

practitioners recognized that ignoring such demand interactions lacked realism, but efforts to incor-

porate upsell heuristics into RM optimization processes were hampered by practical difficulties in

estimating upsell rates. It was widely feared that, without a rigorous foundation for estimating

upsell, the use of such heuristics could lead to an overprotection bias in the inventory controls (and

consequent revenue losses). By the late 1990’s, progress on dependent demand estimation methods

began to be made. van Ryzin, Talluri and Mahajan (1999) presented excellent arguments for the

integration of discrete choice models into RM optimization processes, and initial efforts to apply

this approach focused on the multinomial logit model (MNL) which is a special case of the basic

attraction model (BAM) discussed next.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 7

Under the BAM, the probability that a customer selects product j ∈ S when set S ⊂ N =

{1,.. .,n} is offered, is given by

πj(S) =
vj

v0 +

V (S)

, (1)

where V (S) =

j∈S vj. The vj values are measures of the attractiveness of the different choices,

embodied in the MNL model as exponentiated utilities (vj = e
ρuj for utilities uj where ρ > 0 is a

parameter that is inversely related to the variance of the Gumbel distribution). The no-purchase

alternative is denoted by j = 0, and π0(S) is the probability that a customer will prefer not to

purchase when the offer set is S. One could more formally write πj(S+) instead of πj(S) since

the customer is really selecting from S+. However, we will refrain from this formalism and follow

the convention of writing πj(S) to mean πj(S+). Also, unless otherwise stated, S ⊂ N and the

probabilities πj(S) refer to a particular vendor. In discrete choice models, a single vendor is often

implicitly implied. However, in some of our discussions below, we will allow for multiple

vendors.

In the case of multiple vendors, the probabilities πj(S) j ∈S, will depend on the offerings of other

vendors.

There is considerable empirical evidence that the BAM may be optimistic in estimating recapture

probabilities. The BAM assumes that even if a customer prefers j /∈ S+, he must select among

k∈S+. This ignores the possibility that the customer may look for products j /∈S+ elsewhere or at

a later time. As an example, suppose that a customer prefers a certain wine, and the store does not

have it. The customer may then either buy one of the wines in the store, leave without purchasing,

or go to another store and look for the wine he wants. The BAM precludes the last possibility; it

implicitly assumes that the search cost for an alternative source of product j /∈S+ is infinity.

We will propose a generalization of the BAM , called the General Attraction Model (GAM) to

better deal with the consequences of not offering a product. Before presenting a formal definition

of the GAM, we will present a simple example and will revisit the red-bus, blue-bus paradox (Ben-

Akiva and Lerman (1994)). Suppose there are two products with attraction values v1 = v2 = v0 = 1.

Under the BAM, πk({1,2}) = 1/3 for k = 0,1,2. Eliminating choice 2 results in πk({1}) = 50% for

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
8 Article submitted to Operations Research; manuscript no. XX

k = 0,1, so one half of the demand for product 2 is recaptured by product 1. Suppose, however,

that product 2 is available across town and that the customer’s attraction for product 2 from the

alternative source is w2 = 0.5. Then his choice set, when product 2 is not offered, is in reality

S = {1,2′} with 2′ representing product 2 in the alternative location with shadow attraction w2.

A customer can now select between the no-purchase alternative (v0 = 1), product 1 (v1 = 1), and

product 2’ (w2 = 0.5), so the probabilities of purchase from the store offering only product 1 are

now

π0({1}) =
1.5

2.5
= 60%, π1({1}) =

1

2.5
= 40%.

By including 2’ as a latent alternative, the probability of choosing product 1 has decreased from

50% under the BAM to 40%. However, this probability is still higher than that of the independent

demand model (IDM) which is 33.3%. So the GAM allows us to obtain estimates that are in-between

the BAM and the IDM by considering product specific shadow attractions. This formulation may

also help with inter-temporal choices, where a choice j /∈S+ may become available at a later time.

In this case wj is the shadow attraction of choice j discounted by time and the risk that it may

not be available in the future. Notice that this formulation is different from what results if we use

the traditional approach of viewing a product and location as a bundle. Indeed, including product

2’ with attraction w2 = 0.5, results in choice set {1,2,2′} for the customer when the vendor offers

assortment {1,2}. This results in π1({1,2,2′}) = 1/3.5 6= 1/3. The problem with this approach, in

terms of the MNL, is that an independent Gumbel random variable is drawn to determine the

random utility of product 2’.

Under the red-bus, blue-bus paradox, a person has a choice between driving a car and taking

either a red or blue bus (it is implicitly assumed that both buses have ample capacity and depart

at the same time). Let v1 represent the direct attractiveness of driving a car and let v2,w2 repre-

sent, respectively, the attraction and the shadow attraction of the two buses. If w2 = v2 then the

probabilities are unchanged if one of the buses is removed (as one intuitively expects because there

are essentially zero search costs in finding a comparable bus). The model with w2 = 0 represents

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 9

the case where there is no second bus. The common way to deal with the paradox is to use a nested

logit (NL) model. Under the NL model used to resolve the paradox, a person first selects a mode

of transportation and then one of the offerings within each mode. We are able to avoid the use of

the NL model, but as we shall see later, our model can be viewed as a limit of a NL model.

To formally define the GAM let S̄ = {j ∈N : j /∈S} be the complement of S in N = {1,.. .,n}.

In addition to the attraction values vj, there are shadow attraction values wj ∈ [0,vj],j ∈N such

that for any subset S ⊂N

πj(S) =
vj

v0 + W(S̄) + V (S)

j ∈S, (2)

where for any R ⊂ N, W(R) =

j∈R wj. Consequently, the no-purchase probability is given by

π0(S) = (v0 + W(S̄))/(v0 + W(S̄) + V (S)). In essence, the attraction value of the no-purchase

alternative has been modified to be v0 + W(S̄).

An alternative, perhaps simpler, way of presenting the GAM by using the following transforma-

tion: ṽ0 = v0 + W(N) and ṽj = vj −wj,j ∈N. For S ⊂N, let Ṽ (S) =

j∈S ṽj. With this notation

the GAM becomes:

πj(S) =
vj

ṽ0 + Ṽ (S)
∀j ∈S and π0(S) = 1−πS(S). (3)

where πS(S) =

j∈S πj(S). Notice that all choice probabilities are non-negative as long as ṽj =

vj −wj ≥ 0

and ṽ0 =

v0 +

j∈N wj > 0, which holds when v0 > 0 and wj ∈ [0,vj] for all

j ∈N.

The case wk = 0,k ∈N recovers the BAM, because ṽ0 = v0 and ṽj = vj,j ∈N. In contrast, the

case wk = vk,k ∈N, results in ṽ0 + Ṽ (S) = v0 + V (N) for all offered sets S ⊂N. The probability

πj(S), of selecting product j is independent of the set S containing j, resulting in the independent

demand model (IDM).

The parsimonious formulation P-GAM is given by wj = θvj ∀j ∈N for θ ∈ [0,1] can serve to

test H0 : θ = 0 vs H1 : θ > 0 to see whether the BAM applies or to test H0 : θ = 1 against H1 : θ < 1,

to see whether the IDM applies. If either of these tests fail, then a GAM maybe a better fit to the

data.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
10 Article submitted to Operations Research; manuscript no. XX

We provide two justifications for the GAM. The first justification is Axiomatic. The second

is a limiting case of the nested logit (NL) model. Readers who are not interested in the formal

derivation of the GAM can skip to section 2.4 for a method to estimate the GAM parameters.

2.1. Axiomatic Justification

Luce (1959) proposed two choice axioms. To describe the axioms under the assumption that the

no-purchase alternative is always available we will use the notation πS+ (T) =

j∈S+
πj(T) for all

S ⊂T and will use set difference notation T −S = T ∩ S̄ to represent the elements of T that are

not in S. The Luce axioms are given by :

• Axiom 1: If πi({i}) ∈ (0,1) for all i∈T, then for any R⊂S+, S ⊂T

πR(T) = πR(S)πS+ (T).

• Axiom 2: If πi({i}) = 0 for some i∈T, then for any S ⊂T such that i∈S

πS(T) = πS−{i}(T −{i}).

The most celebrated consequence of the Luce Axioms, due to Luce (1959), is that πi(S) satisfies

the Luce Axioms if and only if there exist attraction values vj,j ∈N+ such that equation (1) holds.

Since its original publication, the paper Luce (1959) has been cited thousands of times. Among

the most famous citations, we find the already mentioned paper by McFadden (1974) that shows

that the only random utility model that is consistent with the BAM is the one with independent

Gumbel errors. An early paper by Debreu (1960), criticizes the Luce model as it suffers from the so

called independence of irrelevant alternatives (IIA). The IIA states the relative preference between

two alternatives does not change as additional alternatives are added to the choice set. Debreu,

however, suggests that the addition of an alternative to an offered set hurts alternatives that are

similar to the added alternative more than those that are dissimilar to it. To illustrate this, Debreu

provides an example that is a precursor to the red-bus, blue-bus paradox based on the choice

between three records: a suite by Debussy, and two different recordings of the same Beethoven

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 11

symphony. Another famous paper by Tversky (1972), criticizes both the Luce model as well as all

random utility models that assume independent utilities for their inability to deal with the IIA.

Tversky offers the elimination by aspects theory as a way to cope with the IIA. Others, such as n

Domenich and McFadden (1975) and Williams (1977), have turned to the nested logit (NL) model

as an alternative way of dealing with the IIA. Under a nested logit model, for example, a person

will first chose between modes of transportation (car or bus) before selecting a particular car or

bus color.

To our knowledge no one has altered the Luce Axioms with the explicit goal of modifying the

recapture probabilities. Yellott (1977), however, gives a characterization of the Luce model by an

axiom which he called invariance under uniform expansion of the choice set, which is weaker than

Luce’s Axiom but implies Luce’s Axiom when the choice model is assumed to be an independent

random utility model. The reader is also refereed to Dagsvik (1983), who expands Yellott’s ideas

to choices made over time.

Notice that Axiom 1 holds trivially for R = ∅ since π∅(S) = 0 for all S ⊂N. For ∅ 6= R⊂S the

formula can be written as the ratio of the demand captured by R when we add T −S to S. The

ratio is given by

πR(T)

πR(S)
= πS+ (T) = 1−πT−S(T),

and is independent of R⊂S. Our goal is to generalize Axiom 1 so that the ratio remains indepen-

dent of R⊂S but in such a way that we have more control over the proportion of the demand that

goes to T −S. This suggests the following generalization of Axiom 1.

• Axiom 1’: If πi({i}) ∈ (0,1) for all i∈T, then for any ∅ 6= R⊂S ⊂T

πR(T)

πR(S)
= 1−


j∈T−S

(1−θj)πj(T)

for some set of values θj ∈ [0,1],j ∈N.

We will call the set of Axioms 1’ and 2 the Generalized Luce Axioms (GLA). We can think of

θj ∈ [0,1] as a relative measure of the competitiveness of product j in the market place. The next

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
12 Article submitted to Operations Research; manuscript no. XX

result states that a choice model satisfies the GLA if and only if it is a GAM and links θj to the

ratio of wj to vj.

Theorem 1. A choice model πi(S) satisfies the GLA if and only if it is of the GAM form. More-

over, wj = θjvj for all j ∈N.

A proof of this theorem may be found in the Appendix. Notice that it is tempting to relax the

constraint wj ≥ 0 as long as ṽ0 > 0. However, this relaxation would lead to a violation of Axiom 2.

2.2. GAM as Limit of Nested Logit Model under Competition

We now show that the GAM also arises as the limit of the nested logit (NL) model. The NL model

was originally proposed in Domenich and McFadden (1975), and later refined in McFadden (1978),

where it is shown that it belongs to the class of Generalized Extreme Value (GEV) family of models.

Under the nested choice model, customers first select a nest and then an offering within the nest.

The nests may correspond to product categories and the offerings within a nest may correspond

to different variants of the product category. As an example, the product categories may be the

different modes of transportation (car vs. bus) and the variants may be the different alternatives

for each mode of transportation (e.g., the blue and the red buses). As an alternative, a product

category may consist of a single product, and the variants may be different offerings of the same

product by different vendors. We are interested in the case where the random utility of the different

variants of a product category are highly correlated. The NL model, allows for correlations for

variants in nest i through the dissimilarity parameter γi. Indeed, if ρi is the correlation between

the random utilities of nest i offerings, then γi =

1−ρi is the dissimilarity parameter for the nest.

The case γi = 1 corresponds to uncorrelated products, and to a BAM. The MNL is the special case

where the idiosyncratic part of the utilities are independent and identically distributed Gumbel

random variables.

Consider now a NL model where the nests correspond to individual products offered in the

market. Customers first select a product, and then one of the vendors offering the selected product.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 13

Let Ok be the set of vendors offering product k, Sl be the set of products offered by vendor l, and

vkl be the attraction value of product k offered by vendor l. Under the NL model, the probability

that a customer selects product i∈Sj is given by

πi(Sj) =

(∑
l∈Oi

v

1/γi
il

)γi
v0 +


k

(∑
l∈Ok

v
1/γk
kl

)γk v1/γiij∑
l∈Oi

v
1/γi
il

, (4)

where the first term is the probability that product i is selected and the second term the probability

that vendor j is selected. Many authors, e.g., Greene (1984), use what is know as the non-normalized

nested models where vij’s are not raised to the power 1/γi. This is sometimes done for convenience

by simply redefining vkl ←v
1/γk
kl . There is no danger in using this transformation as long as the γ’s

are fixed. However, the normalized model presented here is consistent with random utility models,

see Train (2002), and we use the explicit formulation because we will be taking limits as the γ’s

go to zero.

It is easy to see that πi(Sj) is a BAM for each vendor j, when γi = 1 for all i. This case can be

viewed as a random utility model, where an independent Gumbel random variable is associated with

each product and each vendor. Consider now the case where γi ↓ 0 for all i. At γi = 0, the random

utilities of the different offerings of product i are perfectly and positively correlated. This makes

sense when the products are identical and price and location are the only things differentiating

vendors. When these differences are captured by the deterministic part of the utility, then a single

Gumbel random variable is associated with each product. In the limit, customers select among

available products and then buy from the most attractive vendor. If several vendors offer the same

attraction value, then customers select randomly among such vendors. The next result shows that

a GAM arises for each vendor, as γi ↓ 0 for all i.

Theorem 2. The limit of (4) as γi ↓ 0 for all i is a GAM. More precisely, there are attraction

values akj, ãkj ∈ [0,akj], and ã0j ≥ 0, such that the discrete choice model for vendor j is given by

πi(Sj) =
aij

ã0j +

k∈Sj
ãkj

∀i∈Sj.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
14 Article submitted to Operations Research; manuscript no. XX

This shows that if customers first select the product and then the vendor, then the NL choice

model becomes a GAM for each vendor as the dissimilarity parameters are driven down to zero.

The proof of this result is in the Appendix. Theorem 2 justifies using a GAM when some or all

of the products offered by a vendor are also offered by other vendors, and customers have a good

idea of the price and convenience of buying from different vendors. The model may also be a

reasonable approximation when products in a nest are close substitutes, e.g., when the correlations

are high but not equal to one. Although we have cast the justification as a model that arises from

external competition, the GAM also arises as the limit of a NL model where a firm has multiple

versions of products in a nest. At the limit, customers select the product with the highest attraction

within each nest. Removing the product with the highest attraction from a nest shifts part of the

demand to the product with the second highest attraction , and part to the no-purchase alternative.

Consequently a GAM of this form can be used in Revenue Management to model buy up behavior

when there are no fences, and customers either buy the lowest available fare for each product or

do not purchase.

2.3. Limitation and Heuristic Uses of the GAM

One limitation of the GAM as we propose it is that, in practice, the attraction and shadow attrac-

tion values may depend on a set of covariates that may be customer or product specific. This can be

dealt with either by assuming a latent class model on the population of customers or by assuming

a customer specific random set of coefficients to capture the impact of the covariates. This results

in a mixture of GAMs. The issues also arise when using the BAM. In practice, often a single BAM

is used to try to capture the choice probabilities of customers that may come from different market

segments. This stretches both models, as this should really be handled by adding market seg

ments.

However the GAM can cope much better with this situation as the following example illustrates.

Example 1: Suppose there are two stores (denoted l), and each store attracts half of the

population. We will assume that there are two products (denoted k) and that the GAM parameters

vlk and wlk for the two stores are as given in Table 1:

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 15

v10 v11 v12 v20 v21 v22
w11 w12 w21 w22

1 1 1 1 0.9 0.9
0.9 0.8 0.8 0.7

Table 1 Attraction Values (v,w)

With this type of information we can use the GAM to compute choice probabilities πj(S) that

a customer will purchase product j ∈S from Store 1 when Store 1 offers set S, and Store 2 offers

set R = {1,2}. Suppose Store 1 has observed selection probabilities for different offer sets S as

provided in Table 2:

S π0(S) π1(S) π2(S)
∅ 100% 0% 0%
{1} 82.1% 17.9% 0%
{2} 82.8% 0.0% 17.2%
{1,2} 66.7% 16.7% 16.7%

Table 2 Observed πj (S,R) for R = {1,2}

To estimate these choice probabilities using a single market GAM we found the values of

vk,wk,k = 1,2 with v0 = 1 that minimizes the sum of squared errors of the predicted probabilities.

This results in the GAM model: v0 = 1, v1 = v2 = 0.25, w1 = 0.20 and w2 = 0.15. This model per-

fectly recovers the probabilities in Table 2. However, when limited to the BAM, the largest error

is 1.97% in estimating π0({1,2}).

This improved ability to fit the data comes at a cost because the GAM requires estimating w in

addition to v. As we will see in the next section, it is possible to estimate the v and w from the

store’s offer sets and sales data. We will assume, as in any estimation of discrete choice modeling,

that the same choice model prevails over the collected data set. If this is not the case, then the

estimation should be done over a subset of the data where this assumption holds. As such, we do

not require information about what the competitors are offering, only that their offer sets do not

vary over the data set. This is an implicit assumption made when estimating any discrete choice

model. The output of the estimation provides the store manager an indication of which products

face more competition by looking at the resulting estimates of the ratios θi = wi/vi. Over time,

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
16 Article submitted to Operations Research; manuscript no. XX

a firm can estimate parametric or full GAM models that take into account what competitors are

offering and then update their choice models dynamically depending on what the competition is

doing.

2.4. GAM Estimation and Examples

It is possible to estimate the parameters of the GAM by refining and extending the Expectation

Maximization method developed by VvRR (Vulcano et al. (2012)) for the BAM. Readers not

interested in estimation can skip to Section 3. We assume that demands in periods t = 1,.. .,T arise

from a GAM with parameters v and w and arrival rates λt = λ for t = 1,.. .,T . The homogeneity

of the arrival rates is not crucial. In fact the method described here can be extended to the case

where the arrival rates are governed by co-variates such as the day of the week, seasonality index,

and indicator variables of demand drivers such as conferences, concerts or other events that can

influence demand. Our main purpose here is show that it is possible to estimate demands fairly

accurately. The data are given by the offer sets St ⊂N and the realized sales zt ⊂Zn+, excluding the

unobserved value of the customers who chose the no-purchase alternative, for t = 1,.. .,T . VvRR

assume that the market share s = πN(N), when all products are offered, is known. While we do

not make this assumption here, we do present results with and without knowledge of s.

VvRR update estimates of v by estimating demands for each of the products in N when some of

them are not offered. To see how this is done, consider a generic period with offer set S ⊂N,S 6= N

and realized sales vector Z = z. Let Xj be the demand for product j if set N instead of S was

offered. We will estimate Xj conditioned on Z = z. Consider first the case j /∈ S. Since Xj is

Poisson with parameter λπj(N), substituting the MLE estimate λ̂ = e
′z/πS(S) of λ we obtain the

estimate X̂j = λ̂πj(N) =
πj (N)

πS (S)
e′z. We could use a similar estimate for products j ∈S but this would

disregard the information zj. For example, if zj = 0 then we know that the realization of Xj was

zero as customers had product j available for sale. We can think of Xj, conditioned on (S,z) as a

binomial random variable with parameters zj and probability of selection πj(N)/πj(S). In other

words, each of the zj customers that selected j when S was available, would have selected j anyway

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 17

with probability πj(N)/πj(S). Then X̂j =
πj (N)

πj (S)
zj is just the expectation of the binomial. Notice

that X̂[1,n] =
∑m

i=1
X̂j =

e′z
πS (S)

πN(N) = λ̂s. We can find X̂0 by treating it as j /∈ S resulting in

X̂0 =
π0(N)

πS (S)
e′z = λ̂(1−s). We summarize the results in the following proposition:

Proposition 1. (VvRR extended to the GAM): If j ∈S then

X̂j =
πj(N)

πj(S)
zj.

If j /∈S or j = 0 we have

X̂j =
πj(N)

πS(S)
e′z.

Moreover, X̂[1,n] =

j∈N X̂j =
πN (N)

πS (S)
e′z.

VvRR use the formulas for the BAM to estimate the parameters λ,v1,.. .,vn under the assump-

tion that the share s = v(N)/(1 + v(N)) is known. From this they use an E-M method to iterate

between estimating the X̂js given a vector v and then optimizing the likelihood function over v

given the observations. The MLE has a closed form solution so the updates are given by v̂j = X̂j/X̂0

for all j ∈N, where X̂0 = rX̂[1,n] and r = 1/s−1. VvRR use results in Wu (1983) to show that

the method converges. We now propose a refinement of the VvRR method that can significantly

reduce the estimation errors.

Using data (St,zt),t = 1… ,T, VvRR obtain estimates X̂tj that are then averaged over the T

observations for each j. In effect, this amounts to pooling estimators from the different sets by

giving each period the same weight. When pooling estimators it is convenient to take into account

the variance of the estimators and give more weight to sets with smaller variance. Indeed, if we

have T different unbiased estimators of the same unknown parameter, each with variance σ2t , then

giving weights proportional to the inverse of the variance minimizes the variance of the pooled

estimator. Notice that the variance of X̂tj is proportional to 1/πj(St) if j ∈St and proportional to

1/πSt (St) otherwise. Let atj = πj(St) if j ∈St and atj = πSt (St) if j /∈St. We can select the set the

weights for product j as

ωtj =
atj∑T
s=1

asj
.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
18 Article submitted to Operations Research; manuscript no. XX

Our numerical experiments suggests that using this weighting scheme reduces the variance of the

estimators by about 4%.

To extend the procedure to the GAM we combine ideas of the EM method based on MLEs and

least squares (LS). It is also possible to refine the estimates by using iterative re-weighted least

squares (Green (1984) and Rubin (1983)) but our computational experience shows that there is

little benefit from doing this. To initialize the estimation we use formulas for the expected sales

under St,t = 1,. ..,T for arbitrary parameters λ,v and w. More precisely, we estimate E[Ztj] by

λπj(St) = λ
vj

v0 + V (S) + W(S̄)
j ∈St, t∈{1,.. .,T}.

We then minimize the sum of squared errors between estimated and observed sales (zts):

T∑
t=1


i∈St

[
λ

vj
v0 + V (S) + W(S̄)

−zti
]2
,

subject to the constraints 0 ≤ w ≤ v and λ ≥ 0. This is equivalent to maximizing the likelihood

function ignoring the unobserved values of the no-purchase alternative zt0.

This gives us an initial estimate λ(0),v(0),w(0) and an initial estimate of the market share s(0) =

v(0)(N)/(1 + v(0)(N)). Let r(0) = 1/s(0) − 1. If s is known then we add the constraint v(N) = r =

1/s−1. Given estimates of v(k) and w(k) the procedure works as follows:

E-step: Estimate the first choice demands X̂
(k)
tj and then aggregate over time using the current

estimate of the weights α
(k)
tj to produce X̂

(k)
j =

∑T
t=1


(k)
tj α

(k)
tj and X̂

(k)
0 = r

(k)X̂(k)[1,n] and update

the estimates of v by

v
(k+1)
j =


(k)
j

X
(k)
0

j ∈N.

M-step: Feed v(k+1) together with arbitrary λ and w to estimate sales under St,t = 1,.. .,T and

minimize the sum of squared errors between observed and expected sales over λ and w

subject to

w≤v(k+1) and non-negativity constraint to obtain updates λ(k+1), w(k+1) and s(k+1).

The proof of convergence is a combination of the arguments in Wu, as in VvRR, and the fact

that the least squared errors problem is a convex minimization problem. The case when s is known

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 19

works exactly as above, except that we do not need to update this parameter. The M-step can be

done by solving the score equations:


t∈Ai

πi(St)[e
′zt + λπ0(St)]−


t∈Ai

zti = 0 i = 1,.. .,n,


t/∈Ai

π̂i(St)[e
′zt + λπ0(St)]−λ


t/∈Ai

π̂i(St) = 0 i = 1,.. .,n.

and
T∑
t=1

πSt (St)−
T∑
t=1

e′zt/λ = 0,

where Ai is the set of periods where product i is offered and

π̂i(St) =
vi

1 + V (St) + W(S̄t)
t /∈Ai.

This is a system of up to 2n + 1 equations on 2n + 1 unknowns. Attempting to solve the score

equations directly or through re-weighted least squares does not materially improve the estimates

relative to the least square procedure described above.

We now present three examples to illustrate how the procedure works in three different cases:

1) w = 0 corresponding to the BAM, 2) w = θv corresponding to the (parsimonious) p-GAM, and

3) 0 6= w≤v corresponding to the GAM. These examples are based on Example 1 in VvRR. The

examples involve five products and 15 periods where the set N = {1,2,3,4,5} was offered in four

periods, set {2,3,4,5} was offered in two periods, while sets {3,4,5},{4,5} and {5} were each

offered in three periods. Notice that product 5 is always offered making it impossible to estimate

w5. On the other hand, estimates of w5 would not be needed unless the firm planned to not offer

product 5.

In their paper, VvRR present the estimation results for a specific realization of sales zt,t =

1,.. .,T = 15 corresponding to the 15 offer sets St,t = 1,. ..,15. We instead generate 500 simulated

instances of sales, each over 15 periods, and then compute our estimates for each of the 500

simulations. We report the mean and standard deviation of λ, v and either θ or w over the 500

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
20 Article submitted to Operations Research; manuscript no. XX

simulations. We feel these summary statistics are more indicative of the ability of the method

to estimate the parameters. We report results when s (historical market share) is assumed to be

known, as in Vulcano et al. (2012), and some results for the case when s is unknown (see 1. in the

endnotes).

Estimates of the model parameters tend to be quite accurate when s is known and the estimation

of λ and v become more accurate when w 6= 0. The results for s unknown tend to be accurate when

w = 0 but severely biased when w 6= 0. The bias is positive for v and w and negative for λ. Since it is

possible to have biased estimates of the parameters but accurate estimates of demands, we measure

how close the estimated demands λ̂π̂i(S) = λ̂
v̂i

1+v̂(S)+ŵ(S̄)
i∈S, S ⊂N are from the true expected

demands λπi(S), i∈S, S ⊂N and also how close the estimated demands λ̂π̂i(St) i∈St,t = 1,.. .,T

are from sales zti,i∈St,t = 1,.. .,T . These measures are reported, respectively, as the Model Mean

Squared Error (M-MSE ) and the traditional Mean Squared Error (MSE) between the estimates

and the data. Surprisingly the results with unknown s, although strongly biased in terms of the

model parameters, often produce M-MSEs and MSEs that are similar to the corresponding values

when s is known.

Example 2 (BAM) In the original VvRR example, the true value of w is 0. The estimates with

s known and s unknown as well as the true values of the parameters are given in Table 3.

s λ v1 v2 v3 v4 v5
known 50.27 0.988 0.700 0400 0.200 0.050
unknown 51.26 1.212 0.818 0.449 0.219 0.053
true 50.00 1.000 0.700 0.400 0.200 0.050

Table 3 Estimated values of λ and v with s known

The MSE and the M-MSE were respectively 247.50 and 58.44, for both the case of s known and

unknown.

Example 3 (P-GAM) For this example v is the same as above but w = θv with θ = 0.20. The

results are given in Table 4. Notice that the estimate of θ is more accurate for the case of s unknown.

Clearly the estimated values with s known are much closer to the actual values. However, the fit

to the model and to data for the case of s unknown is similar to the case of s known. Indeed, the

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 21

s λ v1 v2 v3 v4 v5 θ
known 50.12 0.988 0.702 0.397 0.201 0.051 0.238
unknown 4.390 0.111 0.079 0.062 0.035 0.014 0.219
true 50.00 1.000 0.700 0.400 0.200 0.050 0.200

Table 4 Estimated values of λ,v and θ with s known

MSE and the M-MSE were respectively 226.2 and 50.37 for the case of s known and 228.54 and

53.84, respectively, for the case of s unknown. This suggests that the parameter values that can be

far from the true parameters and yet have a sufficiently close fit to the model and to the data.

Example 4 (GAM) For this example λ and v are as above, and w = (0.25,0.35,0.15,0.05,0.05).

The results are given in Table 5.

s λ v1 v2 v3 v4 v5 w1 w2 w3 w4 w5
known 50.19 0.994 0.700 0.404 0.202 0.051 0.321 0.288 0.186 0.106 0.010
true 50.00 1.000 0.700 0.400 0.200 0.050 0.250 0.350 0.150 0.050 0.050

Table 5 Estimated values of λ,v and w with s known and unknown

Notice that the estimated values of λ and v for the case of v known are better under the GAM

than for the case w = 0 or w = θv. The MSE and M-MSE are respectively 204.71 and 48.56 for the

case of s known. The estimates of the parameters are severely biased when s is unknown so are not

reported. However, the MSE and M-MSE were respectively, 203.70 and 54.33, a surprisingly good

fit to data. This again suggests that there is a ridge of parameter values that fit the data and the

model well.

3. Stochastic Revenue Management over a Network

In this section we present the formulation for the stochastic revenue management over a network.

We will assume that there are L customer market segments and that customers in a particular

market segment are interested in a specific set of itineraries and fares (see 2. in the endnotes) from

a set of origins to one or more destinations. For example, a market segment could be morning

flights from New York to San Francisco that are less than $500, or all flights from New York

City to the Mexican Caribbean. Notice that there may be multiple fares with different restrictions

associated with each itinerary. At any time the set of origin-destination-fares (ODFs) offered for

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
22 Article submitted to Operations Research; manuscript no. XX

sale to market segment l is a subset Sl ⊂Nl,l∈L = {1,.. .,L} where Nl is the consideration set for

market segment l∈L with associated fares plk, for each product k in nest Nl. If the consideration

sets are non-overlapping over the market segments then there is no need to add further restrictions

to the offered sets. This is also true when consideration sets overlap if the capacity provider is free

to independently decide what fares to offer in each market. As an example, round-trips from the

US to Asia are sold both in Asia and the US. If the carrier can charge different fares depending

on whether the customer buys the fare in the US or in Asia, then no further restrictions are

needed. Otherwise, he needs to impose restrictions so that the same set of products is offered in

both markets. One way to handle this is to post a single offer set S at a time, so then use the

projection subsets Sl = S ∩Nl for all markets l that are constrained to offers the same price for

offered fares. Customers in market segment l select from Sl and the no-purchase alternative. We

will abuse notation slightly and write πlk(Sl) to denote the probability of selecting product k∈Sl+

from market segment l. For convenience we define πlk(Sl) = 0 if k /∈Sl+.

The state of the system will be denoted by (t,x) where t is the time-to-go and x is an m-

dimensional vector representing remaining inventories. The initial state is (T,c) where T is the

length of the horizon and c is the initial inventory capacity. For ease of exposition we will assume

that customers arrive to market segment l as a Poisson process with time homogeneous rate λl.

We will denote by J(t,x) the maximum expected revenues that can be obtained from state (t,x).

The Hamilton-Jacobi-Bellman (HJB) equation is given by

∂J(t,x)

∂t
=

l∈L

λl max
Sl⊂Nl


k∈Sl

πlk(Sl) (plk −∆lkJ(t,x)) (5)

where ∆lkJ(t,x) = J(t,x)−J(t,x−Alk), where Alk is the vector of resources consumed by k∈Nl

(e.g. flight legs on a connecting itinerary class). The boundary conditions are J(0,x) = 0 and

J(t,0) = 0. Talluri and van Ryzin (2004) developed the first stochastic, choice-based, dependent

demand model for the single resource case in discrete time. The first choice-based, network

formulation is due to Gallego et al. (2004).

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 23

4. The Choice Based Linear Program

An upper bound J̄(T,c) on the value function J(T,c) can be obtained by solving a deterministic

linear program. The justification for the bound can be obtained by using approximate dynamic

programming with affine functions.

We now introduce additional notation to write the linear program with value function J̄(T,c) ≥

J(T,c). Let πl(Sl) be the nl = |Nl|-dimensional vector with components πlk(Sl),k ∈ Nl. Clearly

πl(Sl) has zeros for all k /∈Sl. The vector πl(Sl) gives us the probability of sale for each fare in Nl

per customer when we offer set Sl. Let rl(Sl) = p

lπl(Sl) =


k∈Nl

plkπlk(Sl) be the revenue rate per

customer associated with offering set Sl ⊂Nl where pl = (plk)k∈Nl is the fare vector for segment

l∈L. Notice that πl(∅) = 0 ∈

with offering set Sl ⊂Nl where Al is a matrix with columns Alj associated with ODF j ∈Nl.

The choice based deterministic linear program (CBLP) for this model can be written as

J̄(T,c) = max

l∈LλlT

Sl⊂Nl
rl(Sl)αl(Sl)

subject to

l∈LλlT

Sl⊂Nl
Alπl(Sl)αl(Sl) ≤c∑

Sl⊂Nl
αl(Sl) = 1 l∈L

αl(Sl) ≥ 0 Sl ⊂Nl l∈L.

(6)

The decision variables are αl(Sl),Sl ⊂ Nl,l ∈L which represent the proportion of time that set

Sl ⊂Nl is used. The case of non-homogeneous arrival rates can be handled by replacing λlT by∫ T
0
λlsds. There are


l∈L 2

nl decision variables. Gallego et al. (2004) showed that J(T,c) ≤ J̄(T,c)

and proposed an efficient column generation algorithm for a class of attraction models that

includes the BAM. This formulation has been used and analyzed by other researchers including

Bront et al. (2009), Kunnumkal and Topaloglu (2010), Kunnumkal and Topaloglu (2008), Liu and

van Ryzin (2008) and Zhang and Adelman (2009).

5. The Sales Based Linear Program for the GAM

In this section we will present a linear program that is equivalent to the CBLP for the GAM, but

is much smaller in size (essentially the same size as the well known IDM) and easier to solve (as

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
24 Article submitted to Operations Research; manuscript no. XX

it avoids the need for column generation). The new formulation is called the sales based linear

program (SBLP) because the decision variables are sales quantities. The number of variables in

the formulation is

l∈L(nl + 1), where xlk,k = 0,1.. .,nl,l∈L represents the sales of product k in

market segment l. Let the aggregate market demand for segment l be denoted by Λl = λlT,l∈L

(or
∫ T

0
λlsds if the arrival rates are time varying) inclusive of the no-purchase alternative. With

this notation the formulation of the SBLP is given by:

R(T,c)= max

l∈L

k∈Nl
plkxlk

subject to

capacity :

l∈L

k∈Nl
Alkxlk ≤ c

balance :
ṽl0

vl0

xl0 +


k∈Nl

ṽlk
vlk

xlk = Λl

l∈L

scale :

xlk
vlk

− xl0

vl0
≤ 0 k∈Nl l∈L

non-negativity: xlk ≥ 0 k∈Nl l∈L

(7)

Theorem 3. If each market segment πlj(Sl) is of the GAM form (2) then J̄(T,c) = R(T,c).

We demonstrate the equivalence of the CBLP and SBLP formulations by showing that the SBLP

is a relaxation of the CBLP and then proving that the dual of the SBLP is a relaxation of the dual

of the CBLP. Full details of this proof may be found in the Appendix.

The intuition behind the SBLP formulation is as follows. Our decision variables represent the

amount of inventory to allocate for sales across ODFs for different market segments. The objective

is to maximize revenues. Three types of constraints are required. The capacity constraints limit

the sum of the allocations. The balance constraints ensure that the sale allocations are in certain

hyperplanes, so when some service classes are closed for sale, the demands for the remaining open

service classes (including the null alternative) changes dependently; they must be modified to offset

the amount of the closed demands. The scale constraints operate on the principle that demands

are rescaled depending on both the availability and the attractiveness of other items in the choice

set.

The decision variables xl0 play an important role in the SBLP. Since the null alternative has

positive attractiveness and is always available, the dependent demand for any service class is

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 25

upper bounded based on its size relative to the null alternative. The scale constraints imply that

xlk/vlk ≤ xl0/vl0. Therefore, the scale constraints favor a large value of xl0. On the other hand,

the balance constraint can be written as

k∈N ṽlkxlk/vlk ≤ Λl − ṽl0xl0/vl0, favoring a small value

of xl0. The LP solves for this tradeoff taking into account the objective function and the capacity

constraint. We will have more to say about xl0 in the absence of capacity constraints in Section 6.

The combination of the balance and scale constraints ensures that GAM properties are compactly

represented in the optimizer and that the correct ratios are maintained between the sizes of each

of the open alternatives.

For the BAM the demand balance constraint simplifies to xl0 +

k∈Nl
xlk = Λl. For the inde-

pendent demand case, ṽl0 = vl0 +

k∈Nl
vlk and ṽlk = 0 for k∈Nl. The balance constraint reduces

to xl0 = (vl0/ṽl0)Λl, and the scale constraint becomes xlk ≤ (vlk/ṽl0)Λl,k ∈ Nl, so clearly xl0 +∑
k∈Nl

xlk ≤ Λl.

We remark that the CBLP and therefore the SBLP can be extended to multi-stage problems

since the inventory dynamics are linear. This allows for different choice models of the GAM family

to be used in different periods and is the typical approach in practice.

5.1. Recovering the Solution for the CBLP

So we have learned that the SBLP problem is much easier to solve and provides the same revenue

performance as the CBLP. However, there are some circumstances (described later in this section)

in which it is more desirable to use the CBLP solution. The reader may wonder whether it is

possible to recover the solution to the CBLP from the solution to the SBLP. In other words, is it

possible to obtain a collection of offer sets {S : α(S) > 0} that solves the CBLP from the solution

xlk,k ∈Nl,l ∈L of the SBLP? The answer is yes, and the method presented here for the GAM

is inspired by Topaloglu et al. (2011) who used our SBLP formulation and presented a method

to recover the solution to the CBLP for the BAM. When used with the GAM, recovering the

CBLP solution is important because solutions in terms of assortments tend to be more robust then

solutions in terms of sales. Indeed, our experience is that when GAM parameters are estimated,

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
26 Article submitted to Operations Research; manuscript no. XX

the solution in terms of sales can be fairly far from the solution with known parameters, whereas

the solution in terms of assortments tends to be much closer.

In this section we will show how to obtain the solution of the CBLP from the SBLP and will also

show that for each market segment the offered sets are nested in the sense that there exist subsets

Slk increasing in k with positive weights. The products in the smallest set are core products that

are always offered. Larger sets contain additional products that are only offered part of the time.

The sorting of the products is not by revenues, but by the ratio of xlk/vlk for all k∈Nl ∪{0} for

each l∈L. We then form the sets Sl0 = ∅ and Slk = {1,. ..,k} for k = 1,.. .,nl, where nl = |Nl| is

the cardinality of Nl. For k = 0,1,.. .,nl, let

αl(Slk) =

(
xlk
vlk

xl,k+1
vl,k+1

)
Ṽ (Slk)

Λl
,

where for convenience we define xl,nl+1/vl,nl+1 = 0. Set αl(Sl) = 0 for all Sl ⊂Nl not in the col-

lection Sl0,Sl1,.. .,Slnl . It is then easy to verify that αl(Sl) ≥ 0, that

Sl⊂Nl
αl(Sl) = 1, and that∑

Sl⊂Nl
αl(Sl)πlk(Sl) = xlk. Applying this to the CBLP we can immediately see that all constraints

are satisfied, and the objective function coincides with that of the SBLP. Notice that for each

market segment the offered sets are nested Sl0 ⊂Sl1 ⊂ .. .⊂Slnl , and that set Slk is offered for a

positive fraction of time if and only if xlk/vlk > xl,k+1/vl,k+1. Unlike the BAM and the IDM, the

sorting order of products under the GAM is not necessarily revenue ordered. This is because fares

that face more competition (wlj close to vlj) are more likely to be offered even if their corresponding

fares are low.

5.2. Bounds and Numerical Examples

In this section we present two results that relate the solutions to the extreme cases w = 0 and w = v

to the case 0 ≤w≤v. The proofs of the propositions are in the Appendix.

The reader may wonder whether the solution that assumes wj = 0 for all j ∈N is feasible when

wj ∈ (0,vj) j ∈N . The following proposition confirms and generalizes this idea.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 27

Proposition 2. Suppose that αl(Sl),Sl ⊂ Nl,l ∈L is a solution to the CBLP for the GAM for

fixed vlk,k ∈Nl+,l∈L and wlk ∈ [0,vlk],k ∈Nl,l∈L. Then αl(Sl),Sl ⊂Nl,l∈L is a feasible, but

suboptimal, solution for all GAM models with w′lk ∈ (wlk,vlk],k∈Nl,l∈L.

An easy consequence of this proposition is that if αl(Sl),l ∈L is an optimal solution for the

CBLP under the BAM, then it is also a feasible, but suboptimal, solution for all GAMs with

wk ∈ (0,vk]. This implies that the solution to the BAM is a lower bound on the revenue for the

GAM with wk ∈ (0,vk] for all k.

As mentioned in the introduction, the IDM underestimates demand recapture. As such optimal

solutions for the SBLP under the IDM are feasible but suboptimal solutions for the GAM. The

following proposition generalizes this notion.

Proposition 3. Suppose that xlk,k ∈Nl,l∈L is an optimal solution to the SBLP for the GAM

for fixed vlk,k∈Nl+ and wlk ∈ [0,vlk],k∈Nl,l∈L. Then xlk,k∈Nl+,l∈L is a feasible solution for

all GAM models with w′lk ∈ [0,wlk],k∈Nl,l∈L with the same objective function value.

An immediate corollary is that if xlk,k ∈Nl,l∈L is an optimal solution to the SBLP under the

independent demand model then it is also a feasible solution for the GAM with wk ∈ [0,vk] with

the same revenue as the IDM. This implies that the solution to the IDM is another lower bound

on the GAM with wk ∈ [0,vk] for all k.

Example 5: The following example problem was originally reported in Liu and van Ryzin (2008).

There are three flights AB,BC and AC. All customers depart from A with destinations to either

B or C. The relevant itineraries are therefore AB,ABC and AC. For each of these itineraries

there are two fares (high and low) and three market segments. Market segment 1 are customers

who travel to B. Market segment 2 are customers who travel to C but only at a high fare. Market

segment 3 are customers who travel to C but only at the low fare. The six fares as well as vlj,j ∈Nl

and vl0 for l = 1,2,3 are given in Table 6. The arrivals are uniformly distributed over a horizon of

T = 15, and the expected market sizes are Λ1 = 6,Λ2 = 9,Λ3 = 15 and that capacity c = (10,5,5)

for flights AB, BC and AC.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
28 Article submitted to Operations Research; manuscript no. XX

1 2 3 4 5 6 0
Products ACH ABCH ABH ACL ABCL ABL Null

Fares $1,200 $800 $600 $800 $500 $300
(AB,v1j) 5 8 2

(AChigh,v2j) 10 5 5
(AClow,v3j) 5 10 10

Table 6 Market Segment and Attraction Values v

In this example we will consider the parsimonious p-GAM model wlj = θvlj for all j ∈ Nl,l ∈

{1,2,3} for values of θ ∈ [0,1]. We will assume that the vlj values are known for all j ∈ Nl,l ∈

{1,2,3}, but the BAM and the IDM use the extreme values θ = 0 and θ = 1, while the GAM uses

the correct value of θ. This situation may arise if the model is calibrated based on sales when all

products are offered, e.g., Sl = Nl for all l∈{1,2,3}. The objective here is to study the robustness

of using the BAM and the IDM to the p-GAM for values of θ ∈ (0,1). The situation where the

parameters are calibrated from data that includes recapture will be presented in the next example.

The solution to the CBLP for the BAM is given by α({1,2,3}) = 60%, α({1,2,3,5}) = 23.3% and

α({1,2,3,4,5}) = 16.7% with α(S) = 0 for all other subsets of products. Equivalently, the solution

spends 18, 7 and 5 units of time, respectively, offering sets {1,2,3}, {1,2,3,5} and {1,2,3,4,5}. The

solution results in $11,546.43 in revenues (see 3. in the endnotes). By Proposition 2, the solution

α({1,2,3}) = 60%, α({1,2,3,5}) = 23.3%, α({1,2,3,4,5}) = 16.7% is feasible for all θ∈ (0,1] with a

lower objective function value. The corresponding SBLP solution is shown in Table 7 and provides

the same revenue outcome as the CBLP.

1 2 3 4 5 6 0
Products ACH ABCH ABH ACL ABCL ABL xl0 Profit
(AB,x1j) 4.29 1.71 $2,571.43

(AChigh,x2j) 4.50 2.25 2.25 $7,200.00
(AClow,x3j) 0.50 2.75 11.75 $1,775.00

Total 4.50 2.25 4.29 0.50 2.75 0.0 15.71 $11,546.43
Table 7 SBLP Allocation Solution for BAM with (θ = 0)

The case θ = 1 corresponds to the IDM. The solution to the SBLP for the IDM and the cor-

responding revenue is given in Table 8. By Proposition 3, the solution to the IDM is a feasible

solution for all θ∈ [0,1) with the same objective value function.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 29

1 2 3 4 5 6 0
Products ACH ABCH ABH ACL ABCL ABL xl0 Profit
(AB,x1j) 2.00 3.00 0.80 $2,100.00

(AChigh,x2j) 4.50 2.25 2.25 $7,200.00
(AClow,x3j) 0.50 2.75 6.00 $1,775.00

Total 4.50 2.25 2.00 0.50 2.75 3.00 9.05 $11,075.00
Table 8 SBLP Allocation Solution for IDM with (θ = 1)

R
ev

en
ue

$10,100

$10,200

$10,300

$10,400

$10,500

$10,600

$10,700

$10,800

$10,900

$11,000

$11,100

$11,200

$11,300

$11,400

$11,500

$11,600

Theta

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Legend

gam bam idm

Figure 1 GAM, BAM and IDM Revenue for Known θ ∈ [0,1] Values

Figure 1 shows how the two extreme solutions (CBLP for θ = 0) and (SBLP for θ = 1) perform

for the attraction values given in Table 6 when the true model is GAM with θ∈ (0,1). Notice that

the BAM solution does well only for small values of θ, say θ≤ 20% and performs poorly for large

values of θ. Indeed, the BAM solution gives up about 10% of the optimal profits at the extreme

value of θ = 1. The case θ = 1 corresponds to the independent demand model, and in this case

the BAM anticipates demand recapture when there is none. A related finding was reported by

Hartmans (2006) of Scandinavian Airlines; his simulation studies showed clear positive revenue

potential of including recapture effects, but assuming strong recapture in cases where it does note

exist can lead to revenue losses. The solution for the IDM gives up significant profits only for small

values of θ. In particular, the IDM solution loses over 4% of the optimal profits for θ = 0 but less

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
30 Article submitted to Operations Research; manuscript no. XX

than 0.25% of profits for θ≥ 40%.

The optimal value function for the GAM is only marginally better than the maximum of the

value functions for the BAM and the IDM. Notice that these results apply to the special case of the

p-GAM, where all products in the choice set have had their shadow attractions downgraded by the

same relative amount. In a more typical application, only products that face competition will have

positive shadow attractions, so we expect the revenue differences between the BAM and GAM not

to be as large as in Example 5. Nonetheless, the example does highlight the asymmetry of revenue

performance associated with overestimating versus underestimating recapture probabilities.

Example 6: One may wonder how the three models would compare, if the attraction values in

Example 5 were estimated from data. Estimating the parameters would give the BAM and the

IDM more flexibility to compensate for using the wrong value of θ. On the other hand, the burden

of estimating a p-GAM as either a BAM or an IDM, can put stress on the estimated parameter.

It is not clear, therefore, whether the gaps suggested by Figure 1 are indicative of the difference

in performance when the parameters need to be estimated. On the other hand, the GAM has one

more parameter to estimate. What is important, therefore is to ascertain whether the GAM can

result in significant improvements over the BAM and IDM, and whether the gaps are smaller or

larger than those in the figure.

We tested this for three values of θ: 0.1, 0.5 and 0.9. Based on Figure 1, at θ = 0.1, we expect the

BAM to do very well and the IDM to do poorly. At θ = 0.5, we expect the BAM to struggle and

the IDM to do well. Finally, at θ = 0.9 we expect the BAM to do poorly and the IDM to very well.

To evaluate the performance of the three models, we generated data, estimated the parameters,

solved the SBLP with the estimated parameters for each of the three models, and then evaluated,

via simulation, the performance of the heuristic that uses the offer sets recommended by the SBLP.

We then compute the relative performance of the BAM and the IDM to the GAM. We report the

average of the relative performance over 500 repetitions of the entire procedure.

We simulate 50 instances of demands for each of the three non-trivial subsets for each market

to generate the data to estimate the parameters. For example, market 1 consists of product 3 and

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 31

4, with non-trivial subsets {3},{4} and {3,4}. To estimate the parameters we used the procedure

described in Section 2.4. To solve the linear program, we used the SBLP and converted the solution

to the CBLP as indicated in Section 5.1. To evaluate the performance of the heuristic we simulated

1000 repetitions using the offer sets recommended by the heuristic. The implementation of the

heuristic always starts by offering the largest set within a market. All the simulated requests are

accepted on a first-come first-serve basis within capacity limits.

For θ = 0.1, all of the three models do a reasonably good job of estimating the attraction values.

All of the three models, agreed on offering product 3 all of the time. The GAM and the BAM

agreed on offering products 1 and 2 all of the time. The IDM model, however, would some times

offer product 2 by itself for short periods of time. For market 3, the BAM and the GAM, were

remarkably consistent on offering product 5 by itself about 28% of the time and products 4 and

5 about 14% of the time. We were surprised by this, given the often significant differences in

the estimated parameters. The IDM disagreed offered product 5 by itself about 28% of the time,

but rarely offered product 4 at all. The performance of the BAM was essentially identical to the

performance of the GAM, achieving close to 100% of the revenues obtained by the GAM heuristic.

The IDM model, on the other hand, yielded about 98.2% of the revenue of the GAM heuristic.

For θ = 0.5, the estimates of the parameters for both the GAM and the IDM are fairly close to

the actual values. This is not so for the BAM, that makes a huge effort to accommodate for the

partial recapture resulting from θ = 0.5. Table 9 illustrates the true parameters and the estimated

values for the BAM, GAM, and IDM for one instance of the problem. Remarkably, even though

the estimates of the parameters for the BAM are often way off, the recommendations made by the

BAM were not far from those made by the GAM when viewed as solutions of the CBLP. In fact,

for the estimated values in Table 9, the recommendations were nearly identical: Offer products 1,2

and 3 all the time. Offer product 4 and 5 together 16% of the time, and offer product 5 by itself

27% of the time. The IDM solution for the reported instance in Table 9 was consistent with the

BAM and GAM for markets segments 1 and 2, but offered products 4 and 5 together 4% of the

time, and product 5 by itself 34% of the time.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
32 Article submitted to Operations Research; manuscript no. XX

Averaging over the 500 instances, the IDM was able to capture 99.45% of the revenues of the

GAM, while the BAM was able to capture 99.58%. This is contrast to Figure 1. These experiments

suggest that estimation helps the BAM relative to having the correct values of the attraction values

and the wrong value of θ, but it does not help the IDM as much.

v13 v16 v10 Λ1 θ v21 v22 v20 Λ2 θ v34 v35 v30 Λ3 θ
True 5.00 8.00 2.00 6.00 0.50 10.00 5.00 5.00 9.00 0.50 5.00 10.00 10.00 15.00 0.50
BAM 3.79 8.38 1.87 5.00 0.00 5.19 2.35 12.46 17.54 0.00 3.05 6.77 15.18 23.17 0.00
GAM 4.96 8.08 1.95 5.53 0.39 10.36 4.70 4.94 8.78 0.50 4.74 10.51 10.17 15.17 0.35
IDM 5.34 7.85 1.81 6.40 1.00 10.06 5.04 4.89 9.64 1.00 5.00 9.99 10.00 16.78 1.00

Table 9 Estimates of Parameters when θ = 0.50

For θ = 0.9, the estimates of the parameters are way off for the BAM, while the estimates for the

GAM and the IDM are quite close to the actual values. Nevertheless, the three models continue

to agree in terms of offering products 1, 2 and 3 all the time for most instances of the problem.

For a particular instance, generated with the same seed as Table 9, the BAM, offers products 4

and 5 together 16% of the time and offers product 5 by itself 10% of the time. The IDM, offers

products 4 and 5 together 14% of the time and product 5 by itself 30% of the time. The GAM

offers products 4 and 5 together 16% of the time and product 5 by itself 27% of the time. Notice

that the GAM and the IDM solutions are very similar. But the BAM suffers because very little

demand is recaptured from product 6 and from product 4 when only product 5 is offered. Averaging

over the 500 instances, the IDM was able to capture 99.9% of the revenue relative to the GAM,

while the BAM was able to capture 98.9% of the revenue relative to the GAM. In summary, with

estimated parameters, the IDM and the BAM do better relative to the GAM than what would

be predicted by Figure 1 when the parameters are known. Our biggest surprise was the relative

modest deterioration of the BAM revenue given how far the estimates of the parameters are, in

particular when θ = 0.9. To illustrate this, the estimates for the attraction values v21,v22,v20 and

Λ2 are 0.81, 0.38, 18.81, and 112.14. In contrast the true values, are 10, 5, 5, and 9.

Example 7: We continue using the running example in Liu and van Ryzin but we now assume

that demand is governed by the specific GAM presented in Table 10. The model reflects positive

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 33

w values for lower fares. The optimal revenue under this model is $11,225.00, and the optimal

allocations are given in Table 11. We know from Proposition 2 that the CBLP solution for the

BAM is feasible for this GAM. The resulting revenue is $11,185.86. The solution to the IDM for

the SBLP is also feasible for the GAM and results in revenue $11,075.00. It is clear that in this

case the BAM performs better than the IDM solution. The solution for the CBLP is as follows:

For market 1, fare ABH is offered 100% of the time and nothing else. For market 2, fares ACH

and ABCH are both offered 100% of the time. Finally, for market 3, fare ABCL is offered 25%

of the time by itself, while fares ABCL and ACL are offered together 17% of the time. When the

parameters of the problem need to be estimated, the BAM obtained 99.8% of the revenues, and

the IDM obtained 99.0% of the revenues relative to

the GAM.

1 2 3 4 5 6 0
Products ACH ABCH ABH ACL ABCL ABL Null

Fares $1,200 $800 $600 $800 $500 $300
(AB,v1j,w1j) (5, 0) (8, 1) 2

(AChigh,v2j,w2j) (10, 2) (5, 1) 5
(AClow,v3j,w3j) (5, 1) (10, 0) 10

Table 10 Market Segment and Attraction Values (v,w)

1 2 3 4 5 6 0
Products ACH ABCH ABH ACL ABCL ABL xl0 Profit
(AB,x1j) 3.75 0.00 1.50 $2,250.00

(AChigh,x2j) 4.50 2.25 2.25 $7,200.00
(AClow,x3j) 0.50 2.75 10.77 $1,775.00

Total 4.50 2.25 3.75 0.50 2.75 0.00 14.52 $11,225.00
Table 11 SBLP Allocation Solution with GAM (w > 0)

5.3. Overlapping Market Segments

Another point worth noting is that the CBLP and SBLP formulations remain equivalent even if

the market segments have products that overlap. The caveat is that both formulations assume in

this case that each market segment will be managed independently. This works only if the capacity

provider has the ability to offer a product for a market segment without offering it to other market

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
34 Article submitted to Operations Research; manuscript no. XX

segments. On the other hand, if a fare cannot be offered in one market without offering to other

markets then both the CBLP and the SBLP formulations are upper bounds that can be tightened

by adding additional constraints. This approach was used by Bront et al. (2009) for the CBLP.

They use column generation assuming that each market segment follows a BAM and show that the

column generation step is NP-hard. The SBLP formulation allows for further manipulation as it is

easier to add cuts that can streamline some of the computation for overlapping market segments.

In particular, Talluri (2012) has reported encouraging results using the SBLP in the context of the

BAM with overlapping market segments when the number of different products for each market

segment is relatively small.

5.4. Heuristics for the Stochastic Problem

The compact form of the SBLP formulation and the ease with which we can recover the solution to

the CBLP from the SBLP allows for the practical developments of heuristics that call for frequent

re-solving of the SBLP. For example, a bid-price heuristic can be developed by taking into account

both the dual vector z corresponding to the capacity constraint as well as the dual variable βl

corresponding to the balance constraint for market segment l ∈L. Let plk −z′Alk −βlṽlk/vlk be

the reduced fare for k ∈Nl. Products with positive reduced fares in the SBLP have xlk at their

upper bounds of the scale constraint, which implies that they are offered 100% of the time in the

CBLP. Products with xlk/vlk ∈ (0,xl0/vl0) have reduced fares equal to zero. These corresponds to

fares that are available only part of the time in the solution to the CBLP. Finally, products with

negative reduced fares in the SBLP have xlk = 0 and are not offered at all by the CBLP. As in

any bid-price heuristic, the caveat is that it may accept too many requests for products with zero

reduced fares. The remedy for this, as is the case for independent demand model, is to re-solve the

SBLP frequently as this gives the model an opportunity to close down such fares.

An alternative heuristic is to use the solution to the SBLP, map it into the solution of the CBLP

and use the solution to the CBLP as a guide to admission control heuristics. To see how this

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 35

can be implemented, suppose that for a certain market the solution to the CBLP, after relabel-

ing the products if necessary, is to offers sets {1,2,3},{1,2,3,4} and {1,2,3,4,5} respectively for

α({1,2,3}) = 0.70,α({1,2,3,4}) = 0.20 and α({1,2,3,4,5}) = .10 fraction of the horizon [0,T ]. It is

typically advisable to offer the largest sets first, as they include the fares with zero reduced costs.

The advantage of this heuristic is that it does not over accept fares with zero reduced costs. The

heuristic can also benefit from re-solving. For example, the largest sets in each market segment with

αl(Slk) > 0,l∈L can be offered for minl∈Lαl(Slk)T units of time and at that point the SBLP can

be re-solved to obtain an updated solution to the SBLP from which a new solution to the CBLP

can be produced. The procedure can be repeated until the end of the horizon. Our experience is

that if the SBLP is solved only once, then this heuristic can perform better than the bid-price

heuristic. However, with frequent resolving, the bid-price heuristic tends to do better.

The compact form of the SBLP allows for solving the problem for random realizations of the

aggregate demand as suggested in Talluri and van Ryzin (1999). Our experience is that this refine-

ment does better than the bid-price heuristic if the SBLP is solved infrequently. However, when

the SBLP is re-solved frequently during the horizon the advantage tends to disappear and even

become negative.

While the above heuristics do not anticipate randomness, they do respond to randomness when

the SBLP is re-solved frequently. A number of authors have tried to incorporate randomness more

directly at either the leg level or the itinerary level. Liu and van Ryzin (2008) project demands into

legs and apply dynamic programming at the leg level to come up with improved heuristics. Variants

of the expected marginal seat revenue (EMSR) heuristic that attempt to deal with dependent

demands are discussed in Weatherford and Ratliff (2010) (e.g. DAVN-MR and choice-based EMSR).

The EMSR-b MR method, proposed in Fiig et al. (2010) , see also Walczack, Mardan, and Kallesen

(2010), uses a combination of fare adjustments and a decomposition of dependent demands into

independent components that allows for the use of techniques developed originally for the problem

with independent demands. While computationally appealing, these methods makes very strong

assumptions about the order of arrivals that are unlikely to hold in practice because the independent

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
36 Article submitted to Operations Research; manuscript no. XX

demands obtained by the transformation cannot be directly observed and therefore cannot be

adequately controlled by the output of the heuristic. The reason for this is that the independent

demands obtained by the transformation consist of customers willing to buy the marginal fare and

nothing else. In other words, customers willing to pay a higher fare need to wait until their fare is

available and are not allowed to take advantage of the lower fares. In essence, the method works only

if yieldable demand arrives before priceable demand for each fare class. In sharp contrast the choice-

based EMSR heuristic of Gallego, Ratliff and Li (2009), while a bit more onerous computationally,

does almost as well as the dynamic program at the leg level because it takes into account demand

dependency. We refer the reader to Gallego and Li (2012) for an explanation of the potential issues

arising from using fare transformation with the independent demand decomposition suggested by

Fiig et al. (2010) and Walczack, Mardan, and Kallesen (2010).

6. The Assortment Problem

As a corollary to Theorem 3, the infinite capacity formulations for the SBLP and CBLP are

equivalent. With infinite capacity the problem separates by market segment so it is enough to study

a single market segment. To facilitate this we will drop the subscript l both in the formulation

and in the analysis. The resulting problem can be interpreted as that of finding the assortment of

products S ⊂N and the corresponding sales xk,k∈N to maximize profits from a market segment

of size D that makes decisions based on a GAM choice model. Under this interpretation the pk

values are gross unit profits, net of unit costs.

R(T) = max

k∈N pkxk

subject to

balance :

ṽ0
v0
x0 +


k∈N

ṽk
vk
xk = D

scale :
xk
vk
− x0

v0
≤ 0 k∈N

non-negativity: xk ≥ 0 k∈N+

(8)

The problem is similar to a bin-packing problem with constraints linking the xk’s to x0. An

analysis of the problem reveals that the allocations should be in descending order of the ratio of

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 37

pk to ṽk/vk. This ratio can be expressed as pkvk/ṽk. For the BAM the allocation is in decreasing

order of price. Including lower priced products improves sales, but it cannibalizes demands and

dilutes revenue from higher priced products. As such, the allocation of demand to products needs

to balance the potential for more sales against demand cannibalization. The sorting of products

for the GAM depends not only on price but on the ratio vk/ṽk, so a low priced product with a

high competitive factor θk = wk/vk may have higher ranking than a higher priced product with

a low competitive factor. To explain how to obtain an efficient allocation of demand over the

different products we will assume that the products are sorted in decreasing order of pkvk/ṽk.

Let Xj = {1,.. .,j} and consider the allocation xk = vkx0/v0 for all k∈Xj and xk = 0 for k /∈Xj.

Solving the demand constraint for x0 we obtain

x0 =
v0

ṽ0 + Ṽ (Xj)
D, xk = πk(Xj)D k∈Xj,

and revenue

Rj =


k∈Sj

pkπk(Xj)D. (9)

Now consider the problem of finding the revenue Rj+1 for set Xj+1 = Xj ∪{j + 1}. It turns out

that Rj+1 can be written as a convex combination of Rj and pj+1Dvj+1/ṽj+1. This implies that

Rj+1 >Rj if and only if Rj

index

j = max{j ≥ 1 : pj ≥


k∈Xj

pkπk(Xj)(1−θj)}. (10)

The following proposition whose proof can be found in the Appendix establishes the optimality

(see 4. in the endnotes) of Xj.

Theorem 4. The assortment Xj with j given by equation (10) is optimal.

Notice that j in equation (10) is independent of D. This means that products 1,.. .,j are offered

for all demand levels D > 0 and products j + 1,.. .,n are closed regardless of the value of D.

Products j + 1,.. .,n are inefficient in the sense they do not increase sales enough to compensate

for the demand they cannibalize. Table 4 illustrates precisely this fact as product 5 priced at $105

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
38 Article submitted to Operations Research; manuscript no. XX

is inefficient because p5/(1−θ5)

at $100 fare with a competitive factor θ1 = 0.9 than the higher product 5 at $105 with competitive

factor θ5 = 0. The intuition behind this is that closing product 5 is more likely to result in recapture

than closing fare 1 (whose demand will most likely be lost to competition or to the no purchase

alternative).

k pk vk θk xk pkxk
0 1 0.0233
1 $100 15 0.9 0.3488 $34.88
2 $110 6 0.8 0.1395 $15.35
3 $115 9 0.7 0.2093 $24.07
4 $120 12 0.6 0.2791 $33.49
5 $105 9 0 0.0000 $0.00

Total $107.79
Table 12 Example Assortment Problem

If the problem consists of multiple market segments and each market segment is allowed to post

its own available product set Xlj then the problem reduces to sorting the products for market

segment l in decreasing order of plk/(1−θlk), where θlk = wlk/vlk, and then computing j(l) using

(10) for each l. The resulting sets Xlj(l),l ∈ L are optimal. This has implications to Revenue

Management applications where capacity is finite. When capacity is finite, the fares are reduced

by the marginal value of capacity, and fares that are sub-optimal when capacity is infinite remain

so when capacity is finite. This fact has been used remove inefficient fares from the SBLP by Sabre

resulting in a significant savings in computations.

If a single assortment set S is to be offered to all market segments then the problem is

NP-hard, see Rusmevichientong et al. (2010), even if there are only two market segments and

the choice model is the BAM. However, the problem for the BAM is somewhat easier to analyze

since the preference ordering for all the market segments is p1 > p2 > … > pn whereas the

preference ordering for the GAM may be different for different market segments. Assuming the

order p1 > p2 > … > pn, Rusmevichientong et al. (2010) provide a two market segment example

where it is optimal to offer X1 = {1} to market segment one, to offer X2 = {1,2} to market

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 39

segment two and to offer X = {1,3} to a composite of 50% of each of the two market segments.

Given the NP-hardness of the assortment problem with overlapping sets, the research activity

has concentrated on bounds, heuristics and performance warranties. We refer the reader to the

working papers by Rusmevichientong et al. (2009) and Rusmevichientong and Topaloglu (2009).

If prices are also decision variables, with choices reflecting price sensitivities, then the problem

involves finding the offer sets and prices for each market segment. We refer the reader to Schön

(2010) who allows for price discrimination, e.g., to offer different prices and offer sets to different

market segments. The problem of offering a single offer set and a single vector of prices for all the

market segments is again NP-hard.

7. Conclusions and Future Research

The general attraction model formulation is a new variation of the basic attraction model. We have

presented an E-M algorithm to estimate the parameters that is an extension and refinement of

Vulcano et al. (2012). Work is currently underway to develop techniques to estimate the parameters

in situations where the arrival rates λlt are driven by a set of covariates such as day-of-the-week,

seasonality indices, and other factors that may affect demand. One known problem in applying the

BAM to typical airline problems is that the IIA property can be violated in cases where there are

large differences in the departure times of alternate flight services; in such cases, the recapture rates

between these widely spread departures would be overestimated. This problem can be mitigated

by segmenting customers by their preferred departure time.

One limitation of our model is that it provides only an upper bound when there are overlapping

market segments, and only a single offer set can be posted at any given time. However, the SBLP

formulation is more amenable to adding cuts and to finding polynomial time approximation algo-

rithms to handle commonality constraints. We are currently working on these extensions for both

the assortment problem and the case of finite capacities. It is also possible to extend the results in

this paper to other objective functions given the equivalence of the solutions space for the CBLP

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
40 Article submitted to Operations Research; manuscript no. XX

and the SBLP (see 5. in the endnotes). The SBLP provides the basis for many heuristics for the

stochastic network revenue management problem. Since the size of the problem is essentially the

same as that of the independent demand model, applying the randomized linear program (RLP)

of Talluri and van Ryzin (1999) becomes viable for the GAM model. Other heuristics such as those

proposed by Gallego, Ratliff and Li (2009), Jasin and Kumar (2010), Kunnumkal and Topaloglu

(2008), and Liu and van Ryzin (2008) are aided by the ease of solving the SBLP and enriched by

the GAM.

We also showed that the SBLP and GAM can be successfully applied to the assortment problem

that arises when the capacities are set at infinity; the assortment problem is important in its own

right both in the context of perishable and non-perishable products. The new insight is that,

under the GAM, it is not necessarily true that the optimal assortment consists of the highest

priced products.

Endnotes

1. The authors are grateful to Anran Li for coding the EM procedure and conducting the experi-

ments.

2. The airfare value used in the RM optimization may be adjusted to account for other associated

revenues (e.g. baggage fees) or costs (e.g. meals or in-flight wireless access charges).

3. This result is a slight improvement on the one reported in Liu and van Ryzin (2008) for which

we calculate a profit of $11,546.20 based on an allocation of 16.35, 2.48, 10.3 and 0.87 units of

time, respectively, on the sets {1,2,3}, {1,2,3,4}, {1,2,3,5}, {1,2,3,4,5}.

4. H. Topaloglu at Cornell independently found the same sorting for the GAM. Personal commu-

nication.

5. H. Topalogulu has used this idea to model the multiclass overbooking problem under discrete

choice models in a presentation at the 2011 Informs Revenue Management Conference at Columbia

University.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 41

Appendix A: Proof of Theorem 1

If the choice model πj(S),j ∈S satisfies GAM then there exist constants vj,j ∈N+, ṽj ≥ 0,j ∈N

and ṽ0 = v0 +

j∈N(vj − ṽj) such that πR(S) = v(R)/(ṽ0 + Ṽ (S)) for all R ⊂ S. For this choice

model, the left hand side of Axiom 1’ is (ṽ0 +Ṽ (S))/(ṽ0 +Ṽ (T)). Let θj = 1− ṽj/vj. Then the right

hand side of Axiom 1’ is given by 1 −

j∈T−S(1 −θj)vj/(ṽ0 + Ṽ (T)) = (ṽ0 + Ṽ (S)/(ṽ0 + Ṽ (T)).

This shows that the GAM satisfies Axiom 1’. If πi({i}) = 0 then vi = 0 and consequently ṽi = 0.

From this it follows that πS−{i}(T −{i}) =
V (S)−vi

ṽ0+Ṽ (T)−ṽi
=

V (S)

ṽ0+Ṽ (T)
= πS(T), so Axiom 2 holds.

Conversely, suppose a choice model satisfies the GLA. Then by selecting R = {i}⊂S ⊂T = N

we see from Axiom 1’ that

πi(S) =
πi(N)

1−

j/∈S(1−θj)πj(N)
.

Since

π0(N) +

j∈N πj(N) = 1 the denominator can be written as π0(N) +

j∈N θjπj(N) +∑
j∈S(1−θj)πj(N), resulting in

πi(S) =
πi(N)
π0(N) +

j∈N θjπj(N) +

j∈S(1−θj)πj(N)
.

Letting vj = πj(N) for all j ∈ N+, ṽ0 = v0 +

j∈N θjvj and ṽj = (1 −θj)vj ∈ [0,1] for j ∈ N the

choice model can be written as

πi(S) =
vi

ṽ0 + Ṽ (S)
,

so it satisfies the GAM.

Appendix B: Proof of Theorem 2

Let N ′ be the universe of products. The set of vendors is M = {1,. ..,m}. Let vij be the

attraction value of product i offered by vendor j, and let Sj ⊂N ′ be the products offered by vendor

j ∈M. Let Oi = {j ∈M : i∈Sj} be the set of vendors offering product i, and N = {i∈N ′ : Oi 6= ∅}

be the collection of products that are offered. We consider a NL model where customers first select

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
42 Article submitted to Operations Research; manuscript no. XX

a product and then a vendor. Let γi be the dissimilarity parameter of nest i. Under the nested

model, a nest i with Oi 6= ∅, is selected with probability(∑
l∈Oi

v
1/γi
il
)γi
v0 +

k
(∑
l∈Ok
v
1/γk
kl

)γk . (11)
The conditional probability that a customer who selects nest i will buy the product from vendor

j ∈Oi is given by
v

1/γi
ij∑

l∈Oi
v

1/γi
il

. (12)

Consequently, the probability that a customer selects product i∈Sj from vendor j is given by(∑
l∈Oi

v
1/γi
il
)γi
v0 +

k
(∑
l∈Ok
v
1/γk
kl
)γk v1/γiij∑
l∈Oi
v
1/γi
il
.

We are interested in the limit of these probabilities as γk ↓ 0 for all k. For this purpose we

remark that well know fact: limγk↓0(

l∈Ok
v

1/γk
il )

γk = maxl∈Oi vil. The limit, say pij, of equation

(12) is equal to 1 if vendor j is the most attractive, i.e., if vij > vil for all l∈Oi, l 6= j; pij = 0, if

vij < maxl∈Oi vil; and pij = 1/m if vij = maxl∈Oi vil but vendor j is tied with other m−1 vendors.

Now,

πi(Sj) =
pij maxl∈Oi vil

v0 +

k
maxl∈Ok vkl

.

For all k∈N, define V −kj = maxl∈Ok,l 6=j vkl and Vkj = maxl∈Ok∪{j}vkl. Then, for i∈Sj,

πi(Sj) =
Vijpij

v0 +

k∈Sj
Vkj +


k∈S̄j

V −kj
,

where S̄j = {i∈N : i /∈Sj}. The selection probability can be written as

πi(Sj) =
Vijpij
v0 +

k∈N V

kj +


k∈Sj

(Vkj −V −kj )
,

or equivalently, as

πi(Sj) =
Vijpij
v0 +

k∈N V

kj +

k∈Sj

(Vkj −V −kj )pkj
,

since Vkj −V −kj = (Vkj −V

kj )pkj for all k. This is because pkj < 1 implies Vkj −V


kj = 0. This shows

that πi(Sj) corresponds to a GAM with ã0j = v0 +

k∈N V

kj , akj = pkjVkj, and ãkj = (Vkj−V


kj )pkj.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 43

Appendix C: Proof of Theorem 3

We will first establish that J̄(T,c) ≤R(T,c) by showing that any solution to the CBLP can

be converted into a feasible solution to the SBLP for the GAM. Assume a solution αl(Sl),l ∈

L for the CBLP is given and for k ∈ Nl let xlk

= Λl

Sl⊂Nl
αl(Sl)πlk(Sl). The objective func-

tion and the capacity constraint in terms of xlk are given respectively by

l∈L
∑nk

k=1
plkxlk and∑

l∈L
∑nk

k=1
Alkxlk ≤c. Let

x̃l0

= Λl

Sl⊂Nl

αl(Sl)πl0(Sl).

Notice that x̃l0 = xl0 +

k∈Nl
ylk where

xl0 = Λl

Sl⊂Nl

αl(Sl)
vl0

v0 + Wl(S̄l) + Vl(Sl)

and

ylk = Λl

Sl⊂Nl:k/∈Sl

αl(Sl)

wlk

v0 + Wl(S̄l) + Vl(Sl)
k∈Nl.

We now argue that
xlk
vlk

is bounded above by

xl0
vl0

. This follows because

xlk
vlk
= Λl

Sl⊂Nl:k∈Sl

αl(Sl)
1

v0 + Wl(S̄l) + Vl(Sl)

while

xl0
vl0
= Λl

Sl⊂Nl
αl(Sl)
1
v0 + Wl(S̄l) + Vl(Sl)

and the second equation sums over at least as many subsets.

Notice that if wlk > 0 then

xlk
vlk

+
ylk
wlk

=
xl0
vl0
,

or equivalently

ylk = wlk

[
xl0
vl0

xlk
vlk

]
≥ 0 (13)

since
xlk
vlk
≤ xl0

vl0
. On the other hand, by definition, ylk = 0 if wlk = 0. Thus formula (13) holds for all

k∈Nl. Substituting ylk into

xl0 +

k∈Nl

ylk +

k∈Nl

xlk = Λl

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
44 Article submitted to Operations Research; manuscript no. XX

and collecting terms we obtain(
vl0 +


k∈Nl
wlk
vl0

)
xl0 +


k∈Nl

(
vlk −wlk
vlk

)
xlk = Λl ∀ l∈L,

which is equivalent to the demand balance constraint since ṽl0 = vl0 +

k∈Nl
wlk and ṽlk = vlk−wlk

for all k∈Nl.

We will now show that R(T,c) ≤ J̄(T,c) by showing that any solution to the dual of the CBLP

can be converted to a feasible solution to the dual of the SBLP. Let z and β̃l,l∈L be an optimal

solution for the dual of the CBLP, where z is the dual vector corresponding to the capacity

constraint, and for each l∈L, β̃l is the dual variable corresponding to the constraint limiting the

proportion of time that sets Sl ⊂Nl are offered.

Let βl = β̃l/Λl. Then the feasibility constraint for the dual of the CBLP takes the form

βl +

j∈Sl

(z′Alj −plj)πlj(Sl) ≥ 0 Sl ⊂Nl, l∈L. (14)

For each market segment we define the sets:

Fl = {k∈Nl : plk −z′Alk −

βl
ṽlk
vlk

≥ 0}, l∈L

and the quantities:

γlk = (plk −z′Alk)vlk −βlṽlk ≥ 0 k∈Fl.

For k /∈Fl we set γlk = 0.

We will now show that z,βl,l∈L and γlk k ∈Nl,l∈L is a feasible solution to the dual of the

SBLP:

R(T,c) = min

l∈LβlΛl + z
′c

subject to βl
ṽlk
vlk

+ z′Alk +
γlk
vlk

≥ plk k∈Nl, l∈L

βl
ṽl0
vl0

j∈Nl
γlj
vl0

≥ 0 l∈L

z ≥ 0, γlk ≥ 0 k∈Nl, l∈L

(15)

By construction

βl
ṽlk
vlk

+ z′Alk +
γlk
vlk
≥plk

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 45

for all k∈Nl,l∈L.

Our next task is to show that

βl
ṽl0
vl0


j∈Nl

γlj
vl0
≥ 0

Since vl0 > 0 and γlj = 0 for j /∈Fl it is enough to show that

βlṽl0 −

j∈Fl

γlj ≥ 0

Substituting the definition of γlj and rearranging terms, the inequality is equivalent to

βl[ṽl0 + Ṽl(Fl)] +

j∈Fl

(z′Alj −plj)vlj ≥ 0.

Dividing by ṽl0 + Ṽl(Fl) the inequality is equivalent to

βl +

j∈Fl

(z′Alj −plj)πlj(Fl) ≥ 0.

However, this inequality holds because of the feasibility of the dual of the CBLP (14) applied to

Fl. Since any optimal solution to the dual of the CBLP has a corresponding solution to the dual

of the SBLP with the same objective function we have R(T,c) ≤ J̄(T,c)

completing the proof.

Appendix D: Proof of Proposition 2

To show feasibility it is enough to show that the capacity constraint is satisfied and to do this

it is enough to show that the vectors πl(Sl) are decreasing in wk. To facilitate the notation we will

drop the market segment index l. Then

πj(S) =
vi

v0 + W(S̄) + V (S)

which is decreasing in wk. As a result, if we compare the demands under model wk,k ∈ N and

model w′k ∈ (wk,vk],k∈N, we see that the demands under the latter model are bounded above by

the demands under the former model. Consequently, strictly less capacity is consumed under the

latter model. Moreover, revenues suffer from lower demands so the original solution is suboptimal.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
46 Article submitted to Operations Research; manuscript no. XX

Appendix E: Proof of Proposition 3

Suppose that xlk,k ∈Nl,l ∈L is an optimal solution to the SBLP under the GAM for fixed

vk,k∈N+ and wk ∈ [0,vk],k∈N and consider a GAM model with the same vks and w′k ∈ [0,wk],k∈

N. To see that the xlk remains feasible it is enough to verify the demand balance constraint for

each market segment. To facilitate the exposition we will drop the market segment subscript l. The

demand balance constraint can be written as

x0 +
n∑
k=1

xk +
n∑
k=1

wk(
x0
v0

xk
vk

) = D.

Now consider a GAM with w′k ∈ [0,wk]. Then the demand scaling constraints guarantee that

x0 +
n∑
k=1
xk +
n∑
k=1

w′k(
x0
v0

xk
vk

) ≤D.

This shows that xk,k ∈ N together with some x′0 ≥ x0 form a feasible solution to the demand

balance constraint without violating the demand scaling constraints.

Appendix F: Proof of Theorem 4:

We first verify that x0 and xk,k ∈Xj, with j given by equation (10) is feasible for the SBLP

assortment problem. Suppose that xk = vkx0/v0 for all k∈Xj, Then the demand balance equation

is
ṽ0
v0
x0 +

k∈Xj

ṽk
v0
x0 = D.

Solving for x0 we obtain x0 = v0D/(ṽ0 + Ṽ (Xj)). But now
xk
vk

= x0
v0

= 1
ṽ0+Ṽ (Xj )

D for all k ∈ Xj

together with the non-negativity of x0 and xk,k ∈Xj shows that the solution is indeed feasible.

This feasible solution has objective value Rj given by equation (9).

To prove that Rj is the maximum revenue for the assortment problem we will show that there

is a feasible solution to the dual with the same objective value. Consider the dual with objective

function Dβ and constraint set ṽ0β −

k
γk ≥ 0 and ṽkβ + γk ≥ pkvk,k ∈ N. We claim that

β = Rj/D together with γk = pkvk − ṽkβ for k∈Xj and γk = 0 for k /∈Xj is a feasible solution to

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 47

the dual. The non-negative constraint γk ≥ 0 is satisfied by construction for k > j. For k∈Xj the

constraint is equivalent to pkvk ≥ ṽlβ, which in turn is equivalent to pkDvk/ṽk ≥Rj for all k∈Xj.

Since the items are sorted in decreasing order of pkvk/ṽk it is enough to show that pjDvj/ṽj ≥Rj.

However, we know that Rj is a convex combination of Rj−1 and pjDvj/ṽk. Moreover, since

Rj ≥Rj−1 it follows that Rj ≤pjDvj/ṽj. It remains to show that ṽ0β−

k
γk ≥ 0. We will do this

by showing that β = Rj/D is a solution to equation ṽ0β =

k∈Xj
γk where γk = pkvk − ṽkβ for

k∈Xj. This is equivalent to [ṽ0 +Ṽ (Xk)]β =

k∈Xj
pkvk. We see that β =


k∈Xj

pkπk(Xj) = Rj/D

completing the proof.

References

Andersson, S. 1998. Passenger choice analysis for seat capacity control: a pilot project in Scandinavian

Airlines. International Transactions in Operational Research 5, 471-486.

Belobaba, P., L. Weatherford 1996. Comparing decision rules that incorporate customer diversion in perish-

able asset revenue management situations. Decision Sciences Journal 27(2), 343-363.

Ben-Akiva, M., S. Lerman 1994. Discrete Choice Analysis: Theory and Application to Travel Demand. MIT

Press Series in Transportation Studies. The MIT Press. Cambridge, Massachusetts. pg. 52.

Bront, J., I. Mendez-Diaz, G. Vulcano 2009. A Column Generation Algorithm for Choice-Based Network

Revenue Management. Operations Research, 57, 769-784.

Brumelle, S., J. McGill, T. Oum, K. Sawaki, M. Tretheway 1990. Allocation of airline seats between stochas-

tically dependent demands. Transportation Science, 24, 183-192.

Cooper, W., T. Homem de Mello, A. Kleywegt 2006. Models of the spiral-down effect in revenue management

(Operations Research, 54, 968-987.

Dagsvik, J. K. 1983. Discrete Dynamic Choice: An Extension of the Choice Models of Thurstone and Luce.

Journal of Mathematical Psychology, 27, 1-43.

Debreu, G. 1960. Review of R.D. Luce, Individual choice behavior: A theoretical analysis. American Economic

Review, 50, 186-188.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
48 Article submitted to Operations Research; manuscript no. XX

Domencich, T. A., and D. McFadden 1975. Urban Travel Demand : A behavioral analysis, North Holland

Publishing Co., Amsterdam.

Fiig, T., K. Isler, C. Hopperstad, P. Belobaba 2010. Optimization of mixed fare structures: Theory and

application. Journal of Revenue and Pricing Management 9, 152-170.

Gallego, G. and L. Li 2012. The pitfalls of using independent demands with fare adjustments. Presentation

at AGIFORS Revenue Management Study Group Meeting. Barcelona, Spain.

Gallego, G., L. Li, R. Ratliff 2009. Choice-based EMSR methods for single-leg revenue management with

demand dependencies. Journal of Revenue and Pricing Management 8(2/3), 207-240.

Gallego, G., R. Phillips 2004. Revenue Management of Flexible Products. MSOM, 6, 321-337.

Gallego, G., C. Stefanescu. 2009. Upgrades, Upsells and Pricing in Revenue Management. Working paper,

Columbia University.

Gallego, G., G. Iyengar, R. Phillips, A. Dubey 2004. Managing Flexible Products on a Network Revenue

Management. Working Paper. Technical Report TR-2004-01, Dept. of Industrial Engineering and Oper-

ations Research. Columbia University.

Green, P. J. 1984. Journal of the Royal Statistical Society. Series B, 46, 149-192.

Greene, W.H. 2000. Econometric Analysis. Fourth edition. London: Prentice Hall.

Hartmans, G. 2006. Sell-up Simulation. Presentation at AGIFORS Revenue Management Study Group

Meeting. Cancun, Mexico.

Ja, S., B. Rao, S. Chandler 2001. Passenger recapture estimation in airline RM. Presentation at 41st AGI-

FORS Symposium. Sydney, Australia.

Jasin, S., S. Kumar 2010. A Re-solving Heuristic with Bounded Revenue Loss for Network Revenue Man-

agement with Customer Choice. Working paper, Stanford University.

Kunnumkal, S., H. Topaloglu 2008. A Refined Deterministic Linear Program for the Network Revenue

Management Problem with Customer Choice Behavior. Forthcoming in Naval Research Logistics.

Kunnumkal, S., H. Topaloglu 2010. Computing Time-Dependent Bid Prices in Network Revenue Management

Problems. Transportation Science, 44(1), 38-62.

Luce, R. D. 1959. Individual Choice Behavior: A Theoretical Analysis. New York: Wiley

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
Article submitted to Operations Research; manuscript no. XX 49

Liu, Q., G. van Ryzin 2008. On the Choice-Based Linear Programming Model for Network Revenue Man-

agement. MSOM 10, 288-310.

Meterelliyoz, M., M. Ferguson, L. Garrow 2009. Estimation of choice-based revenue management models

for multi-product industries. Working paper (corresponding author is laurie.garrow@ce.gatech.edu).

August 19, 2009.

McFadden, D. 1974. Conditional logit analysis of qualitative choice behavior, in P. Zarembka, ed., ‘Frontiers

in Economics’, Academic Press, pp. 105-142.

McFadden, D. 1978. Modelling the choice of residential location, in A. Karlquist, ed., Spatial Interaction

Theory and Planning Models, North Holland Publishing Co., Amsterdam, chapter 25, pp. 7596.

Newman, J., L. Garrow, M. Ferguson, T. Jacobs. 2010. Estimation of Choice-based Models Using Sales Data

From a Single Firm. Working paper, Georgia Tech.

Ratliff, R., B. Rao, C. Narayan, K. Yellepeddi 2008. A multi-flight recapture heuristic for estimating uncon-

strained demand from airline bookings. Journal of Revenue and Pricing Management 7(2), 153-171.

Rubin, D. B. 1983. Iteratively Reweighted Least Squares. In Encyclopedia of Statistical Sciences, vol. 4.

Kotz., S., N. L. Johnson, C. B. Read (eds). John Wiley & Sons, New York, NY, 272-275.

Rusmevichientong, P., Z-J. Shen, D. Shmoys 2009. Dynamic assortment optimization with a multinomial

logit choice model and capacity constraint. Operations Research 58(6), 1666-1680.

Rusmevichientong, P., D. Shmoys, H. Topaloglu 2010. Assortment Optimization with Mixtures of Logits.

Working paper SORIE, Cornell University. February 10, 2010.

Rusmevichientong, P., H. Topaloglu 2009. Robust assortment optimization under the multinomial logit

model. Working Paper, Cornell University, School of Operations Research and Information Engineering.

July 11, 2010.

Schön, C. 2010. On the Optimal Product Line Selection Problem with Price Discrimination. Management

Science, 56, 896-902.

Talluri, K. 2010. A Randomized Concave Programming Method for Choice Network Revenue Management.

Working paper 1215, UPF, Barcelona, Spain.

Talluri, K. 2012. Network revenue management: Models and algorithms. Presentation at Georgia Tech con-

ference organized by Laurie Garrow.

Gallego, Ratliff, and Shebalov: A General Choice Model and Network RM Optimization
50 Article submitted to Operations Research; manuscript no. XX

Talluri, K. , G. van Ryzin 1999. A randomized linear programming method for computing network bid prices.

Transportation Science, 33(2), 207-216.

Talluri, K., G. van Ryzin 2004. Revenue Management Under a General Discrete Choice Model of Consumer

Behavior. Management Science, 50, 15-33.

Topaloglu, H., I. Birbil, F. Frenk, N. Noyan 2011. Open Loop Policies for Overbooking Over a Single Flight

Leg. Working paper, Cornell University. Presentation at INFORMS Revenue Management and Pricing

section conference at Columbia University on June 24, 2011. New York, New York.

Train, K. 2002. Discrete Choice Methods with Simulation. Cambridge University Press.

Tversky, A. 1972. Elimination by Aspects: A Theory of Choice. Psychological Review, 79, 281-299.

van Ryzin, G., Talluri, K, and S. Mahajan. 1999. Why We Need Discrete Choice Theory in Revenue Man-

agement. Presentation at 39th AGIFORS Symposium, New Orleans.

Vulcano, G., G. van Ryzin, R. Ratliff 2012. Estimating Primary Demand for Substitutable Products from

Sales Transaction Data. Operations Research, 60, 313 -334

Walczack,D., S. Mardan, and R. Kallesen 2010. Customer choice, fare adjustments and the marginal expected

revenue data transformation: A note on using old yield management techniques in the brave new world

of pricing. Journal of Revenue and Pricing Management, 9, 94-109.

Weatherford, L., R. Ratliff 2010. Review of revenue management methods with dependent demands. Journal

of Revenue and Pricing Management, 9(2), 326-340.

Williams, H. C. W. L. 1977. On the formation of travel demand models and economic evaluation measures

of user benefit. Environment and Planning, 9(3), 285344.

Wu, C., F. Jeff. 1983. On the Convergence Properties of the EM Algorithm. Annals of Statistics, 11 95103.

Yellott J. I. Jr. 1977. The Relationship between Luce‘s choice axiom, Thurstone‘s theory of comparative

judgment, and the double exponential distribution. Journal of Mathematical Psychology. 15, 109-146.

Zhang, D., D. Adelman 2009. An Approximate Dynamic Programming Approach to Network Revenue Man-

agement with Customer Choice. Transportation Science, 43(3), 381-394.

Order your essay today and save 25% with the discount code: STUDYSAVE

Order a unique copy of this paper

600 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
Top Academic Writers Ready to Help
with Your Research Proposal

Order your essay today and save 25% with the discount code GREEN