Bonmin
1.7
|
00001 // Copyright (C) 2007, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef BonQpBranchingSolver_H 00004 #define BonQpBranchingSolver_H 00005 00006 #include "BonminConfig.h" 00007 #include "BonStrongBranchingSolver.hpp" 00008 #include "BonBranchingTQP.hpp" 00009 00010 #ifdef COIN_HAS_FILTERSQP 00011 #include "BonFilterSolver.hpp" 00012 #include "BonBqpdSolver.hpp" 00013 #endif 00014 00015 namespace Bonmin 00016 { 00017 00024 class QpBranchingSolver : public StrongBranchingSolver 00025 { 00026 00027 public: 00028 00030 QpBranchingSolver (OsiTMINLPInterface * solver); 00031 00033 QpBranchingSolver (const QpBranchingSolver &); 00034 00036 QpBranchingSolver & operator= (const QpBranchingSolver& rhs); 00037 00039 virtual ~QpBranchingSolver (); 00040 00043 virtual void markHotStart(OsiTMINLPInterface* tminlp_interface); 00044 00046 virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface); 00047 00049 virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface); 00050 00051 private: 00053 QpBranchingSolver (); 00054 00055 Ipopt::SmartPtr<BranchingTQP> branching_tqp_; 00056 00057 Ipopt::SmartPtr<TNLPSolver> tqp_solver_; 00058 00059 #ifdef TIME_BQPD 00060 BqpdSolver::Times times_; 00061 #endif 00062 00063 bool first_solve_; 00064 }; 00065 00066 } 00067 00068 #endif