Cgl  0.60.7
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 
58  /* CglLandP procedure I */
60  /* CglLandP procedure II */
62  /* CglRedSplit procedure I */
64  /* Only integral cuts, i.e. cuts with integral coefficients */
66  /* CglLandP procedure I with integral scaling */
68  /* CglLandP procedure I with scaling of the max element to 1 if possible */
70  /* CglLandP procedure I with scaling of the rhs to 1 if possible */
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);}
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 
270 
275 
278  double MAXDYN;
279 
282  double MINVIOL;
283 
287 
290 
293 
296 
302 
309 
311 };
312 
313 #endif
CglGMIParam::setUSE_INTSLACKS
virtual void setUSE_INTSLACKS(bool value)
Set the value of USE_INTSLACKS.
CglGMIParam::getEpsElim
double getEpsElim() const
Definition: CglGMIParam.hpp:118
CglParam
Class collecting parameters for all cut generators.
Definition: CglParam.hpp:22
CglGMIParam::CP_INTEGRAL_CUTS
@ CP_INTEGRAL_CUTS
Definition: CglGMIParam.hpp:65
CglParam::INFINIT
double INFINIT
Definition: CglParam.hpp:75
CglGMIParam::setEpsElim
void setEpsElim(double value)
Aliases.
Definition: CglGMIParam.hpp:117
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...
CglGMIParam::setENFORCE_SCALING
virtual void setENFORCE_SCALING(bool value)
Set the value of ENFORCE_SCALING.
CglGMIParam::getInfinity
double getInfinity() const
Definition: CglGMIParam.hpp:81
CglGMIParam::setMaxSupportAbs
void setMaxSupportAbs(int value)
Alias for consistency with our naming scheme.
Definition: CglGMIParam.hpp:95
CglGMIParam::getMaxSupport
int getMaxSupport() const
Definition: CglGMIParam.hpp:93
CglGMIParam::getINTEGRAL_SCALE_CONT
bool getINTEGRAL_SCALE_CONT() const
Get the value of INTEGRAL_SCALE_CONT.
Definition: CglGMIParam.hpp:192
CglGMIParam::getEps
double getEps() const
Definition: CglGMIParam.hpp:85
CglGMIParam::setEnforceScaling
void setEnforceScaling(bool value)
Aliases.
Definition: CglGMIParam.hpp:202
CglGMIParam::setAWAY
void setAWAY(double value)
Aliases.
Definition: CglGMIParam.hpp:107
CglGMIParam::clone
virtual CglGMIParam * clone() const
Clone.
CglGMIParam::getMINVIOL
double getMINVIOL() const
Get the value of MINVIOL.
Definition: CglGMIParam.hpp:149
CglGMIParam::setEPS_RELAX_ABS
virtual void setEPS_RELAX_ABS(double value)
Set EPS_RELAX_ABS.
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::USE_INTSLACKS
bool USE_INTSLACKS
Use integer slacks to generate cuts if USE_INTSLACKS = 1.
Definition: CglGMIParam.hpp:292
CglGMIParam::CP_CGLLANDP1
@ CP_CGLLANDP1
Definition: CglGMIParam.hpp:59
CglGMIParam::setEPS_RELAX_REL
virtual void setEPS_RELAX_REL(double value)
Set EPS_RELAX_REL.
CglGMIParam::getCLEAN_PROC
CleaningProcedure getCLEAN_PROC() const
Get the value of CLEAN_PROC.
Definition: CglGMIParam.hpp:184
CglGMIParam::getENFORCE_SCALING
bool getENFORCE_SCALING() const
Get the value of ENFORCE_SCALING.
Definition: CglGMIParam.hpp:200
CglGMIParam::CP_CGLREDSPLIT
@ CP_CGLREDSPLIT
Definition: CglGMIParam.hpp:63
CglGMIParam::setAway
virtual void setAway(double value)
Set AWAY, the minimum distance from being integer used for selecting rows for cut generation; all row...
CglParam::setEPS_COEFF
virtual void setEPS_COEFF(const double eps_c)
Set EPS_COEFF.
CglGMIParam::~CglGMIParam
virtual ~CglGMIParam()
Destructor.
CglGMIParam::getCleaningProcedure
CleaningProcedure getCleaningProcedure() const
Definition: CglGMIParam.hpp:187
CglGMIParam::getMAXDYN
double getMAXDYN() const
Get the value of MAXDYN.
Definition: CglGMIParam.hpp:140
CglGMIParam::CLEAN_PROC
CleaningProcedure CLEAN_PROC
Which cleaning procedure should be used?
Definition: CglGMIParam.hpp:289
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::setEpsRelaxAbs
void setEpsRelaxAbs(double value)
Aliases.
Definition: CglGMIParam.hpp:125
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::setMAXDYN
virtual void setMAXDYN(double value)
CglGMIParam::CP_CGLLANDP2
@ CP_CGLLANDP2
Definition: CglGMIParam.hpp:61
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::CP_CGLLANDP1_SCALEMAX
@ CP_CGLLANDP1_SCALEMAX
Definition: CglGMIParam.hpp:69
CglGMIParam::getEPS_RELAX_ABS
double getEPS_RELAX_ABS() const
Get value of EPS_RELAX_ABS.
Definition: CglGMIParam.hpp:123
CglGMIParam::getEPS_RELAX_REL
double getEPS_RELAX_REL() const
Get value of EPS_RELAX_REL.
Definition: CglGMIParam.hpp:131
CglGMIParam::getIntegralScaleCont
bool getIntegralScaleCont() const
Definition: CglGMIParam.hpp:195
CglParam.hpp
CglGMIParam::CP_CGLLANDP1_INT
@ CP_CGLLANDP1_INT
Definition: CglGMIParam.hpp:67
CglGMIParam::setEpsCoeff
void setEpsCoeff(double value)
Epsilon for zeroing out coefficients.
Definition: CglGMIParam.hpp:88
CglGMIParam::getEpsCoeff
double getEpsCoeff() const
Definition: CglGMIParam.hpp:89
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::MAXDYN
double MAXDYN
Maximum ratio between largest and smallest non zero coefficients in a cut.
Definition: CglGMIParam.hpp:278
CglGMIParam::getMAX_SUPPORT_REL
double getMAX_SUPPORT_REL() const
Get the value of MINVIOL.
Definition: CglGMIParam.hpp:160
CglParam::EPS
double EPS
Definition: CglParam.hpp:78
CglGMIParam::CleaningProcedure
CleaningProcedure
Definition: CglGMIParam.hpp:57
CglGMIParam::setEpsRelaxRel
void setEpsRelaxRel(double value)
Aliases.
Definition: CglGMIParam.hpp:133
CglGMIParam::MAX_SUPPORT_REL
double MAX_SUPPORT_REL
Maximum support relative to number of columns.
Definition: CglGMIParam.hpp:286
CglGMIParam::getMaxSupportRel
double getMaxSupportRel() const
Definition: CglGMIParam.hpp:163
CglGMIParam::setCleanProc
void setCleanProc(CleaningProcedure value)
Aliases.
Definition: CglGMIParam.hpp:186
CglGMIParam::operator=
virtual CglGMIParam & operator=(const CglGMIParam &rhs)
Assignment operator.
CglGMIParam::getCheckDuplicates
bool getCheckDuplicates() const
Definition: CglGMIParam.hpp:179
CglGMIParam::setMaxDyn
void setMaxDyn(double value)
Aliases.
Definition: CglGMIParam.hpp:142
CglGMIParam::getUSE_INTSLACKS
bool getUSE_INTSLACKS() const
Get the value of USE_INTSLACKS.
Definition: CglGMIParam.hpp:168
CglGMIParam::getEnforcescaling
bool getEnforcescaling() const
Definition: CglGMIParam.hpp:203
CglParam::setMAX_SUPPORT
virtual void setMAX_SUPPORT(const int max_s)
Set MAX_SUPPORT.
CglGMIParam::getEPS_ELIM
double getEPS_ELIM() const
Get the value of EPS_ELIM.
Definition: CglGMIParam.hpp:115
CglParam::setEPS
virtual void setEPS(const double eps)
Set EPS.
CglGMIParam::setIntegralScaleCont
void setIntegralScaleCont(bool value)
Aliases.
Definition: CglGMIParam.hpp:194
CglGMIParam::getEpsRelaxAbs
double getEpsRelaxAbs() const
Definition: CglGMIParam.hpp:126
CglGMIParam
Class collecting parameters for the GMI cut generator.
Definition: CglGMIParam.hpp:52
CglParam::EPS_COEFF
double EPS_COEFF
Definition: CglParam.hpp:82
CglGMIParam::getAway
double getAway() const
Get value of away.
Definition: CglGMIParam.hpp:105
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::setMaxSupportRel
void setMaxSupportRel(double value)
Aliases.
Definition: CglGMIParam.hpp:162
CglGMIParam::setMaxSupport
void setMaxSupport(int value)
Maximum support of the cutting planes.
Definition: CglGMIParam.hpp:92
CglGMIParam::getEpsRelaxRel
double getEpsRelaxRel() const
Definition: CglGMIParam.hpp:134
CglGMIParam::getMAX_SUPPORT_ABS
int getMAX_SUPPORT_ABS() const
Definition: CglGMIParam.hpp:97
CglGMIParam::EPS_ELIM
double EPS_ELIM
Epsilon for value of coefficients when eliminating slack variables.
Definition: CglGMIParam.hpp:265
CglGMIParam::setCHECK_DUPLICATES
virtual void setCHECK_DUPLICATES(bool value)
Set the value of CHECK_DUPLICATES.
CglParam::setINFINIT
virtual void setINFINIT(const double inf)
Set INFINIT.
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
CglGMIParam::getMaxSupportAbs
int getMaxSupportAbs() const
Definition: CglGMIParam.hpp:96
CglGMIParam::getMinViol
double getMinViol() const
Definition: CglGMIParam.hpp:152
CglGMIParam::CP_CGLLANDP1_SCALERHS
@ CP_CGLLANDP1_SCALERHS
Definition: CglGMIParam.hpp:71
CglGMIParam::getMaxDyn
double getMaxDyn() const
Definition: CglGMIParam.hpp:143
CglGMIParam::setInfinity
void setInfinity(double value)
Aliases for parameter get/set method in the base class CglParam.
Definition: CglGMIParam.hpp:80
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::setCheckDuplicates
void setCheckDuplicates(bool value)
Aliases.
Definition: CglGMIParam.hpp:178
CglGMIParam::setUseIntSlacks
void setUseIntSlacks(bool value)
Aliases.
Definition: CglGMIParam.hpp:170
CglGMIParam::setEps
void setEps(double value)
Epsilon for comparing numbers.
Definition: CglGMIParam.hpp:84
CglGMIParam::getAWAY
double getAWAY() const
Definition: CglGMIParam.hpp:108
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::CHECK_DUPLICATES
bool CHECK_DUPLICATES
Check for duplicates when adding the cut to the collection?
Definition: CglGMIParam.hpp:295
CglGMIParam::setCLEAN_PROC
virtual void setCLEAN_PROC(CleaningProcedure value)
Set the value of CLEAN_PROC.
CglGMIParam::setINTEGRAL_SCALE_CONT
virtual void setINTEGRAL_SCALE_CONT(bool value)
Set the value of INTEGRAL_SCALE_CONT.
CglGMIParam::getCHECK_DUPLICATES
bool getCHECK_DUPLICATES() const
Get the value of CHECK_DUPLICATES.
Definition: CglGMIParam.hpp:176
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