Bonmin
1.7
|
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 ©) 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