OSNode.h
Go to the documentation of this file.
1 /* $Id: OSNode.h 3038 2009-11-07 11:43:44Z kmartin $ */
13 #ifndef OSNODE_H
14 #define OSNODE_H
15 
16 #include <vector>
17 #include <set>
18 
19 // --------------------------------------------------------------------- //
26 // --------------------------------------------------------------------- //
27 
28 class OSNode {
29  public:
30 
34  int parentID;
35 
39  int nodeID;
40 
43 
47  int* rowIdx;
48 
50  double* rowUB;
51 
53  double* rowLB;
54 
56  double lpValue;
57 
61 
65  int* thetaIdx;
66 
71  double* theta;
72 
84  std::vector<std::pair<int, int> > colBasisStatus;
85 
88  std::vector<std::pair<int, int> > rowBasisStatus;
89 
93  std::set<int> reducedCostIdx;
94 
95 
100  OSNode();
101 
106  OSNode(int rowIdxNumNonz_, int thetaNumNonz_ );
107 
108 
113  ~OSNode();
114 
115 
116 
117 };//end class OSNode
118 
119 #endif
std::vector< std::pair< int, int > > rowBasisStatus
rowBasisStatus is the vector of pairs for rows
Definition: OSNode.h:88
~OSNode()
Default destructor.
Definition: OSNode.cpp:46
double * rowUB
rowUB is a vector of row upper bounds
Definition: OSNode.h:50
int thetaNumNonz
thetaNumNonz is the number of non-zero elements in the theta variable solution at this node ...
Definition: OSNode.h:60
int * thetaIdx
theta is an array of primal solution variable indexes
Definition: OSNode.h:65
std::set< int > reducedCostIdx
reducedCostVec will hold variables within a tolerance on their reduced costs.
Definition: OSNode.h:93
int rowIdxNumNonz
rowIdxNumNonz is the number of non-zero elements in rowIndex
Definition: OSNode.h:42
int nodeID
nodeID is the node ID
Definition: OSNode.h:39
int parentID
parentID is the node ID of the parent
Definition: OSNode.h:34
std::vector< std::pair< int, int > > colBasisStatus
colBasisStatus is vector of integer pairs, for each element of the vector we store the pair (index...
Definition: OSNode.h:84
Definition: OSNode.h:28
OSNode()
Default Constructor.
Definition: OSNode.cpp:18
double * theta
theta is an array of primal positive values this is used for branching and creating new children node...
Definition: OSNode.h:71
double * rowLB
rowLB is a vector of row lower bounds
Definition: OSNode.h:53
double lpValue
lpValue is the LP relaxation for the node
Definition: OSNode.h:56
int * rowIdx
rowIdx is a vector of row indexes for which we are setting the upper and lower bounds ...
Definition: OSNode.h:47