This allows the use of the standalone solver in a flexible manner It has an original OsiClpSolverInterface and CbcModel which it can use repeatedly e.g. More...
#include <CbcSolver.hpp>
Public Member Functions | |
Solve method | |
int | solve (int argc, const char *argv[], int returnMode) |
This takes a list of commands, does "stuff" and returns returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e. | |
int | solve (const char *input, int returnMode) |
This takes a list of commands, does "stuff" and returns returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e. | |
Constructors and destructors etc | |
CbcSolver () | |
Default Constructor. | |
CbcSolver (const OsiClpSolverInterface &) | |
Constructor from solver. | |
CbcSolver (const CbcModel &) | |
Constructor from model. | |
CbcSolver (const CbcSolver &rhs) | |
Copy constructor . | |
CbcSolver & | operator= (const CbcSolver &rhs) |
Assignment operator. | |
~CbcSolver () | |
Destructor. | |
void | fillParameters () |
Fill with standard parameters. | |
void | fillValuesInSolver () |
Set default values in solvers from parameters. | |
void | addUserFunction (CbcUser *function) |
Add user function. | |
void | setUserCallBack (CbcStopNow *function) |
Set user call back. | |
void | addCutGenerator (CglCutGenerator *generator) |
Add cut generator. | |
miscellaneous methods to line up with old | |
int * | analyze (OsiClpSolverInterface *solverMod, int &numberChanged, double &increment, bool changeInt, CoinMessageHandler *generalMessageHandler) |
1 - add heuristics to model 2 - do heuristics (and set cutoff and best solution) 3 - for miplib test so skip some (out model later) | |
int | doHeuristics (CbcModel *model, int type) |
1 - add heuristics to model 2 - do heuristics (and set cutoff and best solution) 3 - for miplib test so skip some (out model later) | |
void | updateModel (ClpSimplex *model2, int returnMode) |
Updates model_ from babModel_ according to returnMode returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e. | |
useful stuff | |
int | intValue (CbcOrClpParameterType type) const |
Get int value. | |
void | setIntValue (CbcOrClpParameterType type, int value) |
Set int value. | |
double | doubleValue (CbcOrClpParameterType type) const |
Get double value. | |
void | setDoubleValue (CbcOrClpParameterType type, double value) |
Set double value. | |
CbcUser * | userFunction (const char *name) const |
User function (NULL if no match). | |
CbcModel * | model () |
Return original Cbc model. | |
CbcModel * | babModel () |
Return updated Cbc model. | |
int | numberUserFunctions () const |
Number of userFunctions. | |
CbcUser ** | userFunctionArray () const |
User function array. | |
OsiClpSolverInterface * | originalSolver () const |
Copy of model on initial load (will contain output solutions). | |
CoinModel * | originalCoinModel () const |
Copy of model on initial load. | |
void | setOriginalSolver (OsiClpSolverInterface *originalSolver) |
Copy of model on initial load (will contain output solutions). | |
void | setOriginalCoinModel (CoinModel *originalCoinModel) |
Copy of model on initial load. | |
int | numberCutGenerators () const |
Number of cutgenerators. | |
CglCutGenerator ** | cutGeneratorArray () const |
Cut generator array. | |
double | startTime () const |
Start time. | |
void | setPrinting (bool onOff) |
Whether to print to std::cout. | |
void | setReadMode (int value) |
Where to start reading commands. | |
Private Attributes | |
Private member data | |
CbcModel | model_ |
Reference model. | |
CbcModel * | babModel_ |
Updated model. | |
CbcUser ** | userFunction_ |
User functions. | |
int * | statusUserFunction_ |
Status of user functions 0 - not used 1 - needs cbc_load 2 - available - data in coinModel 3 - data loaded - can do cbc_save. | |
OsiClpSolverInterface * | originalSolver_ |
Copy of model on initial load (will contain output solutions). | |
CoinModel * | originalCoinModel_ |
Copy of model on initial load. | |
CglCutGenerator ** | cutGenerator_ |
Cut generators. | |
int | numberUserFunctions_ |
Number of user functions. | |
int | numberCutGenerators_ |
Number of cut generators. | |
CbcStopNow * | callBack_ |
Stop now stuff. | |
double | startTime_ |
Cpu time at instantiation. | |
CbcOrClpParam * | parameters_ |
Parameters and values. | |
int | numberParameters_ |
Number of parameters. | |
bool | doMiplib_ |
Whether to do miplib test. | |
bool | noPrinting_ |
Whether to print to std::cout. | |
int | readMode_ |
Where to start reading commands. |
This allows the use of the standalone solver in a flexible manner It has an original OsiClpSolverInterface and CbcModel which it can use repeatedly e.g.
get a heuristic solution and then start again
So I will need a primitive scripting language which can then call solve and manipulate solution value and solution arrays.
Definition at line 27 of file CbcSolver.hpp.
CbcSolver::CbcSolver | ( | ) |
Default Constructor.
CbcSolver::CbcSolver | ( | const OsiClpSolverInterface & | ) |
Constructor from solver.
CbcSolver::CbcSolver | ( | const CbcModel & | ) |
Constructor from model.
CbcSolver::CbcSolver | ( | const CbcSolver & | rhs | ) |
Copy constructor .
CbcSolver::~CbcSolver | ( | ) |
Destructor.
int CbcSolver::solve | ( | int | argc, | |
const char * | argv[], | |||
int | returnMode | |||
) |
This takes a list of commands, does "stuff" and returns returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e.
as babModel (babModel NULL) (only use without preprocessing)
int CbcSolver::solve | ( | const char * | input, | |
int | returnMode | |||
) |
This takes a list of commands, does "stuff" and returns returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e.
as babModel (babModel NULL) (only use without preprocessing)
void CbcSolver::fillParameters | ( | ) |
Fill with standard parameters.
void CbcSolver::fillValuesInSolver | ( | ) |
Set default values in solvers from parameters.
void CbcSolver::addUserFunction | ( | CbcUser * | function | ) |
Add user function.
void CbcSolver::setUserCallBack | ( | CbcStopNow * | function | ) |
Set user call back.
void CbcSolver::addCutGenerator | ( | CglCutGenerator * | generator | ) |
Add cut generator.
int* CbcSolver::analyze | ( | OsiClpSolverInterface * | solverMod, | |
int & | numberChanged, | |||
double & | increment, | |||
bool | changeInt, | |||
CoinMessageHandler * | generalMessageHandler | |||
) |
1 - add heuristics to model 2 - do heuristics (and set cutoff and best solution) 3 - for miplib test so skip some (out model later)
int CbcSolver::doHeuristics | ( | CbcModel * | model, | |
int | type | |||
) |
1 - add heuristics to model 2 - do heuristics (and set cutoff and best solution) 3 - for miplib test so skip some (out model later)
void CbcSolver::updateModel | ( | ClpSimplex * | model2, | |
int | returnMode | |||
) |
Updates model_ from babModel_ according to returnMode returnMode - 0 model and solver untouched - babModel updated 1 model updated - just with solution basis etc 2 model updated i.e.
as babModel (babModel NULL) (only use without preprocessing)
int CbcSolver::intValue | ( | CbcOrClpParameterType | type | ) | const |
Get int value.
void CbcSolver::setIntValue | ( | CbcOrClpParameterType | type, | |
int | value | |||
) |
Set int value.
double CbcSolver::doubleValue | ( | CbcOrClpParameterType | type | ) | const |
Get double value.
void CbcSolver::setDoubleValue | ( | CbcOrClpParameterType | type, | |
double | value | |||
) |
Set double value.
CbcUser* CbcSolver::userFunction | ( | const char * | name | ) | const |
User function (NULL if no match).
CbcModel* CbcSolver::model | ( | ) | [inline] |
Return original Cbc model.
Definition at line 110 of file CbcSolver.hpp.
CbcModel* CbcSolver::babModel | ( | ) | [inline] |
Return updated Cbc model.
Definition at line 113 of file CbcSolver.hpp.
int CbcSolver::numberUserFunctions | ( | ) | const [inline] |
Number of userFunctions.
Definition at line 116 of file CbcSolver.hpp.
CbcUser** CbcSolver::userFunctionArray | ( | ) | const [inline] |
User function array.
Definition at line 119 of file CbcSolver.hpp.
OsiClpSolverInterface* CbcSolver::originalSolver | ( | ) | const [inline] |
Copy of model on initial load (will contain output solutions).
Definition at line 122 of file CbcSolver.hpp.
CoinModel* CbcSolver::originalCoinModel | ( | ) | const [inline] |
Copy of model on initial load.
Definition at line 125 of file CbcSolver.hpp.
void CbcSolver::setOriginalSolver | ( | OsiClpSolverInterface * | originalSolver | ) |
Copy of model on initial load (will contain output solutions).
void CbcSolver::setOriginalCoinModel | ( | CoinModel * | originalCoinModel | ) |
Copy of model on initial load.
int CbcSolver::numberCutGenerators | ( | ) | const [inline] |
Number of cutgenerators.
Definition at line 132 of file CbcSolver.hpp.
CglCutGenerator** CbcSolver::cutGeneratorArray | ( | ) | const [inline] |
Cut generator array.
Definition at line 135 of file CbcSolver.hpp.
double CbcSolver::startTime | ( | ) | const [inline] |
Start time.
Definition at line 138 of file CbcSolver.hpp.
void CbcSolver::setPrinting | ( | bool | onOff | ) | [inline] |
Whether to print to std::cout.
Definition at line 141 of file CbcSolver.hpp.
void CbcSolver::setReadMode | ( | int | value | ) | [inline] |
Where to start reading commands.
Definition at line 144 of file CbcSolver.hpp.
CbcModel CbcSolver::model_ [private] |
Reference model.
Definition at line 152 of file CbcSolver.hpp.
CbcModel* CbcSolver::babModel_ [private] |
Updated model.
Definition at line 155 of file CbcSolver.hpp.
CbcUser** CbcSolver::userFunction_ [private] |
User functions.
Definition at line 158 of file CbcSolver.hpp.
int* CbcSolver::statusUserFunction_ [private] |
Status of user functions 0 - not used 1 - needs cbc_load 2 - available - data in coinModel 3 - data loaded - can do cbc_save.
Definition at line 165 of file CbcSolver.hpp.
OsiClpSolverInterface* CbcSolver::originalSolver_ [private] |
Copy of model on initial load (will contain output solutions).
Definition at line 167 of file CbcSolver.hpp.
CoinModel* CbcSolver::originalCoinModel_ [private] |
Copy of model on initial load.
Definition at line 169 of file CbcSolver.hpp.
CglCutGenerator** CbcSolver::cutGenerator_ [private] |
Cut generators.
Definition at line 171 of file CbcSolver.hpp.
int CbcSolver::numberUserFunctions_ [private] |
Number of user functions.
Definition at line 173 of file CbcSolver.hpp.
int CbcSolver::numberCutGenerators_ [private] |
Number of cut generators.
Definition at line 175 of file CbcSolver.hpp.
CbcStopNow* CbcSolver::callBack_ [private] |
Stop now stuff.
Definition at line 177 of file CbcSolver.hpp.
double CbcSolver::startTime_ [private] |
Cpu time at instantiation.
Definition at line 179 of file CbcSolver.hpp.
CbcOrClpParam* CbcSolver::parameters_ [private] |
Parameters and values.
Definition at line 181 of file CbcSolver.hpp.
int CbcSolver::numberParameters_ [private] |
Number of parameters.
Definition at line 183 of file CbcSolver.hpp.
bool CbcSolver::doMiplib_ [private] |
Whether to do miplib test.
Definition at line 185 of file CbcSolver.hpp.
bool CbcSolver::noPrinting_ [private] |
Whether to print to std::cout.
Definition at line 187 of file CbcSolver.hpp.
int CbcSolver::readMode_ [private] |
Where to start reading commands.
Definition at line 189 of file CbcSolver.hpp.