#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 | heuristicOptimisationByEmsrB (const ResourceCapacity_T, BucketHolder &, Bucket &) |
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 22 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::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 155 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 Fri Sep 11 06:32:06 2009 for RMOL by Doxygen 1.5.8