00001 /* $Id: CouenneMultiVarProbe.hpp 490 2011-01-14 16:07:12Z pbelotti $ 00002 * 00003 * Name: CouenneMultiVarProbe.hpp 00004 * Author: Pietro Belotti 00005 * Purpose: Bound tightening using more than one variable 00006 * 00007 * (C) Pietro Belotti, 2010. 00008 * This file is licensed under the Eclipse Public License (EPL) 00009 */ 00010 00011 #ifndef COUENNEMULTIVARPROBE_HPP 00012 #define COUENNEMULTIVARPROBE_HPP 00013 00014 #include "BonRegisteredOptions.hpp" 00015 00016 #include "BonOaDecBase.hpp" 00017 #include "CglCutGenerator.hpp" 00018 #include "OsiColCut.hpp" 00019 #include "OsiSolverInterface.hpp" 00020 #include "CouenneProblem.hpp" 00021 #include "BonCouenneSetup.hpp" 00022 00023 namespace Couenne { 00024 00025 class CouenneMultiVarProbe: public CglCutGenerator { 00026 00027 public: 00028 00030 CouenneMultiVarProbe(CouenneSetup* couenne, 00031 const Ipopt::SmartPtr<Ipopt::OptionsList> options); 00032 00034 CouenneMultiVarProbe(const CouenneMultiVarProbe& rhs); 00035 00037 ~CouenneMultiVarProbe(); 00038 00040 CouenneMultiVarProbe *clone () const 00041 {return new CouenneMultiVarProbe (*this);} 00042 00044 void generateCuts(const OsiSolverInterface & solver, 00045 OsiCuts& cuts, 00046 const CglTreeInfo = CglTreeInfo ()) const; 00047 00048 protected: 00049 00051 CouenneSetup* couenne_; 00052 00054 int numCols_; 00055 00057 double maxTime_; 00058 }; 00059 } 00060 00061 #endif