10 #ifndef CglRedSplit2Param_H
11 #define CglRedSplit2Param_H
176 virtual void setAway(
double value);
343 double eps_coeff = 1e-11,
344 double eps_elim = 0.0,
345 double eps_relax_abs = 1e-11,
346 double eps_relax_rel = 1e-13,
347 double max_dyn = 1e6,
348 double min_viol = 1e-3,
349 int max_supp_abs = 1000,
350 double max_supp_rel = 0.1,
351 int use_int_slacks = 0,
352 double norm_zero = 1e-5,
353 double minNormReduction = 0.1,
354 int maxSumMultipliers = 10,
355 double normalization = 0.0001,
357 double timeLimit = 60,
358 int maxNumCuts = 10000,
359 int maxNumComputedCuts = 10000,
360 int maxNonzeroesTab = 1000,
361 double columnScalingBoundLAP = 5.0,
369 bool use_default_strategies =
true,
370 double eps_elim = 0.0,
371 double eps_relax_abs = 1e-11,
372 double eps_relax_rel = 1e-13,
373 double max_dyn = 1e6,
374 double min_viol = 1e-3,
375 double max_supp_rel = 0.1,
376 int use_int_slacks = 0,
377 double norm_zero = 1e-5,
378 double minNormReduction = 0.1,
379 int maxSumMultipliers = 10,
380 double normalization = 0.0001,
382 double timeLimit = 60,
383 int maxNumCuts = 10000,
384 int maxNumComputedCuts = 10000,
385 int maxNonzeroesTab = 1000,
386 double columnScalingBoundLAP = 5.0,
virtual void setAway(double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
double MAX_SUPP_REL
Maximum support - relative part of the formula.
double getEPS_RELAX_REL() const
Get value of EPS_RELAX_REL.
std::vector< ColumnSelectionStrategy > columnSelectionStrategy_
Column selection method.
ColumnScalingStrategy getColumnScalingStrategyLAP() const
get the value
RowSelectionStrategy
Enumerations for parameters.
double normIsZero_
Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
CglRedSplit2Param(bool use_default_strategies=true, double eps=1e-12, double eps_coeff=1e-11, double eps_elim=0.0, double eps_relax_abs=1e-11, double eps_relax_rel=1e-13, double max_dyn=1e6, double min_viol=1e-3, int max_supp_abs=1000, double max_supp_rel=0.1, int use_int_slacks=0, double norm_zero=1e-5, double minNormReduction=0.1, int maxSumMultipliers=10, double normalization=0.0001, double away=0.005, double timeLimit=60, int maxNumCuts=10000, int maxNumComputedCuts=10000, int maxNonzeroesTab=1000, double columnScalingBoundLAP=5.0, int skipGomory=1)
Default constructor.
int maxNumComputedCuts_
Maximum number of computed cuts.
void resetNumRowsReductionLAP()
reset
double away_
Use row only if pivot variable should be integer but is more than away_ from being integer...
std::vector< int > numRowsReduction_
Maximum number of rows to use for the reduction of a given row.
double columnScalingBoundLAP_
Minimum value for column scaling (Lift & Project only)
double getMAX_SUPP_REL() const
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
virtual void setColumnScalingStrategyLAP(ColumnScalingStrategy value)
Set the value for columnScalingStrategyLAP, which sets the way nonbasic columns that are basic in the...
virtual void setSkipGomory(int value)
Set the value of skipGomory: should we skip simple Gomory cuts, i.e.
double EPS_RELAX_REL
For a generated cut with right hand side rhs_val, EPS_RELAX_EPS * fabs(rhs_val) is used to relax the ...
int getMaxNumCuts() const
get the value
int USE_INTSLACKS
Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
virtual void setNormalization(double value)
Set the value of normalization; Default: 0.0001.
ColumnScalingStrategy columnScalingStrategyLAP_
Column scaling strategy for the nonbasics columns that were basic in the point that we want to cut of...
double getTimeLimit() const
get the value
int maxNumCuts_
Maximum number of returned cuts.
void resetNumRowsReduction()
reset
double normalization_
Normalization factor for the norm of lambda in the quadratic minimization problem that is solved duri...
void resetRowSelectionStrategyLAP()
reset
virtual void setMAX_SUPPORT(const int max_s)
Set MAX_SUPPORT.
ColumnScalingStrategy
Scaling strategies for new nonbasic columns for Lift & Project; "factor" is the value of columnScalin...
virtual void addNumRowsReduction(int value)
Set the value of numRowsReduction, max number of rows that are used for each row reduction step...
virtual void addColumnSelectionStrategyLAP(ColumnSelectionStrategy value)
Add the value of columnSelectionStrategyLAP.
virtual void setMaxNumComputedCuts(int value)
Set the value for the maximum number of cuts that can be computed.
std::vector< ColumnSelectionStrategy > getColumnSelectionStrategyLAP() const
get the value
virtual void setNormIsZero(double value)
Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5...
double getEPS_ELIM() const
Get the value of EPS_ELIM.
virtual void setMaxNumCuts(int value)
Set the value for the maximum number of cuts that can be returned.
virtual void setMINVIOL(double value)
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut...
virtual void setColumnScalingBoundLAP(double value)
Set the value for the bound in the column scaling factor.
virtual void setMAXDYN(double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
double EPS_ELIM
Epsilon for value of coefficients when eliminating slack variables.
Class collecting parameters for all cut generators.
int getMaxNumComputedCuts() const
get the value
void setMAX_SUPP_ABS(int value)
Maximum absolute support of the cutting planes.
double getMAXDYN() const
Get the value of MAXDYN.
double minNormReduction_
Minimum reduction to accept a new row.
void setMAX_SUPP_REL(double value)
Maximum relative support of the cutting planes.
std::vector< RowSelectionStrategy > rowSelectionStrategyLAP_
Row selection method for Lift & Project.
double getAway() const
Get value of away.
int maxNonzeroesTab_
Maximum number of nonzeroes in tableau row for reduction.
void resetColumnSelectionStrategy()
reset
int MAX_SUPPORT
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX.
virtual void setEPS_RELAX_ABS(double eps_ra)
Set EPS_RELAX_ABS.
int getMAX_SUPP_ABS() const
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
virtual void setMinNormReduction(double value)
Set the value of minNormReduction; Default: 0.1.
virtual CglRedSplit2Param & operator=(const CglRedSplit2Param &rhs)
Assignment operator.
virtual void setMaxSumMultipliers(int value)
Set the value of maxSumMultipliers; Default: 10.
double timeLimit_
Time limit.
double MAXDYN
Epsilon for value of coefficients when eliminating slack variables.
std::vector< RowSelectionStrategy > getRowSelectionStrategyLAP() const
get the value
virtual void setUSE_INTSLACKS(int value)
Set the value of USE_INTSLACKS.
double getEPS_RELAX_ABS() const
Get value of EPS_RELAX_ABS.
virtual void addRowSelectionStrategy(RowSelectionStrategy value)
Set the value for rowSelectionStrategy, which changes the way we choose the rows for the reduction st...
ColumnSelectionStrategy
Column selection strategies; again, look them up in the paper.
Class collecting parameters the Reduced-and-split cut generator.
virtual void setTimeLimit(double value)
Set the value of the time limit for cut generation (in seconds)
double MINVIOL
Minimum violation for the current basic solution in a generated cut.
int getMaxNonzeroesTab() const
get the value
double getNormIsZero() const
Get the value of normIsZero.
double getMINVIOL() const
Get the value of MINVIOL.
double EPS_RELAX_ABS
Value added to the right hand side of each generated cut to relax it.
int getMaxSumMultipliers() const
Get the value of maxSumMultipliers.
double getColumnScalingBoundLAP() const
get the value
double getMinNormReduction() const
Get the value of normIsZero.
virtual void addRowSelectionStrategyLAP(RowSelectionStrategy value)
Set the value for rowSelectionStrategyLAP, which changes the way we choose the rows for the reduction...
int skipGomory_
Skip simple Gomory cuts.
virtual void setMaxNonzeroesTab(int value)
Set the value for the maximum number of nonzeroes in a row of the simplex tableau for the row to be c...
std::vector< int > numRowsReductionLAP_
Maximum number of rows to use for the reduction during Lift & Project.
virtual void addNumRowsReductionLAP(int value)
Set the value of numRowsReductionLAP, max number of rows that are used for each row reduction step du...
virtual CglRedSplit2Param * clone() const
Clone.
virtual void setEPS_RELAX_REL(double eps_rr)
Set EPS_RELAX_REL.
std::vector< RowSelectionStrategy > rowSelectionStrategy_
Row selection method.
std::vector< ColumnSelectionStrategy > columnSelectionStrategyLAP_
Column selection method for Lift & Project.
int maxSumMultipliers_
Maximum sum of the vector of row multipliers to generate a cut.
virtual void addColumnSelectionStrategy(ColumnSelectionStrategy value)
Add the value of columnSelectionStrategy.
void resetColumnSelectionStrategyLAP()
reset
void resetRowSelectionStrategy()
reset
int getUSE_INTSLACKS() const
Get the value of USE_INTSLACKS.
int getSkipGomory() const
get the value
std::vector< int > getNumRowsReductionLAP() const
get the value
std::vector< RowSelectionStrategy > getRowSelectionStrategy() const
get the value
std::vector< ColumnSelectionStrategy > getColumnSelectionStrategy() const
get the value
virtual ~CglRedSplit2Param()
Destructor.
void setEPS_ELIM(double value)
Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Defau...
std::vector< int > getNumRowsReduction() const
get the value
double getNormalization() const
Get the value of normalization.