Bonmin  1.8.8
BonStrongBranchingSolver.hpp
Go to the documentation of this file.
1 // Copyright (C) 2007, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 //
4 // Author: Andreas Waechter 2007-08-20 IBM
5 //
6 #ifndef BonStrongBranchingSolver_H
7 #define BonStrongBranchingSolver_H
8 
10 #include "BonRegisteredOptions.hpp"
11 namespace Bonmin {
12 
17 class StrongBranchingSolver : public Ipopt::ReferencedObject {
18 
19 public:
20 
23 
28 
30  virtual ~StrongBranchingSolver ();
31 
34  virtual void markHotStart(OsiTMINLPInterface* tminlp_interface) = 0;
35 
37  virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface) = 0;
38 
40  virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface) = 0;
41 
42 protected:
43 
44  inline Ipopt::SmartPtr<Ipopt::Journalist>& Jnlst()
45  {
46  return jnlst_;
47  }
48  inline Ipopt::SmartPtr<Ipopt::OptionsList>& Options()
49  {
50  return options_;
51  }
52  inline Ipopt::SmartPtr<RegisteredOptions>& RegOptions()
53  {
54  return reg_options_;
55  }
56 private:
59 
60  Ipopt::SmartPtr<Ipopt::Journalist> jnlst_;
61  Ipopt::SmartPtr<Ipopt::OptionsList> options_;
62  Ipopt::SmartPtr<Bonmin::RegisteredOptions> reg_options_;
63 
65 
66 };
67 
68 }
69 #endif
Ipopt::SmartPtr< Ipopt::OptionsList > options_
This class is the base class for a solver that can be used in BonOsiSolverInterface to perform the st...
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
virtual void markHotStart(OsiTMINLPInterface *tminlp_interface)=0
Called to initialize solver before a bunch of strong branching solves.
Ipopt::SmartPtr< Ipopt::Journalist > & Jnlst()
virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface *tminlp_interface)=0
Called to solve the current TMINLP (with changed bound information)
virtual ~StrongBranchingSolver()
Destructor.
ReturnStatus
Standard return statuses for a solver.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > reg_options_
Ipopt::SmartPtr< Ipopt::Journalist > jnlst_
virtual void unmarkHotStart(OsiTMINLPInterface *tminlp_interface)=0
Called after all strong branching solves in a node.
StrongBranchingSolver()
Default Constructor, forbiden for some reason.
Ipopt::SmartPtr< Ipopt::OptionsList > & Options()
StrongBranchingSolver & operator=(const StrongBranchingSolver &rhs)
Assignment operator.
Ipopt::SmartPtr< RegisteredOptions > & RegOptions()