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 #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