ProBP Optimization
Optimization is the most fundamental part of revenue management systems, is it is the process used to tailor the set of products being offered to maximize revenue. It typically occurs after untruncation and forecasting.
PassengerSim offers several different optimization algorithms, including probabilistic bid price (ProBP) optimization.
Bases: RmAction
ProBP (ProbabilisticBidPrice) is a path-based optimization algorithm.
Source code in passengersim/rm/probp.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
bid_price_vector
instance-attribute
If True, we create a bid price vector in ProBP, rather than just keep a constant bid-price untiol daily re-optimization
cabins
instance-attribute
Optional list of cabin codes to optimize.
If not provided, this tool will optimize on the leg as a whole.
capacity_sharing
instance-attribute
Capacity sharing flag between cabins.
When set to True, will use method 3 from Peter Belobaba's presentation. Higher cabin(s) will get max of combined cabins or itself alone. Lower cabin(s) will get min of combined cabins or itself alone.
capacity_sharing_start_dcp_index
instance-attribute
maxiter
instance-attribute
The maximum number of iterations to run ProBP.
If the algorithm has not converged by the time this number of iterations has been reached, it will stop and return the current results.
use_adjusted_fares
instance-attribute
If True, ProBP will use the adjusted fares for the optimization.
The default is False, which means that ProBP will use the original fares. This should be set to True if fare adjustment is being used for this carrier.
use_sub_bp
instance-attribute
Whether to use SubBP (True) or ProBP (False).
__init__
__init__(
*,
carrier: str = "",
cabins: str | list[str] | None = None,
minimum_sample: int = 10,
cfg: Config | None = None,
capacity_sharing: bool | None = False,
capacity_sharing_start_dcp_index: int | None = 0,
use_adjusted_fares: bool = False,
bid_price_vector: bool | None = False,
maxiter: int = 10,
use_sub_bp: bool = False,
)
Source code in passengersim/rm/probp.py
rm_engine
rm_engine(sim: Simulation) -> ProBP
Source code in passengersim/rm/probp.py
run
run(sim: Simulation, days_prior: int)