#include <rmol/bom/MCOptimiser.hpp>
Static Public Member Functions | |
static void | optimalOptimisationByMCIntegration (const int K, const ResourceCapacity_T, BucketHolder &, PartialSumHolderHolder &, BidPriceVector_T &) |
static void | optimalOptimisationByMCIntegration (const int K, const ResourceCapacity_T, BucketHolder &, PartialSumHolderHolder &, BidPriceVector_T &, StudyStatManager &) |
static void | legOptimisationByMC (const ResourceCapacity_T, BucketHolder &, BidPriceVector_T &) |
Utility methods for the Monte-Carlo algorithms.
Definition at line 19 of file MCOptimiser.hpp.
void RMOL::MCOptimiser::optimalOptimisationByMCIntegration | ( | const int | K, | |
const ResourceCapacity_T | iCabinCapacity, | |||
BucketHolder & | ioBucketHolder, | |||
PartialSumHolderHolder & | ioPSHolderHolder, | |||
BidPriceVector_T & | ioBidPriceVector | |||
) | [static] |
Calculate the optimal protections for the set of buckets/classes given in input, and update those buckets accordingly.
The Monte Carlo Integration algorithm (see The Theory and Practice of Revenue Management, by Kalyan T. Talluri and Garret J. van Ryzin, Kluwer Academic Publishers, for the details) is used. Hence, K is the number of random draws to perform. 100 is a minimum for K, as statistics must be drawn from those random generations.
The cabin capacity is used to a double to allow for some overbooking.
Definition at line 28 of file MCOptimiser.cpp.
References RMOL::PartialSumHolder::addPartialSum(), RMOL::BucketHolder::begin(), RMOL::PartialSumHolderHolder::begin(), RMOL::Gaussian::generateVariate(), RMOL::Bucket::getAverageYield(), RMOL::BucketHolder::getCurrentBucket(), RMOL::PartialSumHolderHolder::getCurrentPartialSumHolder(), RMOL::Bucket::getDistributionParameters(), RMOL::PartialSumHolder::getLowerBound(), RMOL::BucketHolder::getNextBucket(), RMOL::PartialSumHolder::getPartialSum(), RMOL::BucketHolder::getPreviousCumulatedProtection(), RMOL::PartialSumHolderHolder::getPreviousPartialSumHolder(), RMOL::BucketHolder::getSize(), RMOL::PartialSumHolder::initSize(), RMOL::BucketHolder::iterate(), RMOL::PartialSumHolderHolder::iterate(), RMOL::BucketHolder::recalculate(), RMOL::Bucket::setCumulatedProtection(), and RMOL::PartialSumHolder::sort().
void RMOL::MCOptimiser::optimalOptimisationByMCIntegration | ( | const int | K, | |
const ResourceCapacity_T | iCabinCapacity, | |||
BucketHolder & | ioBucketHolder, | |||
PartialSumHolderHolder & | ioPSHolderHolder, | |||
BidPriceVector_T & | ioBidPriceVector, | |||
StudyStatManager & | ioStudyStatManager | |||
) | [static] |
Monte Carlo algorithm with StudyStatManager.
Definition at line 252 of file MCOptimiser.cpp.
References RMOL::StudyStatManager::addMeasure(), RMOL::PartialSumHolder::addPartialSum(), RMOL::BucketHolder::begin(), RMOL::PartialSumHolderHolder::begin(), RMOL::BasChronometer::elapsed(), RMOL::Gaussian::generateVariate(), RMOL::Bucket::getAverageYield(), RMOL::BucketHolder::getCurrentBucket(), RMOL::PartialSumHolderHolder::getCurrentPartialSumHolder(), RMOL::Bucket::getDistributionParameters(), RMOL::PartialSumHolder::getLowerBound(), RMOL::BucketHolder::getNextBucket(), RMOL::PartialSumHolder::getPartialSum(), RMOL::BucketHolder::getPreviousCumulatedProtection(), RMOL::PartialSumHolderHolder::getPreviousPartialSumHolder(), RMOL::BucketHolder::getSize(), RMOL::PartialSumHolder::initSize(), RMOL::BucketHolder::iterate(), RMOL::PartialSumHolderHolder::iterate(), RMOL::BucketHolder::recalculate(), RMOL::Bucket::setCumulatedProtection(), RMOL::PartialSumHolder::sort(), and RMOL::BasChronometer::start().
void RMOL::MCOptimiser::legOptimisationByMC | ( | const ResourceCapacity_T | iCabinCapacity, | |
BucketHolder & | ioBucketHolder, | |||
BidPriceVector_T & | ioBidPriceVector | |||
) | [static] |
Leg optimisation using Monte-Carlo Integration as a step in network optimisation.
Definition at line 512 of file MCOptimiser.cpp.
References RMOL::BucketHolder::begin(), RMOL::Bucket::getAverageYield(), RMOL::BucketHolder::getCurrentBucket(), RMOL::Bucket::getGeneratedDemandVector(), RMOL::BucketHolder::getNextBucket(), RMOL::BucketHolder::getSize(), RMOL::BucketHolder::iterate(), RMOL::BucketHolder::recalculate(), and RMOL::Bucket::setCumulatedProtection().
Generated on Sat Aug 13 2011 11:59:39 for RMOL by Doxygen 1.7.1