Loading...
Searching...
No Matches
CglRedSplit2Param Class Reference

Class collecting parameters the Reduced-and-split cut generator. More...

`#include <CglRedSplit2Param.hpp>`

Inheritance diagram for CglRedSplit2Param:
[legend]
Collaboration diagram for CglRedSplit2Param:
[legend]

## Public Types

enum | RowSelectionStrategy { RS1 , RS2 , RS3 , RS4 , RS5 , RS6 , RS7 , RS8 , RS_ALL , RS_BEST }
| Enumerations for parameters. More...
enum | ColumnSelectionStrategy { CS1 , CS2 , CS3 , CS4 , CS5 , CS6 , CS7 , CS8 , CS9 , CS10 , CS11 , CS12 , CS13 , CS14 , CS15 , CS16 , CS17 , CS18 , CS19 , CS20 , CS21 , CS_ALL , CS_BEST , CS_ALLCONT , CS_LAP_NONBASICS }
| Column selection strategies; again, look them up in the paper. More...
enum | ColumnScalingStrategy { SC_NONE , SC_LINEAR , SC_LINEAR_BOUNDED , SC_LOG_BOUNDED , SC_UNIFORM , SC_UNIFORM_NZ }
| Scaling strategies for new nonbasic columns for Lift & Project; "factor" is the value of columnScalingBoundLAP_. More...

## Public Member Functions

Set/get methods
virtual void | setAway (double value)
| Set away, the minimum distance from being integer used for selecting rows for cut generation; all rows whose pivot variable should be integer but is more than away from integrality will be selected; Default: 0.005.
double | getAway () const
| Get value of away.
void | setEPS_ELIM (double value)
| Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Default: 0.0.
double | getEPS_ELIM () const
| Get the value of EPS_ELIM.
virtual void | setEPS_RELAX_ABS (double eps_ra)
| Set EPS_RELAX_ABS.
double | getEPS_RELAX_ABS () const
| Get value of EPS_RELAX_ABS.
virtual void | setEPS_RELAX_REL (double eps_rr)
| Set EPS_RELAX_REL.
double | getEPS_RELAX_REL () const
| Get value of EPS_RELAX_REL.
virtual void | setMAXDYN (double value)
double | getMAXDYN () const
| Get the value of MAXDYN.
virtual void | setMINVIOL (double value)
| Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut.
double | getMINVIOL () const
| Get the value of MINVIOL.
void | setMAX_SUPP_ABS (int value)
| Maximum absolute support of the cutting planes.
int | getMAX_SUPP_ABS () const
void | setMAX_SUPP_REL (double value)
| Maximum relative support of the cutting planes.
double | getMAX_SUPP_REL () const
virtual void | setUSE_INTSLACKS (int value)
| Set the value of USE_INTSLACKS.
int | getUSE_INTSLACKS () const
| Get the value of USE_INTSLACKS.
virtual void | setNormIsZero (double value)
| Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5.
double | getNormIsZero () const
| Get the value of normIsZero.
virtual void | setMinNormReduction (double value)
| Set the value of minNormReduction; Default: 0.1.
double | getMinNormReduction () const
| Get the value of normIsZero.
virtual void | setMaxSumMultipliers (int value)
| Set the value of maxSumMultipliers; Default: 10.
int | getMaxSumMultipliers () const
| Get the value of maxSumMultipliers.
virtual void | setNormalization (double value)
| Set the value of normalization; Default: 0.0001.
double | getNormalization () const
| Get the value of normalization.
virtual void | addNumRowsReduction (int value)
| Set the value of numRowsReduction, max number of rows that are used for each row reduction step.
std::vector< int > | getNumRowsReduction () const
| get the value
void | resetNumRowsReduction ()
| reset
virtual void | addColumnSelectionStrategy (ColumnSelectionStrategy value)
| Add the value of columnSelectionStrategy.
std::vector< ColumnSelectionStrategy > | getColumnSelectionStrategy () const
| get the value
void | resetColumnSelectionStrategy ()
| reset
virtual void | addRowSelectionStrategy (RowSelectionStrategy value)
| Set the value for rowSelectionStrategy, which changes the way we choose the rows for the reduction step.
std::vector< RowSelectionStrategy > | getRowSelectionStrategy () const
| get the value
void | resetRowSelectionStrategy ()
| reset
virtual void | addNumRowsReductionLAP (int value)
| Set the value of numRowsReductionLAP, max number of rows that are used for each row reduction step during Lift & Project.
std::vector< int > | getNumRowsReductionLAP () const
| get the value
void | resetNumRowsReductionLAP ()
| reset
virtual void | addColumnSelectionStrategyLAP (ColumnSelectionStrategy value)
| Add the value of columnSelectionStrategyLAP.
std::vector< ColumnSelectionStrategy > | getColumnSelectionStrategyLAP () const
| get the value
void | resetColumnSelectionStrategyLAP ()
| reset
virtual void | addRowSelectionStrategyLAP (RowSelectionStrategy value)
| Set the value for rowSelectionStrategyLAP, which changes the way we choose the rows for the reduction step.
std::vector< RowSelectionStrategy > | getRowSelectionStrategyLAP () const
| get the value
void | resetRowSelectionStrategyLAP ()
| reset
virtual void | setColumnScalingStrategyLAP (ColumnScalingStrategy value)
| Set the value for columnScalingStrategyLAP, which sets the way nonbasic columns that are basic in the fractional point to cut off are scaled.
ColumnScalingStrategy | getColumnScalingStrategyLAP () const
| get the value
virtual void | setColumnScalingBoundLAP (double value)
| Set the value for the bound in the column scaling factor.
double | getColumnScalingBoundLAP () const
| get the value
virtual void | setTimeLimit (double value)
| Set the value of the time limit for cut generation (in seconds).
double | getTimeLimit () const
| get the value
virtual void | setMaxNumCuts (int value)
| Set the value for the maximum number of cuts that can be returned.
int | getMaxNumCuts () const
| get the value
virtual void | setMaxNumComputedCuts (int value)
| Set the value for the maximum number of cuts that can be computed.
int | getMaxNumComputedCuts () const
| get the value
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 considered.
int | getMaxNonzeroesTab () const
| get the value
virtual void | setSkipGomory (int value)
| Set the value of skipGomory: should we skip simple Gomory cuts, i.e.
int | getSkipGomory () const
| get the value
Constructors and destructors

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.

