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