Residual Capacity Inequalities Cut Generator Class. More...
#include <CglResidualCapacity.hpp>
Public Member Functions | |
Get and Set Parameters | |
void | setEpsilon (double value) |
Set Epsilon. More... | |
double | getEpsilon () const |
Get Epsilon. More... | |
void | setTolerance (double value) |
Set Tolerance. More... | |
double | getTolerance () const |
Get Tolerance. More... | |
void | setDoPreproc (int value) |
Set doPreproc. More... | |
bool | getDoPreproc () const |
Get doPreproc. More... | |
Generate Cuts | |
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) |
Generate Residual Capacity cuts for the model data contained in si. More... | |
Constructors and destructors | |
CglResidualCapacity () | |
Default constructor. More... | |
CglResidualCapacity (const double tolerance) | |
Alternate Constructor. More... | |
CglResidualCapacity (const CglResidualCapacity &) | |
Copy constructor. More... | |
virtual CglCutGenerator * | clone () const |
Clone. More... | |
CglResidualCapacity & | operator= (const CglResidualCapacity &rhs) |
Assignment operator. More... | |
virtual | ~CglResidualCapacity () |
Destructor. More... | |
virtual void | refreshPrep () |
This is to refresh preprocessing. More... | |
![]() | |
CglCutGenerator () | |
Default constructor. More... | |
CglCutGenerator (const CglCutGenerator &) | |
Copy constructor. More... | |
CglCutGenerator & | operator= (const CglCutGenerator &rhs) |
Assignment operator. More... | |
virtual | ~CglCutGenerator () |
Destructor. More... | |
virtual std::string | generateCpp (FILE *) |
Create C++ lines to set the generator in the current state. More... | |
virtual void | refreshSolver (OsiSolverInterface *) |
This can be used to refresh any information. 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 Types | |
enum | RowType { ROW_L, ROW_G, ROW_BOTH, ROW_OTHER } |
Private Member Functions | |
void | gutsOfConstruct (const double tolerance) |
void | gutsOfDelete () |
void | gutsOfCopy (const CglResidualCapacity &rhs) |
void | resCapPreprocess (const OsiSolverInterface &si) |
RowType | determineRowType (const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const char sense, const double rhs, const double *colLowerBound, const double *colUpperBound) const |
bool | treatAsLessThan (const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const double rhs, const double *colLowerBound, const double *colUpperBound) const |
void | generateResCapCuts (const OsiSolverInterface &si, const double *xlp, const double *colUpperBound, const double *colLowerBound, const CoinPackedMatrix &matrixByRow, const double *LHS, const double *coefByRow, const int *colInds, const int *rowStarts, const int *rowLengths, OsiCuts &cs) const |
bool | resCapSeparation (const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const double rhs, const double *xlp, const double *colUpperBound, const double *colLowerBound, OsiRowCut &resCapCut) const |
Private Attributes | |
double | EPSILON_ |
Tolerance used for numerical purposes, default value: 1.e-6. More... | |
double | TOLERANCE_ |
If violation of a cut is greater that this number, the cut is accepted, default value: 1.e-4. More... | |
int | doPreproc_ |
Controls the preprocessing of the matrix to identify rows suitable for cut generation. More... | |
int | numRows_ |
int | numCols_ |
bool | doneInitPre_ |
RowType * | rowTypes_ |
int * | indRows_ |
char * | sense_ |
double * | RHS_ |
int | numRowL_ |
int * | indRowL_ |
int | numRowG_ |
int * | indRowG_ |
Friends | |
void | CglResidualCapacityUnitTest (const OsiSolverInterface *siP, const std::string mpdDir) |
A function that tests the methods in the CglResidualCapacity 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... | |
Residual Capacity Inequalities Cut Generator Class.
References: T Magnanti, P Mirchandani, R Vachani, "The convex hull of two core capacitated network design problems," Math Programming 60 (1993), 233-250.
A Atamturk, D Rajan, "On splittable and unsplittable flow capacitated network design arc-set polyhedra," Math Programming 92 (2002), 315-333.
Definition at line 47 of file CglResidualCapacity.hpp.
|
private |
Definition at line 56 of file CglResidualCapacity.hpp.
CglResidualCapacity::CglResidualCapacity | ( | ) |
Default constructor.
CglResidualCapacity::CglResidualCapacity | ( | const double | tolerance | ) |
Alternate Constructor.
CglResidualCapacity::CglResidualCapacity | ( | const CglResidualCapacity & | ) |
Copy constructor.
|
virtual |
Destructor.
void CglResidualCapacity::setEpsilon | ( | double | value | ) |
Set Epsilon.
double CglResidualCapacity::getEpsilon | ( | ) | const |
Get Epsilon.
void CglResidualCapacity::setTolerance | ( | double | value | ) |
Set Tolerance.
double CglResidualCapacity::getTolerance | ( | ) | const |
Get Tolerance.
void CglResidualCapacity::setDoPreproc | ( | int | value | ) |
Set doPreproc.
bool CglResidualCapacity::getDoPreproc | ( | ) | const |
Get doPreproc.
|
virtual |
Generate Residual Capacity cuts for the model data contained in si.
The generated cuts are inserted in the collection of cuts cs.
Implements CglCutGenerator.
|
virtual |
Clone.
Implements CglCutGenerator.
CglResidualCapacity& CglResidualCapacity::operator= | ( | const CglResidualCapacity & | rhs | ) |
Assignment operator.
|
virtual |
This is to refresh preprocessing.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
friend |
A function that tests the methods in the CglResidualCapacity 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 |
Tolerance used for numerical purposes, default value: 1.e-6.
Definition at line 194 of file CglResidualCapacity.hpp.
|
private |
If violation of a cut is greater that this number, the cut is accepted, default value: 1.e-4.
Definition at line 197 of file CglResidualCapacity.hpp.
|
private |
Controls the preprocessing of the matrix to identify rows suitable for cut generation.
Default value: -1
Definition at line 205 of file CglResidualCapacity.hpp.
|
private |
Definition at line 207 of file CglResidualCapacity.hpp.
|
private |
Definition at line 209 of file CglResidualCapacity.hpp.
|
private |
Definition at line 211 of file CglResidualCapacity.hpp.
|
private |
Definition at line 213 of file CglResidualCapacity.hpp.
|
private |
Definition at line 215 of file CglResidualCapacity.hpp.
|
private |
Definition at line 217 of file CglResidualCapacity.hpp.
|
private |
Definition at line 219 of file CglResidualCapacity.hpp.
|
private |
Definition at line 221 of file CglResidualCapacity.hpp.
|
private |
Definition at line 223 of file CglResidualCapacity.hpp.
|
private |
Definition at line 225 of file CglResidualCapacity.hpp.
|
private |
Definition at line 227 of file CglResidualCapacity.hpp.