Go to the documentation of this file.
12 #include "OsiRowCut.hpp"
13 #include "CoinHelperFunctions.hpp"
14 #include "CoinPackedMatrix.hpp"
48 virtual double infeasibility(
const OsiBranchingInformation *info,
82 int numberOnDownSide,
const int *down,
83 int numberOnUpSide,
const int *up);
112 virtual void print();
182 virtual double infeasibility(
const OsiBranchingInformation *info,
int way() const
Get the state of the branching object.
int numberDown_
data Number on down list
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
CoinThreadRandom randomNumberGenerator_
data Thread specific random number generator
Define a follow on class.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual void previousBranch()
Reset every information so that the branching object appears to point to the previous child.
virtual void feasibleRegion()=0
For the variable(s) referenced by the object, look at the current solution and set bounds to match th...
virtual CbcObject * clone() const
Clone.
virtual void initializeForBranching(CbcModel *)
Initialize for branching.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object,...
virtual CbcBranchingObject * clone() const
Clone.
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
int * upList_
upList - variables to fix to lb on up branch
CbcFollowOn & operator=(const CbcFollowOn &rhs)
Simple Branch and bound class.
CoinThreadRandom savedRandomNumberGenerator_
Saved version of thread specific random number generator.
virtual void print() const
Print something about branch - only if log level high.
int numberUp_
Number on up list.
virtual void print()
Print something about branch - only if log level high.
Abstract branching object base class Now just difference with OsiBranchingObject.
virtual double branch()
Does next branch and updates state.
CoinPackedMatrix matrixByRow_
Matrix by row.
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
CbcFixingBranchingObject & operator=(const CbcFixingBranchingObject &rhs)
virtual ~CbcFixingBranchingObject()
General Branching Object class.
CbcModel * model() const
Return model.
OsiRowCut buildCut(const OsiBranchingInformation *info, int type, int &preferredWay) const
Build "cut".
CoinPackedMatrix matrix_
data Matrix
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
int * rhs_
Possible rhs (if 0 then not possible)
CbcFixingBranchingObject()
int * downList_
downList - variables to fix to lb on down branch
CbcModel * model() const
Return model.
Define an idiotic idea class.
CbcIdiotBranch & operator=(const CbcIdiotBranch &rhs)
virtual int gutsOfFollowOn(int &otherRow, int &preferredWay) const
As some computation is needed in more than one place - returns row.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
virtual CbcObject * clone() const
Clone.