Go to the documentation of this file.
14 #include "CoinWarmStartBasis.hpp"
15 #include "CoinSearchTree.hpp"
18 class OsiSolverInterface;
19 class OsiSolverBranch;
23 class OsiRowCutDebugger;
24 class CoinWarmStartBasis;
29 class CbcGeneralBranchingObject;
112 int ¤tNumberCuts)
const = 0;
114 virtual int applyBounds(
int iColumn,
double &lower,
double &upper,
int force) = 0;
218 void deleteCuts(
int numberToDelete,
int *which);
374 #endif // CbcNodeInfo_H
CbcCountRowCut ** cuts_
Array of pointers to cuts.
void nullParent()
Set parent null.
bool allActivated() const
Say if normal.
int numberPointingToThis() const
Return number of objects pointing to this.
OsiRowCut augmented with bookkeeping.
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int ¤tNumberCuts) const =0
Modify model according to information at node.
void increment(int amount=1)
Increment number of references.
void incrementCuts(int change=1)
Increment active cut counts.
CbcNodeInfo * parent_
parent
void setSymmetryWorked()
Say symmetry worked at this node)
void deactivate(int mode=3)
Deactivate node information.
void setNumberBranchesLeft(int value)
Set number of branches left in object.
void deleteCuts(int numberToDelete, CbcCountRowCut **cuts)
Delete cuts (decrements counts) Slow unless cuts in same order as saved.
int nodeNumber_
The node number.
int nodeNumber() const
The node number.
void incrementNumberPointingToThis()
Increment number of objects pointing to this.
CbcNodeInfo * parent() const
Parent of this.
virtual ~CbcNodeInfo()
Destructor.
void setNumberPointingToThis(int number)
Set number of objects pointing to this.
void decrementParentCuts(CbcModel *model, int change=1)
Decrement all active cut counts in chain starting at parent.
void decrementCuts(int change=1)
Decrement active cut counts.
int numberBranchesLeft_
Number of branch arms left to explore at this node.
int numberPointingToThis_
Number of other nodes pointing to this node.
void setNodeNumber(int node)
CbcCountRowCut ** cuts() const
Array of pointers to cuts.
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const =0
Builds up row basis backwards (until original model).
int numberCuts() const
Number of row cuts (this node)
virtual void allBranchesGone()
Called when number branches left down to zero.
int decrement(int amount=1)
Decrement number of references and return number left.
int active_
Active node information.
void initializeInfo(int number)
Initialize reference counts.
const CbcNode * owner() const
Simple Branch and bound class.
bool symmetryWorked() const
Get symmetry value (true worked at this node)
void deleteCut(int whichOne)
Really delete a cut.
void nullOwner()
Set owner null.
OsiBranchingObject * parentBranch_
Copy of the branching object of the parent when the node is created.
Information required to recreate the subproblem at this node.
bool marked() const
Say if marked.
int numberCuts_
Number of row cuts (this node)
Information required while the node is live.
const OsiBranchingObject * parentBranch() const
Branching object for the parent.
int numberRows_
Number of rows in problem (before these cuts).
CbcNodeInfo()
Default Constructor.
void setNumberCuts(int value)
void setParentBasedData()
routine common to constructors
int branchedOn()
Say one branch taken.
virtual CbcNodeInfo * clone() const =0
Clone.
CbcNodeInfo & operator=(const CbcNodeInfo &rhs)
Illegal Assignment operator.
void unsetParentBasedData()
If we need to take off parent based data.
CbcNode * mutableOwner() const
void throwAway()
Say thrown away.
int numberBranchesLeft() const
Return number of branches left in object.
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
void incrementParentCuts(CbcModel *model, int change=1)
Increment all active cut counts in parent chain.
virtual int applyBounds(int iColumn, double &lower, double &upper, int force)=0
Just apply bounds to one variable - force means overwrite by lower,upper (1=>infeasible)