Bcp 1.4.4
Loading...
Searching...
No Matches
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"
9#include "BCP_var.hpp"
10#include "BCP_cut.hpp"
11#include "BCP_obj_change.hpp"
12
13//#############################################################################
14
15class BCP_warmstart;
16class BCP_user_data;
17
18//#############################################################################
19
24
35
36//#############################################################################
37
41
42class BCP_lp_parent {
43private:
47 BCP_lp_parent(const BCP_lp_parent&);
49 BCP_lp_parent& operator=(const BCP_lp_parent&);
51
52public:
66 int index;
68
69public:
77
78public:
82 void clean();
84};
85
86//#############################################################################
87
91
92class BCP_lp_node {
93private:
97 BCP_lp_node(const BCP_lp_node&);
99 BCP_lp_node& operator=(const BCP_lp_node&);
101
102public:
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.
149
150public:
162
165
169 inline size_t varnum() const { return vars.size(); }
171 inline size_t cutnum() const { return cuts.size(); }
173
177 void clean();
179};
180
181//#############################################################################
182
183#endif
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
Definition BCP_enum.hpp:84
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_DoNotGenerateColumns_Fathom
Do fathom the node.
Definition BCP_enum.hpp:67
BCP_diving_status
This enumerative constant describes the diving status of the search tree node processed by the LP pro...
@ BCP_DoNotDive
After branching all children must be returned to the Tree Manager and the LP process should wait for ...
#define BCP_DBL_MAX
Definition BCP_math.hpp:6
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
Definition BCP_cut.hpp:279
BCP_warmstart * warmstart
BCP_diving_status dive
size_t varnum() const
BCP_var_set vars
BCP_user_data * user_data
Data the user wants to pass along with the search tree node.
size_t cutnum() const
BCP_column_generation colgen
BCP_vec< double > lb_at_cutgen
void clean()
double true_lower_bound
BCP_cut_set cuts
BCP_node_storage_in_tm tm_storage
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
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
BCP_problem_core_change core_as_change
BCP_warmstart * warmstart
This class stores data about how an object set (set of vars or set of cuts) changes.
This class describes changes in the core of the problem.
This class is just a collection of pointers to variables with a number of methods to manipulate these...
Definition BCP_var.hpp:316
The class BCP_vec serves the same purpose as the vector class in the standard template library.
Warmstarting information for the LP solver.
BCP_storage_t var_change
BCP_storage_t warmstart
BCP_storage_t core_change
BCP_storage_t cut_change