46 const int *which,
const double *
weights,
int identifier,
90 OsiSOS *
osiObject(
const OsiSolverInterface *solver)
const;
228 virtual void fix(OsiSolverInterface *solver,
229 double *lower,
double *upper,
230 int branchState)
const;
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.
int way() const
Get the state of the branching object.
virtual void print() const
Print something about branch - only if log level high.
Simple Branch and bound class.
Information required while the node is live.
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.
virtual OsiSolverBranch * solverBranch() const
Create an OsiSolverBranch object.
void computeNonzeroRange()
Fill out the firstNonzero_ and lastNonzero_ data members.
virtual void print()
Print something about branch - only if log level high.
virtual double branch()
Does next branch and updates state.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
virtual int compareOriginalObject(const CbcBranchingObject *brObj) const
Compare the original object of this with the original object of brObj.
CbcSOSBranchingObject(CbcModel *model, const CbcSOS *clique, int way, double separator)
virtual void fix(OsiSolverInterface *solver, double *lower, double *upper, int branchState) const
Update bounds in solver as in 'branch' and update given bounds.
virtual void previousBranch()
Reset every information so that the branching object appears to point to the previous child.
virtual ~CbcSOSBranchingObject()
int firstNonzero_
The following two members describe the range in the members_ of the original object that whose upper ...
double separator_
separator
CbcSOSBranchingObject & operator=(const CbcSOSBranchingObject &rhs)
virtual CbcBranchingObject * clone() const
Clone.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
CbcSOSBranchingObject(const CbcSOSBranchingObject &)
Branching object for Special Ordered Sets of type 1 and 2.
int numberTimesUp_
Number of times we have gone up.
void setNumberMembers(int n)
Set number of members.
double shadowEstimateDown_
Current pseudo-shadow price estimate down.
virtual void feasibleRegion()
This looks at solution and sets bounds to contain solution.
double * mutableWeights() const
Array of weights.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
int numberTimesDown_
Number of times we have gone down.
void setIntegerValued(bool yesNo)
Set whether set is integer valued or not.
double downDynamicPseudoRatio_
Down pseudo ratio.
virtual OsiSolverBranch * solverBranch() const
Create an OsiSolverBranch object.
const double * weights() const
Array of weights.
OsiSOS * osiObject(const OsiSolverInterface *solver) const
Construct an OsiSOS object.
bool oddValues_
Whether odd values e.g. negative.
double shadowEstimateUp_
Current pseudo-shadow price estimate up.
int * mutableMembers() const
Members (indices in range 0 ... numberColumns-1)
virtual CbcObject * clone() const
Clone.
int numberMembers() const
Number of members.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
bool integerValued_
Whether integer valued.
virtual CbcObjectUpdateData createUpdateInformation(const OsiSolverInterface *solver, const CbcNode *node, const CbcBranchingObject *branchingObject)
Pass in information on branch just done and create CbcObjectUpdateData instance.
virtual void updateInformation(const CbcObjectUpdateData &data)
Update object by CbcObjectUpdateData.
double upDynamicPseudoRatio_
Up pseudo ratio.
int numberTimesDown() const
Down number times.
CbcSOS & operator=(const CbcSOS &rhs)
double * weights_
Weights for individual members.
int numberTimesUp() const
Up number times.
CbcSOS(CbcModel *model, int numberMembers, const int *which, const double *weights, int identifier, int type=1)
Constructor with SOS type and member information.
int sosType() const
SOS type.
virtual void redoSequenceEtc(CbcModel *model, int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
int numberMembers_
Number of members.
const int * members() const
Members (indices in range 0 ... numberColumns-1)