8 #ifndef CbcSimpleIntegerPseudoCost_H
9 #define CbcSimpleIntegerPseudoCost_H
Abstract branching object base class Now just difference with OsiBranchingObject.
Simple Branch and bound class.
CbcModel * model() const
Return model.
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
Define a single integer class but with pseudo costs.
double upDownSeparator_
Up/down separator If >0.0 then do first branch up if value-floor(value) >= this value.
virtual CbcObject * clone() const
Clone.
double downPseudoCost_
data
int method_
Method - 0 - normal - return min (up,down) 1 - if before any solution return CoinMax(up,...
virtual ~CbcSimpleIntegerPseudoCost()
double upPseudoCost_
Up pseudo cost.
virtual double downEstimate() const
Return "down" estimate (default 1.0e-5)
CbcSimpleIntegerPseudoCost & operator=(const CbcSimpleIntegerPseudoCost &rhs)
int method() const
method - see below for details
void setUpDownSeparator(double value)
Set up down separator.
void setUpPseudoCost(double value)
Set up pseudo cost.
CbcSimpleIntegerPseudoCost(CbcModel *model, int dummy, int iColumn, double downPseudoCost, double upPseudoCost)
CbcSimpleIntegerPseudoCost()
void setDownPseudoCost(double value)
Set down pseudo cost.
void setMethod(int value)
Set method.
double upPseudoCost() const
Up pseudo cost.
virtual double upEstimate() const
Return "up" estimate.
CbcSimpleIntegerPseudoCost(CbcModel *model, int iColumn, double breakEven=0.5)
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility - large is 0.5.
double upDownSeparator() const
Up down separator.
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
CbcSimpleIntegerPseudoCost(CbcModel *model, int iColumn, double downPseudoCost, double upPseudoCost)
double downPseudoCost() const
Down pseudo cost.
CbcSimpleIntegerPseudoCost(const CbcSimpleIntegerPseudoCost &)
Define a single integer class.
double breakEven() const
Breakeven e.g 0.7 -> >= 0.7 go up first.