BonNlpHeuristic.hpp

Go to the documentation of this file.
00001 /* $Id: BonNlpHeuristic.hpp 988 2013-08-04 20:59:18Z pbelotti $ */
00002 // (C) Copyright International Business Machines Corporation 2007
00003 // All Rights Reserved.
00004 // This code is published under the Eclipse Public License (EPL).
00005 //
00006 // Authors :
00007 // Pierre Bonami, International Business Machines Corporation
00008 //
00009 // Date : 04/09/2007
00010 
00011 #ifndef BonIpoptHeuristic_HPP
00012 #define BonIpoptHeuristic_HPP
00013 
00014 #include "BonOsiTMINLPInterface.hpp"
00015 #include "CbcHeuristic.hpp"
00016 #include "BonOsiTMINLPInterface.hpp"
00017 #include "CouenneProblem.hpp"
00018 
00019 namespace Couenne {
00020 
00026   const double maxNlpInf_0 = 1e-5;
00027 
00028   class NlpSolveHeuristic : public CbcHeuristic{
00029 
00030   public:
00032     NlpSolveHeuristic();
00034     NlpSolveHeuristic(CbcModel & mip, Bonmin::OsiTMINLPInterface &nlp, bool cloneNlp = false, CouenneProblem * couenne = NULL);
00036     NlpSolveHeuristic(const NlpSolveHeuristic &other);
00037     
00039     virtual ~NlpSolveHeuristic();
00040     
00042     virtual CbcHeuristic * clone() const;
00043     
00045     NlpSolveHeuristic & operator=(const NlpSolveHeuristic &rhs);
00046     
00048     void setNlp (Bonmin::OsiTMINLPInterface &nlp, bool cloneNlp = true);
00049     
00051     void setCouenneProblem(CouenneProblem *);
00053     virtual void resetModel(CbcModel * model){}
00059     virtual int solution( double & objectiveValue, double * newSolution);
00061     void setMaxNlpInf(double value){
00062       maxNlpInf_ = value;}
00064     void setNumberSolvePerLevel(int value){
00065       numberSolvePerLevel_ = value;}
00066 
00068     static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions>);
00069 
00070   private:
00072     Bonmin::OsiTMINLPInterface * nlp_;
00074     bool hasCloned_;
00076     double maxNlpInf_;
00078     int numberSolvePerLevel_;
00080     CouenneProblem * couenne_;
00081   };
00082 
00083 }
00084 
00085 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 13 May 2015 for Couenne by  doxygen 1.6.1