CouenneAggrProbing.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneAggrProbing.hpp 945 2013-04-06 20:25:21Z stefan $
00002  *
00003  * Name:    CouenneAggrProbing.hpp
00004  * Author:  Giacomo Nannicini
00005  * Purpose: A bound tightener based on aggressive probing
00006  *
00007  * (C) Giacomo Nannicini, 2010.
00008  * This file is licensed under the Eclipse Public License (EPL)
00009  */
00010 
00011 #ifndef COUENNEAGGRPROBING_HPP
00012 #define COUENNEAGGRPROBING_HPP
00013 
00014 #include "BonRegisteredOptions.hpp"
00015 
00016 #include "BonOaDecBase.hpp"
00017 #include "CglConfig.h"
00018 #include "CglCutGenerator.hpp"
00019 #include "OsiColCut.hpp"
00020 #include "OsiSolverInterface.hpp"
00021 #include "CouenneProblem.hpp"
00022 #include "BonCouenneSetup.hpp"
00023 
00024 namespace Couenne {
00025 
00036 
00037   class CouenneAggrProbing: public CglCutGenerator {
00038 
00039   public:
00040 
00042     CouenneAggrProbing(CouenneSetup* couenne,
00043                        const Ipopt::SmartPtr<Ipopt::OptionsList> options);
00044 
00046     CouenneAggrProbing(const CouenneAggrProbing& rhs);
00047 
00049     ~CouenneAggrProbing();
00050 
00052     CouenneAggrProbing *clone () const
00053     {return new CouenneAggrProbing (*this);}
00054 
00056     void generateCuts(const OsiSolverInterface & solver,
00057                       OsiCuts& cuts, 
00058                       const CglTreeInfo = CglTreeInfo ())
00059 #if CGL_VERSION_MAJOR == 0 && CGL_VERSION_MINOR <= 57
00060     const
00061 #endif
00062     { }
00063 
00069     double probeVariable(int index, bool probeLower);
00070 
00073     double probeVariable2(int index, bool lower);
00074 
00076     static void registerOptions(Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
00077 
00079     void setMaxTime(double value);
00080     double getMaxTime() const;
00081 
00083     void setMaxFailedSteps(int value);
00084     int getMaxFailedSteps() const;
00085 
00087     void setMaxNodes(int value);
00088     int getMaxNodes() const;
00089 
00092     void setRestoreCutoff(bool value);
00093     bool getRestoreCutoff() const;
00094 
00095   protected:    
00096 
00098     CouenneSetup* couenne_;
00099 
00101     int numCols_;
00102 
00104     double maxTime_;
00105 
00107     int maxFailedSteps_;
00108 
00110     int maxNodes_;
00111 
00113     bool restoreCutoff_;
00114 
00116     double initCutoff_;
00117 
00118   };
00119 }
00120 
00121 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 17 Feb 2015 for Couenne by  doxygen 1.6.1