Go to the documentation of this file.
6 #ifndef CbcBranchUser_H
7 #define CbcBranchUser_H
39 double changeUp,
int numberInfeasibilitiesUp,
40 double changeDown,
int numberInfeasibilitiesDown);
51 double *changeUp,
int *numberInfeasibilitiesUp,
52 double *changeDown,
int *numberInfeasibilitiesDown,
53 double objectiveValue);
100 const OsiBranchingInformation *info,
int way);
CbcSimpleIntegerFixed & operator=(const CbcSimpleIntegerFixed &rhs)
int preferredWay() const
If -1 down always chosen first, +1 up always, 0 normal.
double breakEven() const
Breakeven e.g 0.7 -> >= 0.7 go up first.
virtual double infeasibility(int &preferredWay) const
Infeasibility - large is 0.5.
virtual CbcBranchingObject * createBranch(OsiSolverInterface *solver, const OsiBranchingInformation *info, int way)
Creates a branching object.
Define a single integer class where branching is forced until fixed.
virtual CbcBranchDecision * clone() const
Clone.
virtual CbcObject * clone() const
Clone.
Branching decision user class.
Simple Branch and bound class.
Abstract branching object base class Now just difference with OsiBranchingObject.
virtual int betterBranch(CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numberInfeasibilitiesUp, double changeDown, int numberInfeasibilitiesDown)
Returns nonzero if branching on first object is "better" than on second (if second NULL first wins).
CbcModel * model() const
Return model.
virtual void initialize(CbcModel *model)
Initialize i.e. before start of choosing at a node.
CbcBranchUserDecision & operator=(const CbcBranchUserDecision &rhs)
Illegal Assignment operator.
virtual int bestBranch(CbcBranchingObject **objects, int numberObjects, int numberUnsatisfied, double *changeUp, int *numberInfeasibilitiesUp, double *changeDown, int *numberInfeasibilitiesDown, double objectiveValue)
Compare N branching objects.
Define a single integer class.
virtual ~CbcBranchUserDecision()