CglRedSplit2Param (const CglParam &source, bool use_default_strategies=true, 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, 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)

| Constructor from CglParam.
| CglRedSplit2Param (const CglRedSplit2Param &source)
| Copy constructor.
virtual CglRedSplit2Param * | clone () const
| Clone.
virtual CglRedSplit2Param & | operator= (const CglRedSplit2Param &rhs)
| Assignment operator.
virtual | ~CglRedSplit2Param ()
| Destructor.
Public Member Functions inherited from CglParam
virtual void | setINFINIT (const double inf)
| Set INFINIT.
double | getINFINIT () const
| Get value of INFINIT.
virtual void | setEPS (const double eps)
| Set EPS.
double | getEPS () const
| Get value of EPS.
virtual void | setEPS_COEFF (const double eps_c)
| Set EPS_COEFF.
double | getEPS_COEFF () const
| Get value of EPS_COEFF.
virtual void | setMAX_SUPPORT (const int max_s)
| Set MAX_SUPPORT.
int | getMAX_SUPPORT () const
| Get value of MAX_SUPPORT.
| CglParam (const double inf=COIN_DBL_MAX, const double eps=1e-6, const double eps_c=1e-5, const int max_s=COIN_INT_MAX)
| Default constructor.
| CglParam (const CglParam &)
| Copy constructor.
CglParam & | operator= (const CglParam &rhs)
| Assignment operator.
virtual | ~CglParam ()
| Destructor.

## Protected Attributes

