Cbc
2.10.5
|
Twostep MIR Cut Generator Class. More...
#include <CglTwomir.hpp>
Public Member Functions | |
Generate Cuts | |
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) |
Generate Two step MIR cuts either from the tableau rows or from the formulation rows. More... | |
virtual bool | needsOptimalBasis () const |
Return true if needs optimal basis to do cuts (will return true) More... | |
Change criterion on which scalings to use (default = 1,1,1,1) | |
void | setMirScale (int tmin, int tmax) |
Set. More... | |
void | setTwomirScale (int qmin, int qmax) |
void | setAMax (int a) |
void | setMaxElements (int n) |
void | setMaxElementsRoot (int n) |
void | setCutTypes (bool mir, bool twomir, bool tab, bool form) |
void | setFormulationRows (int n) |
int | getTmin () const |
Get. More... | |
int | getTmax () const |
int | getQmin () const |
int | getQmax () const |
int | getAmax () const |
int | getMaxElements () const |
int | getMaxElementsRoot () const |
int | getIfMir () const |
int | getIfTwomir () const |
int | getIfTableau () const |
int | getIfFormulation () const |
Change criterion on which variables to look at. All ones | |
more than "away" away from integrality will be investigated (default 0.05) | |
void | setAway (double value) |
Set away. More... | |
double | getAway () const |
Get away. More... | |
void | setAwayAtRoot (double value) |
Set away at root. More... | |
double | getAwayAtRoot () const |
Get away at root. More... | |
virtual int | maximumLengthOfCutInTree () const |
Return maximum length of cut in tree. More... | |
Change way TwoMir works | |
void | passInOriginalSolver (OsiSolverInterface *solver) |
Pass in a copy of original solver (clone it) More... | |
OsiSolverInterface * | originalSolver () const |
Returns original solver. More... | |
void | setTwomirType (int type) |
Set type - 0 normal, 1 add original matrix one, 2 replace. More... | |
int | twomirType () const |
Return type. More... | |
Constructors and destructors | |
CglTwomir () | |
Default constructor. More... | |
CglTwomir (const CglTwomir &) | |
Copy constructor. More... | |
virtual CglCutGenerator * | clone () const |
Clone. More... | |
CglTwomir & | operator= (const CglTwomir &rhs) |
Assignment operator. More... | |
virtual | ~CglTwomir () |
Destructor. More... | |
virtual std::string | generateCpp (FILE *fp) |
Create C++ lines to get to current state. More... | |
virtual void | refreshSolver (OsiSolverInterface *solver) |
This can be used to refresh any inforamtion. More... | |
![]() | |
CglCutGenerator () | |
Default constructor. More... | |
CglCutGenerator (const CglCutGenerator &) | |
Copy constructor. More... | |
CglCutGenerator & | operator= (const CglCutGenerator &rhs) |
Assignment operator. More... | |
virtual | ~CglCutGenerator () |
Destructor. More... | |
int | getAggressiveness () const |
Get Aggressiveness - 0 = neutral, 100 is normal root node. More... | |
void | setAggressiveness (int value) |
Set Aggressiveness - 0 = neutral, 100 is normal root node. More... | |
void | setGlobalCuts (bool trueOrFalse) |
Set whether can do global cuts. More... | |
bool | canDoGlobalCuts () const |
Say whether can do global cuts. More... | |
virtual bool | mayGenerateRowCutsInTree () const |
Returns true if may generate Row cuts in tree (rather than root node). More... | |
Public Attributes | |
std::string | probname_ |
Problem name. More... | |
![]() | |
int | aggressive_ |
Aggressiveness - 0 = neutral, 100 is normal root node. More... | |
bool | canDoGlobalCuts_ |
True if can do global cuts i.e. no general integers. More... | |
Private Attributes | |
Private member data | |
CoinThreadRandom | randomNumberGenerator_ |
Threadsafe random number generator. More... | |
OsiSolverInterface * | originalSolver_ |
Original solver. More... | |
double | away_ |
Only investigate if more than this away from integrality. More... | |
double | awayAtRoot_ |
Only investigate if more than this away from integrality (at root) More... | |
int | twomirType_ |
Type - 0 normal, 1 add original matrix one, 2 replace. More... | |
bool | do_mir_ |
bool | do_2mir_ |
bool | do_tab_ |
bool | do_form_ |
int | t_min_ |
int | t_max_ |
t_min - first value of t to use for tMIR inequalities More... | |
int | q_min_ |
t_max - last value of t to use for tMIR inequalities More... | |
int | q_max_ |
q_min - first value of t to use for 2-Step tMIR inequalities More... | |
int | a_max_ |
q_max - last value of t to use for 2-Step tMIR inequalities More... | |
int | max_elements_ |
a_max - maximum value of bhat/alpha More... | |
int | max_elements_root_ |
Maximum number of elements in cut. More... | |
int | form_nrows_ |
Maximum number of elements in cut at root. More... | |
Friends | |
void | CglTwomirUnitTest (const OsiSolverInterface *siP, const std::string mpdDir) |
A function that tests the methods in the CglTwomir class. More... | |
Twostep MIR Cut Generator Class.
Definition at line 91 of file CglTwomir.hpp.
CglTwomir::CglTwomir | ( | ) |
Default constructor.
CglTwomir::CglTwomir | ( | const CglTwomir & | ) |
Copy constructor.
|
virtual |
Destructor.
|
virtual |
Generate Two step MIR cuts either from the tableau rows or from the formulation rows.
Implements CglCutGenerator.
|
virtual |
Return true if needs optimal basis to do cuts (will return true)
Reimplemented from CglCutGenerator.
|
inline |
Set.
Definition at line 115 of file CglTwomir.hpp.
|
inline |
Definition at line 116 of file CglTwomir.hpp.
|
inline |
Definition at line 117 of file CglTwomir.hpp.
|
inline |
Definition at line 118 of file CglTwomir.hpp.
|
inline |
Definition at line 119 of file CglTwomir.hpp.
|
inline |
Definition at line 120 of file CglTwomir.hpp.
|
inline |
Definition at line 122 of file CglTwomir.hpp.
|
inline |
Get.
Definition at line 125 of file CglTwomir.hpp.
|
inline |
Definition at line 126 of file CglTwomir.hpp.
|
inline |
Definition at line 127 of file CglTwomir.hpp.
|
inline |
Definition at line 128 of file CglTwomir.hpp.
|
inline |
Definition at line 129 of file CglTwomir.hpp.
|
inline |
Definition at line 130 of file CglTwomir.hpp.
|
inline |
Definition at line 131 of file CglTwomir.hpp.
|
inline |
Definition at line 132 of file CglTwomir.hpp.
|
inline |
Definition at line 133 of file CglTwomir.hpp.
|
inline |
Definition at line 134 of file CglTwomir.hpp.
|
inline |
Definition at line 135 of file CglTwomir.hpp.
void CglTwomir::setAway | ( | double | value | ) |
Set away.
double CglTwomir::getAway | ( | ) | const |
Get away.
void CglTwomir::setAwayAtRoot | ( | double | value | ) |
Set away at root.
double CglTwomir::getAwayAtRoot | ( | ) | const |
Get away at root.
|
inlinevirtual |
Return maximum length of cut in tree.
Reimplemented from CglCutGenerator.
Definition at line 151 of file CglTwomir.hpp.
void CglTwomir::passInOriginalSolver | ( | OsiSolverInterface * | solver | ) |
Pass in a copy of original solver (clone it)
|
inline |
Returns original solver.
Definition at line 160 of file CglTwomir.hpp.
|
inline |
Set type - 0 normal, 1 add original matrix one, 2 replace.
Definition at line 163 of file CglTwomir.hpp.
|
inline |
Return type.
Definition at line 166 of file CglTwomir.hpp.
|
virtual |
Clone.
Implements CglCutGenerator.
|
virtual |
Create C++ lines to get to current state.
Reimplemented from CglCutGenerator.
|
virtual |
This can be used to refresh any inforamtion.
Reimplemented from CglCutGenerator.
|
friend |
A function that tests the methods in the CglTwomir class.
The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.
std::string CglTwomir::probname_ |
Problem name.
Definition at line 100 of file CglTwomir.hpp.
|
private |
Threadsafe random number generator.
Definition at line 197 of file CglTwomir.hpp.
|
private |
Original solver.
Definition at line 199 of file CglTwomir.hpp.
|
private |
Only investigate if more than this away from integrality.
Definition at line 201 of file CglTwomir.hpp.
|
private |
Only investigate if more than this away from integrality (at root)
Definition at line 203 of file CglTwomir.hpp.
|
private |
Type - 0 normal, 1 add original matrix one, 2 replace.
Definition at line 205 of file CglTwomir.hpp.
|
private |
Definition at line 206 of file CglTwomir.hpp.
|
private |
Definition at line 207 of file CglTwomir.hpp.
|
private |
Definition at line 208 of file CglTwomir.hpp.
|
private |
Definition at line 209 of file CglTwomir.hpp.
|
private |
Definition at line 211 of file CglTwomir.hpp.
|
private |
t_min - first value of t to use for tMIR inequalities
Definition at line 212 of file CglTwomir.hpp.
|
private |
t_max - last value of t to use for tMIR inequalities
Definition at line 213 of file CglTwomir.hpp.
|
private |
q_min - first value of t to use for 2-Step tMIR inequalities
Definition at line 214 of file CglTwomir.hpp.
|
private |
q_max - last value of t to use for 2-Step tMIR inequalities
Definition at line 215 of file CglTwomir.hpp.
|
private |
a_max - maximum value of bhat/alpha
Definition at line 216 of file CglTwomir.hpp.
|
private |
Maximum number of elements in cut.
Definition at line 217 of file CglTwomir.hpp.
|
private |
Maximum number of elements in cut at root.
Definition at line 218 of file CglTwomir.hpp.