30 class CbcGeneralBranchingObject;
86 const double *lastLower,
const double *lastUpper,
87 int numberOldActiveCuts,
int numberNewCuts);
111 int numberPassesLeft);
140 int numberPassesLeft);
223 return objectiveValue_;
227 objectiveValue_ = value;
258 return numberUnsatisfied_;
263 numberUnsatisfied_ = value;
268 return sumInfeasibilities_;
273 sumInfeasibilities_ = value;
278 return guessedObjectiveValue_;
282 guessedObjectiveValue_ = value;
311 return (state_ & 1) != 0;
324 return (state_ & 2) != 0;
357 double objectiveValue_;
359 double guessedObjectiveValue_;
361 double sumInfeasibilities_;
367 int numberUnsatisfied_;
int numberBranchesLeft() const
void setObjectiveValue(double value)
void checkInfo() const
Debug.
const OsiBranchingObject * branchingObject() const
Branching object for this node.
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 numberBranchesLeft() const
Return number of branches left in object.
void initializeInfo()
Initialize reference counts in attached CbcNodeInfo.
int nodeNumber() const
The node number.
void setActive(bool yesNo)
Sets true if active.
CbcNodeInfo * nodeInfo() const
void setNumberUnsatisfied(int value)
Set the number of objects unsatisfied at this node.
int numberBranches() const
OsiBranchingObject * modifiableBranchingObject() const
Modifiable branching object for this node.
void setOnTree(bool yesNo)
Sets true if on tree.
void setSumInfeasibilities(double value)
Set sum of "infeasibilities" reported by each object.
void nullNodeInfo()
Nulls out node info.
int getState() const
Get state (really for debug)
int numberBranches() const
Number of arms defined for the attached OsiBranchingObject.
void decrementParentCuts(CbcModel *model, int change=1)
Decrement all active cut counts in chain starting at parent.
void setNodeNumber(int node)
int chooseDynamicBranch(CbcModel *model, CbcNode *lastNode, OsiSolverBranch *&branches, int numberPassesLeft)
Create a branching object for the node - when dynamic pseudo costs.
int chooseOsiBranch(CbcModel *model, CbcNode *lastNode, OsiBranchingInformation *usefulInfo, int branchState)
Create a branching object for the node.
double sumInfeasibilities() const
Get sum of "infeasibilities" reported by each object.
bool active() const
Returns true if active.
CbcNode()
Default Constructor.
int numberUnsatisfied() const
Get the number of objects unsatisfied at this node.
CbcNode & operator=(const CbcNode &rhs)
Assignment operator.
OsiRowCut augmented with bookkeeping.
Information required while the node is live.
void setDepth(int value)
Set depth in branch-and-cut search tree.
int branch(OsiSolverInterface *solver)
Does next branch and updates state.
int analyze(CbcModel *model, double *results)
bool onTree() const
Returns true if on tree.
Information required to recreate the subproblem at this node.
double checkIsCutoff(double cutoff)
Double checks in case node can change its mind! Returns objective value Can change objective etc...
double objectiveValue() const
int depth() const
Depth in branch-and-cut search tree.
void setBranchingObject(OsiBranchingObject *branchingObject)
Set branching object for this node (takes ownership)
int chooseClpBranch(CbcModel *model, CbcNode *lastNode)
Create a branching object for the node.
void setState(int value)
Set state (really for debug)
Simple Branch and bound class.
void setGuessedObjectiveValue(double value)
double guessedObjectiveValue() const
int chooseBranch(CbcModel *model, CbcNode *lastNode, int numberPassesLeft)
Create a branching object for the node.
void decrementCuts(int change=1)
Decrement active cut counts.