10 #include "OsiRowCut.hpp"
11 #include "CoinPackedMatrix.hpp"
Define a cut branching class.
virtual bool boundBranch() const
Return true if branch created by object should fix variables.
CbcBranchCut(const CbcBranchCut &)
virtual CbcBranchingObject * notPreferredNewFeasible() const
Given a valid solution (with reduced costs, etc.), return a branching object which would give a new f...
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual CbcBranchingObject * preferredNewFeasible() const
Given a valid solution (with reduced costs, etc.), return a branching object which would give a new f...
virtual void resetBounds()
Reset original upper and lower bound values from the solver.
CbcBranchCut & operator=(const CbcBranchCut &rhs)
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility.
virtual void feasibleRegion()
Set bounds to contain the current solution.
virtual CbcObject * clone() const
Clone.
CbcBranchCut(CbcModel *model)
In to maintain normal methods.
Abstract branching object base class Now just difference with OsiBranchingObject.
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.
virtual ~CbcCutBranchingObject()
Destructor.
virtual double branch()
Sets the bounds for variables or adds a cut depending on the current arm of the branch and advances t...
OsiRowCut down_
Cut for the down arm (way_ = -1)
bool canFix_
True if one way can fix variables.
CbcCutBranchingObject(CbcModel *model, OsiRowCut &down, OsiRowCut &up, bool canFix)
Create a cut branching object.
OsiRowCut up_
Cut for the up arm (way_ = 1)
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
virtual CbcBranchingObject * clone() const
Clone.
CbcCutBranchingObject & operator=(const CbcCutBranchingObject &rhs)
Assignment operator.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
virtual void print()
Print something about branch - only if log level high.
virtual bool boundBranch() const
Return true if branch should fix variables.
CbcCutBranchingObject()
Default constructor.
CbcCutBranchingObject(const CbcCutBranchingObject &)
Copy constructor.
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
Simple Branch and bound class.
virtual void resetBounds(const OsiSolverInterface *)
Reset variable bounds to their original values.
CbcModel * model() const
Return model.
virtual void feasibleRegion()=0
For the variable(s) referenced by the object, look at the current solution and set bounds to match th...
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.