Parameters
double | EPS_ELIM
| Epsilon for value of coefficients when eliminating slack variables.
double | EPS_RELAX_ABS
| Value added to the right hand side of each generated cut to relax it.
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 constraint.
double | MAXDYN
double | MINVIOL
| Minimum violation for the current basic solution in a generated cut.
double | MAX_SUPP_REL
| Maximum support - relative part of the formula.
int | USE_INTSLACKS
| Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
double | normIsZero_
| Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
double | minNormReduction_
| Minimum reduction to accept a new row.
int | maxSumMultipliers_
| Maximum sum of the vector of row multipliers to generate a cut.
double | normalization_
| Normalization factor for the norm of lambda in the quadratic minimization problem that is solved during the coefficient reduction step.
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.
std::vector< ColumnSelectionStrategy > | columnSelectionStrategy_
| Column selection method.
std::vector< RowSelectionStrategy > | rowSelectionStrategy_
| Row selection method.
std::vector< int > | numRowsReductionLAP_
| Maximum number of rows to use for the reduction during Lift & Project.
std::vector< ColumnSelectionStrategy > | columnSelectionStrategyLAP_
| Column selection method for Lift & Project.
std::vector< RowSelectionStrategy > | rowSelectionStrategyLAP_
| Row selection method for Lift & Project.
ColumnScalingStrategy | columnScalingStrategyLAP_
| Column scaling strategy for the nonbasics columns that were basic in the point that we want to cut off (Lift & Project only).
double | columnScalingBoundLAP_
| Minimum value for column scaling (Lift & Project only).
double | timeLimit_
| Time limit.
int | maxNumCuts_
| Maximum number of returned cuts.
int | maxNumComputedCuts_
| Maximum number of computed cuts.
int | maxNonzeroesTab_
| Maximum number of nonzeroes in tableau row for reduction.
int | skipGomory_
| Skip simple Gomory cuts.
Protected Attributes inherited from CglParam
double | INFINIT
double | EPS
double | EPS_COEFF
int | MAX_SUPPORT
| Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX.

## Detailed Description

Class collecting parameters the Reduced-and-split cut generator.

An important thing to note is that the cut generator allows for the selection of a number of strategies that can be combined together. By default, a selection that typically yields a good compromise between speed and cut strenght is made. The selection can be changed by resetting the default choices (see the functions whose name starts with "reset") or by setting the parameter use_default_strategies to false in the constructors. After this, the chosen strategies can be added to the list by using the functions whose name starts with "add". All strategies will be combined together: if we choose 3 row selection strategies, 2 column selection strategies, and 2 possible numbers of rows, we end up with a total of 3*2*2 combinations.

For a detailed explanation of the parameters and their meaning, see the paper by Cornuejols and Nannicini: "Practical strategies for generating rank-1 split cuts in mixed-integer linear programming", on Mathematical Programming Computation.

Parameters of the generator are listed below.

- MAXDYN: Maximum ratio between largest and smallest non zero coefficients in a cut. See method setMAXDYN().
- EPS_ELIM: Precision for deciding if a coefficient is zero when eliminating slack variables. See method setEPS_ELIM().
- MINVIOL: Minimum violation for the current basic solution in a generated cut. See method setMINVIOL().
- EPS_RELAX_ABS: Absolute relaxation of cut rhs.
- EPS_RELAX_REL: Relative relaxation of cut rhs.
- MAX_SUPP_ABS: Maximum cut support (absolute).
- MAX_SUPP_REL: Maximum cut support (relative): the formula to compute maximum cut support is MAX_SUPP_ABS + ncol*MAX_SUPP_REL.
- USE_INTSLACKS: Use integer slacks to generate cuts. (not implemented). See method setUSE_INTSLACKS().
- normIsZero: Norm of a vector is considered zero if smaller than this value. See method setNormIsZero().
- minNormReduction: a cut is generated if the new norm of the row on the continuous nonbasics is reduced by at least this factor (relative reduction).
- away: Look only at basic integer variables whose current value is at least this value from being integer. See method setAway().
- maxSumMultipliers: maximum sum (in absolute value) of row multipliers
- normalization: normalization factor for the norm of lambda in the coefficient reduction algorithm (convex min problem)
- numRowsReduction: Maximum number of rows in the linear system for norm reduction.
- columnSelectionStrategy: parameter to select which columns should be used for coefficient reduction.
- rowSelectionStrategy: parameter to select which rows should be used for coefficient reduction.
- timeLimit: Time limit (in seconds) for cut generation.
- maxNumCuts: Maximum number of cuts that can be returned at each pass; we could generate more cuts than this number (see below)
- maxNumComputedCuts: Maximum number of cuts that can be computed by the generator at each pass
- maxNonzeroesTab : Rows of the simplex tableau with more than this number of nonzeroes will not be considered for reduction. Only works if RS_FAST_* are defined in CglRedSplit2.
- skipGomory: Skip traditional Gomory cuts, i.e. GMI cuts arising from a single row of the tableau (instead of a combination). Default is 1 (true), because we assume that they are generated by a traditional Gomory generator anyway.

