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

- File List
- File Members

# /home/coin/svn-release/Alps-1.4.8/Cgl/src/CglGMI/CglGMIParam.hpp

Go to the documentation of this file.

    00001 // Name:     CglGMIParam.hpp
    00002 // Author:   Giacomo Nannicini
    00003 //           Singapore University of Technology and Design
    00004 //           email: nannicini@sutd.edu.sg
    00005 //           based on CglRedSplitParam.hpp by Francois Margot
    00006 // Date:     11/17/09
    00007 //-----------------------------------------------------------------------------
    00008 // Copyright (C) 2009, Giacomo Nannicini and others.  All Rights Reserved.
    00009
    00010 #ifndef CglGMIParam_H
    00011 #define CglGMIParam_H
    00012
    00013 #include "CglParam.hpp"
    00014
    00015
    00018
    00051
    00052 class CglGMIParam : public CglParam {
    00053
    00054 public:
    00055
    00057   enum CleaningProcedure{
    00058     /* CglLandP procedure I */
    00059     CP_CGLLANDP1,
    00060     /* CglLandP procedure II */
    00061     CP_CGLLANDP2,
    00062     /* CglRedSplit procedure I */
    00063     CP_CGLREDSPLIT,
    00064     /* Only integral cuts, i.e. cuts with integral coefficients */
    00065     CP_INTEGRAL_CUTS,
    00066     /* CglLandP procedure I with integral scaling */
    00067     CP_CGLLANDP1_INT,
    00068     /* CglLandP procedure I with scaling of the max element to 1 if possible */
    00069     CP_CGLLANDP1_SCALEMAX,
    00070     /* CglLandP procedure I with scaling of the rhs to 1 if possible */
    00071     CP_CGLLANDP1_SCALERHS
    00072   };
    00073
    00080   inline void setInfinity(double value) {setINFINIT(value);}
    00081   inline double getInfinity() const {return INFINIT;}
    00082
    00084   inline void setEps(double value) {setEPS(value);}
    00085   inline double getEps() const {return EPS;}
    00086
    00088   inline void setEpsCoeff(double value) {setEPS_COEFF(value);}
    00089   inline double getEpsCoeff() const {return EPS_COEFF;}
    00090
    00092   inline void setMaxSupport(int value) {setMAX_SUPPORT(value);}
    00093   inline int getMaxSupport() const {return MAX_SUPPORT;}
    00095   inline void setMaxSupportAbs(int value) {setMAX_SUPPORT(value);}
    00096   inline int getMaxSupportAbs() const {return MAX_SUPPORT;}
    00097   inline int getMAX_SUPPORT_ABS() const {return MAX_SUPPORT;}
    00098
    00103   virtual void setAway(double value);
    00105   inline double getAway() const {return AWAY;}
    00107   inline void setAWAY(double value) {setAway(value);}
    00108   inline double getAWAY() const {return AWAY;}
    00109
    00113   virtual void setEPS_ELIM(double value);
    00115   inline double getEPS_ELIM() const {return EPS_ELIM;}
    00117   inline void setEpsElim(double value) {setEPS_ELIM(value);}
    00118   inline double getEpsElim() const {return EPS_ELIM;}
    00119
    00121   virtual void setEPS_RELAX_ABS(double value);
    00123   inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
    00125   inline void setEpsRelaxAbs(double value) {setEPS_RELAX_ABS(value);}
    00126   inline double getEpsRelaxAbs() const {return EPS_RELAX_ABS;}
    00127
    00129   virtual void setEPS_RELAX_REL(double value);
    00131   inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
    00133   inline void setEpsRelaxRel(double value) {setEPS_RELAX_REL(value);}
    00134   inline double getEpsRelaxRel() const {return EPS_RELAX_REL;}
    00135
    00136   // Set the maximum ratio between largest and smallest non zero
    00137   // coefficients in a cut. Default: 1e6.
    00138   virtual void setMAXDYN(double value);
    00140   inline double getMAXDYN() const {return MAXDYN;}
    00142   inline void setMaxDyn(double value) {setMAXDYN(value);}
    00143   inline double getMaxDyn() const {return MAXDYN;}
    00144
    00147   virtual void setMINVIOL(double value);
    00149   inline double getMINVIOL() const {return MINVIOL;}
    00151   inline void setMinViol(double value) {setMINVIOL(value);}
    00152   inline double getMinViol() const {return MINVIOL;}
    00153
    00158   virtual void setMAX_SUPPORT_REL(double value);
    00160   inline double getMAX_SUPPORT_REL() const {return MAX_SUPPORT_REL;}
    00162   inline void setMaxSupportRel(double value) {setMAX_SUPPORT_REL(value);}
    00163   inline double getMaxSupportRel() const {return MAX_SUPPORT_REL;}
    00164
    00166   virtual void setUSE_INTSLACKS(bool value);
    00168   inline bool getUSE_INTSLACKS() const {return USE_INTSLACKS;}
    00170   inline void setUseIntSlacks(bool value) {setUSE_INTSLACKS(value);}
    00171   inline int getUseIntSlacks() const {return USE_INTSLACKS;}
    00172
    00174   virtual void setCHECK_DUPLICATES(bool value);
    00176   inline bool getCHECK_DUPLICATES() const {return CHECK_DUPLICATES;}
    00178   inline void setCheckDuplicates(bool value) {setCHECK_DUPLICATES(value);}
    00179   inline bool getCheckDuplicates() const {return CHECK_DUPLICATES;}
    00180
    00182   virtual void setCLEAN_PROC(CleaningProcedure value);
    00184   inline CleaningProcedure getCLEAN_PROC() const {return CLEAN_PROC;}
    00186   inline void setCleanProc(CleaningProcedure value) {setCLEAN_PROC(value);}
    00187   inline CleaningProcedure getCleaningProcedure() const {return CLEAN_PROC;}
    00188
    00190   virtual void setINTEGRAL_SCALE_CONT(bool value);
    00192   inline bool getINTEGRAL_SCALE_CONT() const {return INTEGRAL_SCALE_CONT;}
    00194   inline void setIntegralScaleCont(bool value) {setINTEGRAL_SCALE_CONT(value);}
    00195   inline bool getIntegralScaleCont() const {return INTEGRAL_SCALE_CONT;}
    00196
    00198   virtual void setENFORCE_SCALING(bool value);
    00200   inline bool getENFORCE_SCALING() const {return ENFORCE_SCALING;}
    00202   inline void setEnforceScaling(bool value) {setENFORCE_SCALING(value);}
    00203   inline bool getEnforcescaling() const {return ENFORCE_SCALING;}
    00204
    00206
    00209
    00210   CglGMIParam(double eps = 1e-12,
    00211               double away = 0.005,
    00212               double eps_coeff = 1e-11,
    00213               double eps_elim = 0,
    00214               double eps_relax_abs = 1e-11,
    00215               double eps_relax_rel = 1e-13,
    00216               double max_dyn = 1e6,
    00217               double min_viol = 1e-4,
    00218               int max_supp_abs = 1000,
    00219               double max_supp_rel = 0.1,
    00220               CleaningProcedure clean_proc = CP_CGLLANDP1,
    00221               bool use_int_slacks = false,
    00222               bool check_duplicates = false,
    00223               bool integral_scale_cont = false,
    00224               bool enforce_scaling = true);
    00225
    00227   CglGMIParam(CglParam &source,
    00228               double away = 0.005,
    00229               double eps_elim = 1e-12,
    00230               double eps_relax_abs = 1e-11,
    00231               double eps_relax_rel = 1e-13,
    00232               double max_dyn = 1e6,
    00233               double min_viol = 1e-4,
    00234               double max_supp_rel = 0.1,
    00235               CleaningProcedure clean_proc = CP_CGLLANDP1,
    00236               bool use_int_slacks = false,
    00237               bool check_duplicates = false,
    00238               bool integral_scale_cont = false,
    00239               bool enforce_scaling = true);
    00240
    00242   CglGMIParam(const CglGMIParam &source);
    00243
    00245   virtual CglGMIParam* clone() const;
    00246
    00248   virtual CglGMIParam& operator=(const CglGMIParam &rhs);
    00249
    00251   virtual ~CglGMIParam();
    00253
    00254 protected:
    00255
    00258
    00261   double AWAY;
    00262
    00265   double EPS_ELIM;
    00266
    00269   double EPS_RELAX_ABS;
    00270
    00274   double EPS_RELAX_REL;
    00275
    00278   double MAXDYN;
    00279
    00282   double MINVIOL;
    00283
    00286   double MAX_SUPPORT_REL;
    00287
    00289   CleaningProcedure CLEAN_PROC;
    00290
    00292   bool USE_INTSLACKS;
    00293
    00295   bool CHECK_DUPLICATES;
    00296
    00301   bool INTEGRAL_SCALE_CONT;
    00302
    00308   bool ENFORCE_SCALING;
    00309
    00311 };
    00312
    00313 #endif