FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
FMTModelParameters.h
Go to the documentation of this file.
1/*
2Copyright (c) 2019 Gouvernement du Québec
3
4SPDX-License-Identifier: LiLiQ-R-1.1
5License-Filename: LICENSES/EN/LiLiQ-R11unicode.txt
6*/
7
8#ifndef FMTmodelparameters_Hm_included
9#define FMTmodelparameters_Hm_included
10
11#include "FMTExceptionHandler.h"
12#include "FMTObject.h"
13#include <boost/serialization/export.hpp>
14#include <boost/serialization/array.hpp>
15#include <boost/serialization/vector.hpp>
16#include <array>
17#include <vector>
18#include <string>
19
20namespace Models
21{
22 // DocString: FMTintmodelparameters
23 //
28 {
29 LENGTH = 0,
30 SEED = 1,
35 UPDATE = 6,
47 };
48 // DocString: FMTdblmodelparameters
49 //
54 {
60 };
61 // DocString: FMTboolmodelparameters
62 //
67 {
71 SHOW_LOCK_IN_SCHEDULES = 3,//Not needed or change parameters in fonctions ... maybe more for task
72 PRESOLVE_CAN_REMOVE_STATIC_THEMES =4,//The preSolve will allow the removing of static themes even in use (it can alter the area section).
73 DEBUG_MATRIX = 5,//If true, when an error occur in lpmodel initialSolve or resolve, the matrix will be written.
74 SETSOLUTION_THROW = 6, //Fix pour setSolution pour ne pas throw lorsque c'est vrai TODO meilleur def
77 };
78 // DocString: FMTstrmodelparameters
79 //
84 {
85 SOLVER_COLD_START = 0,/*Cold start parameters located in scenario folder*< */
86 SOLVER_WARM_START = 1,/*Warm start parameters location in scenario folder*< */
87 WORKING_DIRECTORY = 2,/*SA working directory*< */
89 };
90
91
92 // DocString: FMTModelParameters
97 {
98 public:
99 // DocString: FMTModelParameters()
104 // DocString: FMTModelParameters(const FMTModelParameters&)
110 // DocString: FMTModelParameters::operator=(const FMTModelParameters&)
116 FMTModelParameters& operator = (const FMTModelParameters& rhs);
117 // DocString: ~FMTModelParameters
122 // DocString: FMTModelParameters(FMTModelParameters&&)
128 // DocString: FMTModelParameters::operator=(FMTModelParameters&& rhs)
134 FMTModelParameters& operator =(FMTModelParameters&& rhs) =default;
135 // DocString: FMTModelParameters::swap(FMTModelParameters& rhs)
141 //###Setter
142 // DocString: FMTModelParameters::setIntParameter
149 bool setIntParameter(FMTintmodelparameters key,const int& value);
150 // DocString: FMTModelParameters::setDblParameter
157 bool setDblParameter(FMTdblmodelparameters key,const double& value);
158 // DocString: FMTModelParameters::setBoolParameter
165 bool setBoolParameter(FMTboolmodelparameters key,const bool& value);
166 // DocString: FMTModelParameters::setStrParameter
173 bool setStrParameter(FMTstrmodelparameters p_key, const std::string& p_value);
174 // DocString: FMTModelParameters::setPeriodCompressTime
181 bool setPeriodCompressTime(const int& period, const int& value);
182 //###Getter
183 // DocString: FMTModelParameters::getIntParameter
190 // DocString: FMTModelParameters::getDblParameter
197 // DocString: FMTModelParameters::getBoolParameter
204 // DocString: FMTModelParameters::getStrParameter
210 const std::string& getStrParameter(FMTstrmodelparameters p_key) const;
211 // DocString: FMTModelParameters::getPeriodCompressTime
217 int getPeriodCompressTime(const int& period)const;
218 // DocString: FMTModelParameters::getCompressTime
223 std::vector<int> getCompressTime() const;
224 private:
225 friend class boost::serialization::access;
226 // DocString: FMTModelParameters::serialize
233 template<class Archive>
234 void serialize(Archive& ar, const unsigned int version)
235 {
236 try {
237 ar& boost::serialization::make_nvp("FMTobject", boost::serialization::base_object<FMTObject>(*this));
238 ar& BOOST_SERIALIZATION_NVP(m_intparameters);
239 ar& BOOST_SERIALIZATION_NVP(m_dblparameters);
240 ar& BOOST_SERIALIZATION_NVP(m_boolparameters);
241 ar& BOOST_SERIALIZATION_NVP(m_compresstime);
242 }
243 catch (...)
244 {
245 _exhandler->printExceptions("", "FMTModelParameters::serialize", __LINE__, __FILE__);
246 }
247 }
248 std::array<int, LastIntModelParam> m_intparameters;
249 std::array<double, LastDblModelParam> m_dblparameters;
250 std::array<bool, LastBoolModelParam> m_boolparameters;
251 std::array<std::string, LastStrModelParam> m_strparameters;
252 std::vector<int> m_compresstime;
253 };
254}
255BOOST_CLASS_EXPORT_KEY(Models::FMTModelParameters)
256#endif // FMTmodelparameters_Hm_included
#define FMTEXPORT
Definition: FMTutility.h:125
Base class of multiple FMT classes holding a shared exception handler pointer and logger.
Definition: FMTObject.h:49
Class containing all the parameters a model needs to be solved by the different types of FMTModel.
Definition: FMTModelParameters.h:97
int getPeriodCompressTime(const int &period) const
Return the compress time for a given period.
bool setIntParameter(FMTintmodelparameters key, const int &value)
Set a integer parameter.
~FMTModelParameters()=default
Default destructor for FMTModelParameters.
bool setDblParameter(FMTdblmodelparameters key, const double &value)
Set a double parameter.
const std::string & getStrParameter(FMTstrmodelparameters p_key) const
Return a string parameter.
bool getBoolParameter(FMTboolmodelparameters key) const
Return a boolean parameter.
bool setPeriodCompressTime(const int &period, const int &value)
Set the compress time for a given period.
FMTModelParameters()
Default constructor for FMTModelParameters.
bool setStrParameter(FMTstrmodelparameters p_key, const std::string &p_value)
Set a string parameter.
FMTModelParameters(const FMTModelParameters &rhs)
Copy constructor for FMTModelParameters.
FMTModelParameters(FMTModelParameters &&rhs)=default
Default move constructor for FMTModelParameters.
double getDblParameter(FMTdblmodelparameters key) const
Return a double parameter.
std::vector< int > getCompressTime() const
Return the compress time for each period.
bool setBoolParameter(FMTboolmodelparameters key, const bool &value)
Set a boolean parameter.
void swap(FMTModelParameters &rhs)
Swap this FMTModelParameters with another.
int getIntParameter(FMTintmodelparameters key) const
Return a integer parameter.
Namespace containing all enumerator and classes used to construct or manipulate the different type of...
Definition: FMTAreaParser.h:54
FMTdblmodelparameters
Enumerator of the double parameters of a FMTModel.
Definition: FMTModelParameters.h:54
@ TOLERANCE
Definition: FMTModelParameters.h:55
@ ANNEALING_RATE
Definition: FMTModelParameters.h:58
@ LastDblModelParam
Definition: FMTModelParameters.h:59
@ GOALING_SCHEDULE_WEIGHT
Definition: FMTModelParameters.h:56
@ INITIAL_ACCEPTANCE_PROBABILITY
Definition: FMTModelParameters.h:57
FMTstrmodelparameters
Enumerator of the string parameters of a FMTModel.
Definition: FMTModelParameters.h:84
@ LastStrModelParam
Definition: FMTModelParameters.h:88
@ WORKING_DIRECTORY
Definition: FMTModelParameters.h:87
@ SOLVER_COLD_START
Definition: FMTModelParameters.h:85
@ SOLVER_WARM_START
Definition: FMTModelParameters.h:86
FMTintmodelparameters
Enumerator of the integer parameters of a FMTModel.
Definition: FMTModelParameters.h:28
@ MAX_CYCLE_MOVES
Definition: FMTModelParameters.h:38
@ MAX_ACCEPTED_CYCLE_MOVES
Definition: FMTModelParameters.h:37
@ MAX_NON_ACCEPTED_MOVES_FOR_TABOU
Definition: FMTModelParameters.h:43
@ LENGTH
Definition: FMTModelParameters.h:29
@ MOVE_SIZE_FACTOR
Definition: FMTModelParameters.h:45
@ MINIMAL_ACCEPTED_MOVES
Definition: FMTModelParameters.h:40
@ TABOU_FLUSH
Definition: FMTModelParameters.h:44
@ MAX_MOVES
Definition: FMTModelParameters.h:36
@ LastIntModelParam
Definition: FMTModelParameters.h:46
@ UPDATE_PERIOD_FACTOR
Definition: FMTModelParameters.h:41
@ SOLUTION_MERGE_ITERATIONS
Definition: FMTModelParameters.h:42
@ WARM_UP_ITERATIONS
Definition: FMTModelParameters.h:39
@ UPDATE
Definition: FMTModelParameters.h:35
@ SEED
Definition: FMTModelParameters.h:30
@ MATRIX_TYPE
Definition: FMTModelParameters.h:34
@ NUMBER_OF_THREADS
Definition: FMTModelParameters.h:33
@ PRESOLVE_ITERATIONS
Definition: FMTModelParameters.h:32
@ NUMBER_OF_ITERATIONS
Definition: FMTModelParameters.h:31
FMTboolmodelparameters
Enumerator of the boolean parameters of a FMTModel.
Definition: FMTModelParameters.h:67
@ DEBUG_MATRIX
Definition: FMTModelParameters.h:73
@ LastBoolModelParam
Definition: FMTModelParameters.h:76
@ SHOW_LOCK_IN_SCHEDULES
Definition: FMTModelParameters.h:71
@ PRESOLVE_CAN_REMOVE_STATIC_THEMES
Definition: FMTModelParameters.h:72
@ SETSOLUTION_THROW
Definition: FMTModelParameters.h:74
@ STRICTLY_POSITIVE
Definition: FMTModelParameters.h:69
@ FORCE_PARTIAL_BUILD
Definition: FMTModelParameters.h:68
@ POSTSOLVE
Definition: FMTModelParameters.h:70
@ QUIET_LOGGING
Definition: FMTModelParameters.h:75