CouenneFixPoint.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
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