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,
@ DynamicPseudoCostBranchObj
CbcModel * model() const
Return model.
CbcBranchDecision()
Default Constructor.
int bestNumberUp_
Number of infeasibilities for up.
CbcBranchingObject * bestObject_
Pointer to best branching object.
virtual double getBestCriterion() const
virtual void setBestCriterion(double value)
Sets or gets best criterion so far.
virtual CbcBranchDecision * clone() const
Clone.
virtual ~CbcBranchDynamicDecision()
CbcBranchDynamicDecision & operator=(const CbcBranchDynamicDecision &rhs)
Illegal Assignment operator.
CbcBranchDynamicDecision(const CbcBranchDynamicDecision &)
CbcBranchDynamicDecision()
double bestChangeUp_
Change up for best.
virtual void updateInformation(OsiSolverInterface *solver, const CbcNode *node)
Pass in information on branch just done.
virtual void initialize(CbcModel *model)
Initialize, e.g. before the start of branch selection at a node.
double bestCriterion_
data
int bestNumberDown_
Number of infeasibilities for down.
virtual int betterBranch(CbcBranchingObject *thisOne, CbcBranchingObject *bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
Compare two branching objects.
double bestChangeDown_
Change down for best.
virtual void saveBranchingObject(OsiBranchingObject *object)
Saves a clone of current branching object.
virtual int whichMethod()
Says whether this method can handle both methods - 1 better, 2 best, 3 both.
Abstract branching object base class Now just difference with OsiBranchingObject.
CbcBranchingObject & operator=(const CbcBranchingObject &rhs)
Assignment operator.
virtual CbcBranchingObject * clone() const =0
Clone.
CbcBranchingObject()
Default Constructor.
virtual double branch()=0
Execute the actions required to branch, as specified by the current state of the branching object,...
CbcModel * model() const
Return model.
int variable() const
Index identifying the associated CbcObject within its class.
int way() const
Get the state of the branching object.
*Return object CbcSimpleIntegerDynamicPseudoCost * object() const
virtual CbcBranchObjType type() const
Return the type (an integer identifier) of this.
virtual double branch()
Create a degenerate branch object.
CbcDynamicPseudoCostBranchingObject()
Default constructor.
virtual int fillStrongInfo(CbcStrongInfo &info)
Some branchingObjects may claim to be able to skip strong branching.
*Pointer back to object CbcSimpleIntegerDynamicPseudoCost * object_
*Set object void setObject(CbcSimpleIntegerDynamicPseudoCost *object)
*Change in guessed double changeInGuessed() const
*Change in guessed objective value for next branch double changeInGuessed_
CbcDynamicPseudoCostBranchingObject(CbcModel *model, int variable, int way, double value, CbcSimpleIntegerDynamicPseudoCost *object)
Create a standard floor/ceiling branch object.
*Set change in guessed void setChangeInGuessed(double value)
CbcIntegerBranchingObject()
Default constructor.
Simple Branch and bound class.
Define a single integer class but with dynamic pseudo costs.