RMOL Logo Get Revenue Management Optimisation Library at SourceForge.net. Fast, secure and Free Open Source software downloads

RMOL::Emsr Class Reference

#include <rmol/bom/Emsr.hpp>

List of all members.

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 &)

Detailed Description

Class Implementing the EMSR algorithm for Bid-Price Vector computing.

Definition at line 18 of file Emsr.hpp.


Member Function Documentation

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]
void RMOL::Emsr::heuristicOptimisationByEmsrB ( const ResourceCapacity_T  iCabinCapacity,
BucketHolder ioBucketHolder,
Bucket ioAggregatedBucket 
) [static]

The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Fri Jul 30 22:23:17 2010 for RMOL by Doxygen 1.6.1