Bcp 1.4.4
Loading...
Searching...
No Matches
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
14class BCP_vg_prob;
15class BCP_buffer;
16class BCP_cut;
17class BCP_cut_algo;
18class BCP_var;
19class BCP_var_algo;
20
50
52private:
53 BCP_vg_prob * p;
54public:
62 void setVgProblemPointer(BCP_vg_prob * ptr) { p = ptr; }
66
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;
83
87 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;
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);
106
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
This class describes the message buffer used for all processes of BCP.
This is the class from which the user should derive her own algorithmic cuts.
Definition BCP_cut.hpp:242
Abstract base class that defines members common to all types of cuts.
Definition BCP_cut.hpp:29
This class is a very simple impelementation of a constant length string.
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 variables.
Definition BCP_var.hpp:28
The class BCP_vec serves the same purpose as the vector class in the standard template library.
This class is the central class of the Variable Generator process.
Definition BCP_vg.hpp:32
void set_param(const BCP_vg_par::chr_params key, const char val)
int current_iteration() const
Return the iteration count within the search tree node for which cuts are being generated.
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::int_params key, const int val)
int current_index() const
Return the internal index of the search tree node for which cuts are being generated.
int get_param(const BCP_vg_par::int_params key) const
BCP_vg_prob * getVgProblemPointer()
Get the pointer.
char get_param(const BCP_vg_par::chr_params key) const
virtual void generate_vars(BCP_vec< BCP_cut * > &cuts, BCP_vec< double > &pi)
Perform the actual variable generation.
const BCP_string & get_param(const BCP_vg_par::str_params key) const
virtual void unpack_module_data(BCP_buffer &buf)
Unpack the initial information sent to the Variable Generator process by the Tree Manager.
virtual void unpack_dual_solution(BCP_buffer &buf)
Unpack the LP solution arriving from the LP process.
void set_param(const BCP_vg_par::chr_params key, const bool val)
int current_phase() const
Return the phase the algorithm is in.
double get_param(const BCP_vg_par::dbl_params key) const
virtual ~BCP_vg_user()
Being virtual, the destructor invokes the destructor for the real type of the object being deleted.
void set_param(const BCP_vg_par::str_params key, const char *val)
void setVgProblemPointer(BCP_vg_prob *ptr)
Set the pointer.
int current_level() const
Return the level of the search tree node for which cuts are being generated.
void set_param(const BCP_vg_par::dbl_params key, const double val)
double upper_bound() const
Return what is the best known upper bound (might be BCP_DBL_MAX)