Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
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. More...
 
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) More...
 
virtual CbcNodeInfobuildRowBasis (CoinWarmStartBasis &basis) const
 Builds up row basis backwards (until original model). More...
 
 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. More...
 
const CoinWarmStartDiffbasisDiff () const
 Basis diff information. More...
 
const int * variables () const
 Which variable (top bit if upper bound changing) More...
 
const double * newBounds () const
 
int numberChangedBounds () const
 Number of bound changes. More...
 
- Public Member Functions inherited from CbcNodeInfo
virtual void allBranchesGone ()
 Called when number branches left down to zero. More...
 
void increment (int amount=1)
 Increment number of references. More...
 
int decrement (int amount=1)
 Decrement number of references and return number left. More...
 
void initializeInfo (int number)
 Initialize reference counts. More...
 
int numberBranchesLeft () const
 Return number of branches left in object. More...
 
void setNumberBranchesLeft (int value)
 Set number of branches left in object. More...
 
int numberPointingToThis () const
 Return number of objects pointing to this. More...
 
void setNumberPointingToThis (int number)
 Set number of objects pointing to this. More...
 
void incrementNumberPointingToThis ()
 Increment number of objects pointing to this. More...
 
int branchedOn ()
 Say one branch taken. More...
 
void throwAway ()
 Say thrown away. More...
 
CbcNodeInfoparent () const
 Parent of this. More...
 
void nullParent ()
 Set parent null. More...
 
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. More...
 
void deleteCuts (int numberToDelete, int *which)
 
void deleteCut (int whichOne)
 Really delete a cut. More...
 
void decrementCuts (int change=1)
 Decrement active cut counts. More...
 
void incrementCuts (int change=1)
 Increment active cut counts. More...
 
void decrementParentCuts (CbcModel *model, int change=1)
 Decrement all active cut counts in chain starting at parent. More...
 
void incrementParentCuts (CbcModel *model, int change=1)
 Increment all active cut counts in parent chain. More...
 
CbcCountRowCut ** cuts () const
 Array of pointers to cuts. More...
 
int numberCuts () const
 Number of row cuts (this node) More...
 
void setNumberCuts (int value)
 
void nullOwner ()
 Set owner null. More...
 
const CbcNodeowner () const
 
CbcNodemutableOwner () const
 
int nodeNumber () const
 The node number. More...
 
void setNodeNumber (int node)
 
void deactivate (int mode=3)
 Deactivate node information. More...
 
bool allActivated () const
 Say if normal. More...
 
bool marked () const
 Say if marked. More...
 
void mark ()
 Mark. More...
 
void unmark ()
 Unmark. More...
 
bool symmetryWorked () const
 Get symmetry value (true worked at this node) More...
 
void setSymmetryWorked ()
 Say symmetry worked at this node) More...
 
const OsiBranchingObjectparentBranch () const
 Branching object for the parent. More...
 
void unsetParentBasedData ()
 If we need to take off parent based data. More...
 
 CbcNodeInfo ()
 Default Constructor. More...
 
 CbcNodeInfo (const CbcNodeInfo &)
 Copy constructor. More...
 
 CbcNodeInfo (CbcNodeInfo *parent, CbcNode *owner)
 Construct with parent and owner. More...
 
virtual ~CbcNodeInfo ()
 Destructor. More...
 

Protected Attributes

CoinWarmStartDiffbasisDiff_
 Basis diff information. More...
 
int * variables_
 Which variable (top bit if upper bound changing) More...
 
double * newBounds_
 
int numberChangedBounds_
 Number of bound changes. More...
 
- Protected Attributes inherited from CbcNodeInfo
int numberPointingToThis_
 Number of other nodes pointing to this node. More...
 
CbcNodeInfoparent_
 parent More...
 
OsiBranchingObjectparentBranch_
 Copy of the branching object of the parent when the node is created. More...
 
CbcNodeowner_
 Owner. More...
 
int numberCuts_
 Number of row cuts (this node) More...
 
int nodeNumber_
 The node number. More...
 
CbcCountRowCut ** cuts_
 Array of pointers to cuts. More...
 
int numberRows_
 Number of rows in problem (before these cuts). More...
 
int numberBranchesLeft_
 Number of branch arms left to explore at this node. More...
 
int active_
 Active node information. More...
 

Private Member Functions

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

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::CbcPartialNodeInfo ( )
CbcPartialNodeInfo::CbcPartialNodeInfo ( CbcNodeInfo parent,
CbcNode owner,
int  numberChangedBounds,
const int *  variables,
const double *  boundChanges,
const CoinWarmStartDiff basisDiff 
)
CbcPartialNodeInfo::CbcPartialNodeInfo ( const CbcPartialNodeInfo )
CbcPartialNodeInfo::~CbcPartialNodeInfo ( )

Member Function Documentation

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.

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)

Implements CbcNodeInfo.

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.

virtual CbcNodeInfo* CbcPartialNodeInfo::clone ( ) const
virtual

Clone.

Implements CbcNodeInfo.

const CoinWarmStartDiff* CbcPartialNodeInfo::basisDiff ( ) const
inline

Basis diff information.

Definition at line 77 of file CbcPartialNodeInfo.hpp.

const int* CbcPartialNodeInfo::variables ( ) const
inline

Which variable (top bit if upper bound changing)

Definition at line 81 of file CbcPartialNodeInfo.hpp.

const double* CbcPartialNodeInfo::newBounds ( ) const
inline

Definition at line 85 of file CbcPartialNodeInfo.hpp.

int CbcPartialNodeInfo::numberChangedBounds ( ) const
inline

Number of bound changes.

Definition at line 89 of file CbcPartialNodeInfo.hpp.

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

Illegal Assignment operator.

Member Data Documentation

CoinWarmStartDiff* CbcPartialNodeInfo::basisDiff_
protected

Basis diff information.

Definition at line 96 of file CbcPartialNodeInfo.hpp.

int* CbcPartialNodeInfo::variables_
protected

Which variable (top bit if upper bound changing)

Definition at line 98 of file CbcPartialNodeInfo.hpp.

double* CbcPartialNodeInfo::newBounds_
protected

Definition at line 100 of file CbcPartialNodeInfo.hpp.

int CbcPartialNodeInfo::numberChangedBounds_
protected

Number of bound changes.

Definition at line 102 of file CbcPartialNodeInfo.hpp.


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