Public Member Functions | Protected Attributes
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:
CbcBranchCut CbcBranchCut CbcObject CbcObject CbcObject CbcObject

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.
 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_
 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 17 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 ( )
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.

Definition at line 59 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.

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.

Definition at line 59 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

data

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

Definition at line 73 of file CbcBranchToFixLots.hpp.

We only need to make sure this fraction fixed.

Definition at line 75 of file CbcBranchToFixLots.hpp.

char * CbcBranchToFixLots::mark_ [protected]

Never fix ones marked here.

Definition at line 77 of file CbcBranchToFixLots.hpp.

CoinPackedMatrix CbcBranchToFixLots::matrixByRow_ [protected]

Matrix by row.

Definition at line 79 of file CbcBranchToFixLots.hpp.

int CbcBranchToFixLots::depth_ [protected]

Do if depth multiple of this.

Definition at line 81 of file CbcBranchToFixLots.hpp.

number of ==1 rows which need to be clean

Definition at line 83 of file CbcBranchToFixLots.hpp.

If true then always create branch.

Definition at line 85 of file CbcBranchToFixLots.hpp.


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