Cbc 2.10.13
Loading...
Searching...
No Matches
CbcPartialNodeInfo Class Reference

Holds information for recreating a subproblem by incremental change from the parent. More...

#include <CbcPartialNodeInfo.hpp>

Inheritance diagram for CbcPartialNodeInfo:
Collaboration diagram for CbcPartialNodeInfo:

Public Member Functions

virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis, CbcCountRowCut **addCuts, int &currentNumberCuts) const
 Modify model according to information at node.
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).
virtual CbcNodeInfobuildRowBasis (CoinWarmStartBasis &basis) const
 Builds up row basis backwards (until original model).
 CbcPartialNodeInfo ()
 CbcPartialNodeInfo (CbcNodeInfo *parent, CbcNode *owner, int numberChangedBounds, const int *variables, const double *boundChanges, const CoinWarmStartDiff *basisDiff)
 CbcPartialNodeInfo (const CbcPartialNodeInfo &)
 ~CbcPartialNodeInfo ()
virtual CbcNodeInfoclone () const
 Clone.
const CoinWarmStartDiff * basisDiff () const
 Basis diff information.
const int * variables () const
 Which variable (top bit if upper bound changing).
const double * newBounds () const
int numberChangedBounds () const
 Number of bound changes.
 CbcNodeInfo ()
 Default Constructor.
 CbcNodeInfo (const CbcNodeInfo &)
 Copy constructor.
virtual ~CbcNodeInfo ()
 Construct with parent and owner.
