Example O-1 - Allocate Aircraft Seats to Maximize Revenue

Problem Statement:

A given aircraft can have a maximum of 100 coach seats. Two coach seats are removed for each first class seat that is included. For example, if 4 first class seats are included, then the maximum number of coach seats is 92.

Assume the following:

  1. Demand for coach tickets is based on a Weibull distribution with beta = 2 and eta = 45.
  2. Demand for first class tickets is based on a Weibull distribution with beta = 1.2 and eta = 15.
  3. Revenue for each coach ticket is $500.
  4. Revenue for each first class ticket is $1,500.
  5. Operating costs are fixed.

Determine the optimum allocation of first class seats assuming that only increments of four seats are allowed.

RENO Solution:

Define two Random Variables to describe the demand for coach tickets and first class tickets.

Random Variable to describe the demand for coach seats

Random Variable to describe the demand for first class seats

Define a Constant to specify the number of first class seats. This can be varied during the simulation to estimate the optimum number.

A Constant to specify the number of first class seats

Define an Equation Variable to calculate the number of coach seats, which depends on the number of first class seats.

An Equation Variable to calculate the number of coach seats

Construct the flowchart as follows:

Flowchart to model the problem

Step 1: Use a Block to obtain the demand for coach seats from the Random Variable.

Use a block to obtain the demand from the Random Variable

Step 2: Use a Conditional Block to check whether the number of coach seats (calculated by the Equation Variable) meets or exceeds the demand. If true, then you will sell a quantity of coach seats that is equal to the demand and the demand quantity is passed to the TRUE path. If false, then you will sell a quantity of coach seats that is equal to the number of available coach seats and the available quantity is passed to the FALSE path.

Conditional Block to check whether the number of seats meets or exceeds demand

Steps 3a and 3b: Use two Blocks to calculate the revenue from the TRUE and FALSE paths, as shown next for the situation when supply exceeds demand. In this equation, the reserved keyword IN represents the quantity passed from the Conditional Block, which is then multiplied by the price of a coach ticket, $500.

Block to calculate the revenue

A similar construction is required to describe the revenue for first class seats.

Then, a Summing Gate collects the revenue values from all four incoming paths, performs a summation and passes the total to a Result Storage construct that stores the average revenue.

Summing Gate to add the values from the incoming paths

Result Storage construct to store the average revenue

On the General page of the Simulation Console, specify 2,000 simulations with a seed of 1 for repeatability, as shown next.

General Page of the Simulation Console

On the Sensitivity Analysis page, specify to vary the number of first class seats from 0 to 100, with an increment of 20. RENO will perform multiple runs of 2,000 simulations each, with 0 specified for the FCSeats Constant in the first run, 20 in the second run, 40 in the third run, and so on.

Sensitivity Analysis Page of the Simulation Console

On the Multiple Analyses page, select to perform multiple analyses to determine the first class seat quantity that will maximize revenue, as shown next.

Multiple Analyses Page of the Simulation Console

When the simulation completes, the plot identifies 24 as the optimum quantity of first class seats, as shown next.

Plot with the optimum result marked

A RENO project with the solution for this example (called "Airline Seat Allocation.rnp") is shipped with the software and stored in the Examples\Optimization folder in the application directory (e.g. C:\Program Files\ReliaSoft\RENO\Examples\Optimization\Airline Seat Allocation.rnp).