#include <BCP_cut.hpp>
Inheritance diagram for BCP_cut:
Public Member Functions | |
Constructor and destructor | |
Note that there is no default constructor. There is no such thing as "default cut". | |
BCP_cut (const double lb, const double ub) | |
The constructor sets the internal index of the cut to zero and the other data members to the given arguments. | |
virtual | ~BCP_cut () |
The destructor is virtual so that the appropriate destructor is invoked for every cut. | |
Query methods | |
virtual BCP_object_t | obj_type () const =0 |
Return the type of the variable. | |
int | effective_count () const |
Return the effectiveness count of the cut (only in LP process). | |
double | lb () const |
Return the lower bound on the cut. | |
double | ub () const |
Return the upper bound on the cut. | |
int | bcpind () const |
Return the internal index of the cut. | |
BCP_obj_status | status () const |
Return the status of the cut. | |
bool | dont_send_to_pool () const |
Return whether the cut should be sent to the Cut Pool process. | |
bool | is_non_removable () const |
Return whether the cut marked as NotRemovable. | |
bool | is_to_be_removed () const |
Return whether the cut must be removed from the formulation. | |
Modifying methods | |
void | set_effective_count (const int cnt) |
Set the effectiveness count to the given value. | |
int | increase_effective_count () |
Increase the effectiveness count by 1 (or to 1 if it was negative). | |
int | decrease_effective_count () |
Decrease the effectiveness count by 1 (or to -1 if it was positive). | |
void | set_lb (const double lb) |
Set the lower bound on the cut. | |
void | set_ub (const double ub) |
Set the upper bound on the cut. | |
void | change_lb_ub_st (const BCP_obj_change &change) |
Set the lower/upper bounds and the status of the cut simultaneously to the values given in the data members of the argument. | |
void | change_bounds (const double lb, const double ub) |
Change just the lower/upper bounds. | |
void | set_bcpind (const int bcpind) |
Set the internal index of the cut. | |
void | set_status (const BCP_obj_status stat) |
Set the status of the cut. | |
void | dont_send_to_pool (bool flag) |
Set/unset the flag controlling whether the cut could be sent to the Cut Pool process. | |
void | make_active () |
Mark the cut as active. | |
void | make_non_removable () |
Mark the cut as NotRemovable. | |
void | make_to_be_removed () |
Mark the cut as ToBeRemoved. | |
Protected Attributes | |
double | _lb |
Lower bound of the cut. | |
double | _ub |
Upper bound of the cut. | |
Private Member Functions | |
Disabled methods | |
BCP_cut () | |
The default constructor is declared but not defined to disable it. | |
BCP_cut (const BCP_cut &) | |
The copy constructor is declared but not defined to disable it. | |
BCP_cut & | operator= (const BCP_cut &) |
The assignment operator is declared but not defined to disable it. | |
Private Attributes | |
int | _bcpind |
The internal, unique index of the cut. | |
BCP_obj_status | _status |
The status of the cut. | |
int | _eff_cnt |
Effectiveness counter (used only in the LP process). |
Classes describing the three types of cuts (core, indexed and algorithmic) are derived from this class. No object of type BCP_cut can exist (having purely virtual members in the class enforces this restriction).
Definition at line 28 of file BCP_cut.hpp.
BCP_cut::BCP_cut | ( | ) | [private] |
The default constructor is declared but not defined to disable it.
BCP_cut::BCP_cut | ( | const BCP_cut & | ) | [private] |
The copy constructor is declared but not defined to disable it.
BCP_cut::BCP_cut | ( | const double | lb, | |
const double | ub | |||
) | [inline] |
The constructor sets the internal index of the cut to zero and the other data members to the given arguments.
Definition at line 67 of file BCP_cut.hpp.
virtual BCP_cut::~BCP_cut | ( | ) | [inline, virtual] |
The destructor is virtual so that the appropriate destructor is invoked for every cut.
Definition at line 71 of file BCP_cut.hpp.
The assignment operator is declared but not defined to disable it.
virtual BCP_object_t BCP_cut::obj_type | ( | ) | const [pure virtual] |
int BCP_cut::effective_count | ( | ) | const [inline] |
Return the effectiveness count of the cut (only in LP process).
Definition at line 79 of file BCP_cut.hpp.
References _eff_cnt.
Referenced by BCP_cut_core::BCP_cut_core().
double BCP_cut::lb | ( | ) | const [inline] |
double BCP_cut::ub | ( | ) | const [inline] |
int BCP_cut::bcpind | ( | ) | const [inline] |
Return the internal index of the cut.
Definition at line 85 of file BCP_cut.hpp.
References _bcpind.
Referenced by BCP_cut_core::BCP_cut_core().
BCP_obj_status BCP_cut::status | ( | ) | const [inline] |
Return the status of the cut.
Definition at line 90 of file BCP_cut.hpp.
References _status.
Referenced by BCP_cut_core::BCP_cut_core().
bool BCP_cut::dont_send_to_pool | ( | ) | const [inline] |
Return whether the cut should be sent to the Cut Pool process.
(Assuming that it stays in the formulation long enough to qualify to be sent to the Cut Pool at all.
Definition at line 94 of file BCP_cut.hpp.
References _status, and BCP_ObjDoNotSendToPool.
bool BCP_cut::is_non_removable | ( | ) | const [inline] |
Return whether the cut marked as NotRemovable.
Such cuts are, e.g., the branching cuts.
Definition at line 99 of file BCP_cut.hpp.
References _status, and BCP_ObjNotRemovable.
bool BCP_cut::is_to_be_removed | ( | ) | const [inline] |
Return whether the cut must be removed from the formulation.
There are very few circumstances when this flag is set; all of them are completely internal to BCP.
Definition at line 105 of file BCP_cut.hpp.
References _status, and BCP_ObjToBeRemoved.
void BCP_cut::set_effective_count | ( | const int | cnt | ) | [inline] |
Set the effectiveness count to the given value.
Definition at line 114 of file BCP_cut.hpp.
References _eff_cnt.
Referenced by BCP_cut_core::BCP_cut_core().
int BCP_cut::increase_effective_count | ( | ) | [inline] |
Increase the effectiveness count by 1 (or to 1 if it was negative).
Return the new effectiveness count.
Definition at line 117 of file BCP_cut.hpp.
References _eff_cnt.
int BCP_cut::decrease_effective_count | ( | ) | [inline] |
Decrease the effectiveness count by 1 (or to -1 if it was positive).
Return the new effectiveness count.
Definition at line 123 of file BCP_cut.hpp.
References _eff_cnt.
void BCP_cut::set_lb | ( | const double | lb | ) | [inline] |
void BCP_cut::set_ub | ( | const double | ub | ) | [inline] |
void BCP_cut::change_lb_ub_st | ( | const BCP_obj_change & | change | ) | [inline] |
Set the lower/upper bounds and the status of the cut simultaneously to the values given in the data members of the argument.
Definition at line 133 of file BCP_cut.hpp.
References _lb, _status, _ub, BCP_DBL_MAX, BCP_ObjInactive, BCP_obj_change::lb, BCP_obj_change::stat, and BCP_obj_change::ub.
void BCP_cut::change_bounds | ( | const double | lb, | |
const double | ub | |||
) | [inline] |
Change just the lower/upper bounds.
Definition at line 141 of file BCP_cut.hpp.
References _lb, _status, _ub, BCP_DBL_MAX, and BCP_ObjInactive.
void BCP_cut::set_bcpind | ( | const int | bcpind | ) | [inline] |
Set the internal index of the cut.
Definition at line 148 of file BCP_cut.hpp.
References _bcpind.
Referenced by BCP_cut_core::BCP_cut_core().
void BCP_cut::set_status | ( | const BCP_obj_status | stat | ) | [inline] |
Set the status of the cut.
Definition at line 153 of file BCP_cut.hpp.
References _status.
Referenced by BCP_cut_core::BCP_cut_core().
void BCP_cut::dont_send_to_pool | ( | bool | flag | ) | [inline] |
Set/unset the flag controlling whether the cut could be sent to the Cut Pool process.
Definition at line 156 of file BCP_cut.hpp.
References _status, and BCP_ObjDoNotSendToPool.
void BCP_cut::make_active | ( | ) | [inline] |
Mark the cut as active.
Note that when this method is invoked the lp formulation must be modified as well: the original bounds of the cut must be reset.
Definition at line 164 of file BCP_cut.hpp.
References _status, and BCP_ObjInactive.
void BCP_cut::make_non_removable | ( | ) | [inline] |
Mark the cut as NotRemovable.
Definition at line 168 of file BCP_cut.hpp.
References _status, BCP_ObjNotRemovable, and BCP_ObjToBeRemoved.
void BCP_cut::make_to_be_removed | ( | ) | [inline] |
Mark the cut as ToBeRemoved.
It will actually be removed immediately after all cuts that have to be marked this way are marked.
Definition at line 175 of file BCP_cut.hpp.
References _status, and BCP_ObjToBeRemoved.
int BCP_cut::_bcpind [private] |
The internal, unique index of the cut.
Definition at line 45 of file BCP_cut.hpp.
Referenced by bcpind(), and set_bcpind().
BCP_obj_status BCP_cut::_status [private] |
The status of the cut.
Definition at line 47 of file BCP_cut.hpp.
Referenced by change_bounds(), change_lb_ub_st(), dont_send_to_pool(), is_non_removable(), is_to_be_removed(), make_active(), make_non_removable(), make_to_be_removed(), set_status(), and status().
int BCP_cut::_eff_cnt [private] |
Effectiveness counter (used only in the LP process).
Definition at line 49 of file BCP_cut.hpp.
Referenced by decrease_effective_count(), effective_count(), increase_effective_count(), and set_effective_count().
double BCP_cut::_lb [protected] |
Lower bound of the cut.
Definition at line 55 of file BCP_cut.hpp.
Referenced by change_bounds(), change_lb_ub_st(), lb(), and set_lb().
double BCP_cut::_ub [protected] |
Upper bound of the cut.
Definition at line 57 of file BCP_cut.hpp.
Referenced by change_bounds(), change_lb_ub_st(), set_ub(), and ub().