Definition at line 88 of file CglRedSplit2Param.hpp.

## Member Enumeration Documentation

## RowSelectionStrategy

enum CglRedSplit2Param::RowSelectionStrategy

Enumerations for parameters.

Row selection strategies; same names as in the paper

Enumerator
RS1 |
RS2 |
RS3 |
RS4 |
RS5 |
RS6 |
RS7 |
RS8 |
RS_ALL |
RS_BEST |

Definition at line 94 of file CglRedSplit2Param.hpp.

## ColumnSelectionStrategy

enum CglRedSplit2Param::ColumnSelectionStrategy

Column selection strategies; again, look them up in the paper.

Enumerator
CS1 |
CS2 |
CS3 |
CS4 |
CS5 |
CS6 |
CS7 |
CS8 |
CS9 |
CS10 |
CS11 |
CS12 |
CS13 |
CS14 |
CS15 |
CS16 |
CS17 |
CS18 |
CS19 |
CS20 |
CS21 |
CS_ALL |
CS_BEST |
CS_ALLCONT |
CS_LAP_NONBASICS |

Definition at line 122 of file CglRedSplit2Param.hpp.

## ColumnScalingStrategy

enum CglRedSplit2Param::ColumnScalingStrategy

Scaling strategies for new nonbasic columns for Lift & Project; "factor" is the value of columnScalingBoundLAP_.

Enumerator
SC_NONE |
SC_LINEAR |
SC_LINEAR_BOUNDED |
SC_LOG_BOUNDED |
SC_UNIFORM |
SC_UNIFORM_NZ |

Definition at line 154 of file CglRedSplit2Param.hpp.

## Constructor & Destructor Documentation

## CglRedSplit2Param() [1/3]

CglRedSplit2Param::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.

If use_default_strategies is true, we add to the list of strategies the default ones. If is false, the list of strategies is left empty (must be populated before usage!).

## CglRedSplit2Param() [2/3]

CglRedSplit2Param::CglRedSplit2Param | ( | const CglParam & | source,
|  | bool | use_default_strategies = true,
|  | 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,
|  | 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 )

Constructor from CglParam.

If use_default_strategies is true, we add to the list of strategies the default ones. If is false, the list of strategies is left empty (must be populated before usage!).

## CglRedSplit2Param() [3/3]

CglRedSplit2Param::CglRedSplit2Param | ( | const CglRedSplit2Param & | source | ) |

Copy constructor.

## ~CglRedSplit2Param()

virtual CglRedSplit2Param::~CglRedSplit2Param | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## setAway()

virtual void CglRedSplit2Param::setAway | ( | double | value | ) |

virtual

Set away, the minimum distance from being integer used for selecting rows for cut generation; all rows whose pivot variable should be integer but is more than away from integrality will be selected; Default: 0.005.

## getAway()

double CglRedSplit2Param::getAway | ( |  | ) | const

inline

Get value of away.

Definition at line 178 of file CglRedSplit2Param.hpp.

## setEPS_ELIM()

void CglRedSplit2Param::setEPS_ELIM | ( | double | value | ) |

Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Default: 0.0.

## getEPS_ELIM()

double CglRedSplit2Param::getEPS_ELIM | ( |  | ) | const

inline

Get the value of EPS_ELIM.

Definition at line 185 of file CglRedSplit2Param.hpp.

## setEPS_RELAX_ABS()

virtual void CglRedSplit2Param::setEPS_RELAX_ABS | ( | double | eps_ra | ) |

virtual

Set EPS_RELAX_ABS.

## getEPS_RELAX_ABS()

double CglRedSplit2Param::getEPS_RELAX_ABS | ( |  | ) | const

inline

Get value of EPS_RELAX_ABS.

Definition at line 190 of file CglRedSplit2Param.hpp.

## setEPS_RELAX_REL()

virtual void CglRedSplit2Param::setEPS_RELAX_REL | ( | double | eps_rr | ) |

virtual

Set EPS_RELAX_REL.

## getEPS_RELAX_REL()

double CglRedSplit2Param::getEPS_RELAX_REL | ( |  | ) | const

