Go to the documentation of this file.00001
00002
00003
00004
00005 #include <cassert>
00006 #include <sstream>
00007
00008 #include <stdair/stdair_basic_types.hpp>
00009
00010 #include <trademgen/basic/BasConst_DemandGeneration.hpp>
00011 #include <trademgen/basic/DemandCharacteristics.hpp>
00012
00013 namespace TRADEMGEN {
00014
00015
00016 DemandCharacteristics::DemandCharacteristics()
00017 : _arrivalPattern (ArrivalPatternCumulativeDistribution_T()),
00018 _posProbabilityMass (POSProbabilityMassFunction_T()),
00019 _channelProbabilityMass (ChannelProbabilityMassFunction_T()),
00020 _tripTypeProbabilityMass (TripTypeProbabilityMassFunction_T()),
00021 _stayDurationProbabilityMass (StayDurationProbabilityMassFunction_T()),
00022 _frequentFlyerProbabilityMass (FrequentFlyerProbabilityMassFunction_T()),
00023 _preferredDepartureTimeCumulativeDistribution (PreferredDepartureTimeContinuousDistribution_T()),
00024 _minWTP (stdair::WTP_T()), _frat5Pattern (DEFAULT_FRAT5_PATTERN),
00025 _valueOfTimeCumulativeDistribution (ValueOfTimeContinuousDistribution_T()) {
00026 }
00027
00028
00029 DemandCharacteristics::
00030 DemandCharacteristics (const DemandCharacteristics& iDC)
00031 : _arrivalPattern (iDC._arrivalPattern),
00032 _posProbabilityMass (iDC._posProbabilityMass),
00033 _channelProbabilityMass (iDC._channelProbabilityMass),
00034 _tripTypeProbabilityMass (iDC._tripTypeProbabilityMass),
00035 _stayDurationProbabilityMass (iDC._stayDurationProbabilityMass),
00036 _frequentFlyerProbabilityMass (iDC._frequentFlyerProbabilityMass),
00037 _preferredDepartureTimeCumulativeDistribution (iDC._preferredDepartureTimeCumulativeDistribution),
00038 _minWTP (iDC._minWTP), _frat5Pattern (iDC._frat5Pattern),
00039 _valueOfTimeCumulativeDistribution (iDC._valueOfTimeCumulativeDistribution) {
00040 }
00041
00042
00043 DemandCharacteristics::
00044 DemandCharacteristics (const ArrivalPatternCumulativeDistribution_T& iArrivalPattern,
00045 const POSProbabilityMassFunction_T& iPOSProbMass,
00046 const ChannelProbabilityMassFunction_T& iChannelProbMass,
00047 const TripTypeProbabilityMassFunction_T& iTripTypeProbMass,
00048 const StayDurationProbabilityMassFunction_T& iStayDurationProbMass,
00049 const FrequentFlyerProbabilityMassFunction_T& iFrequentFlyerProbMass,
00050 const PreferredDepartureTimeContinuousDistribution_T& iPreferredDepartureTimeContinuousDistribution,
00051 const stdair::WTP_T& iMinWTP,
00052 const ValueOfTimeContinuousDistribution_T& iValueOfTimeContinuousDistribution)
00053 : _arrivalPattern (iArrivalPattern),
00054 _posProbabilityMass (iPOSProbMass),
00055 _channelProbabilityMass (iChannelProbMass),
00056 _tripTypeProbabilityMass (iTripTypeProbMass),
00057 _stayDurationProbabilityMass (iStayDurationProbMass),
00058 _frequentFlyerProbabilityMass (iFrequentFlyerProbMass),
00059 _preferredDepartureTimeCumulativeDistribution (iPreferredDepartureTimeContinuousDistribution),
00060 _minWTP (iMinWTP), _frat5Pattern (DEFAULT_FRAT5_PATTERN),
00061 _valueOfTimeCumulativeDistribution (iValueOfTimeContinuousDistribution) {
00062 }
00063
00064
00065 DemandCharacteristics::~DemandCharacteristics() {
00066 }
00067
00068
00069 const stdair::AirportCode_T& DemandCharacteristics::
00070 getPOSValue (const stdair::Probability_T& iCumulativeProbability) const {
00071 return _posProbabilityMass.getValue (iCumulativeProbability);
00072 }
00073
00074
00075 bool DemandCharacteristics::
00076 checkPOSValue (const stdair::AirportCode_T& iPOS) const {
00077 return _posProbabilityMass.checkValue (iPOS);
00078 }
00079
00080
00081 const std::string DemandCharacteristics::describe() const {
00082 std::ostringstream oStr;
00083
00084
00085 oStr << "****************** Demand characteristics ******************"
00086 << std::endl;
00087 oStr << "Arrival pattern (days from departure, proportion): ";
00088 oStr << _arrivalPattern.displayCumulativeDistribution() << std::endl;
00089 oStr << "POS probability mass (POS, propotion): ";
00090 oStr << _posProbabilityMass.displayProbabilityMass()
00091 << std::endl;
00092 oStr << "Channel probability mass (channel, propotion): ";
00093 oStr << _channelProbabilityMass.displayProbabilityMass()
00094 << std::endl;
00095 oStr << "Trip type probability mass (trip type, propotion): ";
00096 oStr << _tripTypeProbabilityMass.displayProbabilityMass()
00097 << std::endl;
00098 oStr << "Stay duration probability mass (number of days, propotion): ";
00099 oStr << _stayDurationProbabilityMass.displayProbabilityMass()
00100 << std::endl;
00101 oStr << "Frequent flyer probability mass (frequent flyer, propotion): ";
00102 oStr << _frequentFlyerProbabilityMass.displayProbabilityMass()
00103 << std::endl;
00104 oStr << "Preferred departure time cumulative distribution (time, proportion: ";
00105 oStr << _preferredDepartureTimeCumulativeDistribution.displayCumulativeDistribution() << std::endl;
00106 oStr << "min WTP: " << _minWTP << std::endl;
00107 oStr << "Value of time cumulative distribution (value of time, proportion: ";
00108 oStr << _valueOfTimeCumulativeDistribution.displayCumulativeDistribution()
00109 << std::endl;
00110
00111
00112 return oStr.str();
00113 }
00114
00115 }
00116