Bonmin  1.8.8
BonBonminSetup.hpp
Go to the documentation of this file.
1 // (C) Copyright International Business Machines Corporation 2007
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors :
6 // Pierre Bonami, International Business Machines Corporation
7 //
8 // Date : 04/13/2007
9 #ifndef BonminSetup_H
10 #define BonminSetup_H
11 #include "BonBabSetupBase.hpp"
12 namespace Bonmin
13 {
15  enum Algorithm{
16  Dummy=-1,
17  B_BB=0,
18  B_OA=1,
19  B_QG=2,
20  B_Hyb=3,
21  B_Ecp=4,
23  };
24  /* Bonmin algorithm setup. */
25  class BonminSetup : public BabSetupBase
26  {
27  public:
29  BonminSetup(const CoinMessageHandler * handler = NULL);
31  BonminSetup(const BonminSetup & other);
32 
34  BonminSetup(const BonminSetup &setup,
35  OsiTMINLPInterface &nlp);
36 
38  BonminSetup(const BonminSetup &setup,
39  OsiTMINLPInterface &nlp,
40  const std::string & prefix);
42  virtual BabSetupBase * clone() const
43  {
44  return new BonminSetup(*this);
45  }
47  // virtual BabSetupBase *clone(OsiTMINLPInterface&nlp)const{
48  // return new BonminSetup(*this, nlp);
49  // }
52  return new BonminSetup(*this, nlp);
53  }
55  BonminSetup *clone(OsiTMINLPInterface &nlp, const std::string & prefix)const{
56  return new BonminSetup(*this, nlp, prefix);
57  }
58  virtual ~BonminSetup()
59  {}
63  virtual void registerOptions();
65  virtual void setBabDefaultOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions)
66  {}
69  static void registerAllOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
71  void initialize(Ipopt::SmartPtr<TMINLP> tminlp, bool createContinuousSolver = true);
73  void initialize(const OsiTMINLPInterface& nlpSi, bool createContinuousSolver = true);
76 
79  }
80  protected:
82  static void registerMilpCutGenerators(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
84  void addMilpCutGenerators();
86  void initializeBBB();
88  void initializeBHyb(bool createContinuousSolver = false);
89  private:
91  };
92 }
94 #endif
95 
BonminSetup * clone(OsiTMINLPInterface &nlp) const
Make a copy with solver replace by one passed .
static void registerAllOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register all bonmin type executable options.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions()
Access registered Options.
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
Algorithm
Type of algorithms which can be used.
void addCutGenerator(CuttingMethod &cg)
BonminSetup(const CoinMessageHandler *handler=NULL)
Default constructor.
Type for cut generation method with its frequency and string identification.
virtual void registerOptions()
Register all the options for this algorithm instance.
A class to have all elements necessary to setup a branch-and-bound.
virtual void setBabDefaultOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Setup the defaults options for this algorithm.
virtual BabSetupBase * clone() const
virtual copy constructor.
static void registerMilpCutGenerators(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register standard MILP cut generators.
void initializeBHyb(bool createContinuousSolver=false)
Initialize a branch-and-cut with some OA.
void initializeBBB()
Initialize a plain branch-and-bound.
BonminSetup * clone(OsiTMINLPInterface &nlp, const std::string &prefix) const
Make a copy but take options with different prefix.
void addCutGenerator(CuttingMethod &cg)
const char * prefix() const
Get prefix to use for options.
Bonmin::Algorithm getAlgorithm()
Get the algorithm used.
void addMilpCutGenerators()
Add milp cut generators according to options.
void initialize(Ipopt::SmartPtr< TMINLP > tminlp, bool createContinuousSolver=true)
Initialize, read options and create appropriate bonmin setup.