inline

Get value of EPS_RELAX_REL.

Definition at line 195 of file CglRedSplit2Param.hpp.

## setMAXDYN()

virtual void CglRedSplit2Param::setMAXDYN | ( | double | value | ) |

virtual

## getMAXDYN()

double CglRedSplit2Param::getMAXDYN | ( |  | ) | const

inline

Get the value of MAXDYN.

Definition at line 201 of file CglRedSplit2Param.hpp.

## setMINVIOL()

virtual void CglRedSplit2Param::setMINVIOL | ( | double | value | ) |

virtual

Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut.

Default: 1e-3

## getMINVIOL()

double CglRedSplit2Param::getMINVIOL | ( |  | ) | const

inline

Get the value of MINVIOL.

Definition at line 207 of file CglRedSplit2Param.hpp.

## setMAX_SUPP_ABS()

void CglRedSplit2Param::setMAX_SUPP_ABS | ( | int | value | ) |

inline

Maximum absolute support of the cutting planes.

Default: INT_MAX. Aliases for consistency with our naming scheme.

Definition at line 211 of file CglRedSplit2Param.hpp.

## getMAX_SUPP_ABS()

int CglRedSplit2Param::getMAX_SUPP_ABS | ( |  | ) | const

inline

Definition at line 212 of file CglRedSplit2Param.hpp.

## setMAX_SUPP_REL()

void CglRedSplit2Param::setMAX_SUPP_REL | ( | double | value | ) |

inline

Maximum relative support of the cutting planes.

Default: 0.0. The maximum support is MAX_SUPP_ABS + MAX_SUPPREL*ncols.

## getMAX_SUPP_REL()

double CglRedSplit2Param::getMAX_SUPP_REL | ( |  | ) | const

inline

Definition at line 217 of file CglRedSplit2Param.hpp.

## setUSE_INTSLACKS()

virtual void CglRedSplit2Param::setUSE_INTSLACKS | ( | int | value | ) |

virtual

Set the value of USE_INTSLACKS.

Default: 0

## getUSE_INTSLACKS()

int CglRedSplit2Param::getUSE_INTSLACKS | ( |  | ) | const

inline

Get the value of USE_INTSLACKS.

Definition at line 222 of file CglRedSplit2Param.hpp.

## setNormIsZero()

virtual void CglRedSplit2Param::setNormIsZero | ( | double | value | ) |

virtual

Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5.

## getNormIsZero()

double CglRedSplit2Param::getNormIsZero | ( |  | ) | const

inline

Get the value of normIsZero.

Definition at line 228 of file CglRedSplit2Param.hpp.

## setMinNormReduction()

virtual void CglRedSplit2Param::setMinNormReduction | ( | double | value | ) |

virtual

Set the value of minNormReduction; Default: 0.1.

## getMinNormReduction()

double CglRedSplit2Param::getMinNormReduction | ( |  | ) | const

inline

Get the value of normIsZero.

Definition at line 233 of file CglRedSplit2Param.hpp.

## setMaxSumMultipliers()

virtual void CglRedSplit2Param::setMaxSumMultipliers | ( | int | value | ) |

virtual

Set the value of maxSumMultipliers; Default: 10.

## getMaxSumMultipliers()

int CglRedSplit2Param::getMaxSumMultipliers | ( |  | ) | const

inline

Get the value of maxSumMultipliers.

Definition at line 238 of file CglRedSplit2Param.hpp.

## setNormalization()

virtual void CglRedSplit2Param::setNormalization | ( | double | value | ) |

virtual

Set the value of normalization; Default: 0.0001.

## getNormalization()

double CglRedSplit2Param::getNormalization | ( |  | ) | const

inline

Get the value of normalization.

Definition at line 243 of file CglRedSplit2Param.hpp.

## addNumRowsReduction()

virtual void CglRedSplit2Param::addNumRowsReduction | ( | int | value | ) |

virtual

Set the value of numRowsReduction, max number of rows that are used for each row reduction step.

In particular, the linear system will involve a numRowsReduction*numRowsReduction matrix

## getNumRowsReduction()

std::vector< int > CglRedSplit2Param::getNumRowsReduction | ( |  | ) | const

inline

get the value

Definition at line 250 of file CglRedSplit2Param.hpp.

