19 class CoinWarmStartBasis;
51 friend void CglLandPUnitTest(OsiSolverInterface *si,
const std::string & mpsDir);
192 virtual void generateCuts(
const OsiSolverInterface & si, OsiCuts & cs,
215 handler_->setLogLevel(level);
236 void scanExtraCuts(OsiCuts& cs,
const double * colsol)
const;
243 CachedData(
int nBasics = 0 ,
int nNonBasics = 0);
244 CachedData(
const CachedData & source);
246 CachedData& operator=(
const CachedData &source);
248 void getData(
const OsiSolverInterface &si);
262 CoinWarmStartBasis * basis_;
270 OsiSolverInterface * solver_;
274 int getSortedFractionals(CoinPackedVector &xFrac,
275 const CachedData & data,
279 void getSortedFractionalIndices(std::vector<int>& indices,
280 const CachedData &data,
285 CoinMessageHandler * handler_;
287 CoinMessages messages_;
295 double * originalColLower_;
297 double * originalColUpper_;
Normalization
Normalization.
SeparationSpaces
Space where cuts are optimized.
void setLogLevel(int level)
set level of log for cut generation procedure :
double rhsWeight
Weight to put in RHS of normalization if static.
virtual ~LapMessages()
destructor.
double singleCutTimeLimit
Time limit for generating a single cut.
Class storing parameters.
int failedPivotLimit
Maximum number of failed pivots before aborting.
Information about where the cut generator is invoked from.
SelectionRules pivotSelection
Which rule to apply for choosing entering and leaving variables.
Normalization normalization
How to weight normalization.
virtual bool needsOptimalBasis() const
Return true if needs optimal basis to do cuts.
LAP::Validator & validator()
RhsWeightType
RHS weight in normalization.
int pivotLimit
Max number of pivots before we generate the cut 20.
ExtraCutsMode generateExtraCuts
Generate extra constraints from optimal lift-and-project basis.
Cut Generator Base Class.
LHSnorm lhs_norm
How to weight LHS of normalization.
bool useTableauRow
Do we use tableau row or the disjunction (I don't really get that there should be a way to always use...
Class collecting parameters for all cut generators.
LapMessages()
Constructor.
bool perturb
Apply perturbation procedure.
int degeneratePivotLimit
maximum number of consecutive degenerate pivots 0
Performs one round of Lift & Project using CglLandPSimplex to build cuts.
double timeLimit
Total time limit for cut generation.
bool strengthen
Do we strengthen the final cut (always do if modularize is 1)
void CglLandPUnitTest(OsiSolverInterface *si, const std::string &mpsDir)
int maxCutPerRound
Maximum number of cuts generated at a given round.
RhsWeightType rhsWeightType
How to weight RHS of normalization.
double pivotTol
Tolerance for small pivots values (should be the same as the solver.
bool countMistakenRc
Wether to limit or not the number of mistaken RC (when perturbation is applied).
double away
A variable have to be at least away from integrity to be generated.
bool modularize
Do we apply Egon Balas's Heuristic for modularized cuts.
int pivotLimitInTree
Max number of pivots at regular nodes.
Class to validate or reject a cut.
int extraCutsLimit
Maximum number of extra rows to generate per round.
SeparationSpaces sepSpace
Work in the reduced space (only non-structurals enter the basis)