3 #ifndef _BCP_PROBLEM_CORE_H 4 #define _BCP_PROBLEM_CORE_H 18 class BCP_indexed_pricing_list;
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.
void unpack(BCP_buffer &buf)
Unpack the contents of the core description from the buffer.
This class is the internal representation of a branching object.
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
void pack(BCP_buffer &buf) const
Pack the core change into the buffer.
BCP_lp_relax * matrix
A pointer to the constraint matrix corresponding to the core variables and cuts.
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.
BCP_storage_t _storage
Describes how the change is stored.
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.
An object of type BCP_lp_relax holds the description of an lp relaxation.
~BCP_problem_core_change()
The destructor deletes all data members.
BCP_vec< BCP_var_core * > vars
A vector of pointers to the variables in the core of the problem.
Core cuts are the cuts that always stay in the LP formulation.
~BCP_problem_core()
The desctructor deletes all data members.
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
BCP_problem_core()
The default constructor creates an empty core description: no variables/cuts and an empty matrix...
This class describes changes in the core of the problem.
BCP_problem_core_change(BCP_storage_t store=BCP_Storage_WrtCore)
This constructor creates a core change with the given storage.
void pack(BCP_buffer &buf) const
Pack the contents of the core description into the buffer.
This class describes the message buffer used for all processes of BCP.
int pack_size() const
Return the buffer size needed to pack the data in the core change.
void unpack(BCP_buffer &buf)
Unpack the core change data from the buffer.
void swap(BCP_vec< T > &x)
Exchange the contents of the object with that of x.
size_t cutnum() const
Return the number of cuts in the core.
BCP_storage_t storage() const
Return the storage type.
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...
The data stored is with respect to the original description of the base problem (as was given by the ...
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...
size_t size() const
Return the current number of entries.
The class BCP_vec serves the same purpose as the vector class in the standard template library...
Core variables are the variables that always stay in the LP formulation.
size_t varnum() const
Return the number of variables in the core.
BCP_vec< BCP_obj_change > cut_ch
The new lb/ub/status triplet for each cut for which any of those three have changed.
BCP_vec< BCP_cut_core * > cuts
A vector of pointers to the cuts in the core of the problem.
size_t cutnum() const
Return the number of changed cuts (the length of the array cut_ch).
void swap(BCP_problem_core_change &other)
Swap the contents of the current core change with that of other.
BCP_vec< BCP_obj_change > var_ch
The new lb/ub/status triplet for each variable for which any of those three have changed.
This class is just a collection of pointers to variables with a number of methods to manipulate these...
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 ...
size_t varnum() const
Return the number of changed variables (the length of the array var_ch).