## resetNumRowsReduction()

void CglRedSplit2Param::resetNumRowsReduction | ( |  | ) |

inline

reset

Definition at line 252 of file CglRedSplit2Param.hpp.

## addColumnSelectionStrategy()

virtual void CglRedSplit2Param::addColumnSelectionStrategy | ( | ColumnSelectionStrategy | value | ) |

virtual

Add the value of columnSelectionStrategy.

## getColumnSelectionStrategy()

std::vector< ColumnSelectionStrategy > CglRedSplit2Param::getColumnSelectionStrategy | ( |  | ) | const

inline

get the value

Definition at line 257 of file CglRedSplit2Param.hpp.

## resetColumnSelectionStrategy()

void CglRedSplit2Param::resetColumnSelectionStrategy | ( |  | ) |

inline

reset

Definition at line 259 of file CglRedSplit2Param.hpp.

## addRowSelectionStrategy()

virtual void CglRedSplit2Param::addRowSelectionStrategy | ( | RowSelectionStrategy | value | ) |

virtual

Set the value for rowSelectionStrategy, which changes the way we choose the rows for the reduction step.

## getRowSelectionStrategy()

std::vector< RowSelectionStrategy > CglRedSplit2Param::getRowSelectionStrategy | ( |  | ) | const

inline

get the value

Definition at line 265 of file CglRedSplit2Param.hpp.

## resetRowSelectionStrategy()

void CglRedSplit2Param::resetRowSelectionStrategy | ( |  | ) |

inline

reset

Definition at line 267 of file CglRedSplit2Param.hpp.

## addNumRowsReductionLAP()

virtual void CglRedSplit2Param::addNumRowsReductionLAP | ( | int | value | ) |

virtual

Set the value of numRowsReductionLAP, max number of rows that are used for each row reduction step during Lift & Project.

In particular, the linear system will involve a numRowsReduction*numRowsReduction matrix

## getNumRowsReductionLAP()

std::vector< int > CglRedSplit2Param::getNumRowsReductionLAP | ( |  | ) | const

inline

get the value

Definition at line 275 of file CglRedSplit2Param.hpp.

## resetNumRowsReductionLAP()

void CglRedSplit2Param::resetNumRowsReductionLAP | ( |  | ) |

inline

reset

Definition at line 277 of file CglRedSplit2Param.hpp.

## addColumnSelectionStrategyLAP()

virtual void CglRedSplit2Param::addColumnSelectionStrategyLAP | ( | ColumnSelectionStrategy | value | ) |

virtual

Add the value of columnSelectionStrategyLAP.

## getColumnSelectionStrategyLAP()

std::vector< ColumnSelectionStrategy > CglRedSplit2Param::getColumnSelectionStrategyLAP | ( |  | ) | const

inline

get the value

Definition at line 282 of file CglRedSplit2Param.hpp.

## resetColumnSelectionStrategyLAP()

void CglRedSplit2Param::resetColumnSelectionStrategyLAP | ( |  | ) |

inline

reset

Definition at line 284 of file CglRedSplit2Param.hpp.

## addRowSelectionStrategyLAP()

virtual void CglRedSplit2Param::addRowSelectionStrategyLAP | ( | RowSelectionStrategy | value | ) |

virtual

Set the value for rowSelectionStrategyLAP, which changes the way we choose the rows for the reduction step.

## getRowSelectionStrategyLAP()

std::vector< RowSelectionStrategy > CglRedSplit2Param::getRowSelectionStrategyLAP | ( |  | ) | const

inline

get the value

Definition at line 290 of file CglRedSplit2Param.hpp.

## resetRowSelectionStrategyLAP()

void CglRedSplit2Param::resetRowSelectionStrategyLAP | ( |  | ) |

inline

reset

Definition at line 292 of file CglRedSplit2Param.hpp.

## setColumnScalingStrategyLAP()

virtual void CglRedSplit2Param::setColumnScalingStrategyLAP | ( | ColumnScalingStrategy | value | ) |

virtual

Set the value for columnScalingStrategyLAP, which sets the way nonbasic columns that are basic in the fractional point to cut off are scaled.

## getColumnScalingStrategyLAP()

ColumnScalingStrategy CglRedSplit2Param::getColumnScalingStrategyLAP | ( |  | ) | const

