Go to the documentation of this file.
47 const int * which,
const double *
weights,
int identifier,
93 OsiSOS *
osiObject(
const OsiSolverInterface * solver)
const;
96 return numberMembers_;
110 return numberTimesDown_;
114 return numberTimesUp_;
140 return (sosType_ == 1 && integerValued_);
144 integerValued_ = yesNo;
165 mutable double shadowEstimateDown_;
167 mutable double shadowEstimateUp_;
169 double downDynamicPseudoRatio_;
171 double upDynamicPseudoRatio_;
173 int numberTimesDown_;
220 virtual void fix(OsiSolverInterface * solver,
221 double * lower,
double * upper,
222 int branchState)
const ;
virtual OsiSolverBranch * solverBranch() const
Create an OsiSolverBranch object.
CbcSOSBranchingObject & operator=(const CbcSOSBranchingObject &rhs)
Branching object for Special ordered sets.
int way() const
Get the state of the branching object.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
void computeNonzeroRange()
Fill out the firstNonzero_ and lastNonzero_ data 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...
int numberTimesDown() const
Down number times.
virtual CbcBranchingObject * clone() const
Clone.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object,...
virtual void fix(OsiSolverInterface *solver, double *lower, double *upper, int branchState) const
Update bounds in solver as in 'branch' and update given bounds.
CbcSOS & operator=(const CbcSOS &rhs)
int * mutableMembers() const
Members (indices in range 0 ... numberColumns-1)
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
const double * weights() const
Array of weights.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual CbcObject * clone() const
Clone.
const int * members() const
Members (indices in range 0 ... numberColumns-1)
CbcSOSBranchingObject(CbcModel *model, const CbcSOS *clique, int way, double separator)
virtual void updateInformation(const CbcObjectUpdateData &data)
Update object by CbcObjectUpdateData.
int numberTimesUp() const
Up number times.
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
OsiSOS * osiObject(const OsiSolverInterface *solver) const
Construct an OsiSOS object.
virtual void print()
Print something about branch - only if log level high.
Simple Branch and bound class.
void setNumberMembers(int n)
Set number of members.
void setIntegerValued(bool yesNo)
Set whether set is integer valued or not.
virtual void print() const
Print something about branch - only if log level high.
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
Abstract branching object base class Now just difference with OsiBranchingObject.
CbcSOSBranchingObject(const CbcSOSBranchingObject &)
double * mutableWeights() const
Array of weights.
int sosType() const
SOS type.
virtual void previousBranch()
Reset every information so that the branching object appears to point to the previous child.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
CbcModel * model() const
Return model.
virtual double branch()
Does next branch and updates state.
Information required while the node is live.
CbcSOS(CbcModel *model, int numberMembers, const int *which, const double *weights, int identifier, int type=1)
Constructor with SOS type and member information.
virtual void redoSequenceEtc(CbcModel *model, int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
virtual CbcObjectUpdateData createUpdateInformation(const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject)
Pass in information on branch just done and create CbcObjectUpdateData instance.
int numberMembers() const
Number of members.
CbcModel * model() const
Return model.
virtual ~CbcSOSBranchingObject()
virtual OsiSolverBranch * solverBranch() const
Create an OsiSolverBranch object.
Branching object for Special Ordered Sets of type 1 and 2.