Go to the documentation of this file.
12 #ifndef CglLandPValidator_H
13 #define CglLandPValidator_H
14 #include "OsiSolverInterface.hpp"
43 double maxRatio = 1e8,
44 double minViolation = 0,
49 int cleanCut(OsiRowCut & aCut,
const double * solCut,
const OsiSolverInterface &si,
const CglParam & par,
50 const double * colLower,
const double * colUpper);
52 int cleanCut2(OsiRowCut & aCut,
const double * solCut,
const OsiSolverInterface &si,
const CglParam & par,
53 const double * colLower,
const double * colUpper);
55 int operator()(OsiRowCut & aCut,
const double * solCut,
const OsiSolverInterface &si,
const CglParam & par,
56 const double * colLower,
const double * colUpper)
58 return cleanCut(aCut, solCut, si, par, colLower, colUpper);
double minViolation_
minimum violation for accepting a cut
Class collecting parameters for all cut generators.
double maxRatio_
max ratio between smallest and biggest coefficient
int numRejected(RejectionsReasons code) const
void setRhsScale(double v)
void scale(OsiRowCut &cut)
scale the cut passed as argument
RejectionsReasons
Reasons for rejecting a cut.
int cleanCut(OsiRowCut &aCut, const double *solCut, const OsiSolverInterface &si, const CglParam &par, const double *colLower, const double *colUpper)
Clean an OsiCut.
int operator()(OsiRowCut &aCut, const double *solCut, const OsiSolverInterface &si, const CglParam &par, const double *colLower, const double *colUpper)
Call the cut cleaner.
void setMaxRatio(double value)
double maxFillIn_
max percentage of given formulation fillIn should be accepted for cut fillin.
double rhsScale_
Do we do scaling?
std::vector< int > numRejected_
Number of cut rejected for each of the reasons.
void setMaxFillIn(double value)
@ EmptyCut
After cleaning cut has become empty.
const char * failureString(RejectionsReasons code) const
Validator(double maxFillIn=1., double maxRatio=1e8, double minViolation=0, bool scale=false, double rhsScale=1)
Constructor with default values.
int numRejected(int code) const
void setMinViolation(double value)
@ SmallCoefficient
There is a small coefficient we can not get rid off.
@ SmallViolation
Violation of the cut is too small.
@ BigDynamic
Dynamic of coefficinet is too important.
const char * failureString(int code) const
int cleanCut2(OsiRowCut &aCut, const double *solCut, const OsiSolverInterface &si, const CglParam &par, const double *colLower, const double *colUpper)
Clean an OsiCut by another method.
@ DenseCut
cut is too dense
Class to validate or reject a cut.
static const char * rejections_[DummyEnd]
Strings explaining reason for rejections.
Performs one round of Lift & Project using CglLandPSimplex to build cuts.