RMOL Logo  0.25.3
C++ library of Revenue Management and Optimisation classes and functions
Forecaster.hpp
Go to the documentation of this file.
00001 #ifndef __RMOL_COMMAND_FORECASTER_HPP
00002 #define __RMOL_COMMAND_FORECASTER_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <map>
00009 // StdAir
00010 #include <stdair/stdair_inventory_types.hpp>
00011 // RMOL
00012 #include <rmol/RMOL_Types.hpp>
00013 
00014 // Forward declarations
00015 namespace stdair {
00016   class FlightDate;
00017   class SegmentCabin;
00018   class GuillotineBlock;
00019 }
00020 
00021 namespace RMOL {
00023   class Forecaster {    
00024   public:
00028     static bool forecastUsingAdditivePickUp (stdair::FlightDate&,
00029                                              const stdair::DateTime_T&);
00030     
00034     static bool forecastUsingMultiplicativePickUp (stdair::FlightDate&,
00035                                                    const stdair::DateTime_T&);
00036 
00037 
00038   private:
00042     static bool forecastUsingAdditivePickUp (stdair::SegmentCabin&,
00043                                              const stdair::DCPList_T&,
00044                                              const stdair::Date_T&);
00045 
00050     static void forecastUsingAdditivePickUp (stdair::SegmentCabin&,
00051                                              const BookingClassUnconstrainedDemandVectorMap_T&, const UnconstrainedDemandVector_T&, const double&);
00052     
00056     static bool forecastUsingMultiplicativePickUp (stdair::SegmentCabin&,
00057                                                    const stdair::Date_T&,
00058                                                    const stdair::DTD_T&);
00062     static void forecastUsingMultiplicativePickUp(const stdair::SegmentCabin&,
00063                                                   BookingClassUnconstrainedDemandVectorMap_T&,
00064                                                   UnconstrainedDemandVector_T&,
00065                                                   const stdair::DCP_T&,
00066                                                   const stdair::DCP_T&,
00067                                                   const stdair::Date_T&,
00068                                                   const stdair::NbOfSegments_T&,
00069                                                   const stdair::NbOfSegments_T&);
00070     
00074     static void forecastUsingMultiplicativePickUp(const stdair::GuillotineBlock&,
00075                                                   UnconstrainedDemandVector_T&,
00076                                                   const stdair::DCP_T&,
00077                                                   const stdair::DCP_T&,
00078                                                   const stdair::NbOfSegments_T&,
00079                                                   const stdair::BlockIndex_T&,
00080                                                   const stdair::NbOfSegments_T&,
00081                                                   const stdair::NbOfSegments_T&);
00082     
00086     static void forecastUsingMultiplicativePickUp(const stdair::GuillotineBlock&,
00087                                                   UnconstrainedDemandVector_T&,
00088                                                   const stdair::DCP_T&,
00089                                                   const stdair::DCP_T&,
00090                                                   const stdair::NbOfSegments_T&,
00091                                                   const stdair::BlockIndex_T&,
00092                                                   const stdair::NbOfSegments_T&,
00093                                                   const stdair::NbOfSegments_T&,
00094                                                   const stdair::SegmentCabin&,
00095                                                   const stdair::Date_T&);
00096 
00101     static bool forecastUsingMultiplicativePickUp(stdair::SegmentCabin&,
00102                                                   const BookingClassUnconstrainedDemandMap_T&,
00103                                                   const stdair::NbOfRequests_T&,
00104                                                   const double&);
00105 
00109     static void setRemainingDemandForecastToZero (const stdair::SegmentCabin&);
00110   };
00111 }
00112 #endif // __RMOL_COMMAND_FORECASTER_HPP