Cgl 0.60.2

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

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CglGMIParam.hpp
Go to the documentation of this file.
1 // Name: CglGMIParam.hpp
2 // Author: Giacomo Nannicini
3 // Singapore University of Technology and Design
4 // email: nannicini@sutd.edu.sg
5 // based on CglRedSplitParam.hpp by Francois Margot
6 // Date: 11/17/09
7 //-----------------------------------------------------------------------------
8 // Copyright (C) 2009, Giacomo Nannicini and others. All Rights Reserved.
9
10 #ifndef CglGMIParam_H
11 #define CglGMIParam_H
12
13 #include "CglParam.hpp"
14
15
18
51
52 class CglGMIParam : public CglParam {
53
54 public:
55
57 enum CleaningProcedure{
58 /* CglLandP procedure I */
59 CP_CGLLANDP1,
60 /* CglLandP procedure II */
61 CP_CGLLANDP2,
62 /* CglRedSplit procedure I */
63 CP_CGLREDSPLIT,
64 /* Only integral cuts, i.e. cuts with integral coefficients */
65 CP_INTEGRAL_CUTS,
66 /* CglLandP procedure I with integral scaling */
67 CP_CGLLANDP1_INT,
68 /* CglLandP procedure I with scaling of the max element to 1 if possible */
69 CP_CGLLANDP1_SCALEMAX,
70 /* CglLandP procedure I with scaling of the rhs to 1 if possible */
71 CP_CGLLANDP1_SCALERHS
72 };
73
80 inline void setInfinity(double value) {setINFINIT(value);}
81 inline double getInfinity() const {return INFINIT;}
82
84 inline void setEps(double value) {setEPS(value);}
85 inline double getEps() const {return EPS;}
86
88 inline void setEpsCoeff(double value) {setEPS_COEFF(value);}
89 inline double getEpsCoeff() const {return EPS_COEFF;}
90
92 inline void setMaxSupport(int value) {setMAX_SUPPORT(value);}
93 inline int getMaxSupport() const {return MAX_SUPPORT;}
95 inline void setMaxSupportAbs(int value) {setMAX_SUPPORT(value);}
96 inline int getMaxSupportAbs() const {return MAX_SUPPORT;}
97 inline int getMAX_SUPPORT_ABS() const {return MAX_SUPPORT;}
98
103 virtual void setAway(double value);
105 inline double getAway() const {return AWAY;}
107 inline void setAWAY(double value) {setAway(value);}
108 inline double getAWAY() const {return AWAY;}
109
113 virtual void setEPS_ELIM(double value);
115 inline double getEPS_ELIM() const {return EPS_ELIM;}
117 inline void setEpsElim(double value) {setEPS_ELIM(value);}
118 inline double getEpsElim() const {return EPS_ELIM;}
119
121 virtual void setEPS_RELAX_ABS(double value);
123 inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
125 inline void setEpsRelaxAbs(double value) {setEPS_RELAX_ABS(value);}
126 inline double getEpsRelaxAbs() const {return EPS_RELAX_ABS;}
127
129 virtual void setEPS_RELAX_REL(double value);
131 inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
133 inline void setEpsRelaxRel(double value) {setEPS_RELAX_REL(value);}
134 inline double getEpsRelaxRel() const {return EPS_RELAX_REL;}
135
136 // Set the maximum ratio between largest and smallest non zero
137 // coefficients in a cut. Default: 1e6.
138 virtual void setMAXDYN(double value);
140 inline double getMAXDYN() const {return MAXDYN;}
142 inline void setMaxDyn(double value) {setMAXDYN(value);}
143 inline double getMaxDyn() const {return MAXDYN;}
144
147 virtual void setMINVIOL(double value);
149 inline double getMINVIOL() const {return MINVIOL;}
151 inline void setMinViol(double value) {setMINVIOL(value);}
152 inline double getMinViol() const {return MINVIOL;}
153
158 virtual void setMAX_SUPPORT_REL(double value);
160 inline double getMAX_SUPPORT_REL() const {return MAX_SUPPORT_REL;}
162 inline void setMaxSupportRel(double value) {setMAX_SUPPORT_REL(value);}
163 inline double getMaxSupportRel() const {return MAX_SUPPORT_REL;}
164
166 virtual void setUSE_INTSLACKS(bool value);
168 inline bool getUSE_INTSLACKS() const {return USE_INTSLACKS;}
170 inline void setUseIntSlacks(bool value) {setUSE_INTSLACKS(value);}
171 inline int getUseIntSlacks() const {return USE_INTSLACKS;}
172
174 virtual void setCHECK_DUPLICATES(bool value);
176 inline bool getCHECK_DUPLICATES() const {return CHECK_DUPLICATES;}
178 inline void setCheckDuplicates(bool value) {setCHECK_DUPLICATES(value);}
179 inline bool getCheckDuplicates() const {return CHECK_DUPLICATES;}
180
182 virtual void setCLEAN_PROC(CleaningProcedure value);
184 inline CleaningProcedure getCLEAN_PROC() const {return CLEAN_PROC;}
186 inline void setCleanProc(CleaningProcedure value) {setCLEAN_PROC(value);}
187 inline CleaningProcedure getCleaningProcedure() const {return CLEAN_PROC;}
188
190 virtual void setINTEGRAL_SCALE_CONT(bool value);
192 inline bool getINTEGRAL_SCALE_CONT() const {return INTEGRAL_SCALE_CONT;}
194 inline void setIntegralScaleCont(bool value) {setINTEGRAL_SCALE_CONT(value);}
195 inline bool getIntegralScaleCont() const {return INTEGRAL_SCALE_CONT;}
196
198 virtual void setENFORCE_SCALING(bool value);
200 inline bool getENFORCE_SCALING() const {return ENFORCE_SCALING;}
202 inline void setEnforceScaling(bool value) {setENFORCE_SCALING(value);}
203 inline bool getEnforcescaling() const {return ENFORCE_SCALING;}
204
206
209 CglGMIParam(double eps = 1e-12,
211 double away = 0.005,
212 double eps_coeff = 1e-11,
213 double eps_elim = 0,
214 double eps_relax_abs = 1e-11,
215 double eps_relax_rel = 1e-13,
216 double max_dyn = 1e6,
217 double min_viol = 1e-4,
218 int max_supp_abs = 1000,
219 double max_supp_rel = 0.1,
220 CleaningProcedure clean_proc = CP_CGLLANDP1,
221 bool use_int_slacks = false,
222 bool check_duplicates = false,
223 bool integral_scale_cont = false,
224 bool enforce_scaling = true);
225
227 CglGMIParam(CglParam &source,
228 double away = 0.005,
229 double eps_elim = 1e-12,
230 double eps_relax_abs = 1e-11,
231 double eps_relax_rel = 1e-13,
232 double max_dyn = 1e6,
233 double min_viol = 1e-4,
234 double max_supp_rel = 0.1,
235 CleaningProcedure clean_proc = CP_CGLLANDP1,
236 bool use_int_slacks = false,
237 bool check_duplicates = false,
238 bool integral_scale_cont = false,
239 bool enforce_scaling = true);
240
242 CglGMIParam(const CglGMIParam &source);
243
245 virtual CglGMIParam* clone() const;
246
248 virtual CglGMIParam& operator=(const CglGMIParam &rhs);
249
251 virtual ~CglGMIParam();
253
254 protected:
255
258
261 double AWAY;
262
265 double EPS_ELIM;
266
269 double EPS_RELAX_ABS;
270
274 double EPS_RELAX_REL;
275
278 double MAXDYN;
279
282 double MINVIOL;
283
286 double MAX_SUPPORT_REL;
287
289 CleaningProcedure CLEAN_PROC;
290
292 bool USE_INTSLACKS;
293
295 bool CHECK_DUPLICATES;
296
301 bool INTEGRAL_SCALE_CONT;
302
308 bool ENFORCE_SCALING;
309
311 };
312
313 #endif
CglGMIParam::getAway
double getAway() const
Get value of away.
Definition: CglGMIParam.hpp:105
CglGMIParam::setMaxSupportAbs
void setMaxSupportAbs(int value)
Alias for consistency with our naming scheme.
Definition: CglGMIParam.hpp:95
CglGMIParam::getCHECK_DUPLICATES
bool getCHECK_DUPLICATES() const
Get the value of CHECK_DUPLICATES.
Definition: CglGMIParam.hpp:176
CglGMIParam::setCheckDuplicates
void setCheckDuplicates(bool value)
Aliases.
Definition: CglGMIParam.hpp:178
CglParam.hpp
CglGMIParam::setEpsElim
void setEpsElim(double value)
Aliases.
Definition: CglGMIParam.hpp:117
CglGMIParam::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: CglGMIParam.hpp:274
CglParam::INFINIT
double INFINIT
Definition: CglParam.hpp:75
CglGMIParam::getMAX_SUPPORT_REL
double getMAX_SUPPORT_REL() const
Get the value of MINVIOL.
Definition: CglGMIParam.hpp:160
CglGMIParam::setUSE_INTSLACKS
virtual void setUSE_INTSLACKS(bool value)
Set the value of USE_INTSLACKS.
CglGMIParam::CP_CGLREDSPLIT
Definition: CglGMIParam.hpp:63
CglGMIParam::getMaxSupportAbs
int getMaxSupportAbs() const
Definition: CglGMIParam.hpp:96
CglGMIParam::getCLEAN_PROC
CleaningProcedure getCLEAN_PROC() const
Get the value of CLEAN_PROC.
Definition: CglGMIParam.hpp:184
CglGMIParam::USE_INTSLACKS
bool USE_INTSLACKS
Use integer slacks to generate cuts if USE_INTSLACKS = 1.
Definition: CglGMIParam.hpp:292
CglGMIParam::getMaxSupportRel
double getMaxSupportRel() const
Definition: CglGMIParam.hpp:163
CglGMIParam::getEpsRelaxAbs
double getEpsRelaxAbs() const
Definition: CglGMIParam.hpp:126
CglParam::EPS_COEFF
double EPS_COEFF
Definition: CglParam.hpp:82
CglGMIParam::setEPS_RELAX_REL
virtual void setEPS_RELAX_REL(double value)
Set EPS_RELAX_REL.
CglGMIParam::CglGMIParam
CglGMIParam(double eps=1e-12, double away=0.005, double eps_coeff=1e-11, double eps_elim=0, double eps_relax_abs=1e-11, double eps_relax_rel=1e-13, double max_dyn=1e6, double min_viol=1e-4, int max_supp_abs=1000, double max_supp_rel=0.1, CleaningProcedure clean_proc=CP_CGLLANDP1, bool use_int_slacks=false, bool check_duplicates=false, bool integral_scale_cont=false, bool enforce_scaling=true)
Default constructor.
CglGMIParam::setMinViol
void setMinViol(double value)
Aliases.
Definition: CglGMIParam.hpp:151
CglGMIParam::setMAXDYN
virtual void setMAXDYN(double value)
CglGMIParam::setENFORCE_SCALING
virtual void setENFORCE_SCALING(bool value)
Set the value of ENFORCE_SCALING.
CglGMIParam::setEPS_ELIM
virtual void setEPS_ELIM(double value)
Set the value of EPS_ELIM, epsilon for values of coefficients when eliminating slack variables; Defau...
CglParam::setEPS
virtual void setEPS(const double eps)
Set EPS.
CglParam::setEPS_COEFF
virtual void setEPS_COEFF(const double eps_c)
Set EPS_COEFF.
CglGMIParam::getEpsRelaxRel
double getEpsRelaxRel() const
Definition: CglGMIParam.hpp:134
CglGMIParam::getCleaningProcedure
CleaningProcedure getCleaningProcedure() const
Definition: CglGMIParam.hpp:187
CglGMIParam::ENFORCE_SCALING
bool ENFORCE_SCALING
Should we discard badly scaled cuts (according to the scaling procedure in use)? If false...
Definition: CglGMIParam.hpp:308
CglGMIParam::CLEAN_PROC
CleaningProcedure CLEAN_PROC
Which cleaning procedure should be used?
Definition: CglGMIParam.hpp:289
CglGMIParam
Class collecting parameters for the GMI cut generator.
Definition: CglGMIParam.hpp:52
CglGMIParam::setEnforceScaling
void setEnforceScaling(bool value)
Aliases.
Definition: CglGMIParam.hpp:202
CglParam::MAX_SUPPORT
int MAX_SUPPORT
Maximum number of non zero coefficients in a generated cut; Default: COIN_INT_MAX.
Definition: CglParam.hpp:86
CglGMIParam::setAWAY
void setAWAY(double value)
Aliases.
Definition: CglGMIParam.hpp:107
CglGMIParam::setMINVIOL
virtual void setMINVIOL(double value)
Set the value of MINVIOL, the minimum violation for the current basic solution in a generated cut...
CglGMIParam::setAway
virtual void setAway(double value)
Set AWAY, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglGMIParam::CP_CGLLANDP1
Definition: CglGMIParam.hpp:59
CglParam::setMAX_SUPPORT
virtual void setMAX_SUPPORT(const int max_s)
Set MAX_SUPPORT.
CglGMIParam::~CglGMIParam
virtual ~CglGMIParam()
Destructor.
CglGMIParam::setEPS_RELAX_ABS
virtual void setEPS_RELAX_ABS(double value)
Set EPS_RELAX_ABS.
CglGMIParam::MAX_SUPPORT_REL
double MAX_SUPPORT_REL
Maximum support relative to number of columns.
Definition: CglGMIParam.hpp:286
CglGMIParam::operator=
virtual CglGMIParam & operator=(const CglGMIParam &rhs)
Assignment operator.
CglGMIParam::setMaxDyn
void setMaxDyn(double value)
Aliases.
Definition: CglGMIParam.hpp:142
CglGMIParam::getAWAY
double getAWAY() const
Definition: CglGMIParam.hpp:108
CglGMIParam::CP_CGLLANDP2
Definition: CglGMIParam.hpp:61
CglGMIParam::getMAX_SUPPORT_ABS
int getMAX_SUPPORT_ABS() const
Definition: CglGMIParam.hpp:97
CglGMIParam::MAXDYN
double MAXDYN
Maximum ratio between largest and smallest non zero coefficients in a cut.
Definition: CglGMIParam.hpp:278
CglParam
Class collecting parameters for all cut generators.
Definition: CglParam.hpp:22
CglGMIParam::setIntegralScaleCont
void setIntegralScaleCont(bool value)
Aliases.
Definition: CglGMIParam.hpp:194
CglGMIParam::getEPS_ELIM
double getEPS_ELIM() const
Get the value of EPS_ELIM.
Definition: CglGMIParam.hpp:115
CglGMIParam::CleaningProcedure
CleaningProcedure
Definition: CglGMIParam.hpp:57
CglGMIParam::setEpsRelaxRel
void setEpsRelaxRel(double value)
Aliases.
Definition: CglGMIParam.hpp:133
CglGMIParam::setEpsCoeff
void setEpsCoeff(double value)
Epsilon for zeroing out coefficients.
Definition: CglGMIParam.hpp:88
CglGMIParam::CP_CGLLANDP1_SCALERHS
Definition: CglGMIParam.hpp:71
CglGMIParam::getMINVIOL
double getMINVIOL() const
Get the value of MINVIOL.
Definition: CglGMIParam.hpp:149
CglGMIParam::getEPS_RELAX_REL
double getEPS_RELAX_REL() const
Get value of EPS_RELAX_REL.
Definition: CglGMIParam.hpp:131
CglGMIParam::getMinViol
double getMinViol() const
Definition: CglGMIParam.hpp:152
CglGMIParam::CP_CGLLANDP1_SCALEMAX
Definition: CglGMIParam.hpp:69
CglGMIParam::setEpsRelaxAbs
void setEpsRelaxAbs(double value)
Aliases.
Definition: CglGMIParam.hpp:125
CglGMIParam::getEnforcescaling
bool getEnforcescaling() const
Definition: CglGMIParam.hpp:203
CglGMIParam::setCHECK_DUPLICATES
virtual void setCHECK_DUPLICATES(bool value)
Set the value of CHECK_DUPLICATES.
CglGMIParam::getEpsElim
double getEpsElim() const
Definition: CglGMIParam.hpp:118
CglGMIParam::CP_CGLLANDP1_INT
Definition: CglGMIParam.hpp:67
CglGMIParam::EPS_RELAX_ABS
double EPS_RELAX_ABS
Value added to the right hand side of each generated cut to relax it.
Definition: CglGMIParam.hpp:269
CglGMIParam::getEpsCoeff
double getEpsCoeff() const
Definition: CglGMIParam.hpp:89
CglGMIParam::getIntegralScaleCont
bool getIntegralScaleCont() const
Definition: CglGMIParam.hpp:195
CglParam::EPS
double EPS
Definition: CglParam.hpp:78
CglGMIParam::clone
virtual CglGMIParam * clone() const
Clone.
CglGMIParam::getEps
double getEps() const
Definition: CglGMIParam.hpp:85
CglGMIParam::getCheckDuplicates
bool getCheckDuplicates() const
Definition: CglGMIParam.hpp:179
CglGMIParam::getUseIntSlacks
int getUseIntSlacks() const
Definition: CglGMIParam.hpp:171
CglGMIParam::MINVIOL
double MINVIOL
Minimum violation for the current basic solution in a generated cut.
Definition: CglGMIParam.hpp:282
CglGMIParam::getENFORCE_SCALING
bool getENFORCE_SCALING() const
Get the value of ENFORCE_SCALING.
Definition: CglGMIParam.hpp:200
CglGMIParam::setUseIntSlacks
void setUseIntSlacks(bool value)
Aliases.
Definition: CglGMIParam.hpp:170
CglGMIParam::getINTEGRAL_SCALE_CONT
bool getINTEGRAL_SCALE_CONT() const
Get the value of INTEGRAL_SCALE_CONT.
Definition: CglGMIParam.hpp:192
CglGMIParam::setCleanProc
void setCleanProc(CleaningProcedure value)
Aliases.
Definition: CglGMIParam.hpp:186
CglGMIParam::setMAX_SUPPORT_REL
virtual void setMAX_SUPPORT_REL(double value)
Set the value of MAX_SUPPORT_REL, the factor contributing to the maximum support relative to the numb...
CglGMIParam::EPS_ELIM
double EPS_ELIM
Epsilon for value of coefficients when eliminating slack variables.
Definition: CglGMIParam.hpp:265
CglGMIParam::CP_INTEGRAL_CUTS
Definition: CglGMIParam.hpp:65
CglGMIParam::setEps
void setEps(double value)
Epsilon for comparing numbers.
Definition: CglGMIParam.hpp:84
CglGMIParam::getMAXDYN
double getMAXDYN() const
Get the value of MAXDYN.
Definition: CglGMIParam.hpp:140
CglGMIParam::getEPS_RELAX_ABS
double getEPS_RELAX_ABS() const
Get value of EPS_RELAX_ABS.
Definition: CglGMIParam.hpp:123
CglGMIParam::getInfinity
double getInfinity() const
Definition: CglGMIParam.hpp:81
CglGMIParam::setMaxSupportRel
void setMaxSupportRel(double value)
Aliases.
Definition: CglGMIParam.hpp:162
CglGMIParam::getMaxSupport
int getMaxSupport() const
Definition: CglGMIParam.hpp:93
CglGMIParam::INTEGRAL_SCALE_CONT
bool INTEGRAL_SCALE_CONT
Should we try to rescale cut coefficients on continuous variables so that they become integral...
Definition: CglGMIParam.hpp:301
CglGMIParam::getUSE_INTSLACKS
bool getUSE_INTSLACKS() const
Get the value of USE_INTSLACKS.
Definition: CglGMIParam.hpp:168
CglGMIParam::setCLEAN_PROC
virtual void setCLEAN_PROC(CleaningProcedure value)
Set the value of CLEAN_PROC.
CglGMIParam::setMaxSupport
void setMaxSupport(int value)
Maximum support of the cutting planes.
Definition: CglGMIParam.hpp:92
CglGMIParam::setINTEGRAL_SCALE_CONT
virtual void setINTEGRAL_SCALE_CONT(bool value)
Set the value of INTEGRAL_SCALE_CONT.
CglGMIParam::AWAY
double AWAY
Use row only if pivot variable should be integer but is more than AWAY from being integer...
Definition: CglGMIParam.hpp:261
CglParam::setINFINIT
virtual void setINFINIT(const double inf)
Set INFINIT.
CglGMIParam::setInfinity
void setInfinity(double value)
Aliases for parameter get/set method in the base class CglParam.
Definition: CglGMIParam.hpp:80
CglGMIParam::getMaxDyn
double getMaxDyn() const
Definition: CglGMIParam.hpp:143
CglGMIParam::CHECK_DUPLICATES
bool CHECK_DUPLICATES
Check for duplicates when adding the cut to the collection?
Definition: CglGMIParam.hpp:295