/home/coin/SVN-release/OS-2.4.1/Couenne/src/bound_tightening/CouenneAggrProbing.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneAggrProbing.hpp 490 2011-01-14 16:07:12Z pbelotti $
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 "CglCutGenerator.hpp"
00018 #include "OsiColCut.hpp"
00019 #include "OsiSolverInterface.hpp"
00020 #include "CouenneProblem.hpp"
00021 #include "BonCouenneSetup.hpp"
00022 
00023 namespace Couenne {
00024 
00035 
00036   class CouenneAggrProbing: public CglCutGenerator {
00037 
00038   public:
00039 
00041     CouenneAggrProbing(CouenneSetup* couenne,
00042                        const Ipopt::SmartPtr<Ipopt::OptionsList> options);
00043 
00045     CouenneAggrProbing(const CouenneAggrProbing& rhs);
00046 
00048     ~CouenneAggrProbing();
00049 
00051     CouenneAggrProbing *clone () const
00052     {return new CouenneAggrProbing (*this);}
00053 
00055     void generateCuts(const OsiSolverInterface & solver,
00056                       OsiCuts& cuts, 
00057                       const CglTreeInfo = CglTreeInfo ()) const;
00058 
00064     double probeVariable(int index, bool probeLower);
00065 
00068     double probeVariable2(int index, bool lower);
00069 
00071     static void registerOptions(Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
00072 
00074     void setMaxTime(double value);
00075     double getMaxTime() const;
00076 
00078     void setMaxFailedSteps(int value);
00079     int getMaxFailedSteps() const;
00080 
00082     void setMaxNodes(int value);
00083     int getMaxNodes() const;
00084 
00087     void setRestoreCutoff(bool value);
00088     bool getRestoreCutoff() const;
00089 
00090   protected:    
00091 
00093     CouenneSetup* couenne_;
00094 
00096     int numCols_;
00097 
00099     double maxTime_;
00100 
00102     int maxFailedSteps_;
00103 
00105     int maxNodes_;
00106 
00108     bool restoreCutoff_;
00109 
00111     double initCutoff_;
00112 
00113   };
00114 }
00115 
00116 #endif

Generated on Thu Nov 10 03:05:42 2011 by  doxygen 1.4.7