# CouenneFixPoint.hpp

Go to the documentation of this file.

    00001 /* $Id: CouenneFixPoint.hpp 1004 2013-10-13 16:04:19Z 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 "CglConfig.h"
    00018 #include "CglCutGenerator.hpp"
    00019 #include "OsiRowCut.hpp"
    00020 #include "OsiSolverInterface.hpp"
    00021
    00022 #include "CouenneBTPerfIndicator.hpp"
    00023
    00024 namespace Couenne {
    00025
    00026   class CouenneProblem;
    00027
    00029
    00030   class CouenneFixPoint: public CglCutGenerator {
    00031
    00032   public:
    00033
    00035     CouenneFixPoint (CouenneProblem *,
    00036                      const Ipopt::SmartPtr<Ipopt::OptionsList>);
    00037
    00039     CouenneFixPoint  (const CouenneFixPoint &);
    00040
    00042     ~CouenneFixPoint ();
    00043
    00045     CouenneFixPoint *clone () const
    00046     {return new CouenneFixPoint (*this);}
    00047
    00049     void generateCuts (const OsiSolverInterface &,
    00050                        OsiCuts &,
    00051                        const CglTreeInfo = CglTreeInfo ())
    00052 #if CGL_VERSION_MAJOR == 0 && CGL_VERSION_MINOR <= 57
    00053     const
    00054 #endif
    00055     ;
    00056
    00058     static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
    00059
    00060   protected:
    00061
    00063     bool extendedModel_;
    00064
    00066     CouenneProblem *problem_;
    00067
    00069     mutable bool firstCall_;
    00070
    00072     mutable double CPUtime_;
    00073
    00075     mutable int nTightened_;
    00076
    00078     void createRow (int, int,
    00079                     int,
    00080                     OsiSolverInterface *,
    00081                     const int    *,
    00082                     const double *,
    00083                     const double,
    00084                     const int,
    00085                     bool,
    00086                     int, int) const;
    00087
    00089     CouenneBTPerfIndicator perfIndicator_;
    00090   };
    00091 }
    00092
    00093 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines