Bcp  1.4.4
BCP_vg_user.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_VG_USER_H
4 #define _BCP_VG_USER_H
5 
6 // This file is fully docified.
7 
8 #include "BCP_math.hpp"
9 #include "BCP_vector.hpp"
10 #include "BCP_vg_param.hpp"
11 #include "BCP_string.hpp"
12 #include "BCP_USER.hpp"
13 
14 class BCP_vg_prob;
15 class BCP_buffer;
16 class BCP_cut;
17 class BCP_cut_algo;
18 class BCP_var;
19 class BCP_var_algo;
20 
51 class BCP_vg_user : public BCP_user_class {
52 private:
53  BCP_vg_prob * p;
54 public:
61  void setVgProblemPointer(BCP_vg_prob * ptr) { p = ptr; }
64  BCP_vg_prob * getVgProblemPointer() { return p; }
70  double upper_bound() const;
72  int current_phase() const;
75  int current_level() const;
78  int current_index() const;
81  int current_iteration() const;
86  char get_param(const BCP_vg_par::chr_params key) const;
89  int get_param(const BCP_vg_par::int_params key) const;
91  double get_param(const BCP_vg_par::dbl_params key) const;
93  const BCP_string& get_param(const BCP_vg_par::str_params key) const;
94 
96  void set_param(const BCP_vg_par::chr_params key, const bool val);
98  void set_param(const BCP_vg_par::chr_params key, const char val);
100  void set_param(const BCP_vg_par::int_params key, const int val);
102  void set_param(const BCP_vg_par::dbl_params key, const double val);
104  void set_param(const BCP_vg_par::str_params key, const char * val);
107  //---------------------------------------------------------------------------
112  void send_var(const BCP_var& var);
113 
114  //===========================================================================
117  BCP_vg_user() : p(0) {}
120  virtual ~BCP_vg_user() {}
122  //===========================================================================
123  // Here are the user defined functions. For each of them a default is given
124  // which can be overridden when the concrete user class is defined.
125  //===========================================================================
131  virtual void
133 
134  //---------------------------------------------------------------------------
141  virtual void
143 
144  //---------------------------------------------------------------------------
148  virtual void
150 };
151 
152 //#############################################################################
153 
154 #endif
virtual void unpack_dual_solution(BCP_buffer &buf)
Unpack the LP solution arriving from the LP process.
This is the class from which the user should derive her own algorithmic variables.
Definition: BCP_var.hpp:277
Abstract base class that defines members common to all types of cuts.
Definition: BCP_cut.hpp:29
void send_var(const BCP_var &var)
Pack the argument into the message buffer and send it to the sender of the LP solution.
void set_param(const BCP_vg_par::chr_params key, const bool val)
Abstract base class that defines members common to all types of variables.
Definition: BCP_var.hpp:28
The BCP_vg_user class is the base class from which the user can derive a problem specific class to be...
Definition: BCP_vg_user.hpp:51
int current_index() const
Return the internal index of the search tree node for which cuts are being generated.
This class describes the message buffer used for all processes of BCP.
Definition: BCP_buffer.hpp:39
int current_level() const
Return the level of the search tree node for which cuts are being generated.
void setVgProblemPointer(BCP_vg_prob *ptr)
Set the pointer.
Definition: BCP_vg_user.hpp:62
int current_iteration() const
Return the iteration count within the search tree node for which cuts are being generated.
This is the class from which the user should derive her own algorithmic cuts.
Definition: BCP_cut.hpp:242
virtual void unpack_module_data(BCP_buffer &buf)
Unpack the initial information sent to the Variable Generator process by the Tree Manager...
virtual void generate_vars(BCP_vec< BCP_cut *> &cuts, BCP_vec< double > &pi)
Perform the actual variable generation.
double upper_bound() const
Return what is the best known upper bound (might be BCP_DBL_MAX)
This class is a very simple impelementation of a constant length string.
Definition: BCP_string.hpp:13
The class BCP_vec serves the same purpose as the vector class in the standard template library...
Definition: BCP_vector.hpp:24
BCP_vg_prob * getVgProblemPointer()
Get the pointer.
Definition: BCP_vg_user.hpp:64
This class is the central class of the Variable Generator process.
Definition: BCP_vg.hpp:32
char get_param(const BCP_vg_par::chr_params key) const
int current_phase() const
Return the phase the algorithm is in.
virtual ~BCP_vg_user()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted...