6 #ifndef CbcBranchLotsize_H
7 #define CbcBranchLotsize_H
22 int numberPoints,
const double *points,
bool range =
false);
91 virtual void floorCeiling(
double &floorLotsize,
double &ceilingLotsize,
double value,
92 double tolerance)
const;
143 void printLotsize(
double value,
bool condition,
int type)
const;
195 double lowerValue,
double upperValue);
218 virtual void print();
CbcLotsizeBranchingObject & operator=(const CbcLotsizeBranchingObject &rhs)
Assignment operator.
Abstract branching object base class Now just difference with OsiBranchingObject. ...
virtual void print()
Print something about branch - only if log level high.
double * bound() const
Ranges.
bool findRange(double value) const
Finds range of interest so value is feasible in range range_ or infeasible between hi[range_] and lo[...
virtual void floorCeiling(double &floorLotsize, double &ceilingLotsize, double value, double tolerance) const
Returns floor and ceiling.
virtual void print() const
Print something about branch - only if log level high.
int rangeType() const
Type - 1 points, 2 ranges.
virtual CbcBranchingObject * preferredNewFeasible() const
Given a valid solution (with reduced costs, etc.), return a branching object which would give a new f...
int modelSequence() const
Model column number.
virtual void feasibleRegion()
Set bounds to contain the current solution.
virtual ~CbcLotsizeBranchingObject()
Destructor.
virtual double branch()
Sets the bounds for the variable according to the current arm of the branch and advances the object s...
double infeasibility() const
Return infeasibility.
double up_[2]
Lower [0] and upper [1] bounds for the up arm (way_ = 1)
void printLotsize(double value, bool condition, int type) const
Just for debug (CBC_PRINT defined in CbcBranchLotsize.cpp)
int numberRanges_
Number of points.
void setModelSequence(int value)
Set model column number.
virtual CbcRangeCompare compareBranchingObject(const CbcBranchingObject *brObj, const bool replaceIfOverlap=false)
Compare the this with brObj.
double value() const
Current value.
double originalLowerBound() const
Original variable bounds.
int variable() const
Index identifying the associated CbcObject within its class.
virtual void feasibleRegion()=0
For the variable(s) referenced by the object, look at the current solution and set bounds to match th...
int rangeType_
Type - 1 points, 2 ranges.
Lotsize branching object.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
Abstract Base Class for describing an interface to a solver.
double originalUpperBound() const
CbcLotsizeBranchingObject()
Default constructor.
int way() const
Get the state of the branching object.
virtual CbcBranchingObject * notPreferredNewFeasible() const
Given a valid solution (with reduced costs, etc.), return a branching object which would give a new f...
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.
double down_[2]
Lower [0] and upper [1] bounds for the down arm (way_ = -1)
CbcModel * model() const
Return model.
CbcLotsize & operator=(const CbcLotsize &rhs)
virtual void resetBounds(const OsiSolverInterface *solver)
Reset original upper and lower bound values from the solver.
virtual int columnNumber() const
Column number if single column object -1 otherwise, so returns >= 0 Used by heuristics.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
virtual CbcObject * clone() const
Clone.
int numberRanges() const
Number of points.
CbcModel * model() const
Return model.
Simple Branch and bound class.
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...