Class modeling a demand stream. More...
#include <trademgen/bom/DemandStream.hpp>
Public Types | |
typedef DemandStreamKey | Key_T |
Public Member Functions | |
const Key_T & | getKey () const |
BomAbstract *const | getParent () const |
const stdair::AirportCode_T & | getOrigin () const |
const stdair::AirportCode_T & | getDestination () const |
const stdair::Date_T & | getPreferredDepartureDate () const |
const stdair::CabinCode_T & | getPreferredCabin () const |
const stdair::HolderMap_T & | getHolderMap () const |
const DemandCharacteristics & | getDemandCharacteristics () const |
const DemandDistribution & | getDemandDistribution () const |
const stdair::NbOfRequests_T & | getTotalNumberOfRequestsToBeGenerated () const |
const stdair::NbOfRequests_T & | getMeanNumberOfRequests () const |
const stdair::StdDevValue_T & | getStdDevNumberOfRequests () const |
const stdair::Count_T & | getNumberOfRequestsGeneratedSoFar () const |
const stdair::Disutility_T & | getChangeFeeDisutility () const |
const stdair::Disutility_T & | getNonRefundableDisutility () const |
const POSProbabilityMass_T & | getPOSProbabilityMass () const |
void | setNumberOfRequestsGeneratedSoFar (const stdair::Count_T &iCount) |
void | setDemandDistribution (const DemandDistribution &iDemandDistribution) |
void | setDemandCharacteristics (const ArrivalPatternCumulativeDistribution_T &iArrivalPattern, const POSProbabilityMassFunction_T &iPOSProbMass, const ChannelProbabilityMassFunction_T &iChannelProbMass, const TripTypeProbabilityMassFunction_T &iTripTypeProbMass, const StayDurationProbabilityMassFunction_T &iStayDurationProbMass, const FrequentFlyerProbabilityMassFunction_T &iFrequentFlyerProbMass, const stdair::ChangeFeesRatio_T &iChangeFeeProb, const stdair::Disutility_T &iChangeFeeDisutility, const stdair::NonRefundableRatio_T &iNonRefundableProb, const stdair::Disutility_T &iNonRefundableDisutility, const PreferredDepartureTimeContinuousDistribution_T &iPreferredDepartureTimeContinuousDistribution, const stdair::WTP_T &iMinWTP, const ValueOfTimeContinuousDistribution_T &iValueOfTimeContinuousDistribution) |
void | setTotalNumberOfRequestsToBeGenerated (const stdair::NbOfRequests_T &iNbOfRequests) |
void | setRequestDateTimeRandomGeneratorSeed (const stdair::RandomSeed_T &iSeed) |
void | setDemandCharacteristicsRandomGeneratorSeed (const stdair::RandomSeed_T &iSeed) |
void | setPOSProbabilityMass (const POSProbabilityMass_T &iProbMass) |
void | setAll (const ArrivalPatternCumulativeDistribution_T &, const POSProbabilityMassFunction_T &, const ChannelProbabilityMassFunction_T &, const TripTypeProbabilityMassFunction_T &, const StayDurationProbabilityMassFunction_T &, const FrequentFlyerProbabilityMassFunction_T &, const stdair::ChangeFeesRatio_T &, const stdair::Disutility_T &, const stdair::NonRefundableRatio_T &, const stdair::Disutility_T &, const PreferredDepartureTimeContinuousDistribution_T &, const stdair::WTP_T &, const ValueOfTimeContinuousDistribution_T &, const DemandDistribution &, stdair::BaseGenerator_T &ioSharedGenerator, const stdair::RandomSeed_T &iRequestDateTimeSeed, const stdair::RandomSeed_T &iDemandCharacteristicsSeed, const POSProbabilityMass_T &) |
void | setBoolFirstDateTimeRequest (const bool &iFirstDateTimeRequest) |
void | incrementGeneratedRequestsCounter () |
const bool | stillHavingRequestsToBeGenerated (const stdair::DemandGenerationMethod &iDemandGenerationMethod) const |
const stdair::DateTime_T | generateTimeOfRequestPoissonProcess () |
const stdair::DateTime_T | generateTimeOfRequestStatisticsOrder () |
const stdair::AirportCode_T | generatePOS () |
const stdair::ChannelLabel_T | generateChannel () |
const stdair::TripType_T | generateTripType () |
const stdair::DayDuration_T | generateStayDuration () |
const stdair::FrequentFlyer_T | generateFrequentFlyer () |
const stdair::ChangeFees_T | generateChangeFees () |
const stdair::NonRefundable_T | generateNonRefundable () |
const stdair::Duration_T | generatePreferredDepartureTime () |
const stdair::WTP_T | generateWTP (stdair::RandomGeneration &, const stdair::Date_T &, const stdair::DateTime_T &, const stdair::DayDuration_T &) |
const stdair::PriceValue_T | generateValueOfTime () |
stdair::BookingRequestPtr_T | generateNextRequest (stdair::RandomGeneration &, const stdair::DemandGenerationMethod &) |
void | reset (stdair::BaseGenerator_T &ioSharedGenerator) |
void | toStream (std::ostream &ioOut) const |
void | fromStream (std::istream &ioIn) |
std::string | toString () const |
const std::string | describeKey () const |
std::string | display () const |
const stdair::Duration_T | convertFloatIntoDuration (const stdair::FloatDuration_T) |
Protected Member Functions | |
DemandStream (const Key_T &) | |
virtual | ~DemandStream () |
Protected Attributes | |
Key_T | _key |
BomAbstract * | _parent |
stdair::HolderMap_T | _holderMap |
DemandCharacteristics | _demandCharacteristics |
DemandDistribution | _demandDistribution |
stdair::NbOfRequests_T | _totalNumberOfRequestsToBeGenerated |
RandomGenerationContext | _randomGenerationContext |
stdair::RandomGeneration | _requestDateTimeRandomGenerator |
stdair::RandomGeneration | _demandCharacteristicsRandomGenerator |
POSProbabilityMass_T | _posProMass |
Friends | |
template<typename BOM > | |
class | stdair::FacBom |
class | stdair::FacBomManager |
Class modeling a demand stream.
Definition at line 30 of file DemandStream.hpp.
Definition allowing to retrieve the associated BOM key type.
Definition at line 39 of file DemandStream.hpp.
|
protected |
Main constructor.
Definition at line 64 of file DemandStream.cpp.
|
protectedvirtual |
Destructor.
Definition at line 69 of file DemandStream.cpp.
|
inline |
Get the key
Definition at line 45 of file DemandStream.hpp.
|
inline |
Get the parent object (EventQueue).
Definition at line 50 of file DemandStream.hpp.
|
inline |
Get the origin (part of the primary key).
Definition at line 55 of file DemandStream.hpp.
|
inline |
Get the destination (part of the primary key).
Definition at line 60 of file DemandStream.hpp.
|
inline |
Get the preferred departure date (part of the primary key).
Definition at line 65 of file DemandStream.hpp.
|
inline |
Get the preferred cabin (part of the primary key).
Definition at line 70 of file DemandStream.hpp.
|
inline |
Get the map of children holders.
Definition at line 75 of file DemandStream.hpp.
|
inline |
Get the demand characteristics.
Definition at line 80 of file DemandStream.hpp.
|
inline |
Get the demand distribution.
Definition at line 85 of file DemandStream.hpp.
|
inline |
Get the total number of requests to be generated.
Definition at line 90 of file DemandStream.hpp.
|
inline |
Get the mean (expected) number of requests.
Definition at line 95 of file DemandStream.hpp.
|
inline |
Get the standard deviation of number of requests.
Definition at line 100 of file DemandStream.hpp.
|
inline |
Get the number of requests generated so far.
Definition at line 105 of file DemandStream.hpp.
|
inline |
Get the change fee disutility.
Definition at line 110 of file DemandStream.hpp.
|
inline |
Get the non refundable disutility.
Definition at line 115 of file DemandStream.hpp.
|
inline |
Get the default POS probablity mass, used when "row" (rest of the world) is drawn.
Definition at line 123 of file DemandStream.hpp.
|
inline |
Set the number of requests generated so far.
Definition at line 131 of file DemandStream.hpp.
|
inline |
Set the demand distribution.
Definition at line 136 of file DemandStream.hpp.
Referenced by setAll().
|
inline |
Set the demand characteristics.
Definition at line 142 of file DemandStream.hpp.
Referenced by setAll().
|
inline |
Set the total number of requests to be generated.
Definition at line 166 of file DemandStream.hpp.
Referenced by setAll().
|
inline |
Set the seed of the random generator for the request datetime.
Definition at line 171 of file DemandStream.hpp.
Referenced by setAll().
|
inline |
Set the seed of the random generator for the demand characteristics.
Definition at line 176 of file DemandStream.hpp.
Referenced by setAll().
|
inline |
Set the default POS probablity mass, used when "row" (rest of the world) is drawn.
Definition at line 184 of file DemandStream.hpp.
Referenced by setAll().
void TRADEMGEN::DemandStream::setAll | ( | const ArrivalPatternCumulativeDistribution_T & | iArrivalPattern, |
const POSProbabilityMassFunction_T & | iPOSProbMass, | ||
const ChannelProbabilityMassFunction_T & | iChannelProbMass, | ||
const TripTypeProbabilityMassFunction_T & | iTripTypeProbMass, | ||
const StayDurationProbabilityMassFunction_T & | iStayDurationProbMass, | ||
const FrequentFlyerProbabilityMassFunction_T & | iFrequentFlyerProbMass, | ||
const stdair::ChangeFeesRatio_T & | iChangeFeeProb, | ||
const stdair::Disutility_T & | iChangeFeeDisutility, | ||
const stdair::NonRefundableRatio_T & | iNonRefundableProb, | ||
const stdair::Disutility_T & | iNonRefundableDisutility, | ||
const PreferredDepartureTimeContinuousDistribution_T & | iPreferredDepartureTimeContinuousDistribution, | ||
const stdair::WTP_T & | iMinWTP, | ||
const ValueOfTimeContinuousDistribution_T & | iValueOfTimeContinuousDistribution, | ||
const DemandDistribution & | iDemandDistribution, | ||
stdair::BaseGenerator_T & | ioSharedGenerator, | ||
const stdair::RandomSeed_T & | iRequestDateTimeSeed, | ||
const stdair::RandomSeed_T & | iDemandCharacteristicsSeed, | ||
const POSProbabilityMass_T & | iDefaultPOSProbablityMass | ||
) |
Initialisation.
Definition at line 81 of file DemandStream.cpp.
References setDemandCharacteristics(), setDemandCharacteristicsRandomGeneratorSeed(), setDemandDistribution(), setPOSProbabilityMass(), setRequestDateTimeRandomGeneratorSeed(), and setTotalNumberOfRequestsToBeGenerated().
Referenced by toString().
|
inline |
Set the boolean describing if it is the first time we generate a request for a demand stream.
Definition at line 214 of file DemandStream.hpp.
|
inline |
Increment counter of requests generated so far
Definition at line 222 of file DemandStream.hpp.
Referenced by generateTimeOfRequestPoissonProcess(), and generateTimeOfRequestStatisticsOrder().
const bool TRADEMGEN::DemandStream::stillHavingRequestsToBeGenerated | ( | const stdair::DemandGenerationMethod & | iDemandGenerationMethod | ) | const |
Check whether enough requests have already been generated.
Definition at line 172 of file DemandStream.cpp.
References _randomGenerationContext, _totalNumberOfRequestsToBeGenerated, and TRADEMGEN::RandomGenerationContext::getNumberOfRequestsGeneratedSoFar().
Referenced by display().
const stdair::DateTime_T TRADEMGEN::DemandStream::generateTimeOfRequestPoissonProcess | ( | ) |
Generate the time of the next request with poisson process.
Definition at line 197 of file DemandStream.cpp.
References TRADEMGEN::DemandCharacteristics::_arrivalPattern, _demandCharacteristics, _demandDistribution, _key, TRADEMGEN::DemandDistribution::_meanNumberOfRequests, _requestDateTimeRandomGenerator, convertFloatIntoDuration(), TRADEMGEN::DEFAULT_LAST_LOWER_BOUND_ARRIVAL_PATTERN, TRADEMGEN::ContinuousAttributeLite< T >::getDerivativeValue(), TRADEMGEN::DemandStreamKey::getPreferredDepartureDate(), TRADEMGEN::ContinuousAttributeLite< T >::getUpperBound(), TRADEMGEN::ContinuousAttributeLite< T >::getValue(), and incrementGeneratedRequestsCounter().
Referenced by generateNextRequest().
const stdair::DateTime_T TRADEMGEN::DemandStream::generateTimeOfRequestStatisticsOrder | ( | ) |
Generate the time of the next request with statistics order
Definition at line 299 of file DemandStream.cpp.
References TRADEMGEN::DemandCharacteristics::_arrivalPattern, _demandCharacteristics, _key, _randomGenerationContext, _requestDateTimeRandomGenerator, _totalNumberOfRequestsToBeGenerated, convertFloatIntoDuration(), TRADEMGEN::RandomGenerationContext::getCumulativeProbabilitySoFar(), TRADEMGEN::RandomGenerationContext::getNumberOfRequestsGeneratedSoFar(), TRADEMGEN::DemandStreamKey::getPreferredDepartureDate(), TRADEMGEN::ContinuousAttributeLite< T >::getValue(), incrementGeneratedRequestsCounter(), and TRADEMGEN::RandomGenerationContext::setCumulativeProbabilitySoFar().
Referenced by generateNextRequest().
const stdair::AirportCode_T TRADEMGEN::DemandStream::generatePOS | ( | ) |
Generate the POS.
Definition at line 430 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, and TRADEMGEN::DemandCharacteristics::getPOSValue().
Referenced by generateNextRequest().
const stdair::ChannelLabel_T TRADEMGEN::DemandStream::generateChannel | ( | ) |
Generate the reservation channel.
Definition at line 440 of file DemandStream.cpp.
References TRADEMGEN::DemandCharacteristics::_channelProbabilityMass, _demandCharacteristics, _demandCharacteristicsRandomGenerator, and TRADEMGEN::CategoricalAttributeLite< T >::getValue().
Referenced by generateNextRequest().
const stdair::TripType_T TRADEMGEN::DemandStream::generateTripType | ( | ) |
Generate the trip type.
Definition at line 449 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, TRADEMGEN::DemandCharacteristics::_tripTypeProbabilityMass, and TRADEMGEN::CategoricalAttributeLite< T >::getValue().
Referenced by generateNextRequest().
const stdair::DayDuration_T TRADEMGEN::DemandStream::generateStayDuration | ( | ) |
Generate the stay duration.
Definition at line 458 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, TRADEMGEN::DemandCharacteristics::_stayDurationProbabilityMass, and TRADEMGEN::CategoricalAttributeLite< T >::getValue().
Referenced by generateNextRequest().
const stdair::FrequentFlyer_T TRADEMGEN::DemandStream::generateFrequentFlyer | ( | ) |
Generate the frequent flyer type.
Definition at line 467 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, TRADEMGEN::DemandCharacteristics::_frequentFlyerProbabilityMass, and TRADEMGEN::CategoricalAttributeLite< T >::getValue().
Referenced by generateNextRequest().
const stdair::ChangeFees_T TRADEMGEN::DemandStream::generateChangeFees | ( | ) |
Generate the change fee acceptation.
Definition at line 476 of file DemandStream.cpp.
References TRADEMGEN::DemandCharacteristics::_changeFeeProb, _demandCharacteristics, and _demandCharacteristicsRandomGenerator.
Referenced by generateNextRequest().
const stdair::NonRefundable_T TRADEMGEN::DemandStream::generateNonRefundable | ( | ) |
Generate the non refundable acceptation.
Definition at line 487 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, and TRADEMGEN::DemandCharacteristics::_nonRefundableProb.
Referenced by generateNextRequest().
const stdair::Duration_T TRADEMGEN::DemandStream::generatePreferredDepartureTime | ( | ) |
Generate the preferred departure time.
Definition at line 498 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, and generateWTP().
Referenced by generateNextRequest().
const stdair::WTP_T TRADEMGEN::DemandStream::generateWTP | ( | stdair::RandomGeneration & | ioGenerator, |
const stdair::Date_T & | iDepartureDate, | ||
const stdair::DateTime_T & | iDateTimeThisRequest, | ||
const stdair::DayDuration_T & | iDurationOfStay | ||
) |
Generate the WTP.
Definition at line 512 of file DemandStream.cpp.
References _demandCharacteristics, TRADEMGEN::DemandCharacteristics::_frat5Pattern, TRADEMGEN::DemandCharacteristics::_minWTP, and TRADEMGEN::ContinuousAttributeLite< T >::getValue().
Referenced by generateNextRequest(), and generatePreferredDepartureTime().
const stdair::PriceValue_T TRADEMGEN::DemandStream::generateValueOfTime | ( | ) |
Generate the value of time.
Definition at line 531 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, TRADEMGEN::DemandCharacteristics::_valueOfTimeCumulativeDistribution, generateNextRequest(), and TRADEMGEN::ContinuousAttributeLite< T >::getValue().
Referenced by generateNextRequest().
stdair::BookingRequestPtr_T TRADEMGEN::DemandStream::generateNextRequest | ( | stdair::RandomGeneration & | ioGenerator, |
const stdair::DemandGenerationMethod & | iDemandGenerationMethod | ||
) |
Generate the next request.
stdair::RandomGeneration | Random generator. |
const | stdair::DemandGenerationMethod::EN_DemandGenerationMethod Method used to generate the date time of the next booking request: statistic order or poisson process. |
Definition at line 541 of file DemandStream.cpp.
References TRADEMGEN::DemandCharacteristics::_changeFeeDisutility, _demandCharacteristics, _key, TRADEMGEN::DemandCharacteristics::_nonRefundableDisutility, describeKey(), generateChangeFees(), generateChannel(), generateFrequentFlyer(), generateNonRefundable(), generatePOS(), generatePreferredDepartureTime(), generateStayDuration(), generateTimeOfRequestPoissonProcess(), generateTimeOfRequestStatisticsOrder(), generateTripType(), generateValueOfTime(), generateWTP(), TRADEMGEN::DemandStreamKey::getDestination(), TRADEMGEN::DemandStreamKey::getOrigin(), TRADEMGEN::DemandStreamKey::getPreferredCabin(), and TRADEMGEN::DemandStreamKey::getPreferredDepartureDate().
Referenced by generateValueOfTime().
void TRADEMGEN::DemandStream::reset | ( | stdair::BaseGenerator_T & | ioSharedGenerator | ) |
Reset all the contexts of the demand stream.
Definition at line 625 of file DemandStream.cpp.
References _randomGenerationContext, and TRADEMGEN::RandomGenerationContext::reset().
|
inline |
Dump a Business Object into an output stream.
ostream& | the output stream. |
Definition at line 292 of file DemandStream.hpp.
|
inline |
Read a Business Object from an input stream.
istream& | the input stream. |
Definition at line 300 of file DemandStream.hpp.
std::string TRADEMGEN::DemandStream::toString | ( | ) | const |
Get the serialised version of the Business Object.
Definition at line 73 of file DemandStream.cpp.
References _key, setAll(), and TRADEMGEN::DemandStreamKey::toString().
|
inline |
Get a string describing the key.
Definition at line 311 of file DemandStream.hpp.
Referenced by TRADEMGEN::TRADEMGEN_Service::displayDemandStream(), and generateNextRequest().
std::string TRADEMGEN::DemandStream::display | ( | ) | const |
Dump recursively the content of the DemandStream object.
Definition at line 119 of file DemandStream.cpp.
References _demandCharacteristics, _demandCharacteristicsRandomGenerator, _demandDistribution, _key, TRADEMGEN::DemandDistribution::_meanNumberOfRequests, _posProMass, _randomGenerationContext, _requestDateTimeRandomGenerator, TRADEMGEN::DemandDistribution::_stdDevNumberOfRequests, _totalNumberOfRequestsToBeGenerated, TRADEMGEN::DemandCharacteristics::describe(), TRADEMGEN::DemandDistribution::describe(), TRADEMGEN::CategoricalAttributeLite< T >::displayProbabilityMass(), stillHavingRequestsToBeGenerated(), and TRADEMGEN::DemandStreamKey::toString().
Referenced by TRADEMGEN::BomDisplay::csvDisplay().
const stdair::Duration_T TRADEMGEN::DemandStream::convertFloatIntoDuration | ( | const stdair::FloatDuration_T | iNumberOfDays | ) |
Definition at line 401 of file DemandStream.cpp.
Referenced by generateTimeOfRequestPoissonProcess(), and generateTimeOfRequestStatisticsOrder().
|
friend |
Definition at line 31 of file DemandStream.hpp.
|
friend |
Definition at line 32 of file DemandStream.hpp.
|
protected |
Primary key (string gathering the origin, destination, POS and date).
Definition at line 346 of file DemandStream.hpp.
Referenced by display(), generateNextRequest(), generateTimeOfRequestPoissonProcess(), generateTimeOfRequestStatisticsOrder(), and toString().
|
protected |
Pointer on the parent class (EventQueue).
Definition at line 351 of file DemandStream.hpp.
|
protected |
Map holding the children (not used for now).
Definition at line 356 of file DemandStream.hpp.
|
protected |
Demand characteristics.
Definition at line 361 of file DemandStream.hpp.
Referenced by display(), generateChangeFees(), generateChannel(), generateFrequentFlyer(), generateNextRequest(), generateNonRefundable(), generatePOS(), generatePreferredDepartureTime(), generateStayDuration(), generateTimeOfRequestPoissonProcess(), generateTimeOfRequestStatisticsOrder(), generateTripType(), generateValueOfTime(), and generateWTP().
|
protected |
Demand distribution.
Definition at line 366 of file DemandStream.hpp.
Referenced by display(), and generateTimeOfRequestPoissonProcess().
|
protected |
Total number of requests to be generated.
Definition at line 371 of file DemandStream.hpp.
Referenced by display(), generateTimeOfRequestStatisticsOrder(), and stillHavingRequestsToBeGenerated().
|
protected |
Random generation context.
Definition at line 376 of file DemandStream.hpp.
Referenced by display(), generateTimeOfRequestStatisticsOrder(), reset(), and stillHavingRequestsToBeGenerated().
|
protected |
Random generator for request date-time.
Definition at line 381 of file DemandStream.hpp.
Referenced by display(), generateTimeOfRequestPoissonProcess(), and generateTimeOfRequestStatisticsOrder().
|
protected |
Random generator for demand characteristics.
Definition at line 386 of file DemandStream.hpp.
Referenced by display(), generateChangeFees(), generateChannel(), generateFrequentFlyer(), generateNonRefundable(), generatePOS(), generatePreferredDepartureTime(), generateStayDuration(), generateTripType(), and generateValueOfTime().
|
protected |
Defaut POS probablity mass, used when "row" (rest of the world) is drawn.
Definition at line 392 of file DemandStream.hpp.
Referenced by display().