Go to the documentation of this file.
8 #ifndef CbcBranchToFixLots_H
9 #define CbcBranchToFixLots_H
13 #include "OsiRowCut.hpp"
14 #include "CoinPackedMatrix.hpp"
35 double fractionFixed,
int depth,
37 const char *mark = NULL,
38 bool alwaysCreate =
false);
59 virtual double infeasibility(
const OsiBranchingInformation *info,
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
virtual void redoSequenceEtc(CbcModel *model, int numberColumns, const int *originalColumns)
Redoes data when sequence numbers change.
int depth_
Do if depth multiple of this.
int numberClean_
number of ==1 rows which need to be clean
virtual CbcObject * clone() const
Clone.
int shallWe() const
Does a lot of the work, Returns 0 if no good, 1 if dj, 2 if clean, 3 if both FIXME: should use enum o...
Define a cut branching class.
Simple Branch and bound class.
bool alwaysCreate_
If true then always create branch.
Abstract branching object base class Now just difference with OsiBranchingObject.
Define a branch class that branches so that one way variables are fixed while the other way cuts off ...
virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
virtual double infeasibility(const OsiBranchingInformation *info, int &preferredWay) const
Infeasibility for an integer variable - large is 0.5, but also can be infinity when known infeasible.
double fractionFixed_
We only need to make sure this fraction fixed.
CbcModel * model() const
Return model.
CoinPackedMatrix matrixByRow_
Matrix by row.
char * mark_
Never fix ones marked here.
CbcBranchToFixLots & operator=(const CbcBranchToFixLots &rhs)
virtual bool canDoHeuristics() const
Return true if object can take part in normal heuristics.