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.
double upDownSeparator_
Up/down separator If >0.0 then do first branch up if value-floor(value) >= this value.
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)
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 & operator=(const CbcSimpleIntegerPseudoCost &rhs)
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)
virtual CbcObject * clone() const
Clone.
double downPseudoCost() const
Down pseudo cost.
CbcSimpleIntegerPseudoCost(const CbcSimpleIntegerPseudoCost &)
double breakEven() const
Breakeven e.g 0.7 -> >= 0.7 go up first.