inline

get the value

Definition at line 298 of file CglRedSplit2Param.hpp.

## setColumnScalingBoundLAP()

virtual void CglRedSplit2Param::setColumnScalingBoundLAP | ( | double | value | ) |

virtual

Set the value for the bound in the column scaling factor.

## getColumnScalingBoundLAP()

double CglRedSplit2Param::getColumnScalingBoundLAP | ( |  | ) | const

inline

get the value

Definition at line 303 of file CglRedSplit2Param.hpp.

## setTimeLimit()

virtual void CglRedSplit2Param::setTimeLimit | ( | double | value | ) |

virtual

Set the value of the time limit for cut generation (in seconds).

## getTimeLimit()

double CglRedSplit2Param::getTimeLimit | ( |  | ) | const

inline

get the value

Definition at line 308 of file CglRedSplit2Param.hpp.

## setMaxNumCuts()

virtual void CglRedSplit2Param::setMaxNumCuts | ( | int | value | ) |

virtual

Set the value for the maximum number of cuts that can be returned.

## getMaxNumCuts()

int CglRedSplit2Param::getMaxNumCuts | ( |  | ) | const

inline

get the value

Definition at line 313 of file CglRedSplit2Param.hpp.

## setMaxNumComputedCuts()

virtual void CglRedSplit2Param::setMaxNumComputedCuts | ( | int | value | ) |

virtual

Set the value for the maximum number of cuts that can be computed.

## getMaxNumComputedCuts()

int CglRedSplit2Param::getMaxNumComputedCuts | ( |  | ) | const

inline

get the value

Definition at line 318 of file CglRedSplit2Param.hpp.

## setMaxNonzeroesTab()

virtual void CglRedSplit2Param::setMaxNonzeroesTab | ( | int | value | ) |

virtual

Set the value for the maximum number of nonzeroes in a row of the simplex tableau for the row to be considered.

## getMaxNonzeroesTab()

int CglRedSplit2Param::getMaxNonzeroesTab | ( |  | ) | const

inline

get the value

Definition at line 324 of file CglRedSplit2Param.hpp.

## setSkipGomory()

virtual void CglRedSplit2Param::setSkipGomory | ( | int | value | ) |

virtual

Set the value of skipGomory: should we skip simple Gomory cuts, i.e.

GMI cuts derived from a single row of the simple tableau? This is 1 (true) by default: we only generate cuts from linear combinations of at least two rows.

## getSkipGomory()

int CglRedSplit2Param::getSkipGomory | ( |  | ) | const

inline

get the value

Definition at line 332 of file CglRedSplit2Param.hpp.

## clone()

virtual CglRedSplit2Param * CglRedSplit2Param::clone | ( |  | ) | const

virtual

Clone.

Reimplemented from CglParam.

## operator=()

virtual CglRedSplit2Param & CglRedSplit2Param::operator= | ( | const CglRedSplit2Param & | rhs | ) |

virtual

Assignment operator.

## Member Data Documentation

## EPS_ELIM

double CglRedSplit2Param::EPS_ELIM

protected

Epsilon for value of coefficients when eliminating slack variables.

Default: 0.0.

Definition at line 409 of file CglRedSplit2Param.hpp.

## EPS_RELAX_ABS

double CglRedSplit2Param::EPS_RELAX_ABS

protected

Value added to the right hand side of each generated cut to relax it.

Default: 1e-11

Definition at line 413 of file CglRedSplit2Param.hpp.

## EPS_RELAX_REL

double CglRedSplit2Param::EPS_RELAX_REL

protected

For a generated cut with right hand side rhs_val, EPS_RELAX_EPS * fabs(rhs_val) is used to relax the constraint.

Default: 1e-13

Definition at line 418 of file CglRedSplit2Param.hpp.

## MAXDYN

double CglRedSplit2Param::MAXDYN

protected

Definition at line 422 of file CglRedSplit2Param.hpp.

## MINVIOL

double CglRedSplit2Param::MINVIOL

protected

Minimum violation for the current basic solution in a generated cut.

Default: 1e-3.

Definition at line 426 of file CglRedSplit2Param.hpp.

## MAX_SUPP_REL

double CglRedSplit2Param::MAX_SUPP_REL

protected

