# CbcBranchToFixLots Class Reference

Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution. More...

`#include <CbcBranchToFixLots.hpp>`

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

List of all members.

## Public Member Functions
| CbcBranchToFixLots ()
| CbcBranchToFixLots (CbcModel *model, double djTolerance, double fractionFixed, int depth, int numberClean=0, const char *mark=NULL, bool alwaysCreate=false)
| Useful constructor - passed reduced cost tolerance and fraction we would like fixed.
| CbcBranchToFixLots (const CbcBranchToFixLots &)
virtual CbcObject * | clone () const
| Clone.
CbcBranchToFixLots & | operator= (const CbcBranchToFixLots &rhs)
| ~CbcBranchToFixLots ()
int | shallWe () const
| Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both FIXME: should use enum or equivalent to make these numbers clearer.
virtual double | infeasibility (const OsiBranchingInformation *info, int &preferredWay) const
| Infeasibility for an integer variable - large is 0.5, but also can be infinity when known infeasible.
virtual bool | canDoHeuristics () const
| Return true if object can take part in normal heuristics.
virtual CbcBranchingObject * | createCbcBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
| Creates a branching object.
virtual void | redoSequenceEtc (CbcModel *model, int numberColumns, const int *originalColumns)
| Redoes data when sequence numbers change.
## Protected Attributes
double | djTolerance_
| data
double | fractionFixed_
| We only need to make sure this fraction fixed.
char * | mark_
| Never fix ones marked here.
CoinPackedMatrix | matrixByRow_
| Matrix by row.
int | depth_
| Do if depth multiple of this.
int | numberClean_
| number of ==1 rows which need to be clean
bool | alwaysCreate_
| If true then always create branch.

## Detailed Description

Define a branch class that branches so that one way variables are fixed while the other way cuts off that solution.

a) On reduced cost b) When enough ==1 or <=1 rows have been satisfied (not fixed - satisfied)

Definition at line 23 of file CbcBranchToFixLots.hpp.

## Constructor & Destructor Documentation

CbcBranchToFixLots::CbcBranchToFixLots | ( |  | ) |

CbcBranchToFixLots::CbcBranchToFixLots | ( | CbcModel * | model,
|  | double | djTolerance,
|  | double | fractionFixed,
|  | int | depth,
|  | int | numberClean = `0`,
|  | const char * | mark = `NULL`,
|  | bool | alwaysCreate = `false` |
| ) |  |  |

Useful constructor - passed reduced cost tolerance and fraction we would like fixed.

Also depth level to do at. Also passed number of 1 rows which when clean triggers fix Always does if all 1 rows cleaned up and number>0 or if fraction columns reached Also whether to create branch if can't reach fraction.

CbcBranchToFixLots::CbcBranchToFixLots | ( | const CbcBranchToFixLots & |  | ) |

CbcBranchToFixLots::~CbcBranchToFixLots | ( |  | ) |

## Member Function Documentation

virtual CbcObject* CbcBranchToFixLots::clone | ( |  | ) | const`[virtual]`

Clone.

Reimplemented from CbcBranchCut.

CbcBranchToFixLots& CbcBranchToFixLots::operator= | ( | const CbcBranchToFixLots & | rhs | ) |

Reimplemented from CbcBranchCut.

int CbcBranchToFixLots::shallWe | ( |  | ) | const

Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both FIXME: should use enum or equivalent to make these numbers clearer.

virtual double CbcBranchToFixLots::infeasibility | ( | const OsiBranchingInformation * | info,
|  | int & | preferredWay |
| ) |  |  | const`[virtual]`

Infeasibility for an integer variable - large is 0.5, but also can be infinity when known infeasible.

Reimplemented from CbcBranchCut.

virtual bool CbcBranchToFixLots::canDoHeuristics | ( |  | ) | const`[inline, virtual]`

Return true if object can take part in normal heuristics.

Reimplemented from OsiObject.

Definition at line 65 of file CbcBranchToFixLots.hpp.

virtual CbcBranchingObject* CbcBranchToFixLots::createCbcBranch | ( | OsiSolverInterface * | solver,
|  | const OsiBranchingInformation * | info,
|  | int | way |
| ) |  |  | `[virtual]`

Creates a branching object.

Reimplemented from CbcBranchCut.

virtual void CbcBranchToFixLots::redoSequenceEtc | ( | CbcModel * | model,
|  | int | numberColumns,
|  | const int * | originalColumns |
| ) |  |  | `[virtual]`

Redoes data when sequence numbers change.

Reimplemented from CbcObject.

## Member Data Documentation

double CbcBranchToFixLots::djTolerance_`[protected]`

data

Reduced cost tolerance i.e. dj has to be >= this before fixed

Definition at line 79 of file CbcBranchToFixLots.hpp.

double CbcBranchToFixLots::fractionFixed_`[protected]`

We only need to make sure this fraction fixed.

Definition at line 81 of file CbcBranchToFixLots.hpp.

char* CbcBranchToFixLots::mark_`[protected]`

Never fix ones marked here.

Definition at line 83 of file CbcBranchToFixLots.hpp.

CoinPackedMatrix CbcBranchToFixLots::matrixByRow_`[protected]`

Matrix by row.

Definition at line 85 of file CbcBranchToFixLots.hpp.

int CbcBranchToFixLots::depth_`[protected]`

Do if depth multiple of this.

Definition at line 87 of file CbcBranchToFixLots.hpp.

int CbcBranchToFixLots::numberClean_`[protected]`

number of ==1 rows which need to be clean

Definition at line 89 of file CbcBranchToFixLots.hpp.

bool CbcBranchToFixLots::alwaysCreate_`[protected]`

If true then always create branch.

Definition at line 91 of file CbcBranchToFixLots.hpp.

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

- /home/coin/svn-release/Cbc-2.7.8/Cbc/src/CbcBranchToFixLots.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines