coin-Bcp
BCP_lp_node.hpp
Go to the documentation of this file.
1 // Copyright (C) 2000, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #ifndef _BCP_LP_NODE_H
4 #define _BCP_LP_NODE_H
5 
6 #include "BCP_math.hpp"
7 #include "BCP_enum_branch.hpp"
8 #include "BCP_problem_core.hpp"
9 #include "BCP_var.hpp"
10 #include "BCP_cut.hpp"
11 #include "BCP_obj_change.hpp"
12 
13 //#############################################################################
14 
15 class BCP_warmstart;
16 class BCP_user_data;
17 
18 //#############################################################################
19 
34 };
35 
36 //#############################################################################
37 
43 private:
52 public:
66  int index;
69 public:
78 public:
82  void clean();
84 };
85 
86 //#############################################################################
87 
92 class BCP_lp_node {
93 private:
97  BCP_lp_node(const BCP_lp_node&);
102 public:
104  // *FIXME* divide data members into subgroups
111  int cg;
113  int cp;
115  int vg;
117  int vp;
120  int level;
122  int index;
130  double quality;
139  // this is tricky. this vector stores for each cut the lower bound on the
140  // lp formulation at the time when the cut was added *in this node* OR if
141  // there were columns added afterwards (stiil in the same node) then the
142  // lower bound on the lp when columns were added the last time.
150 public:
155  tm_storage(),
156  cg(-1), cp(-1), vg(-1), vp(-1),
157  level(0), index(0), iteration_count(0),
160  warmstart(0),
161  user_data(0) {}
163  ~BCP_lp_node();
169  inline size_t varnum() const { return vars.size(); }
171  inline size_t cutnum() const { return cuts.size(); }
177  void clean();
179 };
180 
181 //#############################################################################
182 
183 #endif
This class describes changes in the core of the problem.
BCP_warmstart * warmstart
this is always explicit, it's just that coding is simpler if we reuse the BCP_obj_set_change object ...
Definition: BCP_lp_node.hpp:64
This class stores data about how an object set (set of vars or set of cuts) changes.
BCP_storage_t cut_change
Definition: BCP_lp_node.hpp:31
size_t cutnum() const
BCP_var_set vars
double quality
BCP_node_storage_in_tm tm_storage
BCP_obj_set_change cut_set
this is always explicit, it's just that coding is simpler if we reuse the BCP_obj_set_change object ...
Definition: BCP_lp_node.hpp:62
BCP_diving_status dive
BCP_storage_t warmstart
Definition: BCP_lp_node.hpp:33
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
Definition: BCP_cut.hpp:279
Warmstarting information for the LP solver.
int index
this is always explicit, it's just that coding is simpler if we reuse the BCP_obj_set_change object ...
Definition: BCP_lp_node.hpp:66
BCP_cut_set cuts
BCP_lp_node & operator=(const BCP_lp_node &)
The assignment operator is declared but not defined to disable it.
#define BCP_DBL_MAX
Definition: BCP_math.hpp:6
BCP_warmstart * warmstart
BCP_diving_status
This enumerative constant describes the diving status of the search tree node processed by the LP pro...
NO OLD DOC.
Definition: BCP_lp_node.hpp:92
BCP_obj_set_change var_set
this is always explicit, it's just that coding is simpler if we reuse the BCP_obj_set_change object ...
Definition: BCP_lp_node.hpp:59
BCP_vec< double > lb_at_cutgen
BCP_problem_core_change core_as_change
this is always explicit, it&#39;s just that coding is simpler if we reuse the BCP_obj_set_change object ...
Definition: BCP_lp_node.hpp:56
NO OLD DOC.
Definition: BCP_lp_node.hpp:42
BCP_lp_parent & operator=(const BCP_lp_parent &)
The assignment operator is declared but not defined to disable it.
BCP_storage_t core_change
Definition: BCP_lp_node.hpp:27
BCP_storage_t var_change
Definition: BCP_lp_node.hpp:29
size_t size() const
Return the current number of entries.
Definition: BCP_vector.hpp:116
BCP_column_generation colgen
This class is just a collection of pointers to variables with a number of methods to manipulate these...
Definition: BCP_var.hpp:316
Do fathom the node.
Definition: BCP_enum.hpp:67
double true_lower_bound
After branching all children must be returned to the Tree Manager and the LP process should wait for ...
size_t varnum() const
BCP_column_generation
This enumerative constant describes what to do when a search tree node becomes fathomable for the cur...
Definition: BCP_enum.hpp:65
BCP_user_data * user_data
Data the user wants to pass along with the search tree node.
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
Definition: BCP_enum.hpp:84
void clean()