Bonmin  1.7
BonFpForMinlp.hpp
Go to the documentation of this file.
00001 // (C) Copyright CNRS 2008
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Authors :
00006 // P. Bonami, CNRS
00007 //
00008 // Date : 02/13/2009
00009 
00010 #ifndef BonFpForMinlp_H
00011 #define BonFpForMinlp_H
00012 #include "BonOaDecBase.hpp"
00013 
00014 namespace Bonmin{
00015   class MinlpFeasPump : public OaDecompositionBase{
00016    public:
00018     MinlpFeasPump(BabSetupBase & b);
00019 
00021     MinlpFeasPump(const MinlpFeasPump &copy)
00022         :
00023         OaDecompositionBase(copy),
00024         subMip_(new SubMipSolver(*copy.subMip_)),
00025         passBound_(copy.passBound_)
00026     {}
00028     ~MinlpFeasPump();
00029 
00030     void setStrategy(const CbcStrategy & strategy)
00031     {
00032       parameters_.setStrategy(strategy);
00033     }
00034 
00035     virtual CglCutGenerator * clone() const
00036     {
00037       return new MinlpFeasPump(*this);
00038     }
00040     static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
00041 
00042   protected:
00044     virtual double performOa(OsiCuts & cs, solverManip &lpManip,
00045                    BabInfo * babInfo, double &cutoff, const CglTreeInfo & info) const;
00047     virtual bool doLocalSearch(BabInfo * babInfo) const;
00049     void set_fp_objective(OsiSolverInterface &si, const double * colsol) const;
00050     
00051   private:
00052     SubMipSolver * subMip_;
00054     int passBound_;
00055   };
00056 
00057 }/* End Namespace.*/
00058 
00059 #endif
00060 
00061