Go to the documentation of this file.
3 #ifndef _BCP_PROBLEM_CORE_H
4 #define _BCP_PROBLEM_CORE_H
18 class BCP_indexed_pricing_list;
void swap(BCP_problem_core_change &other)
Swap the contents of the current core change with that of other.
BCP_vec< int > var_pos
The positions of the core variables (in the vars member of \URL[BCP_problem_core]{BCP_problem_core....
BCP_vec< BCP_var_core * > vars
A vector of pointers to the variables in the core of the problem.
BCP_vec< int > cut_pos
The positions of the core cuts (in the cuts member of \URL[BCP_problem_core]{BCP_problem_core....
@ BCP_Storage_WrtCore
The data stored is with respect to the original description of the base problem (as was given by the ...
void pack(BCP_buffer &buf) const
Pack the contents of the core description into the buffer.
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 cuts in the core.
BCP_problem_core_change(int bvarnum, BCP_var_set &vars, int bcutnum, BCP_cut_set &cuts)
This constructor creates an Explicit core change description.
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 ...
void pack(BCP_buffer &buf) const
Pack the core change into the buffer.
Core variables are the variables that always stay in the LP formulation.
size_t cutnum() const
Return the number of changed cuts (the length of the array cut_ch).
void swap(BCP_vec< T > &x)
Exchange the contents of the object with that of x.
int pack_size() const
Return the buffer size needed to pack the data in the core change.
void update(const BCP_problem_core_change &expl_core, const BCP_problem_core_change &core_change)
Update the current change according to core_change.
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.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
BCP_lp_relax * matrix
A pointer to the constraint matrix corresponding to the core variables and cuts.
BCP_vec< BCP_obj_change > cut_ch
The new lb/ub/status triplet for each cut for which any of those three have changed.
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
size_t varnum() const
Return the number of variables in the core.
BCP_vec< BCP_obj_change > var_ch
The new lb/ub/status triplet for each variable for which any of those three have changed.
BCP_problem_core_change(BCP_storage_t storage, BCP_problem_core_change &ocore, BCP_problem_core_change &ncore)
Create a core change describing the changes from old_bc</node> to new_bc.
This class is the internal representation of a branching object.
An object of type BCP_lp_relax holds the description of an lp relaxation.
size_t varnum() const
Return the number of changed variables (the length of the array var_ch).
BCP_storage_t storage() const
Return the storage type.
void unpack(BCP_buffer &buf)
Unpack the core change data from the buffer.
BCP_storage_t _storage
Describes how the change is stored.
void unpack(BCP_buffer &buf)
Unpack the contents of the core description 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.
~BCP_problem_core()
The desctructor deletes all data members.
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...
This class is just a collection of pointers to variables with a number of methods to manipulate these...
Core cuts are the cuts that always stay in the LP formulation.
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...
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
This class describes changes in the core of the problem.
This class describes the message buffer used for all processes of BCP.
~BCP_problem_core_change()
The destructor deletes all data members.