1 #ifndef __RMOL_SVC_RMOL_SERVICE_HPP 2 #define __RMOL_SVC_RMOL_SERVICE_HPP 10 #include <stdair/stdair_basic_types.hpp> 11 #include <stdair/stdair_inventory_types.hpp> 12 #include <stdair/stdair_service_types.hpp> 13 #include <stdair/stdair_maths_types.hpp> 14 #include <stdair/basic/UnconstrainingMethod.hpp> 15 #include <stdair/basic/ForecastingMethod.hpp> 16 #include <stdair/basic/PreOptimisationMethod.hpp> 17 #include <stdair/basic/OptimisationMethod.hpp> 18 #include <stdair/basic/PartnershipTechnique.hpp> 28 class AirlineClassList;
38 class RMOL_ServiceContext;
61 RMOL_Service (
const stdair::BasLogParams&,
const stdair::BasDBParams&);
116 void parseAndLoad (
const stdair::CabinCapacity_T& iCabinCapacity,
117 const stdair::Filename_T& iDemandAndClassDataFile);
122 void setUpStudyStatManager();
137 void buildSampleBom();
142 void clonePersistentBom ();
148 void buildComplementaryLinks (stdair::BomRoot&);
153 void optimalOptimisationByMCIntegration (
const int K);
158 void optimalOptimisationByDP();
163 void heuristicOptimisationByEmsr();
168 void heuristicOptimisationByEmsrA();
173 void heuristicOptimisationByEmsrB();
178 void heuristicOptimisationByMCIntegrationForQFF();
183 void heuristicOptimisationByEmsrBForQFF();
197 const stdair::SegmentCabin&
198 retrieveDummySegmentCabin(
const bool isForFareFamilies =
false);
203 bool optimise (stdair::FlightDate&,
const stdair::DateTime_T&,
204 const stdair::UnconstrainingMethod&,
205 const stdair::ForecastingMethod&,
206 const stdair::PreOptimisationMethod&,
207 const stdair::OptimisationMethod&,
208 const stdair::PartnershipTechnique&);
215 void forecastOnD (
const stdair::DateTime_T&);
217 stdair::YieldFeatures* getYieldFeatures(
const stdair::OnDDate&,
const stdair::CabinCode_T&,
220 void forecastOnD (
const stdair::YieldFeatures&, stdair::OnDDate&,
221 const stdair::CabinCode_T&,
const stdair::DTD_T&,
224 void setOnDForecast (
const stdair::AirlineClassList&,
const stdair::MeanValue_T&,
225 const stdair::StdDevValue_T&, stdair::OnDDate&,
const stdair::CabinCode_T&,
229 void setOnDForecast (
const stdair::AirlineCode_T&,
const stdair::Date_T&,
const stdair::AirportCode_T&,
230 const stdair::AirportCode_T&,
const stdair::CabinCode_T&,
const stdair::ClassCode_T&,
231 const stdair::MeanValue_T&,
const stdair::StdDevValue_T&,
const stdair::Yield_T&, stdair::BomRoot&);
234 void setOnDForecast (
const stdair::AirlineCodeList_T&,
const stdair::AirlineCode_T&,
const stdair::Date_T&,
235 const stdair::AirportCode_T&,
const stdair::AirportCode_T&,
const stdair::CabinCode_T&,
236 const stdair::ClassCodeList_T&,
const stdair::MeanValue_T&,
const stdair::StdDevValue_T&,
237 const stdair::Yield_T&, stdair::BomRoot&);
240 void resetDemandInformation (
const stdair::DateTime_T&);
242 void resetDemandInformation (
const stdair::DateTime_T&,
const stdair::Inventory&);
247 void projectAggregatedDemandOnLegCabins(
const stdair::DateTime_T&);
250 void projectOnDDemandOnLegCabinsUsingYP(
const stdair::DateTime_T&);
253 void projectOnDDemandOnLegCabinsUsingDA(
const stdair::DateTime_T&);
256 void projectOnDDemandOnLegCabinsUsingDYP(
const stdair::DateTime_T&);
258 void projectOnDDemandOnLegCabinsUsingDYP(
const stdair::DateTime_T&,
const stdair::Inventory&);
262 void optimiseOnD (
const stdair::DateTime_T&);
265 void optimiseOnDUsingRMCooperation (
const stdair::DateTime_T&);
269 void optimiseOnDUsingAdvancedRMCooperation (
const stdair::DateTime_T&);
272 void updateBidPrice (
const stdair::DateTime_T&);
273 void updateBidPrice (
const stdair::FlightDate&, stdair::BomRoot&);
287 std::string jsonExport (
const stdair::AirlineCode_T&,
288 const stdair::FlightNumber_T&,
289 const stdair::Date_T& iDepartureDate)
const;
301 std::string csvDisplay()
const;
325 stdair::STDAIR_ServicePtr_T initStdAirService (
const stdair::BasLogParams&,
326 const stdair::BasDBParams&);
336 stdair::STDAIR_ServicePtr_T initStdAirService (
const stdair::BasLogParams&);
346 void addStdAirService (stdair::STDAIR_ServicePtr_T,
347 const bool iOwnStdairService);
353 void initServiceContext();
361 void initRmolService();
377 stdair::Date_T _previousForecastDate;
380 #endif // __RMOL_SVC_RMOL_SERVICE_HPP
Inner class holding the context for the RMOL Service object.
void optimise(RMOL::RMOL_Service &rmolService, const short &iMethod, const int &iRandomDraws)
Interface for the RMOL Services.