- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

CglRedSplitParam.hpp
Go to the documentation of this file.
1 // Name: CglRedSplitParam.hpp
2 // Author: Francois Margot
3 // Tepper School of Business
4 // Carnegie Mellon University, Pittsburgh, PA 15213
5 // email: fmargot@andrew.cmu.edu
6 // Date: 11/24/06
7 //
8 // $Id: CglRedSplitParam.hpp 1122 2013-04-06 20:39:53Z stefan $
9 //-----------------------------------------------------------------------------
10 // Copyright (C) 2006, Francois Margot and others. All Rights Reserved.
11 // This code is licensed under the terms of the Eclipse Public License (EPL).
12
13 #ifndef CglRedSplitParam_H
14 #define CglRedSplitParam_H
15
16 #include "CglParam.hpp"
17
18
21
60
61 class CglRedSplitParam : public CglParam {
62
63 public:
64
71 virtual void setAway(const double value);
73 inline double getAway() const {return away_;}
74
78 virtual void setLUB(const double value);
80 inline double getLUB() const {return LUB;}
81
85 void setEPS_ELIM(const double value);
87 double getEPS_ELIM() const {return EPS_ELIM;}
88
90 virtual void setEPS_RELAX_ABS(const double eps_ra);
92 inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
93
95 virtual void setEPS_RELAX_REL(const double eps_rr);
97 inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
98
99 // Set the maximum ratio between largest and smallest non zero
100 // coefficients in a cut. Default: 1e8.
101 virtual void setMAXDYN(double value);
103 inline double getMAXDYN() const {return MAXDYN_LUB;}
104
105 // Set the maximum ratio between largest and smallest non zero
106 // coefficient in a cut involving structural variables with
107 // lower or upper bound in absolute value larger than LUB.
108 // Should logically be larger or equal to MAXDYN. Default: 1e13.
109 virtual void setMAXDYN_LUB(double value);
111 inline double getMAXDYN_LUB() const {return MAXDYN_LUB;}
112
116 virtual void setEPS_COEFF_LUB(const double value);
118 inline double getEPS_COEFF_LUB() const {return EPS_COEFF_LUB;}
119
122 virtual void setMINVIOL(double value);
124 inline double getMINVIOL() const {return MINVIOL;}
125
127 virtual void setUSE_INTSLACKS(int value);
129 inline int getUSE_INTSLACKS() const {return USE_INTSLACKS;}
130
132 virtual void setUSE_CG2(int value);
134 inline int getUSE_CG2() const {return USE_CG2;}
135
138 virtual void setNormIsZero(const double value);
140 inline double getNormIsZero() const {return normIsZero;}
141
144 virtual void setMinReduc(const double value);
146 inline double getMinReduc() const {return minReduc;}
147
153 virtual void setMaxTab(const double value);
155 inline double getMaxTab() const {return maxTab_;}
157
160 CglRedSplitParam(const double lub = 1000.0,
162 const double eps_elim = 1e-12,
163 const double eps_relax_abs = 1e-8,
164 const double eps_relax_rel = 0.0,
165 const double max_dyn = 1e8,
166 const double max_dyn_lub = 1e13,
167 const double eps_coeff_lub = 1e-13,
168 const double min_viol = 1e-7,
169 const int use_int_slacks = 0,
170 const int use_cg2 = 0,
171 const double norm_zero = 1e-5,
172 const double min_reduc = 0.05,
173 const double away = 0.05,
174 const double max_tab = 1e7);
175
177 CglRedSplitParam(const CglParam &source,
178 const double lub = 1000.0,
179 const double eps_elim = 1e-12,
180 const double eps_relax_abs = 1e-8,
181 const double eps_relax_rel = 0.0,
182 const double max_dyn = 1e8,
183 const double max_dyn_lub = 1e13,
184 const double eps_coeff_lub = 1e-13,
185 const double min_viol = 1e-7,
186 const int use_int_slacks = 0,
187 const int use_cg2 = 0,
188 const double norm_zero = 1e-5,
189 const double min_reduc = 0.05,
190 const double away = 0.05,
191 const double max_tab = 1e7);
192
194 CglRedSplitParam(const CglRedSplitParam &source);
195
197 virtual CglRedSplitParam* clone() const;
198
200 virtual CglRedSplitParam& operator=(const CglRedSplitParam &rhs);
201
203 virtual ~CglRedSplitParam();
205
206 protected:
207
210
213 double LUB;
214
217 double EPS_ELIM;
218
221 double EPS_RELAX_ABS;
222
226 double EPS_RELAX_REL;
227
228 // Maximum ratio between largest and smallest non zero
229 // coefficients in a cut. Default: 1e8.
230 double MAXDYN;
231
232 // Maximum ratio between largest and smallest non zero
233 // coefficients in a cut involving structural variables with
234 // lower or upper bound in absolute value larger than LUB.
235 // Should logically be larger or equal to MAXDYN. Default: 1e13.
236 double MAXDYN_LUB;
237
240 double EPS_COEFF_LUB;
241
244 double MINVIOL;
245
247 int USE_INTSLACKS;
248
251 int USE_CG2;
252
255 double normIsZero;
256
259 double minReduc;
260
263 double away_;
264
267 double maxTab_;
268
270 };
271
272 #endif
CglRedSplitParam::setMinReduc
virtual void setMinReduc(const double value)
Set the value of minReduc, threshold for relative norm improvement for performing a reduction; Defaul...
CglRedSplitParam::getLUB
double getLUB() const
Get the value of LUB.
Definition: CglRedSplitParam.hpp:80
CglRedSplitParam::maxTab_
double maxTab_
Maximum value for (mTab * mTab * CoinMax(mTab, nTab)).
Definition: CglRedSplitParam.hpp:267
CglRedSplitParam::getUSE_CG2
int getUSE_CG2() const
Get the value of USE_CG2.
Definition: CglRedSplitParam.hpp:134
CglRedSplitParam::setMINVIOL
virtual void setMINVIOL(double value)
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut...
CglRedSplitParam::EPS_COEFF_LUB
double EPS_COEFF_LUB
Epsilon for value of coefficients for variables with absolute value of lower or upper bound larger th...
Definition: CglRedSplitParam.hpp:240
CglRedSplitParam::EPS_RELAX_REL
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 ...
Definition: CglRedSplitParam.hpp:226
CglRedSplitParam::setEPS_RELAX_REL
virtual void setEPS_RELAX_REL(const double eps_rr)
Set EPS_RELAX_REL.
CglRedSplitParam::~CglRedSplitParam
virtual ~CglRedSplitParam()
Destructor.
CglRedSplitParam::getEPS_RELAX_REL
double getEPS_RELAX_REL() const
Get value of EPS_RELAX_REL.
Definition: CglRedSplitParam.hpp:97
CglRedSplitParam::USE_INTSLACKS
int USE_INTSLACKS
Use integer slacks to generate cuts if USE_INTSLACKS = 1. Default: 0.
Definition: CglRedSplitParam.hpp:247
CglRedSplitParam::setEPS_ELIM
void setEPS_ELIM(const double value)
Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Defau...
CglRedSplitParam::getMAXDYN_LUB
double getMAXDYN_LUB() const
Get the value of MAXDYN_LUB.
Definition: CglRedSplitParam.hpp:111
CglRedSplitParam::setNormIsZero
virtual void setNormIsZero(const double value)
Set the value of normIsZero, the threshold for considering a norm to be 0; Default: 1e-5...
CglRedSplitParam::getNormIsZero
double getNormIsZero() const
Get the value of normIsZero.
Definition: CglRedSplitParam.hpp:140
CglRedSplitParam::MAXDYN
double MAXDYN
Value considered large for the absolute value of lower or upper bound on a variable.
Definition: CglRedSplitParam.hpp:230
CglRedSplitParam
Class collecting parameters the Reduced-and-split cut generator.
Definition: CglRedSplitParam.hpp:61
CglRedSplitParam::USE_CG2
int USE_CG2
Use second way to generate a mixed integer Gomory cut (see methods generate_cgcut()) and generate_cgc...
Definition: CglRedSplitParam.hpp:251
CglRedSplitParam::getMAXDYN
double getMAXDYN() const
Get the value of MAXDYN.
Definition: CglRedSplitParam.hpp:103
CglRedSplitParam::LUB
double LUB
Value considered large for the absolute value of lower or upper bound on a variable.
Definition: CglRedSplitParam.hpp:213
CglRedSplitParam::normIsZero
double normIsZero
Norm of a vector is considered zero if smaller than normIsZero; Default: 1e-5.
Definition: CglRedSplitParam.hpp:255
CglRedSplitParam::getUSE_INTSLACKS
int getUSE_INTSLACKS() const
Get the value of USE_INTSLACKS.
Definition: CglRedSplitParam.hpp:129
CglRedSplitParam::EPS_RELAX_ABS
double EPS_RELAX_ABS
Value added to the right hand side of each generated cut to relax it.
Definition: CglRedSplitParam.hpp:221
CglRedSplitParam::clone
virtual CglRedSplitParam * clone() const
Clone.
CglRedSplitParam::setUSE_CG2
virtual void setUSE_CG2(int value)
Set the value of USE_CG2.
CglParam
Class collecting parameters for all cut generators.
Definition: CglParam.hpp:22
CglRedSplitParam::setMAXDYN
virtual void setMAXDYN(double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglRedSplitParam::getEPS_ELIM
double getEPS_ELIM() const
Get the value of EPS_ELIM.
Definition: CglRedSplitParam.hpp:87
CglRedSplitParam::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::MINVIOL
double MINVIOL
Minimum violation for the current basic solution in a generated cut.
Definition: CglRedSplitParam.hpp:244
CglRedSplitParam::getMaxTab
double getMaxTab() const
Get the value of maxTab.
Definition: CglRedSplitParam.hpp:155
CglRedSplitParam::setEPS_RELAX_ABS
virtual void setEPS_RELAX_ABS(const double eps_ra)
Set EPS_RELAX_ABS.
CglRedSplitParam::setAway
virtual void setAway(const double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglRedSplitParam::MAXDYN_LUB
double MAXDYN_LUB
Value considered large for the absolute value of lower or upper bound on a variable.
Definition: CglRedSplitParam.hpp:236
CglRedSplitParam::getEPS_COEFF_LUB
double getEPS_COEFF_LUB() const
Get the value of EPS_COEFF_LUB.
Definition: CglRedSplitParam.hpp:118
CglRedSplitParam::getMinReduc
double getMinReduc() const
Get the value of minReduc.
Definition: CglRedSplitParam.hpp:146
CglParam.hpp
CglRedSplitParam::away_
double away_
Use row only if pivot variable should be integer but is more than away_ from being integer...
Definition: CglRedSplitParam.hpp:263
CglRedSplitParam::setMAXDYN_LUB
virtual void setMAXDYN_LUB(double value)
Set away, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglRedSplitParam::setUSE_INTSLACKS
virtual void setUSE_INTSLACKS(int value)
Set the value of USE_INTSLACKS.
CglRedSplitParam::operator=
virtual CglRedSplitParam & operator=(const CglRedSplitParam &rhs)
Assignment operator.
CglRedSplitParam::getEPS_RELAX_ABS
double getEPS_RELAX_ABS() const
Get value of EPS_RELAX_ABS.
Definition: CglRedSplitParam.hpp:92
CglRedSplitParam::setLUB
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 va...
CglRedSplitParam::getAway
double getAway() const
Get value of away.
Definition: CglRedSplitParam.hpp:73
CglRedSplitParam::minReduc
double minReduc
Minimum reduction in percent that must be achieved by a potential reduction step in order to be perfo...
Definition: CglRedSplitParam.hpp:259
CglRedSplitParam::setEPS_COEFF_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 ...
CglRedSplitParam::EPS_ELIM
double EPS_ELIM
Epsilon for value of coefficients when eliminating slack variables.
Definition: CglRedSplitParam.hpp:217
CglRedSplitParam::setMaxTab
virtual void setMaxTab(const double value)
Set the maximum allowed value for (mTab * mTab * CoinMax(mTab, nTab)) where mTab is the number of row...
CglRedSplitParam::getMINVIOL
double getMINVIOL() const
Get the value of MINVIOL.
Definition: CglRedSplitParam.hpp:124