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