From: <qua...@us...> - 2010-02-17 13:02:02
|
Revision: 147 http://stdair.svn.sourceforge.net/stdair/?rev=147&view=rev Author: quannaus Date: 2010-02-17 13:01:56 +0000 (Wed, 17 Feb 2010) Log Message: ----------- [dev] Added POS and value of time into booking request. Modified Paths: -------------- trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp trunk/stdair/stdair/basic/DemandCharacteristics.cpp trunk/stdair/stdair/basic/DemandCharacteristics.hpp trunk/stdair/stdair/bom/BookingRequestStruct.cpp trunk/stdair/stdair/bom/BookingRequestStruct.hpp trunk/stdair/stdair/bom/DemandStreamContent.hpp Modified: trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp 2010-02-17 13:01:56 UTC (rev 147) @@ -24,6 +24,15 @@ /** Type definition for the arrival pattern inverse cumulative distribution. */ typedef std::multimap<Probability_T, FloatDuration_T> ArrivalPatternInverseCumulativeDistribution_T; + /** Define the point-of-sale probablity mass. */ + typedef CategoricalAttribute<AirportCode_T> POSProbabilityMass_T; + + /** Define the probability mass function type of point-of-sale. */ + typedef POSProbabilityMass_T::ProbabilityMassFunction_T POSProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution of point-of-sale. */ + typedef POSProbabilityMass_T::InverseCumulativeDistribution_T POSInverserCumulativeDistribution_T; + /** Define the booking channel probablity mass. */ typedef CategoricalAttribute<ChannelLabel_T> ChannelProbabilityMass_T; @@ -77,6 +86,15 @@ /** Define the willingness-to-pay continuous inverse distribution. */ typedef WTPCumulativeDistribution_T::ContinuousInverseDistribution_T WTPContinuousInverseDistribution_T; + + /** Define the value of time cumulative distribution. */ + typedef ContinuousAttribute<PriceValue_T> ValueOfTimeCumulativeDistribution_T; + + /** Define the value of time continuous distribution. */ + typedef ValueOfTimeCumulativeDistribution_T::ContinuousDistribution_T ValueOfTimeContinuousDistribution_T; + + /** Define the value of time continuous inverse distribution. */ + typedef ValueOfTimeCumulativeDistribution_T::ContinuousInverseDistribution_T ValueOfTimeContinuousInverseDistribution_T; } #endif // __STDAIR_BAS_DEMANDCHARACTERISTICTYPES_HPP Modified: trunk/stdair/stdair/basic/DemandCharacteristics.cpp =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristics.cpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/basic/DemandCharacteristics.cpp 2010-02-17 13:01:56 UTC (rev 147) @@ -15,19 +15,23 @@ DemandCharacteristics:: DemandCharacteristics (const DemandStreamKey_T& iKey, const ContinuousFloatDuration_T& iArrivalPattern, + const POSProbabilityMass_T& iPOSProbMass, const ChannelProbabilityMass_T& iChannelProbMass, const TripTypeProbabilityMass_T& iTripTypeProbMass, const StayDurationProbabilityMass_T& iStayDurationProbMass, const FrequentFlyerProbabilityMass_T& iFrequentFlyerProbMass, const PreferredDepartureTimeCumulativeDistribution_T& iPreferredDepartureTimeCumulativeDistribution, - const WTPCumulativeDistribution_T& iWTPCumulativeDistribution) + const WTPCumulativeDistribution_T& iWTPCumulativeDistribution, + const ValueOfTimeCumulativeDistribution_T& iValueOfTimeCumulativeDistribution) : _key (iKey), _arrivalPattern (iArrivalPattern), + _posProbabilityMass (iPOSProbMass), _channelProbabilityMass (iChannelProbMass), _tripTypeProbabilityMass (iTripTypeProbMass), _stayDurationProbabilityMass (iStayDurationProbMass), _frequentFlyerProbabilityMass (iFrequentFlyerProbMass), _preferredDepartureTimeCumulativeDistribution (iPreferredDepartureTimeCumulativeDistribution), - _wtpCumulativeDistribution (iWTPCumulativeDistribution) { + _wtpCumulativeDistribution (iWTPCumulativeDistribution), + _valueOfTimeCumulativeDistribution (iValueOfTimeCumulativeDistribution) { } // ///////////////////////////////////////////////////// @@ -44,12 +48,14 @@ DemandCharacteristics (const DemandCharacteristics& iDemandCharacteristics) : _key (iDemandCharacteristics._key), _arrivalPattern (iDemandCharacteristics._arrivalPattern), + _posProbabilityMass (iDemandCharacteristics._posProbabilityMass), _channelProbabilityMass (iDemandCharacteristics._channelProbabilityMass), _tripTypeProbabilityMass (iDemandCharacteristics._tripTypeProbabilityMass), _stayDurationProbabilityMass (iDemandCharacteristics._stayDurationProbabilityMass), _frequentFlyerProbabilityMass (iDemandCharacteristics._frequentFlyerProbabilityMass), _preferredDepartureTimeCumulativeDistribution (iDemandCharacteristics._preferredDepartureTimeCumulativeDistribution), - _wtpCumulativeDistribution (iDemandCharacteristics._wtpCumulativeDistribution) { + _wtpCumulativeDistribution (iDemandCharacteristics._wtpCumulativeDistribution), + _valueOfTimeCumulativeDistribution (iDemandCharacteristics._valueOfTimeCumulativeDistribution) { } // ///////////////////////////////////////////////////// @@ -89,6 +95,9 @@ << std::endl; oStr << "Arrival pattern (days from departure, proportion): "; oStr << _arrivalPattern.displayCumulativeDistribution() << std::endl; + oStr << "POS probability mass (POS, propotion): "; + oStr << _posProbabilityMass.displayProbabilityMassFunction() + << std::endl; oStr << "Channel probability mass (channel, propotion): "; oStr << _channelProbabilityMass.displayProbabilityMassFunction() << std::endl; @@ -106,6 +115,9 @@ oStr << "WTP cumulative distribution (WTP, proportion: "; oStr << _wtpCumulativeDistribution.displayCumulativeDistribution() << std::endl; + oStr << "Value of time cumulative distribution (value of time, proportion: "; + oStr << _valueOfTimeCumulativeDistribution.displayCumulativeDistribution() + << std::endl; return oStr.str(); Modified: trunk/stdair/stdair/basic/DemandCharacteristics.hpp =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristics.hpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/basic/DemandCharacteristics.hpp 2010-02-17 13:01:56 UTC (rev 147) @@ -40,6 +40,11 @@ return _arrivalPattern; } + /** Get the point-of-sale probability mass. */ + const POSProbabilityMass_T& getPOSProbabilityMass() const { + return _posProbabilityMass; + } + /** Get the channel probability mass. */ const ChannelProbabilityMass_T& getChannelProbabilityMass() const { return _channelProbabilityMass; @@ -69,6 +74,11 @@ const WTPCumulativeDistribution_T& getWTPCumulativeDistribution() const { return _wtpCumulativeDistribution; } + + /** Get the value of time cumulative distribution. */ + const ValueOfTimeCumulativeDistribution_T& getValueOfTimeCumulativeDistribution () const { + return _valueOfTimeCumulativeDistribution; + } public: // ////////////// Display Support Methods ////////// @@ -81,12 +91,14 @@ /** Default constructor. */ DemandCharacteristics (const DemandStreamKey_T&, const ContinuousFloatDuration_T&, + const POSProbabilityMass_T&, const ChannelProbabilityMass_T&, const TripTypeProbabilityMass_T&, const StayDurationProbabilityMass_T&, const FrequentFlyerProbabilityMass_T&, const PreferredDepartureTimeCumulativeDistribution_T&, - const WTPCumulativeDistribution_T&); + const WTPCumulativeDistribution_T&, + const ValueOfTimeCumulativeDistribution_T&); /** Default constructor. */ // TODO: That copy constructor should be private @@ -110,6 +122,9 @@ and request date). */ const ContinuousFloatDuration_T _arrivalPattern; + /** POS probability mass. */ + const POSProbabilityMass_T _posProbabilityMass; + /** Channel probability mass. */ const ChannelProbabilityMass_T _channelProbabilityMass; @@ -127,7 +142,9 @@ /** Willingness-to-pay cumulative distribution */ const WTPCumulativeDistribution_T _wtpCumulativeDistribution; - + + /** Value of time cumulative distribution. */ + const ValueOfTimeCumulativeDistribution_T _valueOfTimeCumulativeDistribution; }; } Modified: trunk/stdair/stdair/bom/BookingRequestStruct.cpp =================================================================== --- trunk/stdair/stdair/bom/BookingRequestStruct.cpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/bom/BookingRequestStruct.cpp 2010-02-17 13:01:56 UTC (rev 147) @@ -15,6 +15,7 @@ BookingRequestStruct:: BookingRequestStruct (const AirportCode_T& iOrigin, const AirportCode_T& iDestination, + const AirportCode_T& iPOS, const Date_T& iDepartureDate, const DateTime_T& iRequestDateTime, const CabinCode_T& iPreferredCabin, @@ -24,14 +25,16 @@ const DayDuration_T& iStayDuration, const FrequentFlyer_T& iFrequentFlyerType, const Duration_T& iPreferredDepartureTime, - const WTP_T& iWTP) + const WTP_T& iWTP, + const PriceValue_T& iValueOfTime) : _origin (iOrigin), _destination (iDestination), - _preferredDepartureDate (iDepartureDate), + _pos (iPOS), _preferredDepartureDate (iDepartureDate), _requestDateTime (iRequestDateTime), _preferredCabin (iPreferredCabin), _partySize (iPartySize), _channel (iChannel), _tripType (iTripType), _stayDuration (iStayDuration), _frequentFlyerType (iFrequentFlyerType), - _preferredDepartureTime (iPreferredDepartureTime), _wtp (iWTP) { + _preferredDepartureTime (iPreferredDepartureTime), _wtp (iWTP), + _valueOfTime (iValueOfTime) { } // ////////////////////////////////////////////////////////////////////// @@ -50,11 +53,13 @@ // ////////////////////////////////////////////////////////////////////// const std::string BookingRequestStruct::describe() const { std::ostringstream oStr; - oStr << _origin << " - " << _destination << " " << _preferredDepartureDate + oStr << _origin << " - " << _destination + << " " << _pos << " " << _preferredDepartureDate << " " << _requestDateTime << " " << _preferredCabin << " " << _partySize << " " << _channel << " " << _tripType << " " << _stayDuration << " " << _frequentFlyerType - << " " << _preferredDepartureTime << " " << _wtp; + << " " << _preferredDepartureTime << " " << _wtp + << " " << _valueOfTime; return oStr.str(); } Modified: trunk/stdair/stdair/bom/BookingRequestStruct.hpp =================================================================== --- trunk/stdair/stdair/bom/BookingRequestStruct.hpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/bom/BookingRequestStruct.hpp 2010-02-17 13:01:56 UTC (rev 147) @@ -27,6 +27,11 @@ return _destination; } + /** Get the point-of-sale. */ + const AirportCode_T& getPOS() const { + return _pos; + } + /** Get the requested departure date. */ const Date_T& getPreferedDepartureDate() const { return _preferredDepartureDate; @@ -76,6 +81,11 @@ const WTP_T& getWTP() const { return _wtp; } + + /** Get the value of time. */ + const PriceValue_T& getValueOfTime () const { + return _valueOfTime; + } // /////////// Display support method ///////////// /** Dump a Business Object into an output stream. @@ -94,11 +104,11 @@ public : /** Constructor. */ BookingRequestStruct (const AirportCode_T&, const AirportCode_T&, - const Date_T&, const DateTime_T&, + const AirportCode_T&, const Date_T&, const DateTime_T&, const CabinCode_T&, const NbOfSeats_T&, const ChannelLabel_T&, const TripType_T&, const DayDuration_T&, const FrequentFlyer_T&, - const Duration_T&, const WTP_T&); + const Duration_T&, const WTP_T&, const PriceValue_T&); public : /** Default constructor. */ BookingRequestStruct (); @@ -116,6 +126,9 @@ /** Destination. */ const AirportCode_T _destination; + + /** Point-Of-Sale. */ + const AirportCode_T _pos; /** Departure date. */ const Date_T _preferredDepartureDate; @@ -147,6 +160,9 @@ /** Willingness-To-Pay. */ const WTP_T _wtp; + + /** Value of time. */ + const PriceValue_T _valueOfTime; }; } Modified: trunk/stdair/stdair/bom/DemandStreamContent.hpp =================================================================== --- trunk/stdair/stdair/bom/DemandStreamContent.hpp 2010-02-17 09:21:30 UTC (rev 146) +++ trunk/stdair/stdair/bom/DemandStreamContent.hpp 2010-02-17 13:01:56 UTC (rev 147) @@ -64,6 +64,11 @@ return _demandCharacteristics.getArrivalPattern(); } + /** Get the POS probability mass. */ + const POSProbabilityMass_T& getPOSProbabilityMass() const { + return _demandCharacteristics.getPOSProbabilityMass(); + } + /** Get the channel probability mass. */ const ChannelProbabilityMass_T& getChannelProbabilityMass() const { return _demandCharacteristics.getChannelProbabilityMass(); @@ -94,6 +99,11 @@ return _demandCharacteristics.getWTPCumulativeDistribution(); } + /** Get the value of time cumulative distribution. */ + const ValueOfTimeCumulativeDistribution_T& getValueOfTimeCumulativeDistribution() const { + return _demandCharacteristics.getValueOfTimeCumulativeDistribution(); + } + /** Get the mean number of requests. */ const NbOfRequests_T& getMeanNumberOfRequests() const { return _demandDistribution.getMeanNumberOfRequests(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |