Cgl trunk
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$
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines