00001 // (C) Copyright International Business Machines 2006 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Authors : 00006 // P. Bonami, Carnegie Mellon University 00007 // 00008 // Date : 12/26/2006 00009 00010 00011 #ifndef BonOaFeasibilityChecker_HPP 00012 #define BonOaFeasibilityChecker_HPP 00013 #include "BonOaDecBase.hpp" 00014 00015 namespace Bonmin 00016 { 00018 class OaFeasibilityChecker : public OaDecompositionBase 00019 { 00020 public: 00022 OaFeasibilityChecker(OsiTMINLPInterface * nlp = NULL, 00023 OsiSolverInterface * si = NULL, 00024 double cbcCutoffIncrement_=1e-07, 00025 double cbcIntegerTolerance = 1e-05, 00026 bool leaveSiUnchanged = 0 00027 ); 00028 00030 OaFeasibilityChecker(BabSetupBase &b); 00032 OaFeasibilityChecker(const OaFeasibilityChecker ©) 00033 : 00034 OaDecompositionBase(copy) 00035 {} 00037 ~OaFeasibilityChecker(); 00038 00039 void setStrategy(const CbcStrategy & strategy) 00040 { 00041 parameters_.setStrategy(strategy); 00042 } 00043 00044 virtual CglCutGenerator * clone() const 00045 { 00046 return new OaFeasibilityChecker(*this); 00047 } 00048 protected: 00050 virtual double performOa(OsiCuts & cs, solverManip &nlpManip, solverManip &lpManip, 00051 SubMipSolver * &subMip, OsiBabSolver * babInfo, double &cutoff) const; 00053 virtual bool doLocalSearch() const 00054 { 00055 return 0; 00056 } 00057 }; 00058 } 00059 #endif