#include <CglMixedIntegerRounding.hpp>
Inheritance diagram for CglMixedIntegerRounding:
Public Member Functions | |
Generate Cuts | |
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const |
Generate Mixed Integer Rounding cuts for the model data contained in si. | |
Constructors and destructors | |
CglMixedIntegerRounding () | |
Default constructor. | |
CglMixedIntegerRounding (const int maxaggr, const bool multiply, const int criterion) | |
Alternate Constructor. | |
CglMixedIntegerRounding (const CglMixedIntegerRounding &) | |
Copy constructor. | |
virtual CglCutGenerator * | clone () const |
Clone. | |
CglMixedIntegerRounding & | operator= (const CglMixedIntegerRounding &rhs) |
Assignment operator. | |
virtual | ~CglMixedIntegerRounding () |
Destructor. | |
virtual void | refreshSolver (OsiSolverInterface *solver) |
This can be used to refresh any inforamtion. | |
virtual std::string | generateCpp (FILE *fp) |
Create C++ lines to get to current state. | |
Set and get methods | |
void | setMAXAGGR_ (int maxaggr) |
Set MAXAGGR_. | |
int | getMAXAGGR_ () const |
Get MAXAGGR_. | |
void | setMULTIPLY_ (bool multiply) |
Set MULTIPLY_. | |
bool | getMULTIPLY_ () const |
Get MULTIPLY_. | |
void | setCRITERION_ (int criterion) |
Set CRITERION_. | |
int | getCRITERION_ () const |
Get CRITERION_. | |
Private Types | |
enum | RowType { ROW_UNDEFINED, ROW_VARUB, ROW_VARLB, ROW_VAREQ, ROW_MIX, ROW_CONT, ROW_INT, ROW_OTHER } |
Private Member Functions | |
void | gutsOfConstruct (const int maxaggr, const bool multiply, const int criterion) |
void | gutsOfDelete () |
void | gutsOfCopy (const CglMixedIntegerRounding &rhs) |
void | mixIntRoundPreprocess (const OsiSolverInterface &si) const |
RowType | determineRowType (const OsiSolverInterface &si, const int rowLen, const int *ind, const double *coef, const char sense, const double rhs) const |
void | generateMirCuts (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, const CoinPackedMatrix &matrixByCol, const double *coefByCol, const int *rowInds, const int *colStarts, const int *colLengths, OsiCuts &cs) const |
void | copyRowSelected (const int iAggregate, const int rowSelected, std::set< int > &setRowsAggregated, int *listRowsAggregated, double *xlpExtra, const char sen, const double rhs, const double lhs, const CoinPackedMatrix &matrixByRow, CoinPackedVector &rowToAggregate, double &rhsToAggregate) const |
bool | selectRowToAggregate (const OsiSolverInterface &si, const CoinPackedVector &rowAggregated, const double *colUpperBound, const double *colLowerBound, const std::set< int > &setRowsAggregated, const double *xlp, const double *coefByCol, const int *rowInds, const int *colStarts, const int *colLengths, int &rowSelected, int &colSelected) const |
void | aggregateRow (const int colSelected, CoinPackedVector &rowToAggregate, double rhs, CoinPackedVector &rowAggregated, double &rhsAggregated) const |
bool | isLowerSubst (const double inf, const double aj, const double xlp, const double LB, const double UB) const |
bool | boundSubstitution (const OsiSolverInterface &si, const CoinPackedVector &rowAggregated, const double *xlp, const double *xlpExtra, const double *colUpperBound, const double *colLowerBound, CoinPackedVector &mixedKnapsack, double &rhsMixedKnapsack, double &sStar, CoinPackedVector &contVariablesInS) const |
bool | cMirSeparation (const OsiSolverInterface &si, const CoinPackedMatrix &matrixByRow, const CoinPackedVector &rowAggregated, const int *listRowsAggregated, const char *sense, const double *RHS, const double *coefByRow, const int *colInds, const int *rowStarts, const int *rowLengths, const double *xlp, const double sStar, const double *colUpperBound, const double *colLowerBound, const CoinPackedVector &mixedKnapsack, const double &rhsMixedKnapsack, const CoinPackedVector &contVariablesInS, OsiRowCut &flowCut) const |
void | cMirInequality (const int numInt, const double delta, const double numeratorBeta, const int *knapsackIndices, const double *knapsackElements, const double *xlp, const double sStar, const double *colUpperBound, const std::set< int > &setC, CoinPackedVector &cMIR, double &rhscMIR, double &sCoef, double &violation) const |
double | functionG (const double d, const double f) const |
void | printStats (std::ofstream &fout, const bool hasCut, const OsiSolverInterface &si, const CoinPackedVector &rowAggregated, const double &rhsAggregated, const double *xlp, const double *xlpExtra, const int *listRowsAggregated, const int *listColsSelected, const int level, const double *colUpperBound, const double *colLowerBound) const |
Private Attributes | |
int | MAXAGGR_ |
bool | MULTIPLY_ |
int | CRITERION_ |
double | EPSILON_ |
int | UNDEFINED_ |
There is no variable upper bound or variable lower bound defined. | |
double | TOLERANCE_ |
int | numRows_ |
int | numCols_ |
bool | doneInitPre_ |
CglMixIntRoundVUB * | vubs_ |
CglMixIntRoundVLB * | vlbs_ |
RowType * | rowTypes_ |
int * | indRows_ |
int | numRowMix_ |
int * | indRowMix_ |
int | numRowCont_ |
int * | indRowCont_ |
int | numRowInt_ |
int * | indRowInt_ |
int | numRowContVB_ |
int * | indRowContVB_ |
char * | sense_ |
double * | RHS_ |
Friends | |
void | CglMixedIntegerRoundingUnitTest (const OsiSolverInterface *siP, const std::string mpdDir) |
Definition at line 86 of file CglMixedIntegerRounding.hpp.
|
Definition at line 95 of file CglMixedIntegerRounding.hpp. |
|
Default constructor.
|
|
Alternate Constructor.
|
|
Copy constructor.
|
|
Destructor.
|
|
Generate Mixed Integer Rounding cuts for the model data contained in si. The generated cuts are inserted in the collection of cuts cs. Implements CglCutGenerator. |
|
Clone.
Implements CglCutGenerator. |
|
Assignment operator.
|
|
This can be used to refresh any inforamtion.
Reimplemented from CglCutGenerator. |
|
Create C++ lines to get to current state.
Reimplemented from CglCutGenerator. |
|
Set MAXAGGR_.
Definition at line 169 of file CglMixedIntegerRounding.hpp. References MAXAGGR_. |
|
Get MAXAGGR_.
Definition at line 180 of file CglMixedIntegerRounding.hpp. |
|
Set MULTIPLY_.
Definition at line 183 of file CglMixedIntegerRounding.hpp. References MULTIPLY_. |
|
Get MULTIPLY_.
Definition at line 186 of file CglMixedIntegerRounding.hpp. |
|
Set CRITERION_.
Definition at line 189 of file CglMixedIntegerRounding.hpp. References CRITERION_. |
|
Get CRITERION_.
Definition at line 200 of file CglMixedIntegerRounding.hpp. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 353 of file CglMixedIntegerRounding.hpp. Referenced by setMAXAGGR_(). |
|
Definition at line 355 of file CglMixedIntegerRounding.hpp. Referenced by setMULTIPLY_(). |
|
Definition at line 357 of file CglMixedIntegerRounding.hpp. Referenced by setCRITERION_(). |
|
Definition at line 359 of file CglMixedIntegerRounding.hpp. |
|
There is no variable upper bound or variable lower bound defined.
Definition at line 361 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 363 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 365 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 367 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 369 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 371 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 373 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 375 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 377 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 379 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 381 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 383 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 385 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 387 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 389 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 392 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 395 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 397 of file CglMixedIntegerRounding.hpp. |
|
Definition at line 399 of file CglMixedIntegerRounding.hpp. |