|
void | setgeneratorseed (const size_t &lseed) |
|
| FMTlpheuristic (Models::FMTlpsolver &basesolve, size_t lseed=0, bool copysolver=true) |
|
| FMTlpheuristic (const Models::FMTsolverinterface &interfacetype, const size_t &lseed) |
|
| FMTlpheuristic ()=default |
|
| FMTlpheuristic (const FMTlpheuristic &rhs) |
|
| FMTlpheuristic (FMTlpheuristic &&rhs)=default |
|
FMTlpheuristic & | operator= (const FMTlpheuristic &rhs) |
|
virtual bool | branchnboundsolve () |
|
virtual bool | greedypass (const double &initsol, const unsigned int &iteration) |
|
virtual void | paralleloptimize (const double &initbestsolution, const unsigned int &iterations, const double &maxtime, const std::chrono::steady_clock::time_point &Starttime) |
|
virtual | ~FMTlpheuristic ()=default |
|
void | swap (FMTlpsolver &rhs) |
|
void | passinlogger (const std::shared_ptr< Logging::FMTlogger > &logger) override |
|
void | unmarkHotStart () |
|
bool | stockresolve () |
|
| FMTlpsolver () |
|
virtual | ~FMTlpsolver ()=default |
|
| FMTlpsolver (const FMTlpsolver &rhs) |
|
| FMTlpsolver (FMTlpsolver &&rhs)=default |
|
FMTlpsolver & | operator= (const FMTlpsolver &rhs) |
|
FMTlpsolver & | operator= (FMTlpsolver &&rhs)=default |
|
| FMTlpsolver (FMTsolverinterface lsolvertype) |
|
bool | operator== (const FMTlpsolver &rhs) const |
|
bool | operator!= (const FMTlpsolver &rhs) const |
|
virtual bool | resolve () |
|
virtual bool | initialsolve () |
|
void | setnumberofthreads (const size_t &nthread) |
|
void | setMIPgaptolerance (const double &gap) |
|
void | setoptimizerMAXtime (const double &time) |
|
void | MIPparameters () |
|
double | getObjValue () const |
|
int | getiterationcount () const |
|
void | passinsolver (const FMTlpsolver &solver) |
|
void | passinmessagehandler (Logging::FMTlogger &logger) |
|
void | setsolvertype (FMTsolverinterface &lsolvertype) const |
|
bool | gotlicense () const |
|
std::string | getsolvername () const |
|
int | getNumCols () const |
|
int | getNumRows () const |
|
const double * | getObjCoefficients () const |
|
const double * | getColLower () const |
|
const double * | getColUpper () const |
|
const double * | getColSolution () const |
|
const double * | getRowPrice () const |
|
const double * | getRowActivity () const |
|
const double * | getRowUpper () const |
|
const double * | getRowLower () const |
|
int | getrow (int whichRow, double &rowLower, double &rowUpper, std::vector< int > &indices, std::vector< double > &elements) const |
|
int | getcol (int whichCol, double &colLower, double &colUpper, double &objectiveValue, std::vector< int > &indices, std::vector< double > &elements) const |
|
double | getObjSense () const |
|
void | setObjective (const double *objectivevalues) |
|
void | setObjSense (const double &newsense) |
|
void | addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-std::numeric_limits< double >::max(), double rowUpper=std::numeric_limits< double >::max()) |
|
void | addCol (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=std::numeric_limits< double >::max(), double objectiveValue=0.0) |
|
void | addRows (const int numrows, const int *rowStarts, const int *columns, const double *elements, const double *rowlb, const double *rowub) |
|
void | addCols (const int numcols, const int *columnStarts, const int *rows, const double *elements, const double *collb, const double *colub, const double *obj) |
|
bool | isProvenOptimal () const |
|
void | deleteRow (const int &rowindex) |
|
void | deleteCol (const int &colindex) |
|
void | deleteRows (int numberofrows, const int *rowindexes) |
|
void | deleteCols (int numberofcols, const int *colindexes) |
|
void | setColSolution (const double *newsolution) |
|
void | setRowPrice (const double *rowprice) |
|
void | setColSetBounds (const int *indexFirst, const int *indexLast, const double *boundlist) |
|
void | setRowSetBounds (const int *indexFirst, const int *indexLast, const double *boundlist) |
|
void | setInteger (const int &colindex) |
|
void | setInteger (const int *indices, int len) |
|
void | setcolname (const std::string &name, const int &columnid) const |
|
void | setrowname (const std::string &name, const int &rowid) const |
|
void | writeLP (const std::string &location) const |
|
void | writeMPS (const std::string &location) const |
|
void | branchAndBound () |
|
void | enablematrixcaching () |
|
void | disablematrixcaching () |
|
FMTsolverinterface | getsolvertype () const |
|
void | synchronize () |
|
void | sortdeletedcache () |
|
const std::vector< int > & | getcachedeletedconstraints () const |
|
const std::vector< int > & | getcachedeletedvariables () const |
|
std::string | lowernuppertostr (const double &lower, const double &upper) const |
|
std::string | getcacheelements () const |
|
void | updaterowsandcolsnames (bool shortformat=true) |
|
std::string | getmskerrordesc (int error) 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) |
|
FMToperatingareaheuristic is a heuristics made to solve spatialization problem across landscape for multiple operating areas. MIP Forest planning problem tend to be symmetrical and tought to solve using a regular MIP solver. This heuristics is made to quickly generate good enought starting solution for those kind of Forest management problem. Before using this class the user must have sets all parameters of a vector of FMToperatingarea so that the heuristic can sets the constraints and variables of each operating area into the matrix. It's up to the user to decide to just generate a good initialsolution or generate a good initialsolution and then try to find the optimaly using a BnB solver.