6 #ifndef CbcBranchLink_H
7 #define CbcBranchLink_H
29 const double *
weights,
int setNumber);
38 const double *
weights,
int setNumber);
Abstract branching object base class Now just difference with OsiBranchingObject.
CbcModel * model() const
Return model.
int way() const
Get the state of the branching object.
Branching object for Special ordered sets.
virtual ~CbcLinkBranchingObject()
virtual CbcBranchingObject * clone() const
Clone.
virtual double branch()
Does next branch and updates state.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
double separator_
separator
CbcLinkBranchingObject(const CbcLinkBranchingObject &)
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
CbcLinkBranchingObject(CbcModel *model, const CbcLink *set, int way, double separator)
CbcLinkBranchingObject & operator=(const CbcLinkBranchingObject &rhs)
virtual void print()
Print something about branch - only if log level high.
Define Special Linked Ordered Sets.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual CbcObject * clone() const
Clone.
CbcLink(CbcModel *model, int numberMembers, int numberLinks, int first, const double *weights, int setNumber)
Useful constructor - A valid solution is if all variables are zero apart from k*numberLink to (k+1)*n...
int numberMembers_
Number of members.
CbcLink & operator=(const CbcLink &rhs)
int numberLinks() const
Number of links for each member.
int numberMembers() const
Number of members.
const int * which() const
Which variables.
int numberLinks_
Number of links.
virtual double infeasibility(int &preferredWay) const
Infeasibility - large is 0.5.
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
CbcLink(CbcModel *model, int numberMembers, int numberLinks, int typeSOS, const int *which, const double *weights, int setNumber)
Useful constructor - A valid solution is if all variables are zero apart from k*numberLink to (k+1)*n...
const double * weights() const
Array of weights.
Simple Branch and bound class.
CbcModel * model() const
Return model.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.