# CbcFathom Class Reference

Fathom base class. More...

`#include <CbcFathom.hpp>`

Inheritance diagram for CbcFathom:
[legend]
Collaboration diagram for CbcFathom:
[legend]

List of all members.

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

## Detailed Description

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 32 of file CbcFathom.hpp.

## Constructor & Destructor Documentation

CbcFathom::CbcFathom | ( |  | ) |

CbcFathom::CbcFathom | ( | CbcModel & | model | ) |

virtual CbcFathom::~CbcFathom | ( |  | ) | `[virtual]`

## Member Function Documentation

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 62 of file CbcFathom.hpp.

CbcFathom& CbcFathom::operator= | ( | const CbcFathom & | rhs | ) | `[private]`

Illegal Assignment operator.

Reimplemented in CbcFathomDynamicProgramming.

## Member Data Documentation

CbcModel* CbcFathom::model_`[protected]`

Model.

Definition at line 69 of file CbcFathom.hpp.

bool CbcFathom::possible_`[protected]`

Possible - if this method of fathoming can be used.

Definition at line 71 of file CbcFathom.hpp.

The documentation for this class was generated from the following file:

- /home/coin/svn-release/Cbc-2.8.1/Cbc/src/CbcFathom.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines