Class collecting parameters the Reduced-and-split cut generator. More...
#include <CglRedSplitParam.hpp>
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. More... | |
double | getAway () const |
Get value of away. More... | |
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. More... | |
double | getLUB () const |
Get the value of LUB. More... | |
void | setEPS_ELIM (const double value) |
Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Default: 1e-12. More... | |
double | getEPS_ELIM () const |
Get the value of EPS_ELIM. More... | |
virtual void | setEPS_RELAX_ABS (const double eps_ra) |
Set EPS_RELAX_ABS. More... | |
double | getEPS_RELAX_ABS () const |
Get value of EPS_RELAX_ABS. More... | |
virtual void | setEPS_RELAX_REL (const double eps_rr) |
Set EPS_RELAX_REL. More... | |
double | getEPS_RELAX_REL () const |
Get value of EPS_RELAX_REL. More... | |
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. More... | |
double | getMAXDYN () const |
Get the value of MAXDYN. More... | |
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. More... | |
double | getMAXDYN_LUB () const |
Get the value of MAXDYN_LUB. More... | |
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. More... | |
double | getEPS_COEFF_LUB () const |
Get the value of EPS_COEFF_LUB. More... | |
virtual void | setMINVIOL (double value) |
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut. More... | |
double | getMINVIOL () const |
Get the value of MINVIOL. More... | |
virtual void | setUSE_INTSLACKS (int value) |
Set the value of USE_INTSLACKS. More... | |
int | getUSE_INTSLACKS () const |
Get the value of USE_INTSLACKS. More... | |
virtual void | setUSE_CG2 (int value) |
Set the value of USE_CG2. More... | |
int | getUSE_CG2 () const |
Get the value of USE_CG2. More... | |
virtual void | setNormIsZero (const double value) |
Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5. More... | |
double | getNormIsZero () const |
Get the value of normIsZero. More... | |
virtual void | setMinReduc (const double value) |
Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Default: 0.05. More... | |
double | getMinReduc () const |
Get the value of minReduc. More... | |
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. More... | |
double | getMaxTab () const |
Get the value of maxTab. More... | |
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. More... | |
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. More... | |
CglRedSplitParam (const CglRedSplitParam &source) | |
Copy constructor. More... | |
virtual CglRedSplitParam * | clone () const |
Clone. More... | |
virtual CglRedSplitParam & | operator= (const CglRedSplitParam &rhs) |
Assignment operator. More... | |
virtual | ~CglRedSplitParam () |
Destructor. More... | |
![]() | |
virtual void | setINFINIT (const double inf) |
Set INFINIT. More... | |
double | getINFINIT () const |
Get value of INFINIT. More... | |
virtual void | setEPS (const double eps) |
Set EPS. More... | |
double | getEPS () const |
Get value of EPS. More... | |
virtual void | setEPS_COEFF (const double eps_c) |
Set EPS_COEFF. More... | |
double | getEPS_COEFF () const |
Get value of EPS_COEFF. More... | |
virtual void | setMAX_SUPPORT (const int max_s) |
Set MAX_SUPPORT. More... | |
int | getMAX_SUPPORT () const |
Get value of MAX_SUPPORT. More... | |
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. More... | |
CglParam (const CglParam &) | |
Copy constructor. More... | |
CglParam & | operator= (const CglParam &rhs) |
Assignment operator. More... | |
virtual | ~CglParam () |
Destructor. More... | |
Protected Attributes | |
Parameters | |
double | LUB |
Value considered large for the absolute value of lower or upper bound on a variable. More... | |
double | EPS_ELIM |
Epsilon for value of coefficients when eliminating slack variables. More... | |
double | EPS_RELAX_ABS |
Value added to the right hand side of each generated cut to relax it. More... | |
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. More... | |
double | MAXDYN |
Value considered large for the absolute value of lower or upper bound on a variable. More... | |
double | MAXDYN_LUB |
Value considered large for the absolute value of lower or upper bound on a variable. More... | |
double | EPS_COEFF_LUB |
Epsilon for value of coefficients for variables with absolute value of lower or upper bound larger than LUB. More... | |
double | MINVIOL |
Minimum violation for the current basic solution in a generated cut. More... | |
int | USE_INTSLACKS |
Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0. More... | |
int | USE_CG2 |
Use second way to generate a mixed integer Gomory cut (see methods generate_cgcut()) and generate_cgcut_2()). More... | |
double | normIsZero |
Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5. More... | |
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. More... | |
double | away_ |
Use row only if pivot variable should be integer but is more than away_ from being integer. More... | |
double | maxTab_ |
Maximum value for (mTab * mTab * CoinMax(mTab, nTab)). More... | |
![]() | |
double | INFINIT |
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX. More... | |
double | EPS |
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX. More... | |
double | EPS_COEFF |
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX. More... | |
int | MAX_SUPPORT |
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX. More... | |
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.
Definition at line 61 of file CglRedSplitParam.hpp.
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 |
Destructor.
|
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.
|
inline |
Get value of away.
Definition at line 73 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of LUB, value considered large for the absolute value of a lower or upper bound on a variable; Default: 1000.
|
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.
|
inline |
Get the value of EPS_ELIM.
Definition at line 87 of file CglRedSplitParam.hpp.
|
virtual |
Set EPS_RELAX_ABS.
|
inline |
Get value of EPS_RELAX_ABS.
Definition at line 92 of file CglRedSplitParam.hpp.
|
virtual |
Set EPS_RELAX_REL.
|
inline |
Get value of EPS_RELAX_REL.
Definition at line 97 of file CglRedSplitParam.hpp.
|
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.
|
inline |
Get the value of MAXDYN.
Definition at line 103 of file CglRedSplitParam.hpp.
|
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.
|
inline |
Get the value of MAXDYN_LUB.
Definition at line 111 of file CglRedSplitParam.hpp.
|
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.
|
inline |
Get the value of EPS_COEFF_LUB.
Definition at line 118 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut.
Default: 1e-7
|
inline |
Get the value of MINVIOL.
Definition at line 124 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of USE_INTSLACKS.
Default: 0
|
inline |
Get the value of USE_INTSLACKS.
Definition at line 129 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of USE_CG2.
Default: 0
|
inline |
Get the value of USE_CG2.
Definition at line 134 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5.
|
inline |
Get the value of normIsZero.
Definition at line 140 of file CglRedSplitParam.hpp.
|
virtual |
Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Default: 0.05.
|
inline |
Get the value of minReduc.
Definition at line 146 of file CglRedSplitParam.hpp.
|
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.
|
inline |
Get the value of maxTab.
Definition at line 155 of file CglRedSplitParam.hpp.
|
virtual |
Clone.
Reimplemented from CglParam.
|
virtual |
Assignment operator.
|
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.
|
protected |
Epsilon for value of coefficients when eliminating slack variables.
Default: 1e-12.
Definition at line 217 of file CglRedSplitParam.hpp.
|
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.
|
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.
|
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.
|
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.
|
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.
|
protected |
Minimum violation for the current basic solution in a generated cut.
Default: 1e-7.
Definition at line 244 of file CglRedSplitParam.hpp.
|
protected |
Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
Definition at line 247 of file CglRedSplitParam.hpp.
|
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.
|
protected |
Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
Definition at line 255 of file CglRedSplitParam.hpp.
|
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.
|
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.
|
protected |
Maximum value for (mTab * mTab * CoinMax(mTab, nTab)).
See method setMaxTab().
Definition at line 267 of file CglRedSplitParam.hpp.