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.
1.6.1