00001 #ifndef __RMOL_COMMAND_OPTIMISER_HPP
00002 #define __RMOL_COMMAND_OPTIMISER_HPP
00003
00004
00005
00006
00007
00008 #include <stdair/basic/OptimisationMethod.hpp>
00009
00010 #include <rmol/RMOL_Types.hpp>
00011
00012
00013 namespace stdair {
00014 class FlightDate;
00015 class LegCabin;
00016 }
00017
00018 namespace RMOL {
00020 class Optimiser {
00021 public:
00022
00034 static void optimalOptimisationByMCIntegration (const stdair::NbOfSamples_T&,
00035 stdair::LegCabin&);
00036
00040 static void optimalOptimisationByDP (stdair::LegCabin&);
00041
00045 static void heuristicOptimisationByEmsr (stdair::LegCabin&);
00046
00050 static void heuristicOptimisationByEmsrA (stdair::LegCabin&);
00051
00055 static void heuristicOptimisationByEmsrB (stdair::LegCabin&);
00056
00060 static bool optimise (stdair::FlightDate&,
00061 const stdair::OptimisationMethod&);
00062
00066 static bool buildVirtualClassListForLegBasedOptimisation(stdair::LegCabin&);
00067
00069 static double optimiseUsingOnDForecast (stdair::FlightDate&,
00070 const bool& iReduceFluctuations = false);
00071
00072 private:
00076 static bool optimise (stdair::LegDate&,
00077 const stdair::OptimisationMethod&);
00081 static bool optimise (stdair::LegCabin&,
00082 const stdair::OptimisationMethod&);
00083
00084
00085 };
00086 }
00087 #endif // __RMOL_COMMAND_OPTIMISER_HPP