/home/coin/SVN-release/OS-2.4.2/OS/src/OSSolverInterfaces/OSCouenneSolver.h

Go to the documentation of this file.
00001 /* $Id: OSCouenneSolver.h 4292 2011-09-21 05:47:18Z kmartin $ */
00015 #ifndef COUENNESOLVER_H
00016 #define COUENNESOLVER_H
00017 
00018 #include "OSConfig.h"
00019 #include "OSDefaultSolver.h"
00020 #include "OSBonminSolver.h"
00021 #include "OSIpoptSolver.h"
00022 #include "OSrLWriter.h"
00023 #include "OSInstance.h"
00024 #include "OSParameters.h"
00025 #include "OSiLReader.h"
00026 #include "OSExpressionTree.h"
00027 #include "OSnLNode.h"
00028 #include "OSDataStructures.h"
00029 #include "OSFileUtil.h"
00030 #include "OSErrorClass.h"
00031 #include "OSResult.h"
00032 #include "OSOption.h"
00033 
00034 //Couenne stuff
00035 namespace Couenne
00036 {
00037 class CouenneProblem;
00038 class expression;
00039 }
00040 #include "BonCbc.hpp"
00041 #include "BonCouenneSetup.hpp"
00042 
00043 #include <vector>
00044 #include <map>
00045 
00046 
00047 
00061 class CouenneSolver : public DefaultSolver
00062 {
00063 public:
00064 
00066     CouenneSolver();
00067 
00069     ~CouenneSolver();
00070 
00073     virtual void  solve() throw (ErrorClass) ;
00074 
00079     virtual void  buildSolverInstance() throw(ErrorClass);
00080 
00085     virtual void  setSolverOptions() throw(ErrorClass);
00086 
00092     void dataEchoCheck();
00093 
00098     void writeResult();
00099 
00104     OSiLReader *m_osilreader;
00105 
00110     OSoLReader *m_osolreader;
00111 
00112     Couenne::CouenneProblem *couenne;
00113 
00114     Ipopt::SmartPtr<BonminProblem> tminlp;
00115 
00116     Ipopt::SmartPtr<Bonmin::TNLPSolver> app_ ;
00117 
00118     //SmartPtr<Bonmin::IpoptSolver> app_ ;
00119 
00120     // this is a Bonmin BonCbc object;
00121     Bonmin::Bab bb;
00122 
00123     Bonmin::TMINLP::SolverReturn status;
00124 
00125     Couenne::expression *con_body;
00126     Couenne::expression *obj_body;
00127 
00128 private:
00129     OSrLWriter  *osrlwriter;
00130 
00131     Couenne::CouenneSetup couenneSetup;
00132     std::string couenneErrorMsg;
00133 
00134     Couenne::expression* createCouenneExpression(OSnLNode* node);
00135 };
00136 
00137 
00138 #endif /*COUENNESOLVER_H*/

Generated on Wed Nov 30 03:04:23 2011 by  doxygen 1.4.7