TraDemGen Logo  0.2.2
C++ Simulated Travel Demand Generation Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
DemandCharacteristics.cpp
Go to the documentation of this file.
1 // //////////////////////////////////////////////////////////////////////
2 // Import section
3 // //////////////////////////////////////////////////////////////////////
4 // STL
5 #include <cassert>
6 #include <sstream>
7 // StdAir
8 #include <stdair/stdair_basic_types.hpp>
9 // TraDemGen
12 
13 namespace TRADEMGEN {
14 
15  // /////////////////////////////////////////////////////
17  : _arrivalPattern (ArrivalPatternCumulativeDistribution_T()),
18  _posProbabilityMass (POSProbabilityMassFunction_T()),
19  _channelProbabilityMass (ChannelProbabilityMassFunction_T()),
20  _tripTypeProbabilityMass (TripTypeProbabilityMassFunction_T()),
21  _stayDurationProbabilityMass (StayDurationProbabilityMassFunction_T()),
22  _frequentFlyerProbabilityMass (FrequentFlyerProbabilityMassFunction_T()),
23  _preferredDepartureTimeCumulativeDistribution (PreferredDepartureTimeContinuousDistribution_T()),
24  _minWTP (stdair::WTP_T()), _frat5Pattern (DEFAULT_FRAT5_PATTERN),
25  _valueOfTimeCumulativeDistribution (ValueOfTimeContinuousDistribution_T()) {
26  }
27 
28  // /////////////////////////////////////////////////////
31  : _arrivalPattern (iDC._arrivalPattern),
32  _posProbabilityMass (iDC._posProbabilityMass),
33  _channelProbabilityMass (iDC._channelProbabilityMass),
34  _tripTypeProbabilityMass (iDC._tripTypeProbabilityMass),
35  _stayDurationProbabilityMass (iDC._stayDurationProbabilityMass),
36  _frequentFlyerProbabilityMass (iDC._frequentFlyerProbabilityMass),
37  _preferredDepartureTimeCumulativeDistribution (iDC._preferredDepartureTimeCumulativeDistribution),
38  _minWTP (iDC._minWTP), _frat5Pattern (iDC._frat5Pattern),
39  _valueOfTimeCumulativeDistribution (iDC._valueOfTimeCumulativeDistribution) {
40  }
41 
42  // /////////////////////////////////////////////////////
45  const POSProbabilityMassFunction_T& iPOSProbMass,
46  const ChannelProbabilityMassFunction_T& iChannelProbMass,
47  const TripTypeProbabilityMassFunction_T& iTripTypeProbMass,
48  const StayDurationProbabilityMassFunction_T& iStayDurationProbMass,
49  const FrequentFlyerProbabilityMassFunction_T& iFrequentFlyerProbMass,
50  const PreferredDepartureTimeContinuousDistribution_T& iPreferredDepartureTimeContinuousDistribution,
51  const stdair::WTP_T& iMinWTP,
52  const ValueOfTimeContinuousDistribution_T& iValueOfTimeContinuousDistribution)
53  : _arrivalPattern (iArrivalPattern),
54  _posProbabilityMass (iPOSProbMass),
55  _channelProbabilityMass (iChannelProbMass),
56  _tripTypeProbabilityMass (iTripTypeProbMass),
57  _stayDurationProbabilityMass (iStayDurationProbMass),
58  _frequentFlyerProbabilityMass (iFrequentFlyerProbMass),
59  _preferredDepartureTimeCumulativeDistribution (iPreferredDepartureTimeContinuousDistribution),
60  _minWTP (iMinWTP), _frat5Pattern (DEFAULT_FRAT5_PATTERN),
61  _valueOfTimeCumulativeDistribution (iValueOfTimeContinuousDistribution) {
62  }
63 
64  // /////////////////////////////////////////////////////
66  }
67 
68  // /////////////////////////////////////////////////////
69  const stdair::AirportCode_T& DemandCharacteristics::
70  getPOSValue (const stdair::Probability_T& iCumulativeProbability) const {
71  return _posProbabilityMass.getValue (iCumulativeProbability);
72  }
73 
74  // /////////////////////////////////////////////////////
76  checkPOSValue (const stdair::AirportCode_T& iPOS) const {
77  return _posProbabilityMass.checkValue (iPOS);
78  }
79 
80  // /////////////////////////////////////////////////////
81  const std::string DemandCharacteristics::describe() const {
82  std::ostringstream oStr;
83 
84  //
85  oStr << "****************** Demand characteristics ******************"
86  << std::endl;
87  oStr << "Arrival pattern (days from departure, proportion): ";
88  oStr << _arrivalPattern.displayCumulativeDistribution() << std::endl;
89  oStr << "POS probability mass (POS, propotion): ";
91  << std::endl;
92  oStr << "Channel probability mass (channel, propotion): ";
94  << std::endl;
95  oStr << "Trip type probability mass (trip type, propotion): ";
97  << std::endl;
98  oStr << "Stay duration probability mass (number of days, propotion): ";
100  << std::endl;
101  oStr << "Frequent flyer probability mass (frequent flyer, propotion): ";
103  << std::endl;
104  oStr << "Preferred departure time cumulative distribution (time, proportion: ";
106  oStr << "min WTP: " << _minWTP << std::endl;
107  oStr << "Value of time cumulative distribution (value of time, proportion: ";
109  << std::endl;
110 
111 
112  return oStr.str();
113  }
114 
115 }
116