Bonmin 1.4trunk
|
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 "BonStrongBranchingSolver.hpp" 00007 #include "BonBranchingTQP.hpp" 00008 00009 #ifdef COIN_HAS_FILTERSQP 00010 #include "BonFilterSolver.hpp" 00011 #include "BonBqpdSolver.hpp" 00012 #endif 00013 00014 namespace Bonmin 00015 { 00016 00023 class QpBranchingSolver : public StrongBranchingSolver 00024 { 00025 00026 public: 00027 00029 QpBranchingSolver (OsiTMINLPInterface * solver); 00030 00032 QpBranchingSolver (const QpBranchingSolver &); 00033 00035 QpBranchingSolver & operator= (const QpBranchingSolver& rhs); 00036 00038 virtual ~QpBranchingSolver (); 00039 00042 virtual void markHotStart(OsiTMINLPInterface* tminlp_interface); 00043 00045 virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface); 00046 00048 virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface); 00049 00050 private: 00052 QpBranchingSolver (); 00053 00054 SmartPtr<BranchingTQP> branching_tqp_; 00055 00056 SmartPtr<TNLPSolver> tqp_solver_; 00057 00058 #ifdef TIME_BQPD 00059 BqpdSolver::Times times_; 00060 #endif 00061 00062 bool first_solve_; 00063 }; 00064 00065 } 00066 00067 #endif