15#include <boost/serialization/serialization.hpp>
16#include <boost/serialization/nvp.hpp>
17#include <boost/serialization/split_member.hpp>
18#include <boost/serialization/export.hpp>
94 virtual std::unique_ptr<FMTModel>
preSolve(std::vector<Core::FMTActualDevelopment> optionaldevelopments = std::vector<Core::FMTActualDevelopment>())
const;
100 virtual std::unique_ptr<FMTModel>
clone()
const;
107 virtual bool build(std::vector<Core::FMTSchedule> schedules=std::vector<Core::FMTSchedule>());
131 virtual std::unique_ptr<FMTModel>
getCopy(
int period = 0)
const;
140 friend class boost::serialization::access;
141 template<
class Archive>
142 void save(Archive& ar,
const unsigned int version)
const
144 ar& boost::serialization::make_nvp(
"model", boost::serialization::base_object<FMTSrModel>(*
this));
154 template<
class Archive>
155 void load(Archive& ar,
const unsigned int version)
157 ar& boost::serialization::make_nvp(
"model", boost::serialization::base_object<FMTSrModel>(*
this));
160 BOOST_SERIALIZATION_SPLIT_MEMBER()
168 std::vector<const
Core::FMTOutput*> constraintsToTarget(
std::vector<
double>& p_targets, const
int& p_period);
177 bool gotOutputForDev(const
Core::FMTDevelopment& p_development,
178 const
std::vector<const
Core::FMTOutput*>& p_outputs,
179 const
std::set<
size_t>& p_outputIds) const;
188 std::pair<
size_t, const
Core::FMTAction*> getFirstOperable(const
Core::FMTDevelopment& development,
189 std::vector<
std::vector<const
Core::FMTAction*>> targets,
190 const
std::vector<const
Core::FMTOutput*>& alloutputs) const;
197 std::vector<
std::set<
size_t>> getActionsTargets(const
std::vector<const
Core::FMTOutput*>& p_allOutputs) const;
210 double updateOutputs(const
Core::FMTDevelopment& p_development,
211 const
std::vector<
Core::FMTDevelopmentPath>& p_paths,
212 const
int& p_action, const
double& p_devArea,
213 std::vector<
double>& p_targets,
std::vector<
std::set<
size_t>>& p_actionsoutputs,
214 const
std::vector<const
Core::FMTOutput*>& p_allOutput) const;
221 FMTNssModel(const FMTSrModel& rhs,
unsigned int seed);
227 virtual
void swapPtr(
std::unique_ptr<FMTModel>& rhs);
232BOOST_CLASS_EXPORT_KEY(
Models::FMTNssModel)
#define FMTEXPORT
Definition: FMTutility.h:125
Base class for the different models in FMT.
Definition: FMTModel.h:62
Non spatial simulation model, mainly used to simulate stochastic actions during the local replanning ...
Definition: FMTNssModel.h:29
virtual std::unique_ptr< FMTModel > preSolve(std::vector< Core::FMTActualDevelopment > optionaldevelopments=std::vector< Core::FMTActualDevelopment >()) const
Return a presolved copy of the model.
FMTNssModel(const FMTModel &rhs, unsigned int seed)
Construct a FMTNssModel from a model and a seed for the random number generator.
void simulate()
Do a non spatial simulation based on the area constraints in the optimize section.
FMTNssModel & operator=(const FMTNssModel &rhs)=default
Copy assignment operator for FMTNssModel.
FMTNssModel(const FMTNssModel &rhs)
Copy constructor for FMTNssModel.
virtual bool setParameter(const FMTintmodelparameters &p_key, const int &p_value)
set int parameters to nss model.
~FMTNssModel()=default
Default destructor for FMTNssModel.
virtual bool build(std::vector< Core::FMTSchedule > schedules=std::vector< Core::FMTSchedule >())
Build the model by simulating over the number of periods set as LENGTH.
bool setParameter(const FMTboolmodelparameters &key, const bool &value) override
Override setter for bool model parameters.
FMTNssModel()
Default constructor for FMTNssModel.
virtual std::unique_ptr< FMTModel > getCopy(int period=0) const
Return a copy of the model for the selected period.
virtual std::unique_ptr< FMTModel > clone() const
Get a clone of the FMTNssModel.
FMTNssModel(FMTNssModel &&rhs)=default
Default move constructor for FMTNssModel.
virtual bool solve()
Return true; there is no solve since this is a simulation.
Definition: FMTNssModel.h:113
Base class holding the attributes and methods shared between the spatially referenced models (FMTLpMo...
Definition: FMTSrModel.h:46
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Namespace containing all enumerator and classes used to construct or manipulate the different type of...
Definition: FMTAreaParser.h:54
FMTintmodelparameters
Enumerator of the integer parameters of a FMTModel.
Definition: FMTModelParameters.h:28
FMTboolmodelparameters
Enumerator of the boolean parameters of a FMTModel.
Definition: FMTModelParameters.h:67