CouenneFixPoint.hpp

Go to the documentation of this file.
00001 /* $Id: CouenneFixPoint.hpp 946 2013-04-15 22:20:38Z stefan $
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 "CglConfig.h"
00018 #include "CglCutGenerator.hpp"
00019 #include "OsiRowCut.hpp"
00020 #include "OsiSolverInterface.hpp"
00021 
00022 namespace Couenne {
00023 
00024   class CouenneProblem;
00025 
00027 
00028   class CouenneFixPoint: public CglCutGenerator {
00029 
00030   public:
00031 
00033     CouenneFixPoint (CouenneProblem *,
00034                      const Ipopt::SmartPtr<Ipopt::OptionsList>);
00035 
00037     CouenneFixPoint  (const CouenneFixPoint &);
00038 
00040     ~CouenneFixPoint ();
00041 
00043     CouenneFixPoint *clone () const
00044     {return new CouenneFixPoint (*this);}
00045 
00047     void generateCuts (const OsiSolverInterface &, 
00048                        OsiCuts &, 
00049                        const CglTreeInfo = CglTreeInfo ())
00050 #if CGL_VERSION_MAJOR == 0 && CGL_VERSION_MINOR <= 57
00051     const
00052 #endif
00053     ;
00054 
00056     static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
00057 
00058   protected:
00059 
00061     bool extendedModel_;
00062 
00064     CouenneProblem *problem_;
00065 
00067     mutable bool firstCall_;
00068 
00070     mutable double CPUtime_;
00071 
00073     mutable int nRuns_;
00074 
00076     mutable int nTightened_;
00077 
00079     void createRow (int, int,
00080                     int,
00081                     OsiSolverInterface *,
00082                     const int    *,
00083                     const double *,
00084                     const double,
00085                     const int,
00086                     bool,
00087                     int, int) const;
00088   };
00089 }
00090 
00091 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 13 May 2015 for Couenne by  doxygen 1.6.1