|
void | LogMovesReport () const |
|
bool | isProvenOptimal () const |
|
bool | initialsolve () |
|
virtual bool | build (std::vector< Core::FMTschedule > schedules=std::vector< Core::FMTschedule >()) |
|
virtual bool | solve () |
|
virtual std::unique_ptr< FMTmodel > | presolve (std::vector< Core::FMTactualdevelopment > optionaldevelopments=std::vector< Core::FMTactualdevelopment >()) const |
|
virtual std::unique_ptr< FMTmodel > | getcopy (int period=0) const |
|
| FMTsamodel () |
| Constructor.
|
|
| ~FMTsamodel () |
| Destructor.
|
|
| FMTsamodel (const FMTsamodel &rhs) |
| Copy constructor.
|
|
| FMTsamodel (const FMTmodel &rhs) |
| Copy constructor to use parent as argument in constructor.
|
|
| FMTsamodel (const FMTmodel &rhs, const Spatial::FMTforest &forest) |
| Copy constructor to use parent as argument in constructor.
|
|
FMTsamodel & | operator= (const FMTsamodel &rhs) |
| Copy assignment operator.
|
|
virtual std::unique_ptr< FMTmodel > | clone () const final |
|
Graph::FMTgraphstats | buildperiod () |
|
| FMTsemodel () |
|
virtual | ~FMTsemodel ()=default |
|
| FMTsemodel (const FMTsemodel &rhs) |
|
| FMTsemodel (const FMTmodel &rhs, const Spatial::FMTforest &forest) |
|
| FMTsemodel (const FMTmodel &rhs) |
|
FMTsemodel & | operator= (const FMTsemodel &rhs) |
|
| FMTsemodel (FMTsemodel &&rhs)=default |
|
FMTsemodel & | operator= (FMTsemodel &&rhs)=default |
|
Spatial::FMTforest | getmapping () const |
|
Spatial::FMTspatialschedule | getspschedule () const |
|
std::string | getdisturbancestats () const |
|
std::vector< Core::FMTschedule > | getschedule (bool withlock=false) const |
|
bool | setinitialmapping (Spatial::FMTforest forest) |
|
void | LogConstraintsInfeasibilities () const |
|
void | LogConstraintsFactors () const |
|
virtual std::unique_ptr< FMTmodel > | presolve (std::vector< Core::FMTactualdevelopment > optionaldevelopments=std::vector< Core::FMTactualdevelopment >()) const |
|
virtual void | postsolve (const FMTmodel &originalbasemodel) |
|
virtual std::map< std::string, double > | getoutput (const Core::FMToutput &output, int period, Core::FMToutputlevel level=Core::FMToutputlevel::standard) const |
|
virtual Spatial::FMTlayer< double > | getspatialoutput (const Core::FMToutput &output, int period) const |
|
virtual Core::FMTschedule | getsolution (int period, bool withlock=false) const |
|
virtual std::unique_ptr< FMTmodel > | clone () const |
|
virtual std::vector< Core::FMTactualdevelopment > | getarea (int period=0, bool beforegrowanddeath=false) const |
|
virtual std::unique_ptr< FMTmodel > | getcopy (int period=0) const |
|
virtual double | getobjectivevalue () const |
|
Models::FMTmodel | aggregateAllActions (const std::vector< std::string > &p_Aggregates) const |
| Aggregate actions together and create en enterly new model with new -actions,transitions,outputs,constraints,yields,lifespan.
|
|
std::vector< Core::FMTschedule > | aggregateSchedules (const std::vector< Core::FMTschedule > &p_schedules) const |
| Build new schedule based on p_schedules with the corresponding aggregated actions.
|
|
virtual void | setparallellogger (Logging::FMTlogger &logger) |
|
virtual void | clearcache () |
|
| FMTmodel (const std::vector< Core::FMTactualdevelopment > &larea, const std::vector< Core::FMTtheme > <hemes, const std::vector< Core::FMTaction > &lactions, const std::vector< Core::FMTtransition > <ransitions, const Core::FMTyields &lyields, const Core::FMTlifespans &llifespan, const std::string &lname, const std::vector< Core::FMToutput > &loutputs, std::vector< Core::FMTconstraint > lconstraints=std::vector< Core::FMTconstraint >(), FMTmodelparameters lparameters=FMTmodelparameters()) |
|
| FMTmodel () |
|
virtual | ~FMTmodel ()=default |
|
| FMTmodel (FMTmodel &&rhs)=default |
|
FMTmodel & | operator= (FMTmodel &&rhs)=default |
|
virtual std::vector< Core::FMTactualdevelopment > | getarea (int period=0, bool beforegrowanddeath=false) const |
|
virtual std::unique_ptr< FMTmodel > | getcopy (int period=0) const |
|
FMTmodel | basepresolve () const |
|
Core::FMTmaskfilter | getpresolvefilter (const std::vector< Core::FMTtheme > &originalthemes) const |
|
Core::FMTmaskfilter | getpostsolvefilter (const std::vector< Core::FMTtheme > &originalthemes, const Core::FMTmask &devmask) const |
|
Core::FMTmask | getselectedmask (const std::vector< Core::FMTtheme > &originalthemes) const |
|
virtual std::unique_ptr< FMTmodel > | presolve (std::vector< Core::FMTactualdevelopment > optionaldevelopments=std::vector< Core::FMTactualdevelopment >()) const |
|
virtual void | postsolve (const FMTmodel &originalbasemodel) |
|
Core::FMTschedule | presolveschedule (const Core::FMTschedule &originalbaseschedule, const FMTmodel &originalbasemodel) const |
|
FMTmodelstats | getmodelstats () const |
|
void | cleanactionsntransitions () |
|
std::string | getname () const |
|
std::vector< Core::FMTtheme > | getthemes () const |
|
std::vector< Core::FMTaction > | getactions () const |
|
std::vector< Core::FMTtransition > | gettransitions () const |
|
Core::FMTyields | getyields () const |
|
Core::FMTlifespans | getlifespan () const |
|
std::vector< Core::FMToutput > | getoutputs () const |
|
std::vector< Core::FMTconstraint > | getconstraints () const |
|
void | addoutput (const std::string &name, const std::string &maskstring, Core::FMTotar outputtarget, std::string action=std::string(), std::string yield=std::string(), std::string description=std::string(), int targettheme=-1) |
|
template<typename T > |
void | addyieldhandlers (const std::vector< T > &yieldhandlers) |
|
void | addyieldhandlersfromptr (const std::vector< std::unique_ptr< Core::FMTyieldhandler > > &yieldhandlers) |
|
bool | operator== (const FMTmodel &rhs) const |
|
bool | operator< (const FMTmodel &rhs) const |
|
void | setarea (const std::vector< Core::FMTactualdevelopment > &ldevs) |
|
void | setthemes (const std::vector< Core::FMTtheme > <hemes) |
|
void | setactions (const std::vector< Core::FMTaction > &lactions) |
|
void | settransitions (const std::vector< Core::FMTtransition > <ransitions) |
|
void | setconstraints (const std::vector< Core::FMTconstraint > &lconstraint) |
|
void | setyields (const Core::FMTyields &lylds) |
|
void | setlifespan (const Core::FMTlifespans &llifespan) |
|
void | setname (const std::string &newname) |
|
void | setoutputs (const std::vector< Core::FMToutput > &newoutputs) |
|
bool | isvalid () |
|
std::vector< Core::FMTtheme > | locatestaticthemes (const Core::FMToutput &output, bool ignoreoutputvariables=false) const |
|
std::vector< Core::FMTtheme > | locatestaticthemes (const Core::FMToutputnode &output, bool ignoreoutputvariables=false) const |
|
std::vector< Core::FMTtheme > | locatedynamicthemes (const Core::FMToutput &outpu, bool ignoreoutputvariables=false) const |
|
Core::FMTmask | getdynamicmask (const Core::FMToutput &output, bool ignoreoutputvariables=false) const |
|
Core::FMTmask | getdynamicmask (const Core::FMToutputnode &node, bool ignoreoutputvariables=false) const |
|
Core::FMTmask | getstaticmask (const Core::FMToutputnode &node, bool ignoreoutputvariables=false) const |
|
bool | isstaticnode (const Core::FMToutputnode &node, double ratioofset=0.1) const |
|
std::vector< Core::FMTtheme > | locatestatictransitionsthemes () const |
|
std::vector< Core::FMTtheme > | locatenodestaticthemes (const Core::FMToutputnode &node, bool ignoreoutputvariables=false, std::vector< Core::FMTtheme > basethemes=std::vector< Core::FMTtheme >()) const |
|
| FMTmodel (const FMTmodel &rhs) |
|
FMTmodel & | operator= (const FMTmodel &rhs) |
|
bool | empty () const |
|
void | push_back (const FMTmodel &rhs) |
|
double | getinitialarea () const |
|
void | setareaperiod (const int &period) |
|
Core::FMTschedule | getpotentialschedule (std::vector< Core::FMTactualdevelopment > toremove, std::vector< Core::FMTactualdevelopment > selection, bool withlock=true) const |
|
virtual std::vector< Core::FMTconstraint > | getreplanningconstraints (const std::string &modeltype, const std::vector< Core::FMTconstraint > &localconstraints, const int &period) const |
|
virtual bool | doplanning (const bool &solve, std::vector< Core::FMTschedule > schedules=std::vector< Core::FMTschedule >()) |
|
virtual std::map< std::string, double > | getoutput (const Core::FMToutput &output, int period, Core::FMToutputlevel level=Core::FMToutputlevel::standard) const |
|
virtual Core::FMTschedule | getsolution (int period, bool withlock=false) const |
|
virtual std::map< std::string, std::vector< std::vector< double > > > | getoutputsfromperiods (const std::vector< Core::FMToutput > &theoutputs, const int &firstperiod, const int &lastperiod, Core::FMToutputlevel level=Core::FMToutputlevel::standard) const |
|
virtual std::unique_ptr< FMTmodel > | clone () const |
|
virtual bool | setparameter (const FMTintmodelparameters &key, const int &value) |
|
virtual bool | setparameter (const FMTdblmodelparameters &key, const double &value) |
|
virtual bool | setparameter (const FMTboolmodelparameters &key, const bool &value) |
|
int | getparameter (const FMTintmodelparameters &key) const |
|
double | getparameter (const FMTdblmodelparameters &key) const |
|
bool | getparameter (const FMTboolmodelparameters &key) const |
|
bool | setcompresstime (const int &periodstart, const int &periodstop, const int &value) |
|
std::vector< int > | getcompresstime () const |
|
std::vector< Core::FMTconstraint > | goalconstraints (double penalty=999999) const |
|
std::vector< Core::FMTconstraint > | gettacticalconstraints (double penalty=999999, double scheduleweight=999999, double objective=0, double objectivefactor=1.0) const |
|
virtual void | showparameters (const bool &showhelp=false) const |
|
virtual bool | build (std::vector< Core::FMTschedule > schedules=std::vector< Core::FMTschedule >()) |
|
virtual bool | solve () |
|
virtual bool | isoptimal () const |
|
virtual double | getobjectivevalue () const |
|
| FMTobject () |
|
virtual | ~FMTobject () |
|
| FMTobject (const std::shared_ptr< Exception::FMTexceptionhandler > exhandler) |
|
| FMTobject (const FMTobject &rhs) |
|
FMTobject & | operator= (const FMTobject &rhs) |
|
virtual void | passinlogger (const std::shared_ptr< Logging::FMTlogger > &logger) |
|
void | passinexceptionhandler (const std::shared_ptr< Exception::FMTexceptionhandler > &exhandler) |
|
void | redirectlogtofile (const std::string &location) |
|
virtual void | setdefaultlogger () |
|
virtual void | setquietlogger () |
|
virtual void | settasklogger () |
|
virtual void | setdebuglogger () |
|
void | setdefaultexceptionhandler () |
|
void | setquietexceptionhandler () |
|
void | setdebugexceptionhandler () |
|
void | setfreeexceptionhandler () |
|
void | disablenestedexceptions () |
|
void | enablenestedexceptions () |
|
void | seterrorstowarnings (const std::vector< Exception::FMTexc > &errors) |
|
void | setmaxwarningsbeforesilenced (const size_t &maxwarningcount) |
|
|
std::vector< bool > | GetFromBindings (const Spatial::FMTspatialschedule::actionbindings &bindingactions) const |
|
size_t | GetCycleMoves () const |
|
size_t | GetAcceptedCycleMoves () const |
|
bool | AllowDestruction (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings) const |
|
bool | AllowMove (const FMTsamove &move) const |
|
bool | AllowAnyMove () const |
|
FMTsamove | GetAMove (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings) const |
|
bool | IsBetter (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule &candidat) const |
|
Spatial::FMTspatialschedule | DoLocalMove (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings, const std::vector< Spatial::FMTcoordinate > *movable, boost::unordered_map< Core::FMTdevelopment, bool > *operability) const |
|
Spatial::FMTspatialschedule | DoConflictDestruction (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings, std::vector< std::vector< Spatial::FMTcoordinate > > selectionpool, const int &period) const |
|
Spatial::FMTspatialschedule | DoEventsAreaConflictDestrutorMove (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings) const |
|
Spatial::FMTspatialschedule | DoEventsAdjacencyConflictDestrutorMove (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings) const |
|
Spatial::FMTspatialschedule | Move (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings, const std::vector< Spatial::FMTcoordinate > *movable=nullptr, boost::unordered_map< Core::FMTdevelopment, bool > *operability=nullptr) const |
|
double | Warmup (const Spatial::FMTspatialschedule &actual, const Spatial::FMTspatialschedule::actionbindings &bindings, const std::vector< Spatial::FMTcoordinate > *movable=nullptr, boost::unordered_map< Core::FMTdevelopment, bool > *operability=nullptr, double initprobability=0.5, size_t iterations=10) |
|
void | InitialGrow () |
|
void | RandomBuild () |
|
void | SchedulesBuild (const std::vector< Core::FMTschedule > &schedules) |
|
virtual void | swap_ptr (const std::unique_ptr< FMTmodel > &rhs) |
|
size_t | GetLocalMoveSize () const |
|
Spatial::FMTspatialschedule | GetRebuild (const Spatial::FMTspatialschedule &actual) const |
|
bool | isCycleProvenOptimal () const |
|
void | DoFactorization () |
|
void | LogSolutionStatus () const |
|
void | LogCycleStatus () const |
|
void | CoolDown () |
|
void | UpdateFailedMoveCount () |
|
void | setdefaultobjects () |
|
Core::FMTmask | getbasemask (std::vector< Core::FMTactualdevelopment > optionaldevelopments) const |
|
std::vector< size_t > | getstatictransitionthemes () const |
|
std::vector< Core::FMTtheme > | getstaticpresolvethemes () const |
|
void | clearactionscache () |
|
void | clearyieldcache () |
|
void | cleartransitioncache () |
|
virtual void | swap_ptr (const std::unique_ptr< FMTmodel > &rhs) |
|
std::vector< Core::FMTschedule > | setupschedulesforbuild (const std::vector< Core::FMTschedule > &schedules) const |
|
bool | useactionserie () const |
|
size_t | getseriesmaxsize () const |
|
template<class Archive > |
void | forcesave (Archive &ar, const unsigned int version) const |
|
template<class Archive > |
void | forceload (Archive &ar, const unsigned int version) |
|
void | checksignals () const |
|
void | setCPLhandler () |
|
This model is an area restricted model (ARM) using the simulated annealing meta-heuristic to solve the spatial optimization problem. Constraints must be goals with weight and the objective function must maximize or minimize those constraints. Only the functions needed to build a simulated annealing algorithm are implemented in this class, the algorithm must be written by the user using the functions exposed in this class.
An FMTforest is needed to set the initial map. An FMTsaschedule is needed as cooling schedule and FMTspatialaction must be set for the model.