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
void unsetParentBasedData()
If we need to take off parent based data.
CbcNode * mutableOwner() const
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int ¤tNumberCuts) const =0
Modify model according to information at node.
void deleteCuts(int numberToDelete, CbcCountRowCut **cuts)
Delete cuts (decrements counts) Slow unless cuts in same order as saved.
CbcCountRowCut ** cuts_
Array of pointers to cuts.
void deactivate(int mode=3)
Deactivate node information.
void decrementCuts(int change=1)
Decrement active cut counts.
const CbcNode * owner() const
int numberPointingToThis() const
Return number of objects pointing to this.
void setNodeNumber(int node)
bool marked() const
Say if marked.
void setNumberBranchesLeft(int value)
Set number of branches left in object.
void setNumberPointingToThis(int number)
Set number of objects pointing to this.
Collections of row cuts and column cuts.
Abstract branching object base class.
void increment(int amount=1)
Increment number of references.
int nodeNumber_
The node number.
The default COIN simplex (basis-oriented) warm start class.
void incrementCuts(int change=1)
Increment active cut counts.
void setSymmetryWorked()
Say symmetry worked at this node)
CbcNodeInfo * parent_
parent
int numberBranchesLeft_
Number of branch arms left to explore at this node.
void incrementNumberPointingToThis()
Increment number of objects pointing to this.
CbcCountRowCut ** cuts() const
Array of pointers to cuts.
Abstract Base Class for describing an interface to a solver.
int decrement(int amount=1)
Decrement number of references and return number left.
CbcNodeInfo * parent() const
Parent of this.
int numberPointingToThis_
Number of other nodes pointing to this node.
const OsiBranchingObject * parentBranch() const
Branching object for the parent.
virtual ~CbcNodeInfo()
Destructor.
void decrementParentCuts(CbcModel *model, int change=1)
Decrement all active cut counts in chain starting at parent.
void nullOwner()
Set owner null.
int active_
Active node information.
void deleteCut(int whichOne)
Really delete a cut.
OsiRowCut augmented with bookkeeping.
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const =0
Builds up row basis backwards (until original model).
virtual void allBranchesGone()
Called when number branches left down to zero.
Information required while the node is live.
OsiBranchingObject * parentBranch_
Copy of the branching object of the parent when the node is created.
void initializeInfo(int number)
Initialize reference counts.
int branchedOn()
Say one branch taken.
int numberCuts_
Number of row cuts (this node)
void setParentBasedData()
routine common to constructors
Information required to recreate the subproblem at this node.
CbcNodeInfo()
Default Constructor.
CbcNodeInfo & operator=(const CbcNodeInfo &rhs)
Illegal Assignment operator.
void incrementParentCuts(CbcModel *model, int change=1)
Increment all active cut counts in parent chain.
void throwAway()
Say thrown away.
Validate cuts against a known solution.
int numberRows_
Number of rows in problem (before these cuts).
bool symmetryWorked() const
Get symmetry value (true worked at this node)
int nodeNumber() const
The node number.
void nullParent()
Set parent null.
virtual CbcNodeInfo * clone() const =0
Clone.
int numberCuts() const
Number of row cuts (this node)
void setNumberCuts(int value)
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) ...
int numberBranchesLeft() const
Return number of branches left in object.
Simple Branch and bound class.
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
bool allActivated() const
Say if normal.