RMOL Logo Get Revenue Management Optimisation Library at SourceForge.net. Fast, secure and Free Open Source software downloads

RMOL_Service.hpp

Go to the documentation of this file.
00001 #ifndef __RMOL_SVC_RMOL_SERVICE_HPP
00002 #define __RMOL_SVC_RMOL_SERVICE_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <string>
00009 // RMOL
00010 #include <rmol/RMOL_Types.hpp>
00011 
00012 namespace RMOL {
00013 
00015   class RMOL_ServiceContext;
00016 
00018   class RMOL_Service {
00019   public:
00021     RMOL_Service (std::ostream& ioLogStream,
00022                   const ResourceCapacity_T iResourceCapacity);
00024     ~RMOL_Service();
00025 
00027     void addBucket (const double iYieldRange, const double iDemandMean,
00028                     const double iDemandStandardDev);
00029 
00031     void readFromInputFile (const std::string& iInputFileName);
00032 
00034     void optimalOptimisationByMCIntegration (const int K);
00035 
00038     void optimalOptimisationByMCIntegration (const int K,
00039                                              BookingLimitVector_T&);
00040 
00042     void optimalOptimisationByDP ();
00043 
00046     void optimalOptimisationByDP (BookingLimitVector_T&);
00047 
00049     void heuristicOptimisationByEmsr ();
00050 
00053     void heuristicOptimisationByEmsr (BidPriceVector_T&, BookingLimitVector_T&);
00054     
00056     void heuristicOptimisationByEmsrA ();
00057 
00060     void heuristicOptimisationByEmsrA (BookingLimitVector_T&);
00061     
00063     void heuristicOptimisationByEmsrB ();
00064 
00067     void heuristicOptimisationByEmsrB (BookingLimitVector_T&);
00068 
00069   private:
00071     RMOL_Service ();
00072     RMOL_Service (const RMOL_Service&);
00073 
00075     void init (std::ostream& ioLogStream,
00076                const ResourceCapacity_T iResourceCapacity);
00077     
00079     void logInit (const LOG::EN_LogLevel iLogLevel, std::ostream& ioLogStream);
00080 
00082     void finalise ();
00083 
00084   private:
00085     // ////////// Service Context //////////
00087     RMOL_ServiceContext* _rmolServiceContext;
00088   };
00089 }
00090 #endif // __RMOL_SVC_RMOL_SERVICE_HPP
SourceForge Logo

Generated on Fri Sep 11 06:32:00 2009 for RMOL by Doxygen 1.5.8