10 #include "CoinWarmStartBasis.hpp"
11 #include "CoinSearchTree.hpp"
17 class OsiSolverInterface;
18 class OsiSolverBranch;
22 class OsiRowCutDebugger;
23 class CoinWarmStartBasis;
28 class CbcGeneralBranchingObject;
84 const CoinWarmStartBasis *lastws,
85 const double * lastLower,
const double * lastUpper,
86 int numberOldActiveCuts,
int numberNewCuts);
110 int numberPassesLeft);
138 OsiSolverBranch * & branches,
139 int numberPassesLeft);
168 OsiBranchingInformation * usefulInfo,
207 int branch(OsiSolverInterface * solver);
228 return (
branch_->numberBranches()) ;
313 branch_->numberBranchesLeft());
void setBranchingObject(OsiBranchingObject *branchingObject)
Set branching object for this node (takes ownership)
int state_
State 1 - on tree 2 - active.
double checkIsCutoff(double cutoff)
Double checks in case node can change its mind! Returns objective value Can change objective etc...
double guessedObjectiveValue() const
int analyze(CbcModel *model, double *results)
int numberUnsatisfied_
The number of objects unsatisfied at this node.
CbcNode()
Default Constructor.
double objectiveValue_
Objective value.
void setSumInfeasibilities(double value)
Set sum of "infeasibilities" reported by each object.
OsiBranchingObject * branch_
Branching object for this node.
CbcNodeInfo * nodeInfo() const
void checkInfo() const
Debug.
void createInfo(CbcModel *model, CbcNode *lastNode, const CoinWarmStartBasis *lastws, const double *lastLower, const double *lastUpper, int numberOldActiveCuts, int numberNewCuts)
Create a description of the subproblem at this node.
bool active() const
Returns true if active.
int chooseOsiBranch(CbcModel *model, CbcNode *lastNode, OsiBranchingInformation *usefulInfo, int branchState)
Create a branching object for the node.
Information required to recreate the subproblem at this node.
int numberUnsatisfied() const
Get the number of objects unsatisfied at this node.
int nodeNumber_
The node number.
int numberBranches() const
Number of arms defined for the attached OsiBranchingObject.
void setDepth(int value)
Set depth in branch-and-cut search tree.
void nullNodeInfo()
Nulls out node info.
double guessedObjectiveValue_
Guessed satisfied Objective value.
int depth_
Depth of the node in the search tree.
int numberBranchesLeft() const
Return number of branches left in object.
bool onTree() const
Returns true if on tree.
void setNumberUnsatisfied(int value)
Set the number of objects unsatisfied at this node.
CbcNode & operator=(const CbcNode &rhs)
Assignment operator.
int nodeNumber() const
The node number.
const OsiBranchingObject * branchingObject() const
Branching object for this node.
int branch(OsiSolverInterface *solver)
Does next branch and updates state.
void setNodeNumber(int node)
int depth() const
Depth in branch-and-cut search tree.
void setActive(bool yesNo)
Sets true if active.
void initializeInfo()
Initialize reference counts in attached CbcNodeInfo.
OsiBranchingObject * modifiableBranchingObject() const
Modifiable branching object for this node.
double objectiveValue() const
double sumInfeasibilities() const
Get sum of "infeasibilities" reported by each object.
int chooseClpBranch(CbcModel *model, CbcNode *lastNode)
Create a branching object for the node.
int chooseDynamicBranch(CbcModel *model, CbcNode *lastNode, OsiSolverBranch *&branches, int numberPassesLeft)
Create a branching object for the node - when dynamic pseudo costs.
void setOnTree(bool yesNo)
Sets true if on tree.
Information required while the node is live.
CbcNodeInfo * nodeInfo_
Information to make basis and bounds.
int chooseBranch(CbcModel *model, CbcNode *lastNode, int numberPassesLeft)
Create a branching object for the node.
void decrementCuts(int change=1)
Decrement active cut counts.
void setObjectiveValue(double value)
OsiRowCut augmented with bookkeeping.
void setGuessedObjectiveValue(double value)
void print() const
Print.
double sumInfeasibilities_
Sum of "infeasibilities" reported by each object.
Simple Branch and bound class.
void decrementParentCuts(CbcModel *model, int change=1)
Decrement all active cut counts in chain starting at parent.