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 namespace Bonmin 00010 { 00011 00018 class QpBranchingSolver : public StrongBranchingSolver 00019 { 00020 00021 public: 00022 00024 QpBranchingSolver (OsiTMINLPInterface * solver); 00025 00027 QpBranchingSolver (const QpBranchingSolver &); 00028 00030 QpBranchingSolver & operator= (const QpBranchingSolver& rhs); 00031 00033 virtual ~QpBranchingSolver (); 00034 00037 virtual void markHotStart(OsiTMINLPInterface* tminlp_interface); 00038 00040 virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface); 00041 00043 virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface); 00044 00045 private: 00047 QpBranchingSolver (); 00048 00049 SmartPtr<BranchingTQP> branching_tqp_; 00050 00051 SmartPtr<TNLPSolver> tqp_solver_; 00052 00053 bool first_solve_; 00054 }; 00055 00056 } 00057 00058 #endif