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 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.
void setSymmetryWorked()
Say symmetry worked at this node)
CbcNodeInfo()
Default Constructor.
OsiBranchingObject * parentBranch_
Copy of the branching object of the parent when the node is created.
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.
CbcCountRowCut ** cuts_
Array of pointers to cuts.
CbcNode * mutableOwner() const
int numberPointingToThis_
Number of other nodes pointing to this node.
CbcNodeInfo * parent_
parent
Collections of row cuts and column cuts.
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.
bool symmetryWorked() const
Get symmetry value (true worked at this node)
Abstract Base Class for describing an interface to a solver.
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.
Validate cuts against a known solution.
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).
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.
The default COIN simplex (basis-oriented) warm start class.
void decrementCuts(int change=1)
Decrement active cut counts.
Simple Branch and bound class.
void nullParent()
Set parent null.
Abstract branching object base class.
void setParentBasedData()
routine common to constructors
int numberRows_
Number of rows in problem (before these cuts).