Go to the documentation of this file.
8 #ifndef CbcPartialNodeInfo_H
9 #define CbcPartialNodeInfo_H
14 #include "CoinWarmStartBasis.hpp"
15 #include "CoinSearchTree.hpp"
19 class OsiSolverInterface;
20 class OsiSolverBranch;
24 class OsiRowCutDebugger;
25 class CoinWarmStartBasis;
30 class CbcGeneralBranchingObject;
49 int ¤tNumberCuts)
const;
52 virtual int applyBounds(
int iColumn,
double &lower,
double &upper,
int force);
64 const double *boundChanges,
113 #endif //CbcPartialNodeInfo_H
const CoinWarmStartDiff * basisDiff() const
Basis diff information.
OsiRowCut augmented with bookkeeping.
const double * newBounds() const
Holds information for recreating a subproblem by incremental change from the parent.
CbcNodeInfo * parent() const
Parent of this.
CoinWarmStartDiff * basisDiff_
Basis diff information.
virtual void applyToModel(CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int ¤tNumberCuts) const
Modify model according to information at node.
const CbcNode * owner() const
CbcPartialNodeInfo & operator=(const CbcPartialNodeInfo &rhs)
Illegal Assignment operator.
Simple Branch and bound class.
const int * variables() const
Which variable (top bit if upper bound changing)
Information required to recreate the subproblem at this node.
virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis &basis) const
Builds up row basis backwards (until original model).
int numberChangedBounds_
Number of bound changes.
int * variables_
Which variable (top bit if upper bound changing)
virtual int applyBounds(int iColumn, double &lower, double &upper, int force)
Just apply bounds to one variable - force means overwrite by lower,upper (1=>infeasible)
Information required while the node is live.
int numberChangedBounds() const
Number of bound changes.
void addCuts(OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
virtual CbcNodeInfo * clone() const
Clone.