Difference between revisions of "Optimizer key concepts: Airline Example"

 
(6 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
* [[NLP Characteristics]]
 
* [[NLP Characteristics]]
 
* [[Airline NLP Module 1: Base Case]]
 
* [[Airline NLP Module 1: Base Case]]
* Using parametric analysis: Airline NLP Module 2
+
* [[Using Parametric Analysis: Airline NLP Module 2]]
* Optimizing with Uncertainty
+
* [[Optimizing with Uncertainty]]
* Improving Computational Efficiency of NLPs
+
** [[Optimizing_with_Uncertainty#Module_3:_Stochastic_Optimization_.28FAST.29|Module 3: Stochastic Optimization (FAST)]]
* Module 5: Time as an Extrinsic index
+
** [[Optimizing_with_Uncertainty#Module_4:_Multiple_Optimizations_of_Separate_Samples_.28MOSS.29|Module 4: Multiple Optimizations of Separate Samples (MOSS)]]
* Identifying the Source of an Extrinsic Index
+
* [[Improving Computational Efficiency of NLPs]]
* Module 6: Time as an Intrinsic Index
+
* [[Module 5: Time as an Extrinsic index]]
* Module 7: Embedding an NLP in a Dynamic Loop
+
* [[Identifying the Source of an Extrinsic Index]]
* Controlling Engine Selection and Settings
+
* [[Module 6: Time as an Intrinsic Index]]
 
+
* [[Module 7: Embedding an NLP in a Dynamic Loop]]
== Airline NLP Module 1: Base Case ==
+
* [[Controlling Engine Selection and Setting]]
You can navigate to the Airline NLP example starting in the directory in which Analytica is installed.
+
<br />
 
+
<footer> Optimizing with Arrays / {{PAGENAME}} / Optimizer Attributes</footer>
<code>Example Models/Optimizer Examples/Airline NLP.ana</code>
 
 
 
The goal is to determine optimum ticket fare and the number of planes to operate such that the airline can achieve the highest profit possible.
 
 
 
Decisions are '''Fare''' and the '''Number of Planes'''. Since this is an NLP, the values we use to define these decisions will be used as initial guesses in the optimization. '''Fare''' will be a continuous variable with lower and upper bounds. '''Number of Planes''' will be an Integer value with lower and upper bounds.
 
<nowiki>
 
    Decision Fare := 200
 
    Domain of Fare := Continuous(100,400)
 
    Decision Number_of_Planes := 3
 
    Domain of Number_of_Planes := Integer(1,5)
 
</nowiki>
 
First, we assume a base level of demand in passenger-trips per year assuming a base fare of $200 per trip.
 
 
 
<nowiki>    Variable Base_Demand := 400k</nowiki>
 
 
 
Actual demand will vary by price according to market demand elasticity.
 
 
 
<nowiki>    Variable Elasticity := 3
 
    Variable Demand := Base_Demand*(Fare/200)^(-Elacticity)</nowiki>
 
 
 
Each plane holds 200 passengers. We assume each plane makes two trips per day, 360 days per year.
 
 
 
<nowiki>    Variable Seats_per_plane := 200
 
    Variable Annual_Capacity := Number_of_Planes*Seats_per_Plane*360*2</nowiki>
 
 
 
Annual seats sold is limited either by capacity or by passenger demand.
 
 
 
<nowiki>    Variable Seats_Sold := Min([Demand, Annual_Capacity])</nowiki>
 
 
 
We assume annual fixed cost per plane and variable cost per passenger.
 
 
 
<nowiki>    Variable Fixed_cost := 15M
 
    Variable Var_cost := 30</nowiki>
 
 
 
The objective, '''Profit''', is the difference between revenue and cost.
 
 
 
<nowiki>    Objective Profit := Seats_sold * (Fare - Var_cost)
 
          - Number_of_Planes * Fixed_cost</nowiki>
 
 
 
Finally, we create the optimization node and solution quantities.
 
 
 
<nowiki>    Variable Opt := DefineOptimization(
 
          Decisions: Number_of_Planes, Fare
 
          Maximize: Profit)
 
    Decision Optimal_Fare := OptSolution(Opt, Fare)
 
    Decision Optimal_Planes := OptSolution(Opt, Number_of_Planes)
 
    Objective Optimal_Profit := OptObjective(Opt)
 
    Variable Opt_Status := OptStatusText(Opt)</nowiki>
 
 
 
<footer> Optimizing with Arrays / {{PAGENAME}} / Optimizer Attribute Reference</footer>
 

Latest revision as of 17:40, 7 June 2016

Comments


You are not allowed to post comments.