Bonmin 1.4trunk
BonQpBranchingSolver.hpp
Go to the documentation of this file.
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