Maximum support - relative part of the formula.

Definition at line 429 of file CglRedSplit2Param.hpp.

## USE_INTSLACKS

int CglRedSplit2Param::USE_INTSLACKS

protected

Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.

Definition at line 432 of file CglRedSplit2Param.hpp.

## normIsZero_

double CglRedSplit2Param::normIsZero_

protected

Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.

Definition at line 436 of file CglRedSplit2Param.hpp.

## minNormReduction_

double CglRedSplit2Param::minNormReduction_

protected

Minimum reduction to accept a new row.

Definition at line 439 of file CglRedSplit2Param.hpp.

## maxSumMultipliers_

int CglRedSplit2Param::maxSumMultipliers_

protected

Maximum sum of the vector of row multipliers to generate a cut.

Definition at line 442 of file CglRedSplit2Param.hpp.

## normalization_

double CglRedSplit2Param::normalization_

protected

Normalization factor for the norm of lambda in the quadratic minimization problem that is solved during the coefficient reduction step.

Definition at line 446 of file CglRedSplit2Param.hpp.

## away_

double CglRedSplit2Param::away_

protected

Use row only if pivot variable should be integer but is more than away_ from being integer.

Default: 0.005

Definition at line 450 of file CglRedSplit2Param.hpp.

## numRowsReduction_

std::vector<int> CglRedSplit2Param::numRowsReduction_

protected

Maximum number of rows to use for the reduction of a given row.

Definition at line 453 of file CglRedSplit2Param.hpp.

## columnSelectionStrategy_

std::vector<ColumnSelectionStrategy> CglRedSplit2Param::columnSelectionStrategy_

protected

Column selection method.

Definition at line 456 of file CglRedSplit2Param.hpp.

## rowSelectionStrategy_

std::vector<RowSelectionStrategy> CglRedSplit2Param::rowSelectionStrategy_

protected

Row selection method.

Definition at line 459 of file CglRedSplit2Param.hpp.

## numRowsReductionLAP_

std::vector<int> CglRedSplit2Param::numRowsReductionLAP_

protected

Maximum number of rows to use for the reduction during Lift & Project.

Definition at line 462 of file CglRedSplit2Param.hpp.

## columnSelectionStrategyLAP_

std::vector<ColumnSelectionStrategy> CglRedSplit2Param::columnSelectionStrategyLAP_

protected

Column selection method for Lift & Project.

Definition at line 465 of file CglRedSplit2Param.hpp.

## rowSelectionStrategyLAP_

std::vector<RowSelectionStrategy> CglRedSplit2Param::rowSelectionStrategyLAP_

protected

Row selection method for Lift & Project.

Definition at line 468 of file CglRedSplit2Param.hpp.

## columnScalingStrategyLAP_

ColumnScalingStrategy CglRedSplit2Param::columnScalingStrategyLAP_

protected

Column scaling strategy for the nonbasics columns that were basic in the point that we want to cut off (Lift & Project only).

Definition at line 472 of file CglRedSplit2Param.hpp.

## columnScalingBoundLAP_

double CglRedSplit2Param::columnScalingBoundLAP_

protected

Minimum value for column scaling (Lift & Project only).

Definition at line 475 of file CglRedSplit2Param.hpp.

## timeLimit_

double CglRedSplit2Param::timeLimit_

protected

Time limit.

Definition at line 478 of file CglRedSplit2Param.hpp.

## maxNumCuts_

int CglRedSplit2Param::maxNumCuts_

protected

Maximum number of returned cuts.

Definition at line 481 of file CglRedSplit2Param.hpp.

## maxNumComputedCuts_

int CglRedSplit2Param::maxNumComputedCuts_

protected

Maximum number of computed cuts.

Definition at line 484 of file CglRedSplit2Param.hpp.

## maxNonzeroesTab_

int CglRedSplit2Param::maxNonzeroesTab_

protected

Maximum number of nonzeroes in tableau row for reduction.

Definition at line 487 of file CglRedSplit2Param.hpp.

## skipGomory_

int CglRedSplit2Param::skipGomory_

protected

Skip simple Gomory cuts.

Definition at line 490 of file CglRedSplit2Param.hpp.

The documentation for this class was generated from the following file:

- Cgl/src/CglRedSplit2/CglRedSplit2Param.hpp