/home/coin/SVN-release/CoinAll-1.1.0/Cgl/src/CglRedSplit/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 // Copyright (C) 2006, Francois Margot and others.  All Rights Reserved.
00009 
00010 #ifndef CglRedSplitParam_H
00011 #define CglRedSplitParam_H
00012 
00013 #include "CglParam.hpp"
00014 
00015 
00018 
00057 
00058 class CglRedSplitParam : public CglParam {
00059 
00060 public:
00061 
00068   virtual void setAway(const double value);
00070   inline double getAway() const {return away_;}
00071 
00075   virtual void setLUB(const double value);
00077   inline double getLUB() const {return LUB;}
00078 
00082   void setEPS_ELIM(const double value);
00084   double getEPS_ELIM() const {return EPS_ELIM;}
00085   
00087   virtual void setEPS_RELAX_ABS(const double eps_ra);
00089   inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
00090 
00092   virtual void setEPS_RELAX_REL(const double eps_rr);
00094   inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
00095 
00096   // Set the maximum ratio between largest and smallest non zero 
00097   // coefficients in a cut. Default: 1e8.
00098   virtual void setMAXDYN(double value);
00100   inline double getMAXDYN() const {return MAXDYN_LUB;}
00101 
00102   // Set the maximum ratio between largest and smallest non zero 
00103   // coefficient in a cut involving structural variables with
00104   // lower or upper bound in absolute value larger than LUB.
00105   // Should logically be larger or equal to MAXDYN. Default: 1e13.
00106   virtual void setMAXDYN_LUB(double value);
00108   inline double getMAXDYN_LUB() const {return MAXDYN_LUB;}
00109 
00113   virtual void setEPS_COEFF_LUB(const double value);
00115   inline double getEPS_COEFF_LUB() const {return EPS_COEFF_LUB;}
00116 
00119   virtual void setMINVIOL(double value);
00121   inline double getMINVIOL() const {return MINVIOL;}
00122 
00124   virtual void setUSE_INTSLACKS(int value);
00126   inline int getUSE_INTSLACKS() const {return USE_INTSLACKS;}
00127 
00129   virtual void setUSE_CG2(int value);
00131   inline int getUSE_CG2() const {return USE_CG2;}
00132 
00135   virtual void setNormIsZero(const double value);
00137   inline double getNormIsZero() const {return normIsZero;}
00138 
00141   virtual void setMinReduc(const double value);
00143   inline double getMinReduc() const {return minReduc;}
00144 
00150   virtual void setMaxTab(const double value);
00152   inline double getMaxTab() const {return maxTab_;}
00154 
00157 
00158   CglRedSplitParam(const double lub = 1000.0,
00159                    const double eps_elim = 1e-12,
00160                    const double eps_relax_abs = 1e-8,
00161                    const double eps_relax_rel = 0.0,
00162                    const double max_dyn = 1e8,
00163                    const double max_dyn_lub = 1e13,
00164                    const double eps_coeff_lub = 1e-13,
00165                    const double min_viol = 1e-7,
00166                    const int use_int_slacks = 0,
00167                    const int use_cg2 = 0,
00168                    const double norm_zero = 1e-5,
00169                    const double min_reduc = 0.05,
00170                    const double away = 0.05,
00171                    const double max_tab = 1e7);
00172 
00174   CglRedSplitParam(const CglParam &source,
00175                    const double lub = 1000.0,
00176                    const double eps_elim = 1e-12,
00177                    const double eps_relax_abs = 1e-8,
00178                    const double eps_relax_rel = 0.0,
00179                    const double max_dyn = 1e8,
00180                    const double max_dyn_lub = 1e13,
00181                    const double eps_coeff_lub = 1e-13,
00182                    const double min_viol = 1e-7,
00183                    const int use_int_slacks = 0,
00184                    const int use_cg2 = 0,
00185                    const double norm_zero = 1e-5,
00186                    const double min_reduc = 0.05,
00187                    const double away = 0.05,
00188                    const double max_tab = 1e7);
00189 
00191   CglRedSplitParam(const CglRedSplitParam &source);
00192 
00194   virtual CglRedSplitParam* clone() const;
00195 
00197   virtual CglRedSplitParam& operator=(const CglRedSplitParam &rhs);
00198 
00200   virtual ~CglRedSplitParam();
00202 
00203 protected:
00204 
00207 
00210   double LUB;
00211 
00214    double EPS_ELIM;
00215 
00218   double EPS_RELAX_ABS;
00219 
00223   double EPS_RELAX_REL;
00224 
00225   // Maximum ratio between largest and smallest non zero 
00226   // coefficients in a cut. Default: 1e8.
00227   double MAXDYN;
00228 
00229   // Maximum ratio between largest and smallest non zero 
00230   // coefficients in a cut involving structural variables with
00231   // lower or upper bound in absolute value larger than LUB.
00232   // Should logically be larger or equal to MAXDYN. Default: 1e13.
00233   double MAXDYN_LUB;
00234 
00237   double EPS_COEFF_LUB;
00238 
00241   double MINVIOL;
00242 
00244   int USE_INTSLACKS;
00245 
00248   int USE_CG2;
00249 
00252   double normIsZero;
00253 
00256   double minReduc;
00257 
00260   double away_;
00261   
00264   double maxTab_;
00265 
00267 };
00268 
00269 #endif

Generated on Sun Nov 14 14:06:31 2010 for Coin-All by  doxygen 1.4.7