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