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();
66  {}
71  void initialize(Ipopt::SmartPtr<TMINLP> tminlp, bool createContinuousSolver = true);
73  void initialize(const OsiTMINLPInterface& nlpSi, bool createContinuousSolver = true);
76 
79  }
80  protected:
84  void addMilpCutGenerators();
86  void initializeBBB();
88  void initializeBHyb(bool createContinuousSolver = false);
89  private:
90  Algorithm algo_;
91  };
92 }
94 #endif
95 
BonBabSetupBase.hpp
Bonmin::BabSetupBase::addCutGenerator
void addCutGenerator(CuttingMethod &cg)
Definition: BonBabSetupBase.hpp:326
Bonmin::B_QG
@ B_QG
Definition: BonBonminSetup.hpp:19
Bonmin::Algorithm
Algorithm
Type of algorithms which can be used.
Definition: BonBonminSetup.hpp:15
Bonmin::Dummy
@ Dummy
Definition: BonBonminSetup.hpp:16
Bonmin::BonminSetup::addMilpCutGenerators
void addMilpCutGenerators()
Add milp cut generators according to options.
Bonmin::BabSetupBase::roptions
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions()
Access registered Options.
Definition: BonBabSetupBase.hpp:309
Bonmin
(C) Copyright International Business Machines Corporation 2007
Definition: BonAmplSetup.hpp:15
Bonmin::B_Ecp
@ B_Ecp
Definition: BonBonminSetup.hpp:21
Bonmin::BabSetupBase::CuttingMethod
Type for cut generation method with its frequency and string identification.
Definition: BonBabSetupBase.hpp:29
Bonmin::BonminSetup::initializeBHyb
void initializeBHyb(bool createContinuousSolver=false)
Initialize a branch-and-cut with some OA.
Bonmin::BonminSetup::registerOptions
virtual void registerOptions()
Register all the options for this algorithm instance.
Bonmin::BonminSetup::clone
virtual BabSetupBase * clone() const
virtual copy constructor.
Definition: BonBonminSetup.hpp:42
Bonmin::BonminSetup::setBabDefaultOptions
virtual void setBabDefaultOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Setup the defaults options for this algorithm.
Definition: BonBonminSetup.hpp:65
Bonmin::BabSetupBase
A class to have all elements necessary to setup a branch-and-bound.
Definition: BonBabSetupBase.hpp:25
Bonmin::BonminSetup::BonminSetup
BonminSetup(const CoinMessageHandler *handler=NULL)
Default constructor.
Bonmin::BonminSetup::clone
BonminSetup * clone(OsiTMINLPInterface &nlp) const
Make a copy with solver replace by one passed .
Definition: BonBonminSetup.hpp:51
Bonmin::B_Hyb
@ B_Hyb
Definition: BonBonminSetup.hpp:20
Bonmin::BonminSetup::initialize
void initialize(Ipopt::SmartPtr< TMINLP > tminlp, bool createContinuousSolver=true)
Initialize, read options and create appropriate bonmin setup.
Bonmin::BonminSetup::registerAllOptions
static void registerAllOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register all bonmin type executable options.
Bonmin::BonminSetup::clone
BonminSetup * clone(OsiTMINLPInterface &nlp, const std::string &prefix) const
Make a copy but take options with different prefix.
Definition: BonBonminSetup.hpp:55
Bonmin::BonminSetup::addCutGenerator
void addCutGenerator(CuttingMethod &cg)
Definition: BonBonminSetup.hpp:77
Ipopt::SmartPtr
CoinMessageHandler
Bonmin::B_BB
@ B_BB
Definition: BonBonminSetup.hpp:17
Bonmin::BonminSetup::initializeBBB
void initializeBBB()
Initialize a plain branch-and-bound.
Bonmin::B_IFP
@ B_IFP
Definition: BonBonminSetup.hpp:22
Bonmin::BonminSetup
Definition: BonBonminSetup.hpp:25
Bonmin::BonminSetup::registerMilpCutGenerators
static void registerMilpCutGenerators(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register standard MILP cut generators.
Bonmin::OsiTMINLPInterface
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
Definition: BonOsiTMINLPInterface.hpp:48
Bonmin::B_OA
@ B_OA
Definition: BonBonminSetup.hpp:18
Bonmin::BonminSetup::getAlgorithm
Bonmin::Algorithm getAlgorithm()
Get the algorithm used.
Bonmin::BabSetupBase::prefix
const char * prefix() const
Get prefix to use for options.
Definition: BonBabSetupBase.hpp:212
Bonmin::BonminSetup::~BonminSetup
virtual ~BonminSetup()
Definition: BonBonminSetup.hpp:58