Go to the documentation of this file.
6 #ifndef CbcBranchDynamic_H
7 #define CbcBranchDynamic_H
9 #include "CoinPackedMatrix.hpp"
56 double changeUp,
int numInfUp,
57 double changeDn,
int numInfDn);
124 int way,
double value,
135 double lowerValue,
double upperValue);
151 int way,
double value,
int bestNumberUp_
Number of infeasibilities for up.
int way() const
Get the state of the branching object.
int variable() const
Index identifying the associated CbcObject within its class.
Define a single integer class but with dynamic pseudo costs.
int bestNumberDown_
Number of infeasibilities for down.
void fillPart(int variable, int way, double value, CbcSimpleIntegerDynamicPseudoCost *object)
Does part of constructor.
virtual void setBestCriterion(double value)
Sets or gets best criterion so far.
double bestChangeUp_
Change up for best.
Simple branching object for an integer variable with pseudo costs.
CbcSimpleIntegerDynamicPseudoCost * object_
Pointer back to object.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object,...
double bestChangeDown_
Change down for best.
virtual void saveBranchingObject(OsiBranchingObject *object)
Saves a clone of current branching object.
virtual ~CbcBranchDynamicDecision()
CbcBranchDynamicDecision()
virtual ~CbcDynamicPseudoCostBranchingObject()
Destructor.
void setChangeInGuessed(double value)
Set change in guessed.
double changeInGuessed_
Change in guessed objective value for next branch.
Simple Branch and bound class.
virtual void initialize(CbcModel *model)
Initialize, e.g. before the start of branch selection at a node.
double changeInGuessed() const
Change in guessed.
virtual void updateInformation(OsiSolverInterface *solver, const CbcNode *node)
Pass in information on branch just done.
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
Abstract branching object base class Now just difference with OsiBranchingObject.
CbcDynamicPseudoCostBranchingObject & operator=(const CbcDynamicPseudoCostBranchingObject &rhs)
Assignment operator.
Branching decision dynamic class.
Simple branching object for an integer variable.
Information required while the node is live.
virtual int whichMethod()
Says whether this method can handle both methods - 1 better, 2 best, 3 both.
double bestCriterion_
data
CbcSimpleIntegerDynamicPseudoCost * object() const
Return object.
Abstract base class for ‘objects’.
CbcDynamicPseudoCostBranchingObject()
Default constructor.
void setObject(CbcSimpleIntegerDynamicPseudoCost *object)
Set object.
virtual int betterBranch(CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
Compare two branching objects.
CbcModel * model() const
Return model.
virtual double getBestCriterion() const
@ DynamicPseudoCostBranchObj
virtual CbcBranchDecision * clone() const
Clone.
virtual double branch()
Sets the bounds for the variable according to the current arm of the branch and advances the object s...
virtual int fillStrongInfo(CbcStrongInfo &info)
Some branchingObjects may claim to be able to skip strong branching.
CbcBranchingObject * bestObject_
Pointer to best branching object.
virtual CbcBranchingObject * clone() const
Clone.
CbcBranchDynamicDecision & operator=(const CbcBranchDynamicDecision &rhs)
Illegal Assignment operator.