Cbc 2.10.13
Loading...
Searching...
No Matches
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:
Collaboration diagram for CbcBranchToFixLots:

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.
Public Member Functions inherited from CbcBranchCut
 CbcBranchCut ()
 CbcBranchCut (CbcModel *model)
 In to maintain normal methods.
 CbcBranchCut (const CbcBranchCut &)
CbcBranchCut & operator= (const CbcBranchCut &rhs)
 ~CbcBranchCut ()
virtual void feasibleRegion ()
 Set bounds to contain the current solution.
virtual bool boundBranch () const
 Return true if branch created by object should fix variables.
virtual CbcBranchingObject * preferredNewFeasible () const
 Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in the good direction.
virtual CbcBranchingObject * notPreferredNewFeasible () const
 Given a valid solution (with reduced costs, etc.), return a branching object which would give a new feasible point in a bad direction.
virtual void resetBounds ()
 Reset original upper and lower bound values from the solver.

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 22 of file CbcBranchToFixLots.hpp.

Constructor & Destructor Documentation

◆ CbcBranchToFixLots() [1/3]

CbcBranchToFixLots::CbcBranchToFixLots ( )

◆ CbcBranchToFixLots() [2/3]

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() [3/3]

CbcBranchToFixLots::CbcBranchToFixLots ( const CbcBranchToFixLots & )

◆ ~CbcBranchToFixLots()

CbcBranchToFixLots::~CbcBranchToFixLots ( )

Member Function Documentation

◆ clone()

virtual CbcObject * CbcBranchToFixLots::clone ( ) const
virtual

Clone.

Reimplemented from CbcBranchCut.

◆ operator=()

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

◆ shallWe()

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.

◆ infeasibility()

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.

◆ canDoHeuristics()

virtual bool CbcBranchToFixLots::canDoHeuristics ( ) const
inlinevirtual

Return true if object can take part in normal heuristics.

Definition at line 63 of file CbcBranchToFixLots.hpp.

◆ createCbcBranch()

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

Creates a branching object.

Reimplemented from CbcBranchCut.

◆ redoSequenceEtc()

virtual void CbcBranchToFixLots::redoSequenceEtc ( CbcModel * model,
int numberColumns,
const int * originalColumns )
virtual

Redoes data when sequence numbers change.

Member Data Documentation

◆ djTolerance_

double CbcBranchToFixLots::djTolerance_
protected

data

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

Definition at line 77 of file CbcBranchToFixLots.hpp.

◆ fractionFixed_

double CbcBranchToFixLots::fractionFixed_
protected

We only need to make sure this fraction fixed.

Definition at line 79 of file CbcBranchToFixLots.hpp.

◆ mark_

char* CbcBranchToFixLots::mark_
protected

Never fix ones marked here.

Definition at line 81 of file CbcBranchToFixLots.hpp.

◆ matrixByRow_

CoinPackedMatrix CbcBranchToFixLots::matrixByRow_
protected

Matrix by row.

Definition at line 83 of file CbcBranchToFixLots.hpp.

◆ depth_

int CbcBranchToFixLots::depth_
protected

Do if depth multiple of this.

Definition at line 85 of file CbcBranchToFixLots.hpp.

◆ numberClean_

int CbcBranchToFixLots::numberClean_
protected

number of ==1 rows which need to be clean

Definition at line 87 of file CbcBranchToFixLots.hpp.

◆ alwaysCreate_

bool CbcBranchToFixLots::alwaysCreate_
protected

If true then always create branch.

Definition at line 89 of file CbcBranchToFixLots.hpp.


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