19 class CoinWarmStartBasis;
46 class CglLandPSimplex;
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 :
Generate all violated Mixed integer Gomory cuts in the course of the optimization.
double rhsWeight
Weight to put in RHS of normalization if static.
friend void CglLandPUnitTest(OsiSolverInterface *si, const std::string &mpsDir)
virtual ~LapMessages()
destructor.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate cuts for the model data contained in si.
double singleCutTimeLimit
Time limit for generating a single cut.
Class storing parameters.
int failedPivotLimit
Maximum number of failed pivots before aborting.
Use fractional space only for computing reduced costs.
Information about where the cut generator is invoked from.
SelectionRules pivotSelection
Which rule to apply for choosing entering and leaving variables.
CglLandP & operator=(const CglLandP &rhs)
Assignment operator.
Normalization normalization
How to weight normalization.
LAP::Validator & validator()
RhsWeightType
RHS weight in normalization.
Select only those rows which had initialy a 0 reduced cost.
CglLandP(const CglLandP::Parameters ¶ms=CglLandP::Parameters(), const LAP::Validator &validator=LAP::Validator())
Constructor for the class.
virtual bool needsOptimalBasis() const
Return true if needs optimal basis to do cuts.
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.
CglCutGenerator * clone() const
Clone function.
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.
select best possible pivot.
int degeneratePivotLimit
maximum number of consecutive degenerate pivots 0
Performs one round of Lift & Project using CglLandPSimplex to build cuts.
2 * current number of constraints.
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)
select most negative reduced cost
int maxCutPerRound
Maximum number of cuts generated at a given round.
Parameters()
Default constructor (with default values)
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.
Generate cuts as soon as a structural enters the basis.
int pivotLimitInTree
Max number of pivots at regular nodes.
Generate cuts from the optimal basis.
Class to validate or reject a cut.
Parameters & operator=(const Parameters &other)
Assignment opertator.
int extraCutsLimit
Maximum number of extra rows to generate per round.
SeparationSpaces sepSpace
Work in the reduced space (only non-structurals enter the basis)