# CglRedSplitParam Class Reference

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

`#include <CglRedSplitParam.hpp>`

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

List of all members.

## Public Member Functions
Set/get methods
virtual void | setAway (const 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.05.
double | getAway () const
| Get value of away.
virtual void | setLUB (const double value)
| Set the value of LUB, value considered large for the absolute value of a lower or upper bound on a variable; Default: 1000.
double | getLUB () const
| Get the value of LUB.
void | setEPS_ELIM (const double value)
| Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Default: 1e-12.
double | getEPS_ELIM () const
| Get the value of EPS_ELIM.
virtual void | setEPS_RELAX_ABS (const double eps_ra)
| Set EPS_RELAX_ABS.
double | getEPS_RELAX_ABS () const
| Get value of EPS_RELAX_ABS.
virtual void | setEPS_RELAX_REL (const double eps_rr)
| Set EPS_RELAX_REL.
double | getEPS_RELAX_REL () const
| Get value of EPS_RELAX_REL.
virtual void | setMAXDYN (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.05.
double | getMAXDYN () const
| Get the value of MAXDYN.
virtual void | setMAXDYN_LUB (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.05.
double | getMAXDYN_LUB () const
| Get the value of MAXDYN_LUB.
virtual void | setEPS_COEFF_LUB (const double value)
| Set the value of EPS_COEFF_LUB, epsilon for values of coefficients for variables with absolute value of lower or upper bound larger than LUB; Default: 1e-13.
double | getEPS_COEFF_LUB () const
| Get the value of EPS_COEFF_LUB.
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.
virtual void | setUSE_INTSLACKS (int value)
| Set the value of USE_INTSLACKS.
int | getUSE_INTSLACKS () const
| Get the value of USE_INTSLACKS.
virtual void | setUSE_CG2 (int value)
| Set the value of USE_CG2.
int | getUSE_CG2 () const
| Get the value of USE_CG2.
virtual void | setNormIsZero (const 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 | setMinReduc (const double value)
| Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Default: 0.05.
double | getMinReduc () const
| Get the value of minReduc.
virtual void | setMaxTab (const double value)
| Set the maximum allowed value for (mTab * mTab * CoinMax(mTab, nTab)) where mTab is the number of rows used in the combinations and nTab is the number of continuous non basic variables.
double | getMaxTab () const
| Get the value of maxTab.
Constructors and destructors
| CglRedSplitParam (const double lub=1000.0, const double eps_elim=1e-12, const double eps_relax_abs=1e-8, const double eps_relax_rel=0.0, const double max_dyn=1e8, const double max_dyn_lub=1e13, const double eps_coeff_lub=1e-13, const double min_viol=1e-7, const int use_int_slacks=0, const int use_cg2=0, const double norm_zero=1e-5, const double min_reduc=0.05, const double away=0.05, const double max_tab=1e7)
| Default constructor.
| CglRedSplitParam (const CglParam &source, const double lub=1000.0, const double eps_elim=1e-12, const double eps_relax_abs=1e-8, const double eps_relax_rel=0.0, const double max_dyn=1e8, const double max_dyn_lub=1e13, const double eps_coeff_lub=1e-13, const double min_viol=1e-7, const int use_int_slacks=0, const int use_cg2=0, const double norm_zero=1e-5, const double min_reduc=0.05, const double away=0.05, const double max_tab=1e7)
| Constructor from CglParam.
| CglRedSplitParam (const CglRedSplitParam &source)
| Copy constructor.
virtual CglRedSplitParam * | clone () const
| Clone.
virtual CglRedSplitParam & | operator= (const CglRedSplitParam &rhs)
| Assignment operator.
virtual | ~CglRedSplitParam ()
| Destructor.
## Protected Attributes
Parameters
double | LUB
| Value considered large for the absolute value of lower or upper bound on a variable.
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
| Value considered large for the absolute value of lower or upper bound on a variable.
double | MAXDYN_LUB
| Value considered large for the absolute value of lower or upper bound on a variable.
double | EPS_COEFF_LUB
| Epsilon for value of coefficients for variables with absolute value of lower or upper bound larger than LUB.
double | MINVIOL
| Minimum violation for the current basic solution in a generated cut.
int | USE_INTSLACKS
| Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
int | USE_CG2
| Use second way to generate a mixed integer Gomory cut (see methods generate_cgcut()) and generate_cgcut_2()).
double | normIsZero
| Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
double | minReduc
| Minimum reduction in percent that must be achieved by a potential reduction step in order to be performed; Between 0 and 1, default: 0.05.
double | away_
| Use row only if pivot variable should be integer but is more than away_ from being integer.
double | maxTab_
| Maximum value for (mTab * mTab * CoinMax(mTab, nTab)).

## Detailed Description

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

Parameters of the generator are listed below. Modifying the default values for parameters other than the last four might result in invalid cuts.

- LUB: Value considered large for the absolute value of a lower or upper bound on a variable. See method setLUB().
- MAXDYN: Maximum ratio between largest and smallest non zero coefficients in a cut. See method setMAXDYN().
- MAXDYN_LUB: Maximum ratio between largest and smallest non zero coefficients in a cut involving structural variables with lower or upper bound in absolute value larger than LUB. Should logically be larger or equal to MAXDYN. See method setMAXDYN_LUB().
- EPS_ELIM: Precision for deciding if a coefficient is zero when eliminating slack variables. See method setEPS_ELIM().
- EPS_COEFF_LUB: Precision for deciding if a coefficient of a generated cut is zero when the corresponding variable has a lower or upper bound larger than LUB in absolute value. See method setEPS_COEFF_LUB().
- MINVIOL: Minimum violation for the current basic solution in a generated cut. See method setMINVIOL().
- USE_INTSLACKS: Use integer slacks to generate cuts. (not implemented). See method setUSE_INTSLACKS().
- USE_CG2: Use alternative formula to generate a mixed integer Gomory cut (see methods CglRedSPlit::generate_cgcut() and CglRedSPlit::generate_cgcut_2()). See method setUSE_CG2().
- normIsZero: Norm of a vector is considered zero if smaller than this value. See method setNormIsZero().
- minReduc: Reduction is performed only if the norm of the vector is reduced by this fraction. See method setMinReduc().
- away: Look only at basic integer variables whose current value is at least this value from being integer. See method setAway().
- maxTab: Controls the number of rows selected for the generation. See method setMaxTab().

Definition at line 61 of file CglRedSplitParam.hpp.

## Constructor & Destructor Documentation

CglRedSplitParam::CglRedSplitParam | ( | const double | lub = `1000.0`,
|  | const double | eps_elim = `1e-12`,
|  | const double | eps_relax_abs = `1e-8`,
|  | const double | eps_relax_rel = `0.0`,
|  | const double | max_dyn = `1e8`,
|  | const double | max_dyn_lub = `1e13`,
|  | const double | eps_coeff_lub = `1e-13`,
|  | const double | min_viol = `1e-7`,
|  | const int | use_int_slacks = `0`,
|  | const int | use_cg2 = `0`,
|  | const double | norm_zero = `1e-5`,
|  | const double | min_reduc = `0.05`,
|  | const double | away = `0.05`,
|  | const double | max_tab = `1e7` |
| ) |  |  |

Default constructor.

CglRedSplitParam::CglRedSplitParam | ( | const CglParam & | source,
|  | const double | lub = `1000.0`,
|  | const double | eps_elim = `1e-12`,
|  | const double | eps_relax_abs = `1e-8`,
|  | const double | eps_relax_rel = `0.0`,
|  | const double | max_dyn = `1e8`,
|  | const double | max_dyn_lub = `1e13`,
|  | const double | eps_coeff_lub = `1e-13`,
|  | const double | min_viol = `1e-7`,
|  | const int | use_int_slacks = `0`,
|  | const int | use_cg2 = `0`,
|  | const double | norm_zero = `1e-5`,
|  | const double | min_reduc = `0.05`,
|  | const double | away = `0.05`,
|  | const double | max_tab = `1e7` |
| ) |  |  |

Constructor from CglParam.

CglRedSplitParam::CglRedSplitParam | ( | const CglRedSplitParam & | source | ) |

Copy constructor.

virtual CglRedSplitParam::~CglRedSplitParam | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual void CglRedSplitParam::setAway | ( | const 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.05.

double CglRedSplitParam::getAway | ( |  | ) | const`[inline]`

Get value of away.

Definition at line 73 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setLUB | ( | const double | value | ) | `[virtual]`

Set the value of LUB, value considered large for the absolute value of a lower or upper bound on a variable; Default: 1000.

double CglRedSplitParam::getLUB | ( |  | ) | const`[inline]`

Get the value of LUB.

Definition at line 80 of file CglRedSplitParam.hpp.

void CglRedSplitParam::setEPS_ELIM | ( | const double | value | ) |

Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Default: 1e-12.

double CglRedSplitParam::getEPS_ELIM | ( |  | ) | const`[inline]`

Get the value of EPS_ELIM.

Definition at line 87 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setEPS_RELAX_ABS | ( | const double | eps_ra | ) | `[virtual]`

Set EPS_RELAX_ABS.

double CglRedSplitParam::getEPS_RELAX_ABS | ( |  | ) | const`[inline]`

Get value of EPS_RELAX_ABS.

Definition at line 92 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setEPS_RELAX_REL | ( | const double | eps_rr | ) | `[virtual]`

Set EPS_RELAX_REL.

double CglRedSplitParam::getEPS_RELAX_REL | ( |  | ) | const`[inline]`

Get value of EPS_RELAX_REL.

Definition at line 97 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setMAXDYN | ( | 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.05.

double CglRedSplitParam::getMAXDYN | ( |  | ) | const`[inline]`

Get the value of MAXDYN.

Definition at line 103 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setMAXDYN_LUB | ( | 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.05.

double CglRedSplitParam::getMAXDYN_LUB | ( |  | ) | const`[inline]`

Get the value of MAXDYN_LUB.

Definition at line 111 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setEPS_COEFF_LUB | ( | const double | value | ) | `[virtual]`

Set the value of EPS_COEFF_LUB, epsilon for values of coefficients for variables with absolute value of lower or upper bound larger than LUB; Default: 1e-13.

double CglRedSplitParam::getEPS_COEFF_LUB | ( |  | ) | const`[inline]`

Get the value of EPS_COEFF_LUB.

Definition at line 118 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setMINVIOL | ( | double | value | ) | `[virtual]`

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

Default: 1e-7

double CglRedSplitParam::getMINVIOL | ( |  | ) | const`[inline]`

Get the value of MINVIOL.

Definition at line 124 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setUSE_INTSLACKS | ( | int | value | ) | `[virtual]`

Set the value of USE_INTSLACKS.

Default: 0

int CglRedSplitParam::getUSE_INTSLACKS | ( |  | ) | const`[inline]`

Get the value of USE_INTSLACKS.

Definition at line 129 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setUSE_CG2 | ( | int | value | ) | `[virtual]`

Set the value of USE_CG2.

Default: 0

int CglRedSplitParam::getUSE_CG2 | ( |  | ) | const`[inline]`

Get the value of USE_CG2.

Definition at line 134 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setNormIsZero | ( | const double | value | ) | `[virtual]`

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

double CglRedSplitParam::getNormIsZero | ( |  | ) | const`[inline]`

Get the value of normIsZero.

Definition at line 140 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setMinReduc | ( | const double | value | ) | `[virtual]`

Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Default: 0.05.

double CglRedSplitParam::getMinReduc | ( |  | ) | const`[inline]`

Get the value of minReduc.

Definition at line 146 of file CglRedSplitParam.hpp.

virtual void CglRedSplitParam::setMaxTab | ( | const double | value | ) | `[virtual]`

Set the maximum allowed value for (mTab * mTab * CoinMax(mTab, nTab)) where mTab is the number of rows used in the combinations and nTab is the number of continuous non basic variables.

The work of the generator is proportional to (mTab * mTab * CoinMax(mTab, nTab)). Reducing the value of maxTab makes the generator faster, but weaker. Default: 1e7.

double CglRedSplitParam::getMaxTab | ( |  | ) | const`[inline]`

Get the value of maxTab.

Definition at line 155 of file CglRedSplitParam.hpp.

virtual CglRedSplitParam* CglRedSplitParam::clone | ( |  | ) | const`[virtual]`

Clone.

Reimplemented from CglParam.

virtual CglRedSplitParam& CglRedSplitParam::operator= | ( | const CglRedSplitParam & | rhs | ) | `[virtual]`

Assignment operator.

Reimplemented from CglParam.

## Member Data Documentation

double CglRedSplitParam::LUB`[protected]`

Value considered large for the absolute value of lower or upper bound on a variable.

Default: 1000.

Definition at line 213 of file CglRedSplitParam.hpp.

double CglRedSplitParam::EPS_ELIM`[protected]`

Epsilon for value of coefficients when eliminating slack variables.

Default: 1e-12.

Definition at line 217 of file CglRedSplitParam.hpp.

double CglRedSplitParam::EPS_RELAX_ABS`[protected]`

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

Default: 1e-8

Definition at line 221 of file CglRedSplitParam.hpp.

double CglRedSplitParam::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: 0

Definition at line 226 of file CglRedSplitParam.hpp.

double CglRedSplitParam::MAXDYN`[protected]`

Value considered large for the absolute value of lower or upper bound on a variable.

Default: 1000.

Definition at line 230 of file CglRedSplitParam.hpp.

double CglRedSplitParam::MAXDYN_LUB`[protected]`

Value considered large for the absolute value of lower or upper bound on a variable.

Default: 1000.

Definition at line 236 of file CglRedSplitParam.hpp.

double CglRedSplitParam::EPS_COEFF_LUB`[protected]`

Epsilon for value of coefficients for variables with absolute value of lower or upper bound larger than LUB.

Default: 1e-13.

Definition at line 240 of file CglRedSplitParam.hpp.

double CglRedSplitParam::MINVIOL`[protected]`

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

Default: 1e-7.

Definition at line 244 of file CglRedSplitParam.hpp.

int CglRedSplitParam::USE_INTSLACKS`[protected]`

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

Definition at line 247 of file CglRedSplitParam.hpp.

int CglRedSplitParam::USE_CG2`[protected]`

Use second way to generate a mixed integer Gomory cut (see methods generate_cgcut()) and generate_cgcut_2()).

Default: 0.

Definition at line 251 of file CglRedSplitParam.hpp.

double CglRedSplitParam::normIsZero`[protected]`

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

Definition at line 255 of file CglRedSplitParam.hpp.

double CglRedSplitParam::minReduc`[protected]`

Minimum reduction in percent that must be achieved by a potential reduction step in order to be performed; Between 0 and 1, default: 0.05.

Definition at line 259 of file CglRedSplitParam.hpp.

double CglRedSplitParam::away_`[protected]`

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

Definition at line 263 of file CglRedSplitParam.hpp.

double CglRedSplitParam::maxTab_`[protected]`

Maximum value for (mTab * mTab * CoinMax(mTab, nTab)).

See method setMaxTab().

Definition at line 267 of file CglRedSplitParam.hpp.

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

- /home/coin/svn-release/Alps-1.5.2/Cgl/src/CglRedSplit/CglRedSplitParam.hpp