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:

Inheritance graph
[legend]
Collaboration diagram for CbcBranchToFixLots:

Collaboration graph
[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 CbcObjectclone () const
 Clone.
CbcBranchToFixLotsoperator= (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 CbcBranchingObjectcreateCbcBranch (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_
 Reduced cost tolerance i.e. dj has to be >= this before fixed.
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  ) 

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]

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:
Generated on Sun Oct 23 03:10:12 2011 for Cbc by  doxygen 1.4.7