2 #ifndef CbcBranchingObject_H
3 #define CbcBranchingObject_H
8 #include "OsiBranchingObject.hpp"
83 numberBranches_ = value;
92 virtual double branch() = 0;
99 virtual double branch(OsiSolverInterface * ) {
104 virtual void fix(OsiSolverInterface * ,
105 double * ,
double * ,
110 virtual bool tighten(OsiSolverInterface * ) {
return false;}
116 assert(branchIndex_ > 0);
121 using OsiBranchingObject::print ;
156 inline void way(
int way) {
virtual CbcBranchingObject * clone() const =0
Clone.
Abstract branching object base class Now just difference with OsiBranchingObject. ...
virtual bool tighten(OsiSolverInterface *)
Change (tighten) bounds in object to reflect bounds in solver.
virtual int fillStrongInfo(CbcStrongInfo &)
Some branchingObjects may claim to be able to skip strong branching.
void setModel(CbcModel *model)
update model
virtual void print() const
Print something about branch - only if log level high.
virtual ~CbcBranchingObject()
Destructor.
virtual CbcBranchObjType type() const =0
Return the type (an integer identifier) of this.
CbcBranchingObject()
Default Constructor.
void setNumberBranches(int value)
Set number of branches to do.
int variable() const
Index identifying the associated CbcObject within its class.
void resetNumberBranchesLeft()
Reset number of branches left to original.
int way_
The state of the branching object.
void way(int way)
Set the state of the branching object.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)=0
Compare the this with brObj.
virtual void previousBranch()
Reset every information so that the branching object appears to point to the previous child...
int way() const
Get the state of the branching object.
CbcBranchingObject & operator=(const CbcBranchingObject &rhs)
Assignment operator.
virtual void fix(OsiSolverInterface *, double *, double *, int) const
Update bounds in solver as in 'branch' and update given bounds.
CbcModel * model_
The model that owns this branching object.
virtual double branch(OsiSolverInterface *)
Execute the actions required to branch, as specified by the current state of the branching object...
CbcObject * object() const
Return pointer back to object which created.
CbcObject * originalCbcObject_
Pointer back to object which created.
int variable_
Branching variable (0 is first integer)
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
Abstract base class for `objects'.
CbcModel * model() const
Return model.
Simple Branch and bound class.
void setOriginalObject(CbcObject *object)
Set pointer back to object which created.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object...