3 #ifndef _BCP_PROBLEM_CORE_H
4 #define _BCP_PROBLEM_CORE_H
18 class BCP_indexed_pricing_list;
This class describes changes in the core of the problem.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
The data stored is with respect to the original description of the base problem (as was given by the ...
~BCP_problem_core_change()
The destructor deletes all data members.
void pack(BCP_buffer &buf) const
Pack the core change into the buffer.
BCP_problem_core & operator=(const BCP_problem_core &)
The assignment operator is declared but not defined to disable it.
BCP_storage_t storage() const
Return the storage type.
BCP_lp_relax * matrix
A pointer to the constraint matrix corresponding to the core variables and cuts.
size_t varnum() const
Return the number of changed variables (the length of the array var_ch).
BCP_storage_t _storage
Describes how the change is stored.
Core cuts are the cuts that always stay in the LP formulation.
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
void unpack(BCP_buffer &buf)
Unpack the contents of the core description from the buffer.
BCP_vec< int > cut_pos
The positions of the core cuts (in the cuts member of [BCP_problem_core]{BCP_problem_core.html}) whose bounds and/or stati have changed.
size_t cutnum() const
Return the number of changed cuts (the length of the array cut_ch).
Core variables are the variables that always stay in the LP formulation.
BCP_vec< BCP_cut_core * > cuts
A vector of pointers to the cuts in the core of the problem.
This class is the internal representation of a branching object.
size_t varnum() const
Return the number of variables in the core.
BCP_vec< int > var_pos
The positions of the core variables (in the vars member of [BCP_problem_core]{BCP_problem_core.html}) whose bounds and/or stati have changed.
BCP_vec< BCP_obj_change > var_ch
The new lb/ub/status triplet for each variable for which any of those three have changed.
void make_wrtcore_if_shorter(const BCP_problem_core_change &orig_core)
Replace the current explicitly stored core change with one stored with respect to the explicitly stor...
void clear()
Clear all vector data members.
int pack_size() const
Return the buffer size needed to pack the data in the core change.
void pack(BCP_buffer &buf) const
Pack the contents of the core description into the buffer.
size_t cutnum() const
Return the number of cuts in the core.
void unpack(BCP_buffer &buf)
Unpack the core change data from the buffer.
BCP_problem_core()
The default constructor creates an empty core description: no variables/cuts and an empty matrix...
BCP_problem_core_change(BCP_storage_t store=BCP_Storage_WrtCore)
This constructor creates a core change with the given storage.
size_t size() const
Return the current number of entries.
BCP_problem_core_change & operator=(const BCP_problem_core &core)
Set the core change description to be an explicit description (in the form of a change) of the given ...
~BCP_problem_core()
The desctructor deletes all data members.
This class is just a collection of pointers to variables with a number of methods to manipulate these...
This class describes the message buffer used for all processes of BCP.
void swap(BCP_problem_core_change &other)
Swap the contents of the current core change with that of other.
void update(const BCP_problem_core_change &expl_core, const BCP_problem_core_change &core_change)
Update the current change according to core_change.
void ensure_explicit(const BCP_problem_core_change &expl_core)
If the current storage is not already explicit then replace it with an explicit description of the co...
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
BCP_problem_core_change(const BCP_problem_core_change &)
The copy constructor is disabled by declaring it private and not defining it.
void swap(BCP_vec< T > &x)
Exchange the contents of the object with that of x.
BCP_vec< BCP_var_core * > vars
A vector of pointers to the variables in the core of the problem.
An object of type BCP_lp_relax holds the description of an lp relaxation.
void clear()
Delete all data members.
BCP_problem_core(BCP_vec< BCP_var_core * > &v, BCP_vec< BCP_cut_core * > &c, BCP_lp_relax *&m)
This constructor "takes over" the arguments.
BCP_vec< BCP_obj_change > cut_ch
The new lb/ub/status triplet for each cut for which any of those three have changed.