*Just apply bounds to one variable force means overwrite by upper (1=>infeasible) virtual int applyBounds(int iColumn
*Called when number branches left down to virtual zero void allBranchesGone ()
*Increment number of references void increment (int amount=1)
*Decrement number of references and return number left int decrement (int amount=1)
void initializeInfo (int number)
 Initialize reference counts.
*Return number of branches left in object int numberBranchesLeft () const
*Set number of branches left in object void setNumberBranchesLeft (int value)
*Return number of objects pointing to this int numberPointingToThis () const
*Set number of objects pointing to this void setNumberPointingToThis (int number)
*Increment number of objects pointing to this void incrementNumberPointingToThis ()
*Say one branch taken int branchedOn ()
*Say thrown away void throwAway ()
*Parent of this CbcNodeInfoparent () const
*Set parent null void nullParent ()
void addCuts (OsiCuts &cuts, int numberToBranch, int numberPointingToThis)
void addCuts (int numberCuts, CbcCountRowCut **cuts, int numberToBranch)
void deleteCuts (int numberToDelete, CbcCountRowCut **cuts)
 Delete cuts (decrements counts) Slow unless cuts in same order as saved.
void deleteCuts (int numberToDelete, int *which)
*Really delete a cut void deleteCut (int whichOne)
*Decrement active cut counts void decrementCuts (int change=1)
*Increment active cut counts void incrementCuts (int change=1)
*Decrement all active cut counts in chain starting at parent void decrementParentCuts (CbcModel *model, int change=1)
*Increment all active cut counts in parent chain void incrementParentCuts (CbcModel *model, int change=1)
*Array of pointers to cuts CbcCountRowCut ** cuts () const
*Number of row cuts (this node) inline int numberCuts() const
void setNumberCuts (int value)
*Set owner null void nullOwner ()
const CbcNode * owner () const
CbcNode * mutableOwner () const
*The node number int nodeNumber () const
void setNodeNumber (int node)
void deactivate (int mode=3)
 Deactivate node information.
*Say if normal bool allActivated () const
*Say if marked bool marked () const
*Mark void mark ()
*Unmark void unmark ()
*Get symmetry value (true worked at this node) inline bool symmetryWorked() const
*Say symmetry worked at this node void setSymmetryWorked ()
*Branching object for the parent const OsiBranchingObject * parentBranch () const
*If we need to take off parent based data void unsetParentBasedData ()

Protected Attributes

CoinWarmStartDiff * basisDiff_
 Basis diff information.
int * variables_
 Which variable (top bit if upper bound changing).
double * newBounds_
int numberChangedBounds_
 Number of bound changes.
int numberPointingToThis_
 Number of other nodes pointing to this node.
*parent CbcNodeInfoparent_
*Copy of the branching object of the parent when the node is created OsiBranchingObject * parentBranch_
*Owner CbcNode * owner_
*The node number int nodeNumber_
*Array of pointers to cuts CbcCountRowCut ** cuts_
int numberRows_
 Number of rows in problem (before these cuts).
int numberBranchesLeft_
 Number of branch arms left to explore at this node.
int active_
 Active node information.

Private Member Functions

CbcPartialNodeInfooperator= (const CbcPartialNodeInfo &rhs)
 Illegal Assignment operator.

Additional Inherited Members

*Just apply bounds to one variable force means overwrite by lower
*Just apply bounds to one variable force means overwrite by double & lower
*Just apply bounds to one variable force means overwrite by double double & upper
*Just apply bounds to one variable force means overwrite by double double int force = 0
*Number of row cuts (this node) int numberCuts_

Detailed Description

Holds information for recreating a subproblem by incremental change from the parent.

A CbcPartialNodeInfo object contains changes to the bounds and basis, and additional cuts, required to recreate a subproblem by modifying and augmenting the parent subproblem.

Definition at line 39 of file CbcPartialNodeInfo.hpp.

Constructor & Destructor Documentation

◆ CbcPartialNodeInfo() [1/3]

CbcPartialNodeInfo::CbcPartialNodeInfo ( )

◆ CbcPartialNodeInfo() [2/3]

CbcPartialNodeInfo::CbcPartialNodeInfo ( CbcNodeInfo * parent,
CbcNode * owner,
int numberChangedBounds,
const int * variables,
const double * boundChanges,
const CoinWarmStartDiff * basisDiff )

◆ CbcPartialNodeInfo() [3/3]

CbcPartialNodeInfo::CbcPartialNodeInfo ( const CbcPartialNodeInfo & )

◆ ~CbcPartialNodeInfo()

CbcPartialNodeInfo::~CbcPartialNodeInfo ( )

Member Function Documentation

◆ applyToModel()

virtual void CbcPartialNodeInfo::applyToModel ( CbcModel * model,
CoinWarmStartBasis *& basis,
CbcCountRowCut ** addCuts,
int & currentNumberCuts ) const
virtual

Modify model according to information at node.

The routine modifies the model according to bound and basis change information at node and adds any cuts to the addCuts array.

Implements CbcNodeInfo.

◆ applyBounds()

virtual int CbcPartialNodeInfo::applyBounds ( int iColumn,
double & lower,
double & upper,
int force )
virtual

Just apply bounds to one variable - force means overwrite by lower,upper (1=>infeasible).

◆ buildRowBasis()

virtual CbcNodeInfo * CbcPartialNodeInfo::buildRowBasis ( CoinWarmStartBasis & basis) const
virtual

Builds up row basis backwards (until original model).

Returns NULL or previous one to apply . Depends on Free being 0 and impossible for cuts

Implements CbcNodeInfo.

◆ clone()

virtual CbcNodeInfo * CbcPartialNodeInfo::clone ( ) const
virtual

Clone.

Implements CbcNodeInfo.

◆ basisDiff()

const CoinWarmStartDiff * CbcPartialNodeInfo::basisDiff ( ) const
inline

Basis diff information.

Definition at line 76 of file CbcPartialNodeInfo.hpp.

◆ variables()

const int * CbcPartialNodeInfo::variables ( ) const
inline

Which variable (top bit if upper bound changing).

Definition at line 81 of file CbcPartialNodeInfo.hpp.

◆ newBounds()

const double * CbcPartialNodeInfo::newBounds ( ) const
inline

Definition at line 86 of file CbcPartialNodeInfo.hpp.

◆ numberChangedBounds()

int CbcPartialNodeInfo::numberChangedBounds ( ) const
inline

Number of bound changes.

Definition at line 91 of file CbcPartialNodeInfo.hpp.

◆ operator=()

CbcPartialNodeInfo & CbcPartialNodeInfo::operator= ( const CbcPartialNodeInfo & rhs)
private

Illegal Assignment operator.

Member Data Documentation

◆ basisDiff_

CoinWarmStartDiff* CbcPartialNodeInfo::basisDiff_
protected

Basis diff information.

Definition at line 100 of file CbcPartialNodeInfo.hpp.

◆ variables_

int* CbcPartialNodeInfo::variables_
protected

Which variable (top bit if upper bound changing).

Definition at line 102 of file CbcPartialNodeInfo.hpp.

◆ newBounds_

double* CbcPartialNodeInfo::newBounds_
protected

Definition at line 104 of file CbcPartialNodeInfo.hpp.

◆ numberChangedBounds_

int CbcPartialNodeInfo::numberChangedBounds_
protected

Number of bound changes.

Definition at line 106 of file CbcPartialNodeInfo.hpp.


The documentation for this class was generated from the following file: