Bonmin
1.7
|
00001 // Copyright (C) 2007, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 // 00004 // Author: Andreas Waechter 2007-08-20 IBM 00005 // 00006 #ifndef BonStrongBranchingSolver_H 00007 #define BonStrongBranchingSolver_H 00008 00009 #include "BonOsiTMINLPInterface.hpp" 00010 #include "BonRegisteredOptions.hpp" 00011 namespace Bonmin { 00012 00017 class StrongBranchingSolver : public Ipopt::ReferencedObject { 00018 00019 public: 00020 00022 StrongBranchingSolver (OsiTMINLPInterface * solver); 00023 00025 StrongBranchingSolver & operator= (const StrongBranchingSolver& rhs); 00027 StrongBranchingSolver(const StrongBranchingSolver& rhs); 00028 00030 virtual ~StrongBranchingSolver (); 00031 00034 virtual void markHotStart(OsiTMINLPInterface* tminlp_interface) = 0; 00035 00037 virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface) = 0; 00038 00040 virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface) = 0; 00041 00042 protected: 00043 00044 inline Ipopt::SmartPtr<Ipopt::Journalist>& Jnlst() 00045 { 00046 return jnlst_; 00047 } 00048 inline Ipopt::SmartPtr<Ipopt::OptionsList>& Options() 00049 { 00050 return options_; 00051 } 00052 inline Ipopt::SmartPtr<RegisteredOptions>& RegOptions() 00053 { 00054 return reg_options_; 00055 } 00056 private: 00058 StrongBranchingSolver (); 00059 00060 Ipopt::SmartPtr<Ipopt::Journalist> jnlst_; 00061 Ipopt::SmartPtr<Ipopt::OptionsList> options_; 00062 Ipopt::SmartPtr<Bonmin::RegisteredOptions> reg_options_; 00063 00064 int bb_log_level_; 00065 00066 }; 00067 00068 } 00069 #endif