10 #ifndef BabSetupBase_H
11 #define BabSetupBase_H
15 #include "CglCutGenerator.hpp"
16 #include "CbcHeuristic.hpp"
17 #include "OsiChooseVariable.hpp"
19 #include "IpSmartPtr.hpp"
33 CglCutGenerator *
cgl;
93 #ifdef BONMIN_CURVATURE_BRANCHING
138 BabSetupBase(
const CoinMessageHandler * handler = NULL);
153 const std::string &
prefix);
int getIntParameter(const IntParameter &p) const
Return value of integer parameter.
Behavior of the algorithm in the case of a failure.
void readOptionsStream(std::istream &is)
Get the options from stream.
Max number of failures in a branch.
const vector< OsiObject * > & objects() const
Access to extra objects.
int intParam_[NumberIntParam]
storage of integer parameters.
Type for heuristic method with its string identification.
CuttingMethods cutGenerators_
Cut generation methods.
Ipopt::SmartPtr< Ipopt::Journalist > journalist()
Acces storage of Journalist for output.
virtual void registerOptions()
Register all the options for this algorithm instance.
VarSelectStra_Enum
Parameters represented by an integer.
void use(const OsiTMINLPInterface &nlp)
use existing TMINLP interface (containing the 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 ...
Stop if relative gap is less than this.
void setOptionsAndJournalist(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist)
Set the value for options, output...
Spetial option in particular for Cbc.
HeuristicMethods heuristics_
Heuristic methods.
vector< OsiObject * > objects_
Extra object to add to Cbc (not OsiObjects).
static double defaultDoubleParam_[NumberDoubleParam]
default values for double parameters.
Same as DfsDiveFromBest, but after a prescribed number of integer solution are found switch to best-b...
Number of candidates for strong branching.
TreeTraversal treeTraversalMethod_
Tree traversal method.
bool readOptions_
flag to say if option file was read.
BabSetupBase(const CoinMessageHandler *handler=NULL)
Default constructor.
void setPriorities()
Set the priorities into OsiTMINLPInterface when needed.
OsiTMINLPInterface * nonlinearSolver_
Storage of the non-linear solver used.
Dynamic strategy, see CbcBranchActual.hpp for explanations.
Minimum reliability before trust pseudo-costs.
TreeTraversal treeTraversalMethod()
Method used to traverse tree.
Type for cut generation method with its frequency and string identification.
OsiChooseVariable * branchingMethod_
Branching method.
A class to have all elements necessary to setup a branch-and-bound.
limit on number of integer feasible solution.
IntParameter
Parameters represented by an integer.
std::list< CuttingMethod > CuttingMethods
NodeComparison nodeComparisonMethod_
Node comparison method.
static int defaultIntParam_[NumberIntParam]
default values for int parameters.
DoubleParameter
Parameters represented by a double.
virtual BabSetupBase * clone() const =0
virtual copy constructor.
HeuristicMethod(const HeuristicMethod &other)
OsiChooseVariable * branchingMethod()
branching method to use.
TreeTraversal
Strategies for traversing the tree.
void setNonlinearSolver(OsiTMINLPInterface *s)
Set the non-linear solver used.
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
A transformer class to build outer approximations i.e.
void set_linearizer(TMINLP2OsiLP *linearizer)
Display information every logIntervval nodes.
void addSos()
Add SOS constraints to OsiTMINLPInterface when needed.
Ipopt::SmartPtr< TMINLP2OsiLP > linearizer_
Method to linearize MINLPs.
Max number of consecutive infeasible problem in a branch before fathoming.
void setDoubleParameter(const DoubleParameter &p, const double v)
Return value of double parameter.
dive from top node of the heap untill it gets to a leaf of the tree.
virtual void setBabDefaultOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Setup the defaults options for this algorithm.
Ipopt::SmartPtr< Ipopt::OptionsList > options_
List of Options.
Consider or not SOS constraints.
Log level for root relaxation.
NodeComparison & nodeComparisonMethod()
Method used to compare nodes.
void initializeOptionsAndJournalist()
Initialize the options and the journalist.
Number of cut passes at nodes.
static void registerAllOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register all the options for this algorithm instance.
double doubleParam_[NumberDoubleParam]
storage of double parameters.
NodeComparison
Strategies for comparing the nodes on the heap.
std::string prefix_
Prefix to use when reading options.
Ipopt::SmartPtr< Ipopt::Journalist > journalist_
Storage of Journalist for output.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions_
Registered Options.
OsiTMINLPInterface * nonlinearSolver()
Pointer to the non-linear solver used.
void gatherParametersValues()
Get the values of base parameters from the options stored.
void addCutGenerator(CuttingMethod &cg)
Ipopt::SmartPtr< Ipopt::OptionsList > options()
Acces list of Options.
double getDoubleParameter(const DoubleParameter &p) const
Return value of double parameter.
OsiSolverInterface * continuousSolver()
Pointer to the continuous solver to use for relaxations.
void setIntParameter(const IntParameter &p, const int v)
Return value of integer parameter.
HeuristicMethods & heuristics()
list of Heuristic methods to use.
dive from top node of the heap with more elaborate strategy (see options doc).
Eplore two kids before following on dive.
Number of cut passes at nodes.
CoinMessageHandler * messageHandler_
separate message handler.
std::list< HeuristicMethod > HeuristicMethods
virtual ~BabSetupBase()
Virtual destructor.
CuttingMethod(const CuttingMethod &other)
void mayPrintDoc()
May print documentation of options if options print_options_documentation is set to yes...
virtual void readOptionsFile()
Get the options from default text file (bonmin.opt) if don't already have them.
CuttingMethods & cutGenerators()
list of cutting planes methods to apply with their frequencies.
OsiSolverInterface * continuousSolver_
Storage of continuous solver.
const char * prefix() const
Get prefix to use for options.
Stop if absolute gap is less than this.
Best guessed integer solution is subtree below, based on pseudo costs.
vector< OsiObject * > & objects()
Access to extra objects.
void readOptionsString(std::string opt_string)
Get the options from long string containing all.