Loading...
Searching...
No Matches
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]

## 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)
double | getMAXDYN () const
| Get the value of MAXDYN.
virtual void | setMAXDYN_LUB (double value)
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.
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 | 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
double | MAXDYN_LUB
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)).
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.

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() [1/3]

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() [2/3]

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() [3/3]

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

Copy constructor.

## ~CglRedSplitParam()

virtual CglRedSplitParam::~CglRedSplitParam | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## setAway()

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.

## getAway()

double CglRedSplitParam::getAway | ( |  | ) | const

inline

Get value of away.

Definition at line 73 of file CglRedSplitParam.hpp.

## setLUB()

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.

## getLUB()

double CglRedSplitParam::getLUB | ( |  | ) | const

inline

Get the value of LUB.

Definition at line 80 of file CglRedSplitParam.hpp.

## setEPS_ELIM()

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.

## getEPS_ELIM()

double CglRedSplitParam::getEPS_ELIM | ( |  | ) | const

inline

Get the value of EPS_ELIM.

Definition at line 87 of file CglRedSplitParam.hpp.

## setEPS_RELAX_ABS()

virtual void CglRedSplitParam::setEPS_RELAX_ABS | ( | const double | eps_ra | ) |

virtual

Set EPS_RELAX_ABS.

## getEPS_RELAX_ABS()

double CglRedSplitParam::getEPS_RELAX_ABS | ( |  | ) | const

inline

Get value of EPS_RELAX_ABS.

Definition at line 92 of file CglRedSplitParam.hpp.

## setEPS_RELAX_REL()

virtual void CglRedSplitParam::setEPS_RELAX_REL | ( | const double | eps_rr | ) |

virtual

Set EPS_RELAX_REL.

## getEPS_RELAX_REL()

double CglRedSplitParam::getEPS_RELAX_REL | ( |  | ) | const

inline

Get value of EPS_RELAX_REL.

Definition at line 97 of file CglRedSplitParam.hpp.

## setMAXDYN()

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

virtual

## getMAXDYN()

double CglRedSplitParam::getMAXDYN | ( |  | ) | const

inline

Get the value of MAXDYN.

Definition at line 103 of file CglRedSplitParam.hpp.

## setMAXDYN_LUB()

virtual void CglRedSplitParam::setMAXDYN_LUB | ( | double | value | ) |

virtual

## getMAXDYN_LUB()

double CglRedSplitParam::getMAXDYN_LUB | ( |  | ) | const

inline

Get the value of MAXDYN_LUB.

Definition at line 111 of file CglRedSplitParam.hpp.

## setEPS_COEFF_LUB()

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.

## getEPS_COEFF_LUB()

double CglRedSplitParam::getEPS_COEFF_LUB | ( |  | ) | const

inline

Get the value of EPS_COEFF_LUB.

Definition at line 118 of file CglRedSplitParam.hpp.

## setMINVIOL()

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

## getMINVIOL()

double CglRedSplitParam::getMINVIOL | ( |  | ) | const

inline

Get the value of MINVIOL.

Definition at line 124 of file CglRedSplitParam.hpp.

## setUSE_INTSLACKS()

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

virtual

Set the value of USE_INTSLACKS.

Default: 0

## getUSE_INTSLACKS()

int CglRedSplitParam::getUSE_INTSLACKS | ( |  | ) | const

inline

Get the value of USE_INTSLACKS.

Definition at line 129 of file CglRedSplitParam.hpp.

## setUSE_CG2()

virtual void CglRedSplitParam::setUSE_CG2 | ( | int | value | ) |

virtual

Set the value of USE_CG2.

Default: 0

## getUSE_CG2()

int CglRedSplitParam::getUSE_CG2 | ( |  | ) | const

inline

Get the value of USE_CG2.

Definition at line 134 of file CglRedSplitParam.hpp.

## setNormIsZero()

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.

## getNormIsZero()

double CglRedSplitParam::getNormIsZero | ( |  | ) | const

inline

Get the value of normIsZero.

Definition at line 140 of file CglRedSplitParam.hpp.

## setMinReduc()

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.

## getMinReduc()

double CglRedSplitParam::getMinReduc | ( |  | ) | const

inline

Get the value of minReduc.

Definition at line 146 of file CglRedSplitParam.hpp.

## setMaxTab()

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.

## getMaxTab()

double CglRedSplitParam::getMaxTab | ( |  | ) | const

inline

Get the value of maxTab.

Definition at line 155 of file CglRedSplitParam.hpp.

## clone()

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

virtual

Clone.

Reimplemented from CglParam.

## operator=()

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

virtual

Assignment operator.

## Member Data Documentation

## LUB

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.

## EPS_ELIM

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.

## EPS_RELAX_ABS

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.

## EPS_RELAX_REL

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.

## MAXDYN

double CglRedSplitParam::MAXDYN

protected

Definition at line 230 of file CglRedSplitParam.hpp.

## MAXDYN_LUB

double CglRedSplitParam::MAXDYN_LUB

protected

Definition at line 236 of file CglRedSplitParam.hpp.

## EPS_COEFF_LUB

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.

## MINVIOL

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.

## USE_INTSLACKS

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.

## USE_CG2

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.

## normIsZero

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.

## minReduc

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.

## away_

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.

## maxTab_

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:

- Cgl/src/CglRedSplit/CglRedSplitParam.hpp