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