Zero Half Cut Generator Class. More...
#include <CglZeroHalf.hpp>
Public Member Functions | |
Generate Cuts | |
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) |
Generate zero half cuts for the model accessed through the solver interface. More... | |
Sets and Gets | |
int | getFlags () const |
Get flags. More... | |
void | setFlags (int value) |
Set flags. More... | |
Constructors and destructors | |
CglZeroHalf () | |
Default constructor. More... | |
CglZeroHalf (const CglZeroHalf &) | |
Copy constructor. More... | |
virtual CglCutGenerator * | clone () const |
Clone. More... | |
CglZeroHalf & | operator= (const CglZeroHalf &rhs) |
Assignment operator. More... | |
virtual | ~CglZeroHalf () |
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 information. 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... | |
virtual bool | needsOptimalBasis () const |
Return true if needs optimal basis to do cuts. More... | |
virtual int | maximumLengthOfCutInTree () const |
Return maximum length of cut in tree. More... | |
Private Attributes | |
Private member data | |
int | mr_ |
number of rows in the ILP matrix More... | |
int | mc_ |
number of columns in the ILP matrix More... | |
int | mnz_ |
number of nonzero's in the ILP matrix More... | |
int * | mtbeg_ |
starting position of each row in arrays mtind and mtval More... | |
int * | mtcnt_ |
number of entries of each row in arrays mtind and mtval More... | |
int * | mtind_ |
column indices of the nonzero entries of the ILP matrix More... | |
int * | mtval_ |
values of the nonzero entries of the ILP matrix More... | |
int * | vlb_ |
lower bounds on the variables More... | |
int * | vub_ |
upper bounds on the variables More... | |
int * | mrhs_ |
right hand sides of the constraints More... | |
char * | msense_ |
senses of the constraints: 'L', 'G' or 'E' More... | |
Cgl012Cut | cutInfo_ |
Cgl012Cut object to make thread safe. More... | |
int | flags_ |
Flags 1 bit - global cuts. More... | |
Friends | |
void | CglZeroHalfUnitTest (const OsiSolverInterface *siP, const std::string mpdDir) |
A function that tests the methods in the CglZeroHalf class. More... | |
Additional Inherited Members | |
![]() | |
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... | |
Zero Half Cut Generator Class.
This class generates zero half cuts via the following method:
See -
G. Andreello, A. Caprara, M. Fischetti, “Embedding Cuts in a Branch and Cut Framework: a Computational Study with {0,1/2}-Cuts”, INFORMS Journal on Computing 19(2), 229-238, 2007.
Definition at line 26 of file CglZeroHalf.hpp.
CglZeroHalf::CglZeroHalf | ( | ) |
Default constructor.
CglZeroHalf::CglZeroHalf | ( | const CglZeroHalf & | ) |
Copy constructor.
|
virtual |
Destructor.
|
virtual |
Generate zero half cuts for the model accessed through the solver interface.
Insert generated cuts into the cut set cs.
Implements CglCutGenerator.
|
inline |
Get flags.
Definition at line 44 of file CglZeroHalf.hpp.
|
inline |
Set flags.
Definition at line 47 of file CglZeroHalf.hpp.
|
virtual |
Clone.
Implements CglCutGenerator.
CglZeroHalf& CglZeroHalf::operator= | ( | const CglZeroHalf & | rhs | ) |
Assignment operator.
|
virtual |
Create C++ lines to get to current state.
Reimplemented from CglCutGenerator.
|
virtual |
This can be used to refresh any information.
Reimplemented from CglCutGenerator.
|
friend |
A function that tests the methods in the CglZeroHalf 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.
|
private |
number of rows in the ILP matrix
Definition at line 89 of file CglZeroHalf.hpp.
|
private |
number of columns in the ILP matrix
Definition at line 91 of file CglZeroHalf.hpp.
|
private |
number of nonzero's in the ILP matrix
Definition at line 93 of file CglZeroHalf.hpp.
|
private |
starting position of each row in arrays mtind and mtval
Definition at line 95 of file CglZeroHalf.hpp.
|
private |
number of entries of each row in arrays mtind and mtval
Definition at line 97 of file CglZeroHalf.hpp.
|
private |
column indices of the nonzero entries of the ILP matrix
Definition at line 99 of file CglZeroHalf.hpp.
|
private |
values of the nonzero entries of the ILP matrix
Definition at line 101 of file CglZeroHalf.hpp.
|
private |
lower bounds on the variables
Definition at line 103 of file CglZeroHalf.hpp.
|
private |
upper bounds on the variables
Definition at line 105 of file CglZeroHalf.hpp.
|
private |
right hand sides of the constraints
Definition at line 107 of file CglZeroHalf.hpp.
|
private |
senses of the constraints: 'L', 'G' or 'E'
Definition at line 109 of file CglZeroHalf.hpp.
|
private |
Cgl012Cut object to make thread safe.
Definition at line 111 of file CglZeroHalf.hpp.
|
private |
Flags 1 bit - global cuts.
Definition at line 115 of file CglZeroHalf.hpp.