/home/coin/SVN-release/OS-2.4.0/Couenne/src/bound_tightening/CouenneFixPoint.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneFixPoint.hpp 490 2011-01-14 16:07:12Z pbelotti $
00002  *
00003  * Name:    CouenneFixPoint.hpp
00004  * Author:  Pietro Belotti
00005  * Purpose: A bound tightener based on fixpoint computation
00006  *
00007  * (C) Pietro Belotti, 2010.
00008  * This file is licensed under the Eclipse Public License (EPL)
00009  */
00010 
00011 #ifndef COUENNEFIXPOINT_HPP
00012 #define COUENNEFIXPOINT_HPP
00013 
00014 #include "BonRegisteredOptions.hpp"
00015 
00016 #include "BonOaDecBase.hpp"
00017 #include "CglCutGenerator.hpp"
00018 #include "OsiRowCut.hpp"
00019 #include "OsiSolverInterface.hpp"
00020 
00021 namespace Couenne {
00022 
00023   class CouenneProblem;
00024 
00026 
00027   class CouenneFixPoint: public CglCutGenerator {
00028 
00029   public:
00030 
00032     CouenneFixPoint (CouenneProblem *,
00033                      const Ipopt::SmartPtr<Ipopt::OptionsList>);
00034 
00036     CouenneFixPoint  (const CouenneFixPoint &);
00037 
00039     ~CouenneFixPoint ();
00040 
00042     CouenneFixPoint *clone () const
00043     {return new CouenneFixPoint (*this);}
00044 
00046     void generateCuts (const OsiSolverInterface &, 
00047                        OsiCuts &, 
00048                        const CglTreeInfo = CglTreeInfo ()) const;
00049 
00051     static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
00052 
00053   protected:
00054 
00056     bool extendedModel_;
00057 
00059     CouenneProblem *problem_;
00060 
00062     mutable bool firstCall_;
00063 
00065     mutable double CPUtime_;
00066 
00068     mutable int nRuns_;
00069 
00071     mutable int nTightened_;
00072 
00074     void createRow (int, int,
00075                     int,
00076                     OsiSolverInterface *,
00077                     const int    *,
00078                     const double *,
00079                     const double,
00080                     const int,
00081                     bool,
00082                     int, int) const;
00083   };
00084 }
00085 
00086 #endif

Generated on Thu Sep 22 03:05:55 2011 by  doxygen 1.4.7