16#include "CbcHeuristic.hpp"
93#ifdef BONMIN_CURVATURE_BRANCHING
153 const std::string &
prefix);
A class to have all elements necessary to setup a branch-and-bound.
void gatherParametersValues()
Get the values of base parameters from the options stored.
virtual void readOptionsFile()
Get the options from default text file (bonmin.opt) if don't already have them.
OsiChooseVariable * branchingMethod_
Branching method.
void mayPrintDoc()
May print documentation of options if options print_options_documentation is set to yes.
void setPriorities()
Set the priorities into OsiTMINLPInterface when needed.
CuttingMethods cutGenerators_
Cut generation methods.
static double defaultDoubleParam_[NumberDoubleParam]
default values for double parameters.
vector< OsiObject * > objects_
Extra object to add to Cbc (not OsiObjects).
OsiTMINLPInterface * nonlinearSolver()
Pointer to the non-linear solver used.
void initializeOptionsAndJournalist()
Initialize the options and the journalist.
void readOptionsStream(std::istream &is)
Get the options from stream.
BabSetupBase(const BabSetupBase &setup, OsiTMINLPInterface &nlp, const std::string &prefix)
Copy but uses an other nlp.
BabSetupBase(const OsiTMINLPInterface &nlp)
Construct from existing TMINLP interface.
Ipopt::SmartPtr< Ipopt::Journalist > journalist()
Acces storage of Journalist for output.
TreeTraversal treeTraversalMethod_
Tree traversal method.
double getDoubleParameter(const DoubleParameter &p) const
Return value of double parameter.
BabSetupBase(const CoinMessageHandler *handler=NULL)
Default constructor.
OsiTMINLPInterface * nonlinearSolver_
Storage of the non-linear solver used.
const vector< OsiObject * > & objects() const
Access to extra objects.
Ipopt::SmartPtr< Ipopt::OptionsList > options()
Acces list of Options.
void readOptionsFile(std::string fileName)
Get the options from given fileName.
BabSetupBase(Ipopt::SmartPtr< TNLPSolver > app)
Construct from existing application.
std::string prefix_
Prefix to use when reading options.
int getIntParameter(const IntParameter &p) const
Return value of integer parameter.
BabSetupBase(Ipopt::SmartPtr< TMINLP > tminlp, const CoinMessageHandler *handler=NULL)
Construct from existing tminlp.
vector< OsiObject * > & objects()
Access to extra objects.
void use(Ipopt::SmartPtr< TMINLP > tminlp)
Read options (if not done before) and create interface using tminlp.
void setNonlinearSolver(OsiTMINLPInterface *s)
Set the non-linear solver used.
void set_linearizer(TMINLP2OsiLP *linearizer)
void gatherParametersValues(Ipopt::SmartPtr< Ipopt::OptionsList > options)
Get the values of the base parameters from the passed options.
bool readOptions_
flag to say if option file was read.
BabSetupBase(const BabSetupBase &setup, OsiTMINLPInterface &nlp)
Copy but uses an other nlp.
HeuristicMethods & heuristics()
list of Heuristic methods to use.
CuttingMethods & cutGenerators()
list of cutting planes methods to apply with their frequencies.
NodeComparison nodeComparisonMethod_
Node comparison method.
OsiSolverInterface * continuousSolver_
Storage of continuous solver.
HeuristicMethods heuristics_
Heuristic methods.
void addSos()
Add SOS constraints to OsiTMINLPInterface when needed.
Ipopt::SmartPtr< TMINLP2OsiLP > linearizer_
Method to linearize MINLPs.
NodeComparison
Strategies for comparing the nodes on the heap.
@ dynamic
Dynamic strategy, see CbcBranchActual.hpp for explanations.
@ bestGuess
Best guessed integer solution is subtree below, based on pseudo costs.
virtual void setBabDefaultOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Setup the defaults options for this algorithm.
NodeComparison & nodeComparisonMethod()
Method used to compare nodes.
Ipopt::SmartPtr< Ipopt::OptionsList > options_
List of Options.
int intParam_[NumberIntParam]
storage of integer parameters.
virtual BabSetupBase * clone() const =0
virtual copy constructor.
Ipopt::SmartPtr< Ipopt::Journalist > journalist_
Storage of Journalist for output.
static void registerAllOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register all the options for this algorithm instance.
void addCutGenerator(CuttingMethod &cg)
OsiChooseVariable * branchingMethod()
branching method to use.
const char * prefix() const
Get prefix to use for options.
void use(Ipopt::SmartPtr< TMINLP2TNLP > prob)
use specific instanciation of a TMINLP2TNLP.
void setOptionsAndJournalist(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist)
Set the value for options, output...
void use(const OsiTMINLPInterface &nlp)
use existing TMINLP interface (containing the options).
IntParameter
Parameters represented by an integer.
@ MinReliability
Minimum reliability before trust pseudo-costs.
@ RootLogLevel
Log level for root relaxation.
@ DisableSos
Consider or not SOS constraints.
@ MaxFailures
Max number of failures in a branch.
@ MaxInfeasible
Max number of consecutive infeasible problem in a branch before fathoming.
@ MaxIterations
Global iteration limit.
@ NumCutPassesAtRoot
Number of cut passes at nodes.
@ MaxSolutions
limit on number of integer feasible solution.
@ SpecialOption
Spetial option in particular for Cbc.
@ NumberIntParam
Dummy end to size table.
@ MaxNodes
Global node limit.
@ BabLogInterval
Display information every logIntervval nodes.
@ FailureBehavior
Behavior of the algorithm in the case of a failure.
@ NumberStrong
Number of candidates for strong branching.
@ NumCutPasses
Number of cut passes at nodes.
DoubleParameter
Parameters represented by a double.
@ NumberDoubleParam
Dummy end to size table.
@ IntTol
Integer tolerance.
@ MaxTime
Global time limit.
@ AllowableGap
Stop if absolute gap is less than this.
@ AllowableFractionGap
Stop if relative gap is less than this.
virtual BabSetupBase * clone(OsiTMINLPInterface &nlp) const
Make a copy with solver replace by one passed .
std::list< HeuristicMethod > HeuristicMethods
virtual void registerOptions()
Register all the options for this algorithm instance.
BabSetupBase(const BabSetupBase &other)
Copy constructor.
virtual ~BabSetupBase()
Virtual destructor.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions()
Access registered Options.
Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions_
Registered Options.
TreeTraversal treeTraversalMethod()
Method used to traverse tree.
OsiSolverInterface * continuousSolver()
Pointer to the continuous solver to use for relaxations.
double doubleParam_[NumberDoubleParam]
storage of double parameters.
std::list< CuttingMethod > CuttingMethods
CoinMessageHandler * messageHandler_
separate message handler.
void readOptionsString(std::string opt_string)
Get the options from long string containing all.
TreeTraversal
Strategies for traversing the tree.
@ DfsDiveFromBest
dive from top node of the heap with more elaborate strategy (see options doc).
@ DiveFromBest
dive from top node of the heap untill it gets to a leaf of the tree.
@ ProbedDive
Eplore two kids before following on dive.
@ DfsDiveDynamic
Same as DfsDiveFromBest, but after a prescribed number of integer solution are found switch to best-b...
static int defaultIntParam_[NumberIntParam]
default values for int parameters.
void setDoubleParameter(const DoubleParameter &p, const double v)
Return value of double parameter.
void setIntParameter(const IntParameter &p, const int v)
Return value of integer parameter.
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
A transformer class to build outer approximations i.e.
A small wrap around std::vector to give easy access to array for interfacing with fortran code.
(C) Copyright International Business Machines Corporation 2007
Type for cut generation method with its frequency and string identification.
CuttingMethod(const CuttingMethod &other)
Type for heuristic method with its string identification.
HeuristicMethod(const HeuristicMethod &other)