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,...
CbcBranchDynamicDecision(const CbcBranchDynamicDecision &)
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.
CbcDynamicPseudoCostBranchingObject(CbcModel *model, int variable, int way, double lowerValue, double upperValue)
Create a degenerate branch object.
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.
CbcDynamicPseudoCostBranchingObject(CbcModel *model, int variable, int way, double value, CbcSimpleIntegerDynamicPseudoCost *object)
Create a standard floor/ceiling branch object.
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.
CbcDynamicPseudoCostBranchingObject(const CbcDynamicPseudoCostBranchingObject &)
Copy constructor.
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.