Go to the documentation of this file.
12 #include "CoinWarmStartBasis.hpp"
13 #include "CoinSearchTree.hpp"
19 class OsiSolverInterface;
20 class OsiSolverBranch;
24 class OsiRowCutDebugger;
25 class CoinWarmStartBasis;
30 class CbcGeneralBranchingObject;
85 const CoinWarmStartBasis *lastws,
86 const double *lastLower,
const double *lastUpper,
87 int numberOldActiveCuts,
int numberNewCuts);
111 int numberPassesLeft);
139 OsiSolverBranch *&branches,
140 int numberPassesLeft);
169 OsiBranchingInformation *usefulInfo,
208 int branch(OsiSolverInterface *solver);
233 return (
branch_->numberBranches());
double objectiveValue_
Objective value.
int numberUnsatisfied_
The number of objects unsatisfied at this node.
OsiRowCut augmented with bookkeeping.
void decrementParentCuts(CbcModel *model, int change=1)
Decrement all active cut counts in chain starting at parent.
void setObjectiveValue(double value)
double sumInfeasibilities_
Sum of "infeasibilities" reported by each object.
int branch(OsiSolverInterface *solver)
Does next branch and updates state.
int nodeNumber_
The node number.
int analyze(CbcModel *model, double *results)
CbcNodeInfo * nodeInfo_
Information to make basis and bounds.
CbcNodeInfo * nodeInfo() const
void setState(int value)
Set state (really for debug)
double objectiveValue() const
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.
void setSumInfeasibilities(double value)
Set sum of "infeasibilities" reported by each object.
double sumInfeasibilities() const
Get sum of "infeasibilities" reported by each object.
void decrementCuts(int change=1)
Decrement active cut counts.
int depth() const
Depth in branch-and-cut search tree.
int numberUnsatisfied() const
Get the number of objects unsatisfied at this node.
void setActive(bool yesNo)
Sets true if active.
int chooseClpBranch(CbcModel *model, CbcNode *lastNode)
Create a branching object for the node.
int state_
State 1 - on tree 2 - active.
void setGuessedObjectiveValue(double value)
OsiBranchingObject * modifiableBranchingObject() const
Modifiable branching object for this node.
Simple Branch and bound class.
int chooseOsiBranch(CbcModel *model, CbcNode *lastNode, OsiBranchingInformation *usefulInfo, int branchState)
Create a branching object for the node.
double guessedObjectiveValue() const
void setBranchingObject(OsiBranchingObject *branchingObject)
Set branching object for this node (takes ownership)
void setDepth(int value)
Set depth in branch-and-cut search tree.
void checkInfo() const
Debug.
CbcNode()
Default Constructor.
CbcNode & operator=(const CbcNode &rhs)
Assignment operator.
Information required to recreate the subproblem at this node.
int depth_
Depth of the node in the search tree.
int chooseBranch(CbcModel *model, CbcNode *lastNode, int numberPassesLeft)
Create a branching object for the node.
Information required while the node is live.
OsiBranchingObject * branch_
Branching object for this node.
int getState() const
Get state (really for debug)
int nodeNumber() const
The node number.
bool onTree() const
Returns true if on tree.
void setNumberUnsatisfied(int value)
Set the number of objects unsatisfied at this node.
void setNodeNumber(int node)
double checkIsCutoff(double cutoff)
Double checks in case node can change its mind! Returns objective value Can change objective etc.
double guessedObjectiveValue_
Guessed satisfied Objective value.
void nullNodeInfo()
Nulls out node info.
int numberBranchesLeft() const
Return number of branches left in object.
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.
int numberBranches() const
Number of arms defined for the attached OsiBranchingObject.
const OsiBranchingObject * branchingObject() const
Branching object for this node.
bool active() const
Returns true if active.
void initializeInfo()
Initialize reference counts in attached CbcNodeInfo.