Fathom base class. More...
#include <CbcFathom.hpp>
Public Member Functions | |
CbcFathom () | |
CbcFathom (CbcModel &model) | |
virtual | ~CbcFathom () |
virtual void | setModel (CbcModel *model) |
update model (This is needed if cliques update matrix etc) | |
virtual CbcFathom * | clone () const =0 |
Clone. | |
virtual void | resetModel (CbcModel *model)=0 |
Resets stuff if model changes. | |
virtual int | fathom (double *&newSolution)=0 |
returns 0 if no fathoming attempted, 1 fully fathomed, 2 incomplete search, 3 incomplete search but treat as complete. | |
bool | possible () const |
Protected Attributes | |
CbcModel * | model_ |
Model. | |
bool | possible_ |
Possible - if this method of fathoming can be used. | |
Private Member Functions | |
CbcFathom & | operator= (const CbcFathom &rhs) |
Illegal Assignment operator. |
Fathom base class.
The idea is that after some branching the problem will be effectively smaller than the original problem and maybe there will be a more specialized technique which can completely fathom this branch quickly.
One method is to presolve the problem to give a much smaller new problem and then do branch and cut on that. Another might be dynamic programming.
Definition at line 21 of file CbcFathom.hpp.
CbcFathom::CbcFathom | ( | ) |
CbcFathom::CbcFathom | ( | CbcModel & | model | ) |
virtual CbcFathom::~CbcFathom | ( | ) | [virtual] |
virtual void CbcFathom::setModel | ( | CbcModel * | model | ) | [virtual] |
update model (This is needed if cliques update matrix etc)
Reimplemented in CbcFathomDynamicProgramming.
virtual CbcFathom* CbcFathom::clone | ( | ) | const [pure virtual] |
Clone.
Implemented in CbcFathomDynamicProgramming.
virtual void CbcFathom::resetModel | ( | CbcModel * | model | ) | [pure virtual] |
Resets stuff if model changes.
Implemented in CbcFathomDynamicProgramming.
virtual int CbcFathom::fathom | ( | double *& | newSolution | ) | [pure virtual] |
returns 0 if no fathoming attempted, 1 fully fathomed, 2 incomplete search, 3 incomplete search but treat as complete.
If solution then newSolution will not be NULL and will be freed by CbcModel. It is expected that the solution is better than best so far but CbcModel will double check.
If returns 3 then of course there is no guarantee of global optimum
Implemented in CbcFathomDynamicProgramming.
bool CbcFathom::possible | ( | ) | const [inline] |
Definition at line 51 of file CbcFathom.hpp.
Illegal Assignment operator.
Reimplemented in CbcFathomDynamicProgramming.
CbcModel* CbcFathom::model_ [protected] |
Model.
Definition at line 57 of file CbcFathom.hpp.
bool CbcFathom::possible_ [protected] |
Possible - if this method of fathoming can be used.
Definition at line 59 of file CbcFathom.hpp.