Go to the documentation of this file.
24 const int *which,
int identifier);
45 virtual double infeasibility(
const OsiBranchingInformation *info,
122 virtual void print();
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
Abstract base class for consequent bounds.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
N way branching Object class.
int numberMembers_
data Number of members
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 void redoSequenceEtc(CbcModel *model, int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
virtual void print()
Print something about branch - only if log level high.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object,...
int * members_
Members (indices in range 0 ... numberColumns-1)
virtual int numberBranches() const
The number of branch arms created for this branching object.
Define an n-way class for variables.
virtual CbcBranchingObject * clone() const
Clone.
void applyConsequence(int iSequence, int state) const
Applies a consequence for a single member.
const int * members() const
Members (indices in range 0 ... numberColumns-1)
virtual CbcObject * clone() const
Clone.
Simple Branch and bound class.
virtual ~CbcNWayBranchingObject()
CbcNWayBranchingObject & operator=(const CbcNWayBranchingObject &rhs)
virtual void print() const
Print something about branch - only if log level high.
Abstract branching object base class Now just difference with OsiBranchingObject.
int numberMembers() const
Number of members.
virtual ~CbcNWay()
Destructor.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5 (and 0.5 will give this)
CbcModel * model() const
Return model.
const CbcNWay * object_
Points back to object.
CbcNWay & operator=(const CbcNWay &rhs)
Assignment operator.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
int numberInSet_
Number in set.
void setConsequence(int iColumn, const CbcConsequence &consequence)
Set up a consequence for a single member.
virtual double branch()
Does next branch and updates state.
CbcModel * model() const
Return model.
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
CbcConsequence ** consequence_
Consequences (normally NULL)
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
int * order_
order of branching - points back to CbcNWay
virtual bool twoWay() const
Is this a two way object (-1 down, +1 up)