- Main Page
- Namespaces
- Classes
- Files
- Directories

- Search for |

- File List
- File Members

# CglRedSplitParam.hpp

Go to the documentation of this file.

    00001 // Name:     CglRedSplitParam.hpp
    00002 // Author:   Francois Margot
    00003 //           Tepper School of Business
    00004 //           Carnegie Mellon University, Pittsburgh, PA 15213
    00005 //           email: fmargot@andrew.cmu.edu
    00006 // Date:     11/24/06
    00007 //
    00008 // $Id: CglRedSplitParam.hpp 944 2011-01-04 23:26:07Z lou $
    00009 //-----------------------------------------------------------------------------
    00010 // Copyright (C) 2006, Francois Margot and others.  All Rights Reserved.
    00011 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00012
    00013 #ifndef CglRedSplitParam_H
    00014 #define CglRedSplitParam_H
    00015
    00016 #include "CglParam.hpp"
    00017
    00018
    00021
    00060
    00061 class CglRedSplitParam : public CglParam {
    00062
    00063 public:
    00064
    00071   virtual void setAway(const double value);
    00073   inline double getAway() const {return away_;}
    00074
    00078   virtual void setLUB(const double value);
    00080   inline double getLUB() const {return LUB;}
    00081
    00085   void setEPS_ELIM(const double value);
    00087   double getEPS_ELIM() const {return EPS_ELIM;}
    00088
    00090   virtual void setEPS_RELAX_ABS(const double eps_ra);
    00092   inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
    00093
    00095   virtual void setEPS_RELAX_REL(const double eps_rr);
    00097   inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
    00098
    00099   // Set the maximum ratio between largest and smallest non zero
    00100   // coefficients in a cut. Default: 1e8.
    00101   virtual void setMAXDYN(double value);
    00103   inline double getMAXDYN() const {return MAXDYN_LUB;}
    00104
    00105   // Set the maximum ratio between largest and smallest non zero
    00106   // coefficient in a cut involving structural variables with
    00107   // lower or upper bound in absolute value larger than LUB.
    00108   // Should logically be larger or equal to MAXDYN. Default: 1e13.
    00109   virtual void setMAXDYN_LUB(double value);
    00111   inline double getMAXDYN_LUB() const {return MAXDYN_LUB;}
    00112
    00116   virtual void setEPS_COEFF_LUB(const double value);
    00118   inline double getEPS_COEFF_LUB() const {return EPS_COEFF_LUB;}
    00119
    00122   virtual void setMINVIOL(double value);
    00124   inline double getMINVIOL() const {return MINVIOL;}
    00125
    00127   virtual void setUSE_INTSLACKS(int value);
    00129   inline int getUSE_INTSLACKS() const {return USE_INTSLACKS;}
    00130
    00132   virtual void setUSE_CG2(int value);
    00134   inline int getUSE_CG2() const {return USE_CG2;}
    00135
    00138   virtual void setNormIsZero(const double value);
    00140   inline double getNormIsZero() const {return normIsZero;}
    00141
    00144   virtual void setMinReduc(const double value);
    00146   inline double getMinReduc() const {return minReduc;}
    00147
    00153   virtual void setMaxTab(const double value);
    00155   inline double getMaxTab() const {return maxTab_;}
    00157
    00160
    00161   CglRedSplitParam(const double lub = 1000.0,
    00162                    const double eps_elim = 1e-12,
    00163                    const double eps_relax_abs = 1e-8,
    00164                    const double eps_relax_rel = 0.0,
    00165                    const double max_dyn = 1e8,
    00166                    const double max_dyn_lub = 1e13,
    00167                    const double eps_coeff_lub = 1e-13,
    00168                    const double min_viol = 1e-7,
    00169                    const int use_int_slacks = 0,
    00170                    const int use_cg2 = 0,
    00171                    const double norm_zero = 1e-5,
    00172                    const double min_reduc = 0.05,
    00173                    const double away = 0.05,
    00174                    const double max_tab = 1e7);
    00175
    00177   CglRedSplitParam(const CglParam &source,
    00178                    const double lub = 1000.0,
    00179                    const double eps_elim = 1e-12,
    00180                    const double eps_relax_abs = 1e-8,
    00181                    const double eps_relax_rel = 0.0,
    00182                    const double max_dyn = 1e8,
    00183                    const double max_dyn_lub = 1e13,
    00184                    const double eps_coeff_lub = 1e-13,
    00185                    const double min_viol = 1e-7,
    00186                    const int use_int_slacks = 0,
    00187                    const int use_cg2 = 0,
    00188                    const double norm_zero = 1e-5,
    00189                    const double min_reduc = 0.05,
    00190                    const double away = 0.05,
    00191                    const double max_tab = 1e7);
    00192
    00194   CglRedSplitParam(const CglRedSplitParam &source);
    00195
    00197   virtual CglRedSplitParam* clone() const;
    00198
    00200   virtual CglRedSplitParam& operator=(const CglRedSplitParam &rhs);
    00201
    00203   virtual ~CglRedSplitParam();
    00205
    00206 protected:
    00207
    00210
    00213   double LUB;
    00214
    00217    double EPS_ELIM;
    00218
    00221   double EPS_RELAX_ABS;
    00222
    00226   double EPS_RELAX_REL;
    00227
    00228   // Maximum ratio between largest and smallest non zero
    00229   // coefficients in a cut. Default: 1e8.
    00230   double MAXDYN;
    00231
    00232   // Maximum ratio between largest and smallest non zero
    00233   // coefficients in a cut involving structural variables with
    00234   // lower or upper bound in absolute value larger than LUB.
    00235   // Should logically be larger or equal to MAXDYN. Default: 1e13.
    00236   double MAXDYN_LUB;
    00237
    00240   double EPS_COEFF_LUB;
    00241
    00244   double MINVIOL;
    00245
    00247   int USE_INTSLACKS;
    00248
    00251   int USE_CG2;
    00252
    00255   double normIsZero;
    00256
    00259   double minReduc;
    00260
    00263   double away_;
    00264
    00267   double maxTab_;
    00268
    00270 };
    00271
    00272 #endif