From: <qua...@us...> - 2010-02-16 16:49:16
|
Revision: 144 http://stdair.svn.sourceforge.net/stdair/?rev=144&view=rev Author: quannaus Date: 2010-02-16 16:49:09 +0000 (Tue, 16 Feb 2010) Log Message: ----------- [dev] Added some attributes into BookingRequest. Modified Paths: -------------- trunk/stdair/stdair/STDAIR_Types.hpp trunk/stdair/stdair/basic/BasConst.cpp trunk/stdair/stdair/basic/CategoricalAttribute.hpp trunk/stdair/stdair/basic/ContinuousAttribute.hpp trunk/stdair/stdair/basic/DemandCharacteristics.cpp trunk/stdair/stdair/basic/DemandCharacteristics.hpp trunk/stdair/stdair/basic/sources.mk trunk/stdair/stdair/bom/BookingRequestStruct.cpp trunk/stdair/stdair/bom/BookingRequestStruct.hpp trunk/stdair/stdair/bom/DemandStreamContent.hpp Added Paths: ----------- trunk/stdair/stdair/basic/BasConst_Request.hpp trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp Removed Paths: ------------- trunk/stdair/stdair/basic/ArrivalPattern.hpp Modified: trunk/stdair/stdair/STDAIR_Types.hpp =================================================================== --- trunk/stdair/stdair/STDAIR_Types.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/STDAIR_Types.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -450,5 +450,16 @@ /** Type definition for the hashed key of the DemandStreamKey object. */ typedef std::string DemandStreamKeyStr_T; + + /** Type of booking channel (D=direct, I=indirect, N=oNline, F=oFfline). */ + typedef std::string ChannelLabel_T; + + /** Type of trip type (RO=outbound of round-trip, RI=inbound of round-trip, + OW=one way). */ + typedef std::string TripType_T; + + /** Type of frequent flyer (P=Platinum, G=Gold, S=Silver, M=Member, N=None). */ + typedef std::string FrequentFlyer_T; + } #endif // __STDAIR_STDAIR_TYPES_HPP Deleted: trunk/stdair/stdair/basic/ArrivalPattern.hpp =================================================================== --- trunk/stdair/stdair/basic/ArrivalPattern.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/ArrivalPattern.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -1,27 +0,0 @@ -#ifndef __STDAIR_BAS_ARRIVALPATTERN_HPP -#define __STDAIR_BAS_ARRIVALPATTERN_HPP - -// ////////////////////////////////////////////////////////////////////// -// Import section -// ////////////////////////////////////////////////////////////////////// -// StdAir -#include <stdair/STDAIR_Types.hpp> -#include <stdair/basic/ContinuousAttribute.hpp> - -namespace stdair { - - /** Type definition for the continuous distribition of the duration - (as a float number). */ - typedef ContinuousAttribute<FloatDuration_T> ContinuousFloatDuration_T; - - /** Type definition for the arrival pattern. */ - typedef ContinuousFloatDuration_T::ContinuousDistribution_T ArrivalPattern_T; - - /** Type definition for the arrival pattern cumulative distribution. */ - typedef std::multimap<FloatDuration_T, Probability_T> ArrivalPatternCumulativeDistribution_T; - - /** Type definition for the arrival pattern inverse cumulative distribution. */ - typedef std::multimap<Probability_T, FloatDuration_T> ArrivalPatternInverseCumulativeDistribution_T; - -} -#endif // __STDAIR_BAS_ARRIVALPATTERN_HPP Modified: trunk/stdair/stdair/basic/BasConst.cpp =================================================================== --- trunk/stdair/stdair/basic/BasConst.cpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/BasConst.cpp 2010-02-16 16:49:09 UTC (rev 144) @@ -6,6 +6,7 @@ // STDAIR #include <stdair/STDAIR_Types.hpp> #include <stdair/basic/BasConst_General.hpp> +#include <stdair/basic/BasConst_Request.hpp> #include <stdair/basic/BasConst_Inventory.hpp> #include <stdair/basic/BasConst_BookingClass.hpp> #include <stdair/basic/BasConst_Yield.hpp> @@ -24,92 +25,11 @@ /** Default number of generated flight dates . */ const NbOfFlightDates_T DEFAULT_NB_OF_FLIGHTDATES = 0.0; - - // // ///////// GSL ///////// - // /** Default (GSL) random generator type. */ - // const gsl_rng_type* DEFAULT_LATUS_RANDOM_GENERATOR_TYPE = gsl_rng_default; - - // /** Default seed value for Exponential distribution. */ - // const ExponentialSeed_T DEFAULT_EXPONENTIAL_SEED = 0; - - // /** Default seed value for Exponential distribution. */ - // const UniformSeed_T DEFAULT_UNIFORM_SEED = 0; - - // // ///////// Labels in General Configuration Files ///////// - // /** Default file path separator*/ - // const std::string DEFAULT_CONFIG_FILEPATH_SEPARATOR = "/"; - - // /** Default label for RDS. */ - // const std::string DEFAULT_CONFIG_RDS_LABEL = "rds"; - // /** Default label for RDS file path. */ - // const std::string DEFAULT_CONFIG_RDS_FILEPATH_LABEL = "rds_path"; - // /** Default label for RDS Id (= folder holding RDS). */ - // const std::string DEFAULT_CONFIG_RDS_ID_LABEL = "rds_id"; - // /** Default label for RDS manifest. */ - // const std::string DEFAULT_CONFIG_RDS_MANIFEST_LABEL = "rds_manifest"; - // /** Default label for RDS airline configuration file name. */ - // const std::string DEFAULT_CONFIG_RDS_AIRLINE_CONFIGURATION_LABEL = - // "airlineconfiguration"; - - // /** Default label for output files. */ - // const std::string DEFAULT_CONFIG_OUTPUT_FILE_LABEL = "output_files"; - // /** Default label for inventory output file name. */ - // const std::string DEFAULT_CONFIG_INVENTORY_OUTPUT_FILE_LABEL = - // "inventory_output"; - // /** Default label for simulation output file name. */ - // const std::string DEFAULT_CONFIG_SIMULATION_OUTPUT_FILE_LABEL = - // "simulation_output"; - - // // ///////// Lables in RDS XML file ///////// - // const std::string DEFAULT_CONFIG_RDS_DEMAND_ARRIVAL_FILENAME_LABEL = - // "demandpattern"; - // const std::string DEFAULT_CONFIG_RDS_CANCEL_FILENAME_LABEL = - // "cancelratecurve"; - // const std::string DEFAULT_CONFIG_RDS_CHARACTERISTIC_FILENAME_LABEL = - // "characteristics"; - // const std::string DEFAULT_CONFIG_RDS_DEMAND_FILENAME_LABEL = "demands"; - // const std::string DEFAULT_CONFIG_RDS_SCHEDULE_FILENAME_LABEL = "schedule"; - // const std::string DEFAULT_CONFIG_RDS_FARE_FILENAME_LABEL = "fares"; - // const std::string DEFAULT_CONFIG_RDS_YIELD_FILENAME_LABEL = "yields"; - // const std::string DEFAULT_CONFIG_RDS_AU_RULES_FILENAME_LABEL = "aurules"; - // const std::string DEFAULT_CONFIG_RDS_LFDTD_RULES_FILENAME_LABEL = "lfdtdrules"; - // const std::string DEFAULT_CONFIG_RDS_DCP_FILENAME_LABEL = - // "datacollectionpoints"; - - // // ///////// BOOST Date-Time ///////// - // // Time duration representing a full day - // // (i.e., 24h or 1,440 minutes or 86,400 seconds) - - // /** Time duration representing a full day (in boost::time_duration unit).*/ - // const Duration_T BOOST_TIME_DURATION_FOR_A_DAY = - // boost::posix_time::hours(24); - - // /** Time duration representing a full day (in seconds).*/ - // const int TIME_DURATION_FOR_A_DAY_IN_SECONDS = - // static_cast<const int> (BOOST_TIME_DURATION_FOR_A_DAY.total_seconds()); - - // /** Time duration representing a full hour (in seconds).*/ - // const int TIME_DURATION_FOR_AN_HOUR_IN_SECONDS = 3600; - - // /** Time duration representing a full minute (in seconds).*/ - // const int TIME_DURATION_FOR_A_MINUTE_IN_SECONDS = 60; - /** Null time duration (in boost::time_duration unit).*/ const Duration_T NULL_BOOST_TIME_DURATION = boost::posix_time::hours(0)+ boost::posix_time::minutes (0) + boost::posix_time::seconds (0); - // /** Date duration representing a full day (in boost::date_duration unit).*/ - // const DateOffSet_T BOOST_DATE_DURATION_FOR_A_DAY (1); - - // /** Date duration representing the window of time used for statistical - // analysis. */ - // const DateOffSet_T DEFAULT_ANALYSIS_TIME_WINDOW (180); - - // /** Date duration representing the period of reservation for a - // typical flight. */ - // const DateOffSet_T DEFAULT_RESERVATION_PERIOD_LENGTH (365); - // //////// (Flight-)Period-related BOM /////// /** Default number of duration days. */ @@ -144,6 +64,7 @@ /** Number of milliseconds in one second */ const Count_T MILLISECONDS_IN_ONE_SECOND = 1000; + // //////// Fare Rules /////// /** Default saturdayStay value (false). */ const SaturdayStay_T DEFAULT_SATURDAY_STAY = false; @@ -178,34 +99,7 @@ /** Default flightPathCode value (''). */ const FlightPathCode_T DEFAULT_FLIGHTPATH_CODE = ""; - // // //////// DemandFeatures /////// - // /** Default SaturdayStay average ratio of demand (value between [0, 100]). */ - // const SaturdayStayRatio_T DEFAULT_SATURDAY_STAY_RATIO = 50; - // /** Default Change fees average ratio (value between [0, 100]). */ - // const ChangeFeesRatio_T DEFAULT_CHANGE_FEES_RATIO = 50; - - // /** Default Non refundable average ratio (value between [0, 100]). */ - // const NonRefundableRatio_T DEFAULT_NON_REFUNDABLE_RATIO = 50; - - // /** Default passenger type (Leisure or Business). */ - // const PassengerType_T DEFAULT_PASSENGER_TYPE = "L"; - - // /** Default distribution pattern identifier. */ - // const DistributionPatternId_T DEFAULT_DISTRIBUTION_PATTERN_ID = ""; - - // /** Default cancellation rate curve identifier. */ - // const CancellationRateCurveId_T DEFAULT_CANCELLATION_RATE_CURVE_ID = ""; - - // /** Default airline preference identifier. */ - // const AirlinePreferenceId_T DEFAULT_AIRLINE_PREFERENCE_ID = ""; - - // /** Default percentage pair of cancellation and no-show. */ - // const CancellationNoShowRatePair_T DEFAULT_PERCENTAGE_PAIR (0.0, 0.0); - - // /** Default characteristics pattern identifier. */ - // const CharacteristicsPatternId_T DEFAULT_CHARACTERISTICS_PATTERN_ID = ""; - // //////// (Segment-)Class-related BOM /////// /** Default distance value (kilometers). */ const Distance_T DEFAULT_DISTANCE_VALUE = 0; @@ -286,6 +180,7 @@ /** Default load factor value (100%). */ const Percentage_T DEFAULT_LOAD_FACTOR_VALUE = 100.0; + // //////// (Leg-)YieldRange-related BOM /////// /** Default yield value. */ const Yield_T DEFAULT_YIELD_VALUE = 0.0; @@ -322,156 +217,25 @@ /** Default value of Fare. */ const Fare_T DEFAULT_OND_FARE_VALUE = 0.0; - // /** Default number of bookings. */ - // const NbOfBookings_T DEFAULT_OND_NB_OF_BOOKINGS = 0.0; + // //////// Booking Request ///////// + /** Default party size in a request. */ + const PartySize_T DEFAULT_PARTY_SIZE = 1; - // /** Default remaining future demand mean for OnD. */ - // const NbOfBookings_T DEFAULT_OND_REMAINING_DEMAND_MEAN = 0.0; - - // /** Default remaining futre demand standard deviation for OnD. */ - // const NbOfBookings_T DEFAULT_OND_REMAINING_DEMAND_STANDARD_DEVIATION = 0.0; - // //////// Travel Solutions /////// - /** Default Minimum connection time. */ - const Duration_T DEFAULT_MINIMUM_CONNECTION_TIME (0, 30, 0); + // //////// Travel Solutions /////// + /** Default Minimum connection time. */ + const Duration_T DEFAULT_MINIMUM_CONNECTION_TIME (0, 30, 0); - /** Default Matching Indicator value. */ - const MatchingIndicator_T DEFAULT_MATCHING_INDICATOR (0.0); + /** Default Matching Indicator value. */ + const MatchingIndicator_T DEFAULT_MATCHING_INDICATOR (0.0); - /** Default price value (0.0). */ - // const PriceValue_T DEFAULT_PRICE_VALUE (0.0); + /** Default currency (euro). */ + const PriceCurrency_T DEFAULT_CURRENCY ("EUR"); - /** Default currency (euro). */ - const PriceCurrency_T DEFAULT_CURRENCY ("EUR"); + /** Default availability status for a travel solution. */ + const AvailabilityStatus_T DEFAULT_AVAILABILITY_STATUS = false; - /** Default availability status for a travel solution. */ - const AvailabilityStatus_T DEFAULT_AVAILABILITY_STATUS = false; - // // //////// Cancellation /////// - // /** Default Fare value */ - // const Fare_T DEFAULT_FARE_VALUE = 0.0; - - // /** Default number of bookings. */ - // const NbOfBookings_T DEFAULT_NB_OF_BOOKINGS = 0; - - // /** Default date&time. */ - // const DateTime_T DEFAULT_CANCELLATION_DATETIME - // (DEFAULT_WORLD_SCHEDULE_UPDATE_DATE, - // NULL_BOOST_TIME_DURATION); - - // // //////// CityPair //////// - // /** Default booking date for BookingDay. */ - // const Date_T DEFAULT_BOOKING_DATE (2007, boost::gregorian::Jan, 1); - - // /** Default departure date for CityPairDate. */ - // const Date_T DEFAULT_DEPARTURE_DATE (2008, boost::gregorian::Jan, 1); - - // /** Date duration representing the time during which a flight-date is open - // to the reservation (in boost::date_duration unit).*/ - // const DateOffSet_T DEFAULT_FLIGHT_DATE_RESERVATION_DURATION (365); - - // /** Default number of seats required whenever a demand is processed into - // the simulator. */ - // const unsigned short DEFAULT_NUMBER_OF_REQUIRED_SEATS = 1; - - // // //////// Flight Period Actions //////// - // // //////// RMS mode /////// - // /** Default forecaster mode. */ - // const ForecasterMode_T DEFAULT_FORECAST_MODE = "NoForecast"; - - // /** First forecaster mode. */ - // const ForecasterMode_T FIRST_FORECAST_MODE = "Forecaster1"; - - // /** Basic forecaster mode. */ - // const ForecasterMode_T BASIC_FORECAST_MODE = "BasicForecaster"; - - // /** Neural forecaster mode. */ - // const ForecasterMode_T NEURAL_FORECAST_MODE = "NeuralForecaster"; - - // /** Q forecaster mode. */ - // const ForecasterMode_T Q_FORECAST_MODE = "QForecaster"; - - // /** Default optimizer mode. */ - // const OptimizerMode_T DEFAULT_OPTIMIZER_MODE = "FCFS"; - - // /** Optimizer mode for rules like LF & DTD threshold. */ - // const OptimizerMode_T LF_DTD_RULES_OPTIMIZER_MODE = "LFDTDRules"; - - // /** Optimizer mode for EMSR heuristic. */ - // const OptimizerMode_T EMSR_OPTIMIZER_MODE = "EMSR"; - - // /** Optimizer mode for EMSR-a heuristic. */ - // const OptimizerMode_T EMSRA_OPTIMIZER_MODE = "EMSRa"; - - // // /** Optimizer mode for EMSR-a with sell up probability. */ - // // const OptimizerMode_T EMSRA_SELLUP_OPTIMIZER_MODE = "EMSRaSellup"; - - // /** Optimizer mode for EMSR-b heuristic. */ - // const OptimizerMode_T EMSRB_OPTIMIZER_MODE = "EMSRb"; - - // /** Optimizer mode for Optimal Optimization by Monte-Carlo. */ - // const OptimizerMode_T MC_OPTIMIZER_MODE = "MC"; - - // /** Optimizer mode for Leg-Based Iterative DAVN Optimization with - // Monte-Carlo. */ - // const OptimizerMode_T LB_ITERATIVE_DAVN_OPTIMIZER_WITH_MC_MODE = "LB_DAVN_MC"; - - // /** Optimizer mode for Leg-Based Iterative DAVN Optimization with - // EMSR. */ - // const OptimizerMode_T LB_ITERATIVE_DAVN_OPTIMIZER_WITH_EMSR_MODE = "LB_DAVN_EMSR"; - - // // /** No sell-up for optimizer by default*/ - // // const SellupFlagForOptimizer_T DEFAULT_SELLUP_FLAG_FOR_OPTIMIZER = false; - - // /** Defaut control mode. */ - // const ControlMode_T DEFAULT_CONTROL_MODE = "STD"; - - // /** Theft control mode. */ - // const ControlMode_T THEFT_CONTROL_MODE = "THEFT"; - - // /** Default number of draws for Monte-Carlo Integration method. */ - // const int DEFAULT_NUMBER_OF_RANDOM_DRAWS = 1000; - - // /** Default epsilon for convergence test. */ - // const double DEFAULT_CONVERGENCE_EPSILON = 0.1; - - // /** Default max number of iterations for Iterative DAVN. */ - // const int DEFAULT_NB_OF_ITERATIONS_DAVN = 10; - - // // //////// Characteristics /////// - // /** Default k-factor (0.3).*/ - // const Multiplier_T DEFAULT_KFACTOR = 0.3; - - // /** Default basefare [used for computing WTP] (0).*/ - // const Fare_T DEFAULT_BASEFARE = 0; - - // /** Default elasticity multiplier [used for computing WTP] (1.5). */ - // const Multiplier_T DEFAULT_EMULTIPLIER = 1.5; - - // // //////// DICO mode /////// - // /** Default DICO studied airline. */ - // const AirlineCode_T DEFAULT_DICO_AIRLINE = "AD"; - // //const AirlineCode_T DEFAULT_DICO_STUDIED_AIRLINE = "AA"; - - // /** Default second studied airline for DICO. */ - // const AirlineCode_T DEFAULT_SECOND_DICO_AIRLINE = "AL"; - // //const AirlineCode_T DEFAULT_SECOND_DICO_STUDIED_AIRLINE = "BA"; - - // /** Default DICO studied date. */ - // const Date_T DEFAULT_DICO_STUDIED_DATE (2009, boost::gregorian::Jun, 29); - // //const Date_T DEFAULT_DICO_STUDIED_DATE (2009, boost::gregorian::Jun, 27); - - // /** Default DICO optimiser (dico mode). */ - // const DicoOptimizerMode_T DEFAULT_DICO_OPTIMIZER = "dico"; - - // /** Default DICO optimiser (robust dico mode). */ - // const DicoOptimizerMode_T DEFAULT_ROBUST_DICO_OPTIMIZER = - // "robustdico"; - - // /** Default DICO optimiser (fast robust dico mode). */ - // const DicoOptimizerMode_T DEFAULT_FAST_ROBUST_DICO_OPTIMIZER = - // "fastrobustdico"; - // //////// Inventory-related BOM /////// /** Default Bid-Price. */ const BidPrice_T DEFAULT_BID_PRICE = 0.0; Copied: trunk/stdair/stdair/basic/BasConst_Request.hpp (from rev 143, trunk/stdair/stdair/basic/BasConst_General.hpp) =================================================================== --- trunk/stdair/stdair/basic/BasConst_Request.hpp (rev 0) +++ trunk/stdair/stdair/basic/BasConst_Request.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -0,0 +1,16 @@ +#ifndef __STDAIR_BAS_BASCONST_REQUEST_HPP +#define __STDAIR_BAS_BASCONST_REQUEST_HPP + +// ////////////////////////////////////////////////////////////////////// +// Import section +// ////////////////////////////////////////////////////////////////////// +// StdAir +#include <stdair/STDAIR_Types.hpp> + +namespace stdair { + + /** Default party size in a request. */ + extern const PartySize_T DEFAULT_PARTY_SIZE; + +} +#endif // __STDAIR_BAS_BASCONST_REQUEST_HPP Modified: trunk/stdair/stdair/basic/CategoricalAttribute.hpp =================================================================== --- trunk/stdair/stdair/basic/CategoricalAttribute.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/CategoricalAttribute.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -18,69 +18,101 @@ struct CategoricalAttribute { public: + /** Define the probability mass function type. */ + typedef std::map<T, Probability_T> ProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution type. */ + typedef std::map<Probability_T, T> InverseCumulativeDistribution_T; + + public: // ///////////// Getters /////////// /** Get the probability mass function. */ const std::map<T,Probability_T>& getProbabilityMassFunction() const { - return _probability_mass_function; + return _probabilityMassFunction; } /** Get the inverse cumulative distribution. */ - const std::map<Probability_T, T>& getInverseCumulativeDistribution () const { - return _inverse_cumulative_distribution; + const InverseCumulativeDistribution_T& getInverseCumulativeDistribution () const { + return _inverseCumulativeDistribution; } // ///////////// Setters /////////// /** Set the probability mass function */ - void setProbabilityMassFunction (const std::map<T, Probability_T>& iProbabilityMassFunction) { - _probability_mass_function = iProbabilityMassFunction; + void setProbabilityMassFunction (const ProbabilityMassFunction_T& iProbabilityMassFunction) { + _probabilityMassFunction = iProbabilityMassFunction; determineInverseCumulativeDistributionFromProbabilityMassFunction(); } public: // /////////////// Business Methods ////////// /** Get value from inverse cumulative distribution. */ - T getValue(Probability_T iCumulativeProbability) { - return _inverse_cumulative_distribution.lower_bound(iCumulativeProbability)->second; + const T getValue (Probability_T iCumulativeProbability) const { + return _inverseCumulativeDistribution. + lower_bound (iCumulativeProbability)->second; } public: // ////////////// Display Support Methods ////////// - /** Display inverse cumulative distribution */ - void displayInverseCumulativeDistribution (std::ostream& ioStream) const { - for (typename std::map<Probability_T, T>::const_iterator it = _inverse_cumulative_distribution.begin(); - it != _inverse_cumulative_distribution.end(); ++it) { - ioStream << "cumulative prob: " << it->first + /** Display probability mass function. */ + const std::string displayProbabilityMassFunction () const { + std::ostringstream oStr; + unsigned int idx = 0; + + for (typename ProbabilityMassFunction_T::const_iterator it = + _probabilityMassFunction.begin(); + it != _probabilityMassFunction.end(); ++it, ++idx) { + if (idx != 0) { + oStr << ", "; + } + oStr << it->first << ":" << it->second; + } + + return oStr.str(); + } + + /** Display inverse cumulative distribution. */ + const std::string displayInverseCumulativeDistribution () const { + std::ostringstream oStr; + + for (typename InverseCumulativeDistribution_T::const_iterator it = + _inverseCumulativeDistribution.begin(); + it != _inverseCumulativeDistribution.end(); ++it) { + oStr << "cumulative prob: " << it->first << " value: " << it->second << std::endl; } + + return oStr.str(); } public: // ////////// Constructors and destructors ///////// /** Constructor by default */ - CategoricalAttribute (const std::map<T, Probability_T>& iProbabilityMassFunction) - : _probability_mass_function (iProbabilityMassFunction) { + CategoricalAttribute (const ProbabilityMassFunction_T& iProbabilityMassFunction) + : _probabilityMassFunction (iProbabilityMassFunction) { determineInverseCumulativeDistributionFromProbabilityMassFunction(); } + /** Default constructors. */ + CategoricalAttribute () { } + CategoricalAttribute (const CategoricalAttribute& iCategoricalAttribute) + : _probabilityMassFunction (iCategoricalAttribute._probabilityMassFunction) { + determineInverseCumulativeDistributionFromProbabilityMassFunction(); + } /** Destructor */ virtual ~CategoricalAttribute () { } - private: - /** Default constructors. */ - CategoricalAttribute (); - CategoricalAttribute (const CategoricalAttribute&); /** Determine inverse cumulative distribution from probability mass function (initialisation). */ void determineInverseCumulativeDistributionFromProbabilityMassFunction () { Probability_T cumulative_probability_so_far = 0.0; - for (typename std::map<T, Probability_T>::const_iterator itProbabilityMassFunction = _probability_mass_function.begin(); - itProbabilityMassFunction != _probability_mass_function.end(); + for (typename ProbabilityMassFunction_T::const_iterator itProbabilityMassFunction = _probabilityMassFunction.begin(); + itProbabilityMassFunction != _probabilityMassFunction.end(); ++itProbabilityMassFunction) { Probability_T attribute_probability_mass = itProbabilityMassFunction->second; if (attribute_probability_mass > 0) { T attribute_value = itProbabilityMassFunction->first; cumulative_probability_so_far += attribute_probability_mass; - _inverse_cumulative_distribution[cumulative_probability_so_far] = attribute_value; + _inverseCumulativeDistribution[cumulative_probability_so_far] = attribute_value; } } } @@ -88,10 +120,10 @@ private: // ////////// Attributes ////////// /** Probability mass function */ - std::map<T, Probability_T> _probability_mass_function; + ProbabilityMassFunction_T _probabilityMassFunction; /** Inverse cumulative distribution */ - std::map<Probability_T, T> _inverse_cumulative_distribution; + InverseCumulativeDistribution_T _inverseCumulativeDistribution; }; } Modified: trunk/stdair/stdair/basic/ContinuousAttribute.hpp =================================================================== --- trunk/stdair/stdair/basic/ContinuousAttribute.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/ContinuousAttribute.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -48,7 +48,7 @@ // /////////////// Business Methods ////////// /** Get value from inverse cumulative distribution. */ const T getValue (const Probability_T& iCumulativeProbability) const { - typename ContinuousDistribution_T::const_iterator it = + typename ContinuousInverseDistribution_T::const_iterator it = _inverseCumulativeDistribution.lower_bound (iCumulativeProbability); Probability_T cumulativeProbabilityNextPoint = it->first; @@ -63,15 +63,9 @@ Probability_T cumulativeProbabilityPreviousPoint = it->first; T valuePreviousPoint = it->second; if (cumulativeProbabilityNextPoint == cumulativeProbabilityPreviousPoint) { - //std::cout << "hlelo2" << std::endl; return valuePreviousPoint; } - //std::cout << "cumulativeProbabilityPreviousPoint: " << cumulativeProbabilityPreviousPoint << std::endl; - //std::cout << "cumulativeProbabilityNextPoint: " << cumulativeProbabilityNextPoint << std::endl; - //std::cout << "valuePreviousPoint: " << valuePreviousPoint << std::endl; - //std::cout << "valueNextPoint: " << valueNextPoint << std::endl; - return valuePreviousPoint + (valueNextPoint - valuePreviousPoint) * (iCumulativeProbability - cumulativeProbabilityPreviousPoint) / (cumulativeProbabilityNextPoint - cumulativeProbabilityPreviousPoint); @@ -80,7 +74,7 @@ public: // ////////////// Display Support Methods ////////// /** Display cumulative distribution */ - std::string displayCumulativeDistribution() const { + const std::string displayCumulativeDistribution() const { std::ostringstream oStr; unsigned int idx = 0; for (typename ContinuousDistribution_T::const_iterator it = @@ -95,7 +89,7 @@ } /** Display inverse cumulative distribution */ - std::string displayInverseCumulativeDistribution() const { + const std::string displayInverseCumulativeDistribution() const { std::ostringstream oStr; for (typename ContinuousInverseDistribution_T::const_iterator it = _inverseCumulativeDistribution.begin(); @@ -134,8 +128,9 @@ itCumulativeDistribution != _cumulativeDistribution.end(); ++itCumulativeDistribution) { _inverseCumulativeDistribution. - insert (std::pair<float, float> (itCumulativeDistribution->second, - itCumulativeDistribution->first)); + insert (typename ContinuousInverseDistribution_T:: + value_type (itCumulativeDistribution->second, + itCumulativeDistribution->first)); } } Copied: trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp (from rev 143, trunk/stdair/stdair/basic/ArrivalPattern.hpp) =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp (rev 0) +++ trunk/stdair/stdair/basic/DemandCharacteristicTypes.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -0,0 +1,82 @@ +#ifndef __STDAIR_BAS_DEMANDCHARACTERISTICTYPES_HPP +#define __STDAIR_BAS_DEMANDCHARACTERISTICTYPES_HPP + +// ////////////////////////////////////////////////////////////////////// +// Import section +// ////////////////////////////////////////////////////////////////////// +// StdAir +#include <stdair/STDAIR_Types.hpp> +#include <stdair/basic/ContinuousAttribute.hpp> +#include <stdair/basic/CategoricalAttribute.hpp> + +namespace stdair { + + /** Type definition for the continuous distribition of the duration + (as a float number). */ + typedef ContinuousAttribute<FloatDuration_T> ContinuousFloatDuration_T; + + /** Type definition for the arrival pattern. */ + typedef ContinuousFloatDuration_T::ContinuousDistribution_T ArrivalPattern_T; + + /** Type definition for the arrival pattern cumulative distribution. */ + typedef std::multimap<FloatDuration_T, Probability_T> ArrivalPatternCumulativeDistribution_T; + + /** Type definition for the arrival pattern inverse cumulative distribution. */ + typedef std::multimap<Probability_T, FloatDuration_T> ArrivalPatternInverseCumulativeDistribution_T; + + /** Define the booking channel probablity mass. */ + typedef CategoricalAttribute<ChannelLabel_T> ChannelProbabilityMass_T; + + /** Define the probability mass function type of booking channel. */ + typedef ChannelProbabilityMass_T::ProbabilityMassFunction_T ChannelProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution of channel. */ + typedef ChannelProbabilityMass_T::InverseCumulativeDistribution_T ChannelInverserCumulativeDistribution_T; + + /** Define the trip type probablity mass. */ + typedef CategoricalAttribute<TripType_T> TripTypeProbabilityMass_T; + + /** Define the probability mass function type of trip type. */ + typedef TripTypeProbabilityMass_T::ProbabilityMassFunction_T TripTypeProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution of trip type. */ + typedef TripTypeProbabilityMass_T::InverseCumulativeDistribution_T TripTypeInverserCumulativeDistribution_T; + + /** Define the stay duration probablity mass. */ + typedef CategoricalAttribute<DayDuration_T> StayDurationProbabilityMass_T; + + /** Define the probability mass function type of stay duration. */ + typedef StayDurationProbabilityMass_T::ProbabilityMassFunction_T StayDurationProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution of stay duration. */ + typedef StayDurationProbabilityMass_T::InverseCumulativeDistribution_T StayDurationInverserCumulativeDistribution_T; + + /** Define the frequent flyer probablity mass. */ + typedef CategoricalAttribute<FrequentFlyer_T> FrequentFlyerProbabilityMass_T; + + /** Define the probability mass function type of frequent flyer. */ + typedef FrequentFlyerProbabilityMass_T::ProbabilityMassFunction_T FrequentFlyerProbabilityMassFunction_T; + + /** Define the inverse cumulative distribution of frequent flyer. */ + typedef FrequentFlyerProbabilityMass_T::InverseCumulativeDistribution_T FrequentFlyerInverserCumulativeDistribution_T; + + /** Define the preferred departure time cumulative distribution. */ + typedef ContinuousAttribute<IntDuration_T> PreferredDepartureTimeCumulativeDistribution_T; + + /** Define the preferred departure time continuous distribution. */ + typedef PreferredDepartureTimeCumulativeDistribution_T::ContinuousDistribution_T PreferredDepartureTimeContinuousDistribution_T; + + /** Define the preferred departure time continuous inverse distribution. */ + typedef PreferredDepartureTimeCumulativeDistribution_T::ContinuousInverseDistribution_T PreferredDepartureTimeContinuousInverseDistribution_T; + + /** Define the willingness-to-pay cumulative distribution. */ + typedef ContinuousAttribute<WTP_T> WTPCumulativeDistribution_T; + + /** Define the willingness-to-pay continuous distribution. */ + typedef WTPCumulativeDistribution_T::ContinuousDistribution_T WTPContinuousDistribution_T; + + /** Define the willingness-to-pay continuous inverse distribution. */ + typedef WTPCumulativeDistribution_T::ContinuousInverseDistribution_T WTPContinuousInverseDistribution_T; + +} +#endif // __STDAIR_BAS_DEMANDCHARACTERISTICTYPES_HPP Modified: trunk/stdair/stdair/basic/DemandCharacteristics.cpp =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristics.cpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/DemandCharacteristics.cpp 2010-02-16 16:49:09 UTC (rev 144) @@ -12,8 +12,22 @@ namespace stdair { // ///////////////////////////////////////////////////// - DemandCharacteristics::DemandCharacteristics (const DemandStreamKey_T& iKey) - : _key (iKey) { + DemandCharacteristics:: + DemandCharacteristics (const DemandStreamKey_T& iKey, + const ContinuousFloatDuration_T& iArrivalPattern, + const ChannelProbabilityMass_T& iChannelProbMass, + const TripTypeProbabilityMass_T& iTripTypeProbMass, + const StayDurationProbabilityMass_T& iStayDurationProbMass, + const FrequentFlyerProbabilityMass_T& iFrequentFlyerProbMass, + const PreferredDepartureTimeCumulativeDistribution_T& iPreferredDepartureTimeCumulativeDistribution, + const WTPCumulativeDistribution_T& iWTPCumulativeDistribution) + : _key (iKey), _arrivalPattern (iArrivalPattern), + _channelProbabilityMass (iChannelProbMass), + _tripTypeProbabilityMass (iTripTypeProbMass), + _stayDurationProbabilityMass (iStayDurationProbMass), + _frequentFlyerProbabilityMass (iFrequentFlyerProbMass), + _preferredDepartureTimeCumulativeDistribution (iPreferredDepartureTimeCumulativeDistribution), + _wtpCumulativeDistribution (iWTPCumulativeDistribution) { } // ///////////////////////////////////////////////////// @@ -29,7 +43,13 @@ DemandCharacteristics:: DemandCharacteristics (const DemandCharacteristics& iDemandCharacteristics) : _key (iDemandCharacteristics._key), - _arrivalPattern (iDemandCharacteristics._arrivalPattern) { + _arrivalPattern (iDemandCharacteristics._arrivalPattern), + _channelProbabilityMass (iDemandCharacteristics._channelProbabilityMass), + _tripTypeProbabilityMass (iDemandCharacteristics._tripTypeProbabilityMass), + _stayDurationProbabilityMass (iDemandCharacteristics._stayDurationProbabilityMass), + _frequentFlyerProbabilityMass (iDemandCharacteristics._frequentFlyerProbabilityMass), + _preferredDepartureTimeCumulativeDistribution (iDemandCharacteristics._preferredDepartureTimeCumulativeDistribution), + _wtpCumulativeDistribution (iDemandCharacteristics._wtpCumulativeDistribution) { } // ///////////////////////////////////////////////////// @@ -68,9 +88,25 @@ oStr << "Preferred cabin .................. : " << _key.getPreferredCabin() << std::endl; oStr << "Arrival pattern (days from departure, proportion): "; + oStr << _arrivalPattern.displayCumulativeDistribution() << std::endl; + oStr << "Channel probability mass (channel, propotion): "; + oStr << _channelProbabilityMass.displayProbabilityMassFunction() + << std::endl; + oStr << "Trip type probability mass (trip type, propotion): "; + oStr << _tripTypeProbabilityMass.displayProbabilityMassFunction() + << std::endl; + oStr << "Stay duration probability mass (number of days, propotion): "; + oStr << _stayDurationProbabilityMass.displayProbabilityMassFunction() + << std::endl; + oStr << "Frequent flyer probability mass (frequent flyer, propotion): "; + oStr << _frequentFlyerProbabilityMass.displayProbabilityMassFunction() + << std::endl; + oStr << "Preferred departure time cumulative distribution (time, proportion: "; + oStr << _preferredDepartureTimeCumulativeDistribution.displayCumulativeDistribution() << std::endl; + oStr << "WTP cumulative distribution (WTP, proportion: "; + oStr << _wtpCumulativeDistribution.displayCumulativeDistribution() + << std::endl; - // - oStr << _arrivalPattern.displayCumulativeDistribution() << std::endl; return oStr.str(); } Modified: trunk/stdair/stdair/basic/DemandCharacteristics.hpp =================================================================== --- trunk/stdair/stdair/basic/DemandCharacteristics.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/DemandCharacteristics.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -8,7 +8,7 @@ #include <string> // StdAir #include <stdair/STDAIR_Types.hpp> -#include <stdair/basic/ArrivalPattern.hpp> +#include <stdair/basic/DemandCharacteristicTypes.hpp> #include <stdair/bom/DemandStreamKey.hpp> namespace stdair { @@ -40,14 +40,35 @@ return _arrivalPattern; } + /** Get the channel probability mass. */ + const ChannelProbabilityMass_T& getChannelProbabilityMass() const { + return _channelProbabilityMass; + } + + /** Get the trip type probability mass. */ + const TripTypeProbabilityMass_T& getTripTypeProbabilityMass() const { + return _tripTypeProbabilityMass; + } - public: - // ///////////// Setters /////////// - /** Set the arrival pattern. */ - void setArrivalPattern (const ContinuousFloatDuration_T& iArrivalPattern) { - _arrivalPattern = iArrivalPattern; + /** Get the stay duration probability mass. */ + const StayDurationProbabilityMass_T& getStayDurationProbabilityMass() const { + return _stayDurationProbabilityMass; } + /** Get the frequent flyer probability mass. */ + const FrequentFlyerProbabilityMass_T& getFrequentFlyerProbabilityMass() const { + return _frequentFlyerProbabilityMass; + } + + /** Get the preferred departure time cumulative distribution. */ + const PreferredDepartureTimeCumulativeDistribution_T& getPreferredDepartureTimeCumulativeDistribution () const { + return _preferredDepartureTimeCumulativeDistribution; + } + + /** Get the WTP cumulative distribution. */ + const WTPCumulativeDistribution_T& getWTPCumulativeDistribution() const { + return _wtpCumulativeDistribution; + } public: // ////////////// Display Support Methods ////////// @@ -58,7 +79,14 @@ public: // ////////// Constructors and destructors ///////// /** Default constructor. */ - DemandCharacteristics (const DemandStreamKey_T& iKey); + DemandCharacteristics (const DemandStreamKey_T&, + const ContinuousFloatDuration_T&, + const ChannelProbabilityMass_T&, + const TripTypeProbabilityMass_T&, + const StayDurationProbabilityMass_T&, + const FrequentFlyerProbabilityMass_T&, + const PreferredDepartureTimeCumulativeDistribution_T&, + const WTPCumulativeDistribution_T&); /** Default constructor. */ // TODO: That copy constructor should be private @@ -80,13 +108,25 @@ /** Arrival pattern (cumulative distribution of timing of arrival of requests (negative number of days between departure date and request date). */ - ContinuousFloatDuration_T _arrivalPattern; + const ContinuousFloatDuration_T _arrivalPattern; + + /** Channel probability mass. */ + const ChannelProbabilityMass_T _channelProbabilityMass; /** Trip type probability mass */ - // CategoricalAttribute<TripType_T> _tripTypeProbabilityMass; + const TripTypeProbabilityMass_T _tripTypeProbabilityMass; + /** Stay duration probability mass */ + const StayDurationProbabilityMass_T _stayDurationProbabilityMass; + + /** Frequent flyer probability mass */ + const FrequentFlyerProbabilityMass_T _frequentFlyerProbabilityMass; + + /** Preferred departure time cumulative distribution. */ + const PreferredDepartureTimeCumulativeDistribution_T _preferredDepartureTimeCumulativeDistribution; + /** Willingness-to-pay cumulative distribution */ - // ContinuousAttribute<MonetaryValue_T> _willingnessToPayCumulativeDistribution; + const WTPCumulativeDistribution_T _wtpCumulativeDistribution; }; Modified: trunk/stdair/stdair/basic/sources.mk =================================================================== --- trunk/stdair/stdair/basic/sources.mk 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/basic/sources.mk 2010-02-16 16:49:09 UTC (rev 144) @@ -1,6 +1,7 @@ bas_h_sources = \ $(top_srcdir)/stdair/basic/BasTypes.hpp \ $(top_srcdir)/stdair/basic/BasConst_General.hpp \ + $(top_srcdir)/stdair/basic/BasConst_Request.hpp \ $(top_srcdir)/stdair/basic/BasConst_Inventory.hpp \ $(top_srcdir)/stdair/basic/BasConst_BookingClass.hpp \ $(top_srcdir)/stdair/basic/BasConst_Yield.hpp \ @@ -14,8 +15,8 @@ $(top_srcdir)/stdair/basic/BasDBParams.hpp \ $(top_srcdir)/stdair/basic/PassengerType.hpp \ $(top_srcdir)/stdair/basic/ContinuousAttribute.hpp \ - $(top_srcdir)/stdair/basic/ArrivalPattern.hpp \ $(top_srcdir)/stdair/basic/CategoricalAttribute.hpp \ + $(top_srcdir)/stdair/basic/DemandCharacteristicTypes.hpp \ $(top_srcdir)/stdair/basic/DemandCharacteristics.hpp \ $(top_srcdir)/stdair/basic/DemandDistribution.hpp \ $(top_srcdir)/stdair/basic/RandomGeneration.hpp \ Modified: trunk/stdair/stdair/bom/BookingRequestStruct.cpp =================================================================== --- trunk/stdair/stdair/bom/BookingRequestStruct.cpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/bom/BookingRequestStruct.cpp 2010-02-16 16:49:09 UTC (rev 144) @@ -12,16 +12,26 @@ namespace stdair { // ////////////////////////////////////////////////////////////////////// - BookingRequestStruct::BookingRequestStruct (const AirportCode_T& iOrigin, - const AirportCode_T& iDestination, - const Date_T& iDepartureDate, - const DateTime_T& iRequestDateTime, - const CabinCode_T& iPreferredCabin, - const NbOfSeats_T& iPartySize) + BookingRequestStruct:: + BookingRequestStruct (const AirportCode_T& iOrigin, + const AirportCode_T& iDestination, + const Date_T& iDepartureDate, + const DateTime_T& iRequestDateTime, + const CabinCode_T& iPreferredCabin, + const NbOfSeats_T& iPartySize, + const ChannelLabel_T& iChannel, + const TripType_T& iTripType, + const DayDuration_T& iStayDuration, + const FrequentFlyer_T& iFrequentFlyerType, + const Duration_T& iPreferredDepartureTime, + const WTP_T& iWTP) : _origin (iOrigin), _destination (iDestination), _preferredDepartureDate (iDepartureDate), _requestDateTime (iRequestDateTime), - _preferredCabin (iPreferredCabin), _partySize (iPartySize) { + _preferredCabin (iPreferredCabin), _partySize (iPartySize), + _channel (iChannel), _tripType (iTripType), + _stayDuration (iStayDuration), _frequentFlyerType (iFrequentFlyerType), + _preferredDepartureTime (iPreferredDepartureTime), _wtp (iWTP) { } // ////////////////////////////////////////////////////////////////////// @@ -42,7 +52,9 @@ std::ostringstream oStr; oStr << _origin << " - " << _destination << " " << _preferredDepartureDate << " " << _requestDateTime << " " << _preferredCabin - << " " << _partySize; + << " " << _partySize << " " << _channel << " " << _tripType + << " " << _stayDuration << " " << _frequentFlyerType + << " " << _preferredDepartureTime << " " << _wtp; return oStr.str(); } Modified: trunk/stdair/stdair/bom/BookingRequestStruct.hpp =================================================================== --- trunk/stdair/stdair/bom/BookingRequestStruct.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/bom/BookingRequestStruct.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -46,40 +46,37 @@ const NbOfSeats_T& getPartySize() const { return _partySize; } - - // /////////////// Setters ///////////////// - /** Set the requested origin. */ - void setOrigin (const AirportCode_T& iOrigin) { - _origin = iOrigin; + /** Get the reservation channel. */ + const ChannelLabel_T& getBookingChannel() const { + return _channel; } - /** Set the requested destination. */ - void setDestination (const AirportCode_T& iDestination) { - _destination = iDestination; + /** Get the trip type. */ + const TripType_T& getTripType() const { + return _tripType; } - /** Set the requested departure date. */ - void setPreferredDepartureDate (const Date_T& iDepartureDate) { - _preferredDepartureDate = iDepartureDate; + /** Get the duration of stay. */ + const DayDuration_T& getStayDuration() const { + return _stayDuration; } - - /** Set the request datetime */ - void setRequestDateTime (const DateTime_T& iRequestDateTime) { - _requestDateTime = iRequestDateTime; + + /** Get the frequent flyer type. */ + const FrequentFlyer_T& getFrequentFlyerType() const { + return _frequentFlyerType; } - - /** Set the preferred cabin. */ - void setPreferredCabin (const CabinCode_T& iPreferredCabin) { - _preferredCabin = iPreferredCabin; + + /** Get the preferred departure time. */ + const Duration_T& getPreferredDepartureTime() const { + return _preferredDepartureTime; } - /** Set the party size. */ - void setPartySize (const NbOfSeats_T& iPartySize) { - _partySize = iPartySize; + /** Get the willingness-to-pay. */ + const WTP_T& getWTP() const { + return _wtp; } - - + // /////////// Display support method ///////////// /** Dump a Business Object into an output stream. @param ostream& the output stream. */ @@ -98,7 +95,10 @@ /** Constructor. */ BookingRequestStruct (const AirportCode_T&, const AirportCode_T&, const Date_T&, const DateTime_T&, - const CabinCode_T&, const NbOfSeats_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&); public : /** Default constructor. */ BookingRequestStruct (); @@ -112,22 +112,41 @@ private: // /////////////// Attributes ///////////////// /** Origin. */ - AirportCode_T _origin; + const AirportCode_T _origin; /** Destination. */ - AirportCode_T _destination; + const AirportCode_T _destination; /** Departure date. */ - Date_T _preferredDepartureDate; + const Date_T _preferredDepartureDate; /** Request date-time */ - DateTime_T _requestDateTime; + const DateTime_T _requestDateTime; /** Preferred cabin. */ - CabinCode_T _preferredCabin; + const CabinCode_T _preferredCabin; /** Party size. */ - NbOfSeats_T _partySize; + const NbOfSeats_T _partySize; + + /** Booking channel (D=direct, I=indirect, N=oNline, F=oFfline). */ + const ChannelLabel_T _channel; + + /** Trip type (RO=outbound of round-trip, RI=inbound of round-trip, + OW=one way). */ + const TripType_T _tripType; + + /** Stay duration (number of days). */ + const DayDuration_T _stayDuration; + + /** Frequent flyer type (P=Platinum, G=Gold, S=Silver, M=Member, N=None). */ + const FrequentFlyer_T _frequentFlyerType; + + /** Preferred departure time. */ + const Duration_T _preferredDepartureTime; + + /** Willingness-To-Pay. */ + const WTP_T _wtp; }; } Modified: trunk/stdair/stdair/bom/DemandStreamContent.hpp =================================================================== --- trunk/stdair/stdair/bom/DemandStreamContent.hpp 2010-02-15 19:48:39 UTC (rev 143) +++ trunk/stdair/stdair/bom/DemandStreamContent.hpp 2010-02-16 16:49:09 UTC (rev 144) @@ -64,6 +64,36 @@ return _demandCharacteristics.getArrivalPattern(); } + /** Get the channel probability mass. */ + const ChannelProbabilityMass_T& getChannelProbabilityMass() const { + return _demandCharacteristics.getChannelProbabilityMass(); + } + + /** Get the trip type probability mass. */ + const TripTypeProbabilityMass_T& getTripTypeProbabilityMass() const { + return _demandCharacteristics.getTripTypeProbabilityMass(); + } + + /** Get the stay duration probability mass. */ + const StayDurationProbabilityMass_T& getStayDurationProbabilityMass() const { + return _demandCharacteristics.getStayDurationProbabilityMass(); + } + + /** Get the frequent flyer probability mass. */ + const FrequentFlyerProbabilityMass_T& getFrequentFlyerProbabilityMass() const { + return _demandCharacteristics.getFrequentFlyerProbabilityMass(); + } + + /** Get the preferred departure time cumulative distribution. */ + const PreferredDepartureTimeCumulativeDistribution_T& getPreferredDepartureTimeCumulativeDistribution () const { + return _demandCharacteristics.getPreferredDepartureTimeCumulativeDistribution(); + } + + /** Get the WTP cumulative distribution. */ + const WTPCumulativeDistribution_T& getWTPCumulativeDistribution() const { + return _demandCharacteristics.getWTPCumulativeDistribution(); + } + /** Get the mean number of requests. */ const NbOfRequests_T& getMeanNumberOfRequests() const { return _demandDistribution.getMeanNumberOfRequests(); @@ -100,6 +130,16 @@ return _demandCharacteristicsRandomGenerator.getSeed(); } + /** Get the demand characteristics. */ + const DemandCharacteristics& getDemandCharacteristics () const { + return _demandCharacteristics; + } + + /** Get the demand distribution. */ + const DemandDistribution& getDemandDistribution () const { + return _demandDistribution; + } + public: // //////////////// Setters ////////////////// /** Set the cumulative probability of arrival pattern for last This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |