#include <rmol/bom/Emsr.hpp>
Static Public Member Functions | |
static void | heuristicOptimisationByEmsr (const ResourceCapacity_T, BucketHolder &, BidPriceVector_T &) |
static void | heuristicOptimisationByEmsrA (const ResourceCapacity_T, BucketHolder &) |
static void | heuristicOptimisationByEmsrAwithSellup (const ResourceCapacity_T, BucketHolder &, SellupProbabilityVector_T &) |
static void | heuristicOptimisationByEmsrB (const ResourceCapacity_T, BucketHolder &, Bucket &) |
Class Implementing the EMSR algorithm for Bid-Price Vector computing.
Definition at line 18 of file Emsr.hpp.
void RMOL::Emsr::heuristicOptimisationByEmsr | ( | const ResourceCapacity_T | iCabinCapacity, | |
BucketHolder & | ioBucketHolder, | |||
BidPriceVector_T & | ioBidPriceVector | |||
) | [static] |
Compute the Bid-Price Vector using the EMSR algorithm. Then compute the protection levels and booking limits by using the BPV.
For each class/bucket j with yield pj and demand Dj, compute pj*Pr(Dj>=x) with x the capacity index. This value is called the EMSR (Expected Marginal Seat Revenue) of the class/bucket j with the remaining capacity of x. Thus, we have for each class/bucket a list of EMSR values. We merge all these lists and sort the values from high to low in order to obtain the BPV.
Definition at line 23 of file Emsr.cpp.
References RMOL::BucketHolder::begin(), RMOL::EmsrUtils::computeEmsrValue(), RMOL::Bucket::getAverageYield(), RMOL::BucketHolder::getCurrentBucket(), RMOL::BucketHolder::getNextBucket(), RMOL::BucketHolder::getSize(), RMOL::BucketHolder::iterate(), RMOL::Bucket::setCumulatedBookingLimit(), and RMOL::Bucket::setCumulatedProtection().
void RMOL::Emsr::heuristicOptimisationByEmsrA | ( | const ResourceCapacity_T | iCabinCapacity, | |
BucketHolder & | ioBucketHolder | |||
) | [static] |
Calculate the optimal protections for the set of buckets/classes given in input, and update those buckets accordingly.
The cabin capacity is used to a double to allow for some overbooking.
Definition at line 84 of file Emsr.cpp.
References RMOL::BucketHolder::begin(), RMOL::EmsrUtils::computeProtectionLevel(), RMOL::BucketHolder::getCurrentBucket(), RMOL::BucketHolder::getNextBucket(), RMOL::BucketHolder::getSize(), RMOL::BucketHolder::iterate(), RMOL::Bucket::setCumulatedBookingLimit(), and RMOL::Bucket::setCumulatedProtection().
void RMOL::Emsr::heuristicOptimisationByEmsrAwithSellup | ( | const ResourceCapacity_T | iCabinCapacity, | |
BucketHolder & | ioBucketHolder, | |||
SellupProbabilityVector_T & | iSellupProbabilityVector | |||
) | [static] |
Compute the optimal booking limits & protection limits for a set of buckets/classes
Definition at line 126 of file Emsr.cpp.
References RMOL::BucketHolder::begin(), RMOL::EmsrUtils::computeProtectionLevelwithSellup(), RMOL::BucketHolder::getCurrentBucket(), RMOL::BucketHolder::getNextBucket(), RMOL::BucketHolder::getSize(), RMOL::BucketHolder::iterate(), RMOL::Bucket::setCumulatedBookingLimit(), and RMOL::Bucket::setCumulatedProtection().
Referenced by RMOL::Optimiser::heuristicOptimisationByEmsrAwithSellup().
void RMOL::Emsr::heuristicOptimisationByEmsrB | ( | const ResourceCapacity_T | iCabinCapacity, | |
BucketHolder & | ioBucketHolder, | |||
Bucket & | ioAggregatedBucket | |||
) | [static] |
Complute the protection levels and booking limites by using the EMSR-b algorithm.
The cabin capacity is used to a double to allow for some overbooking.
Definition at line 185 of file Emsr.cpp.
References RMOL::BucketHolder::begin(), RMOL::EmsrUtils::computeAggregatedBucket(), RMOL::EmsrUtils::computeProtectionLevel(), RMOL::BucketHolder::getCurrentBucket(), RMOL::BucketHolder::getNextBucket(), RMOL::BucketHolder::getSize(), RMOL::BucketHolder::iterate(), RMOL::Bucket::setCumulatedBookingLimit(), and RMOL::Bucket::setCumulatedProtection().
Generated on Wed Feb 9 2011 17:09:30 for RMOL by Doxygen 1.7.1