|
Bonmin 1.8.9
|
A class to have all elements necessary to setup a branch-and-bound. More...
#include <BonBabSetupBase.hpp>
Classes | |
| struct | CuttingMethod |
| Type for cut generation method with its frequency and string identification. More... | |
| struct | HeuristicMethod |
| Type for heuristic method with its string identification. More... | |
Public Types | |
| enum | NodeComparison { bestBound = 0 , DFS , BFS , dynamic , bestGuess } |
| Strategies for comparing the nodes on the heap. More... | |
| enum | TreeTraversal { HeapOnly =0 , DiveFromBest , ProbedDive , DfsDiveFromBest , DfsDiveDynamic } |
| Strategies for traversing the tree. More... | |
| typedef std::list< CuttingMethod > | CuttingMethods |
| typedef std::list< HeuristicMethod > | HeuristicMethods |
Public Member Functions | |
| void | gatherParametersValues () |
| Get the values of base parameters from the options stored. | |
| void | gatherParametersValues (Ipopt::SmartPtr< Ipopt::OptionsList > options) |
| Get the values of the base parameters from the passed options. | |
| Ipopt::SmartPtr< Ipopt::Journalist > | journalist () |
| Acces storage of Journalist for output. | |
| Ipopt::SmartPtr< Ipopt::OptionsList > | options () |
| Acces list of Options. | |
| Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions () |
| Access registered Options. | |
| const vector< OsiObject * > & | objects () const |
| Access to extra objects. | |
| vector< OsiObject * > & | objects () |
| Access to extra objects. | |
| void | addCutGenerator (CuttingMethod &cg) |
| void | set_linearizer (TMINLP2OsiLP *linearizer) |
Methods to initialize algorithm with various inputs. | |
| void | use (const OsiTMINLPInterface &nlp) |
| use existing TMINLP interface (containing the options). | |
| void | use (Ipopt::SmartPtr< TMINLP > tminlp) |
| Read options (if not done before) and create interface using tminlp. | |
| void | use (Ipopt::SmartPtr< TMINLP2TNLP > prob) |
| use specific instanciation of a TMINLP2TNLP. | |
| void | setNonlinearSolver (OsiTMINLPInterface *s) |
| Set the non-linear solver used. | |
Elements of the branch-and-bound setup. | |
| OsiTMINLPInterface * | nonlinearSolver () |
| Pointer to the non-linear solver used. | |
| OsiSolverInterface * | continuousSolver () |
| Pointer to the continuous solver to use for relaxations. | |
| CuttingMethods & | cutGenerators () |
| list of cutting planes methods to apply with their frequencies. | |
| HeuristicMethods & | heuristics () |
| list of Heuristic methods to use. | |
| OsiChooseVariable * | branchingMethod () |
| branching method to use. | |
| NodeComparison & | nodeComparisonMethod () |
| Method used to compare nodes. | |
| TreeTraversal | treeTraversalMethod () |
| Method used to traverse tree. | |
| int | getIntParameter (const IntParameter &p) const |
| Return value of integer parameter. | |
| double | getDoubleParameter (const DoubleParameter &p) const |
| Return value of double parameter. | |
| void | setIntParameter (const IntParameter &p, const int v) |
| Return value of integer parameter. | |
| void | setDoubleParameter (const DoubleParameter &p, const double v) |
| Return value of double parameter. | |
Protected Member Functions | |
| void | setPriorities () |
| Set the priorities into OsiTMINLPInterface when needed. | |
| void | addSos () |
| Add SOS constraints to OsiTMINLPInterface when needed. | |
Protected Attributes | |
| int | intParam_ [NumberIntParam] |
| storage of integer parameters. | |
| double | doubleParam_ [NumberDoubleParam] |
| storage of double parameters. | |
| OsiTMINLPInterface * | nonlinearSolver_ |
| Storage of the non-linear solver used. | |
| OsiSolverInterface * | continuousSolver_ |
| Storage of continuous solver. | |
| Ipopt::SmartPtr< TMINLP2OsiLP > | linearizer_ |
| Method to linearize MINLPs. | |
| CuttingMethods | cutGenerators_ |
| Cut generation methods. | |
| HeuristicMethods | heuristics_ |
| Heuristic methods. | |
| OsiChooseVariable * | branchingMethod_ |
| Branching method. | |
| NodeComparison | nodeComparisonMethod_ |
| Node comparison method. | |
| TreeTraversal | treeTraversalMethod_ |
| Tree traversal method. | |
| vector< OsiObject * > | objects_ |
| Extra object to add to Cbc (not OsiObjects). | |
| Ipopt::SmartPtr< Ipopt::Journalist > | journalist_ |
| Storage of Journalist for output. | |
| Ipopt::SmartPtr< Ipopt::OptionsList > | options_ |
| List of Options. | |
| Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions_ |
| Registered Options. | |
| bool | readOptions_ |
| flag to say if option file was read. | |
| CoinMessageHandler * | messageHandler_ |
| separate message handler. | |
| std::string | prefix_ |
| Prefix to use when reading options. | |
Static Protected Attributes | |
| static int | defaultIntParam_ [NumberIntParam] |
| default values for int parameters. | |
| static double | defaultDoubleParam_ [NumberDoubleParam] |
| default values for double parameters. | |
Enums for optionslist parameters | |
| enum | VarSelectStra_Enum { MOST_FRACTIONAL =0 , STRONG_BRANCHING , RELIABILITY_BRANCHING , QP_STRONG_BRANCHING , LP_STRONG_BRANCHING , NLP_STRONG_BRANCHING , OSI_SIMPLE , OSI_STRONG , RANDOM } |
| enum | IntParameter { BabLogLevel = 0 , BabLogInterval , MaxFailures , FailureBehavior , MaxInfeasible , NumberStrong , MinReliability , MaxNodes , MaxSolutions , MaxIterations , SpecialOption , DisableSos , NumCutPasses , NumCutPassesAtRoot , RootLogLevel , NumberIntParam } |
| Parameters represented by an integer. More... | |
| enum | DoubleParameter { CutoffDecr = 0 , Cutoff , AllowableGap , AllowableFractionGap , IntTol , MaxTime , NumberDoubleParam } |
| Parameters represented by a double. More... | |
| BabSetupBase (const CoinMessageHandler *handler=NULL) | |
| Default constructor. | |
| BabSetupBase (Ipopt::SmartPtr< TMINLP > tminlp, const CoinMessageHandler *handler=NULL) | |
| Construct from existing tminlp. | |
| BabSetupBase (Ipopt::SmartPtr< TNLPSolver > app) | |
| Construct from existing application. | |
| BabSetupBase (const OsiTMINLPInterface &nlp) | |
| Construct from existing TMINLP interface. | |
| BabSetupBase (const BabSetupBase &setup, OsiTMINLPInterface &nlp) | |
| Copy but uses an other nlp. | |
| BabSetupBase (const BabSetupBase &setup, OsiTMINLPInterface &nlp, const std::string &prefix) | |
| Copy but uses an other nlp. | |
| BabSetupBase (const BabSetupBase &other) | |
| Copy constructor. | |
| virtual BabSetupBase * | clone () const =0 |
| virtual copy constructor. | |
| virtual BabSetupBase * | clone (OsiTMINLPInterface &nlp) const |
| Make a copy with solver replace by one passed . | |
| virtual | ~BabSetupBase () |
| Virtual destructor. | |
Methods to manipulate options. | |
| virtual void | registerOptions () |
| Register all the options for this algorithm instance. | |
| virtual void | setBabDefaultOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
| Setup the defaults options for this algorithm. | |
| virtual void | readOptionsFile () |
| Get the options from default text file (bonmin.opt) if don't already have them. | |
| void | readOptionsFile (std::string fileName) |
| Get the options from given fileName. | |
| void | readOptionsString (std::string opt_string) |
| Get the options from long string containing all. | |
| void | readOptionsStream (std::istream &is) |
| Get the options from stream. | |
| void | mayPrintDoc () |
| May print documentation of options if options print_options_documentation is set to yes. | |
| const char * | prefix () const |
| Get prefix to use for options. | |
| void | setOptionsAndJournalist (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist) |
| Set the value for options, output... | |
| void | initializeOptionsAndJournalist () |
| Initialize the options and the journalist. | |
| static void | registerAllOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
| Register all the options for this algorithm instance. | |
A class to have all elements necessary to setup a branch-and-bound.
Definition at line 25 of file BonBabSetupBase.hpp.
| typedef std::list<CuttingMethod> Bonmin::BabSetupBase::CuttingMethods |
Definition at line 65 of file BonBabSetupBase.hpp.
| typedef std::list<HeuristicMethod > Bonmin::BabSetupBase::HeuristicMethods |
Definition at line 66 of file BonBabSetupBase.hpp.
Strategies for comparing the nodes on the heap.
| Enumerator | |
|---|---|
| bestBound | |
| DFS | Depth First Search. |
| BFS | Best First Search. |
| dynamic | Dynamic strategy, see CbcBranchActual.hpp for explanations. |
| bestGuess | Best guessed integer solution is subtree below, based on pseudo costs. |
Definition at line 69 of file BonBabSetupBase.hpp.
Strategies for traversing the tree.
| Enumerator | |
|---|---|
| HeapOnly | |
| DiveFromBest | dive from top node of the heap untill it gets to a leaf of the tree. Uses Bonmin::CbcDiver. |
| ProbedDive | Eplore two kids before following on dive. |
| DfsDiveFromBest | dive from top node of the heap with more elaborate strategy (see options doc). Uses Bonmin::CbcDfsDiver. |
| DfsDiveDynamic | Same as DfsDiveFromBest, but after a prescribed number of integer solution are found switch to best-bound and if too many node switches to depth-first. Uses Bonmin::CbcDfsDiver. |
Definition at line 79 of file BonBabSetupBase.hpp.
| Enumerator | |
|---|---|
| MOST_FRACTIONAL | |
| STRONG_BRANCHING | |
| RELIABILITY_BRANCHING | |
| QP_STRONG_BRANCHING | |
| LP_STRONG_BRANCHING | |
| NLP_STRONG_BRANCHING | |
| OSI_SIMPLE | |
| OSI_STRONG | |
| RANDOM | |
Definition at line 89 of file BonBabSetupBase.hpp.
Parameters represented by an integer.
| Enumerator | |
|---|---|
| BabLogLevel | |
| BabLogInterval | Display information every logIntervval nodes. |
| MaxFailures | Max number of failures in a branch. |
| FailureBehavior | Behavior of the algorithm in the case of a failure. |
| MaxInfeasible | Max number of consecutive infeasible problem in a branch before fathoming. |
| NumberStrong | Number of candidates for strong branching. |
| MinReliability | Minimum reliability before trust pseudo-costs. |
| MaxNodes | Global node limit. |
| MaxSolutions | limit on number of integer feasible solution. |
| MaxIterations | Global iteration limit. |
| SpecialOption | Spetial option in particular for Cbc. |
| DisableSos | Consider or not SOS constraints. |
| NumCutPasses | Number of cut passes at nodes. |
| NumCutPassesAtRoot | Number of cut passes at nodes. |
| RootLogLevel | Log level for root relaxation. |
| NumberIntParam | Dummy end to size table. |
Definition at line 105 of file BonBabSetupBase.hpp.
Parameters represented by a double.
Definition at line 127 of file BonBabSetupBase.hpp.
| Bonmin::BabSetupBase::BabSetupBase | ( | const CoinMessageHandler * | handler = NULL | ) |
Default constructor.
| Bonmin::BabSetupBase::BabSetupBase | ( | Ipopt::SmartPtr< TMINLP > | tminlp, |
| const CoinMessageHandler * | handler = NULL ) |
Construct from existing tminlp.
| Bonmin::BabSetupBase::BabSetupBase | ( | Ipopt::SmartPtr< TNLPSolver > | app | ) |
Construct from existing application.
| Bonmin::BabSetupBase::BabSetupBase | ( | const OsiTMINLPInterface & | nlp | ) |
Construct from existing TMINLP interface.
| Bonmin::BabSetupBase::BabSetupBase | ( | const BabSetupBase & | setup, |
| OsiTMINLPInterface & | nlp ) |
Copy but uses an other nlp.
| Bonmin::BabSetupBase::BabSetupBase | ( | const BabSetupBase & | setup, |
| OsiTMINLPInterface & | nlp, | ||
| const std::string & | prefix ) |
Copy but uses an other nlp.
| Bonmin::BabSetupBase::BabSetupBase | ( | const BabSetupBase & | other | ) |
Copy constructor.
|
virtual |
Virtual destructor.
|
pure virtual |
virtual copy constructor.
Implemented in Bonmin::BonminSetup.
|
virtual |
Make a copy with solver replace by one passed .
Reimplemented in Bonmin::BonminSetup.
| void Bonmin::BabSetupBase::use | ( | const OsiTMINLPInterface & | nlp | ) |
use existing TMINLP interface (containing the options).
| void Bonmin::BabSetupBase::use | ( | Ipopt::SmartPtr< TMINLP > | tminlp | ) |
Read options (if not done before) and create interface using tminlp.
| void Bonmin::BabSetupBase::use | ( | Ipopt::SmartPtr< TMINLP2TNLP > | prob | ) |
use specific instanciation of a TMINLP2TNLP.
|
inline |
Set the non-linear solver used.
Definition at line 175 of file BonBabSetupBase.hpp.
|
virtual |
Register all the options for this algorithm instance.
Reimplemented in Bonmin::BonminSetup.
|
inlinevirtual |
Setup the defaults options for this algorithm.
Reimplemented in Bonmin::BonminSetup.
Definition at line 186 of file BonBabSetupBase.hpp.
|
static |
Register all the options for this algorithm instance.
|
inlinevirtual |
Get the options from default text file (bonmin.opt) if don't already have them.
Definition at line 192 of file BonBabSetupBase.hpp.
| void Bonmin::BabSetupBase::readOptionsFile | ( | std::string | fileName | ) |
Get the options from given fileName.
| void Bonmin::BabSetupBase::readOptionsString | ( | std::string | opt_string | ) |
Get the options from long string containing all.
| void Bonmin::BabSetupBase::readOptionsStream | ( | std::istream & | is | ) |
Get the options from stream.
| void Bonmin::BabSetupBase::mayPrintDoc | ( | ) |
May print documentation of options if options print_options_documentation is set to yes.
|
inline |
Get prefix to use for options.
Definition at line 212 of file BonBabSetupBase.hpp.
|
inline |
Set the value for options, output...
Definition at line 217 of file BonBabSetupBase.hpp.
| void Bonmin::BabSetupBase::initializeOptionsAndJournalist | ( | ) |
Initialize the options and the journalist.
|
inline |
Pointer to the non-linear solver used.
Definition at line 233 of file BonBabSetupBase.hpp.
|
inline |
Pointer to the continuous solver to use for relaxations.
Definition at line 238 of file BonBabSetupBase.hpp.
|
inline |
list of cutting planes methods to apply with their frequencies.
Definition at line 243 of file BonBabSetupBase.hpp.
|
inline |
list of Heuristic methods to use.
Definition at line 248 of file BonBabSetupBase.hpp.
|
inline |
branching method to use.
Definition at line 253 of file BonBabSetupBase.hpp.
|
inline |
Method used to compare nodes.
Definition at line 258 of file BonBabSetupBase.hpp.
|
inline |
Method used to traverse tree.
Definition at line 263 of file BonBabSetupBase.hpp.
|
inline |
Return value of integer parameter.
Definition at line 268 of file BonBabSetupBase.hpp.
|
inline |
Return value of double parameter.
Definition at line 273 of file BonBabSetupBase.hpp.
|
inline |
Return value of integer parameter.
Definition at line 278 of file BonBabSetupBase.hpp.
|
inline |
Return value of double parameter.
Definition at line 283 of file BonBabSetupBase.hpp.
|
inline |
Get the values of base parameters from the options stored.
Definition at line 290 of file BonBabSetupBase.hpp.
| void Bonmin::BabSetupBase::gatherParametersValues | ( | Ipopt::SmartPtr< Ipopt::OptionsList > | options | ) |
Get the values of the base parameters from the passed options.
|
inline |
Acces storage of Journalist for output.
Definition at line 297 of file BonBabSetupBase.hpp.
|
inline |
Acces list of Options.
Definition at line 303 of file BonBabSetupBase.hpp.
|
inline |
Access registered Options.
Definition at line 309 of file BonBabSetupBase.hpp.
|
inline |
Access to extra objects.
Definition at line 315 of file BonBabSetupBase.hpp.
|
inline |
Access to extra objects.
Definition at line 321 of file BonBabSetupBase.hpp.
|
inline |
Definition at line 326 of file BonBabSetupBase.hpp.
|
inline |
Definition at line 330 of file BonBabSetupBase.hpp.
|
protected |
Set the priorities into OsiTMINLPInterface when needed.
|
protected |
Add SOS constraints to OsiTMINLPInterface when needed.
|
protected |
storage of integer parameters.
Definition at line 341 of file BonBabSetupBase.hpp.
|
staticprotected |
default values for int parameters.
Definition at line 343 of file BonBabSetupBase.hpp.
|
protected |
storage of double parameters.
Definition at line 345 of file BonBabSetupBase.hpp.
|
staticprotected |
default values for double parameters.
Definition at line 347 of file BonBabSetupBase.hpp.
|
protected |
Storage of the non-linear solver used.
Definition at line 349 of file BonBabSetupBase.hpp.
|
protected |
Storage of continuous solver.
Definition at line 351 of file BonBabSetupBase.hpp.
|
protected |
Method to linearize MINLPs.
Definition at line 353 of file BonBabSetupBase.hpp.
|
protected |
Cut generation methods.
Definition at line 355 of file BonBabSetupBase.hpp.
|
protected |
Heuristic methods.
Definition at line 357 of file BonBabSetupBase.hpp.
|
protected |
Branching method.
Definition at line 359 of file BonBabSetupBase.hpp.
|
protected |
Node comparison method.
Definition at line 361 of file BonBabSetupBase.hpp.
|
protected |
Tree traversal method.
Definition at line 363 of file BonBabSetupBase.hpp.
|
protected |
Extra object to add to Cbc (not OsiObjects).
Definition at line 365 of file BonBabSetupBase.hpp.
|
protected |
Storage of Journalist for output.
Definition at line 369 of file BonBabSetupBase.hpp.
|
protected |
List of Options.
Definition at line 372 of file BonBabSetupBase.hpp.
|
protected |
Registered Options.
Definition at line 375 of file BonBabSetupBase.hpp.
|
protected |
flag to say if option file was read.
Definition at line 378 of file BonBabSetupBase.hpp.
|
protected |
separate message handler.
Definition at line 380 of file BonBabSetupBase.hpp.
|
protected |
Prefix to use when reading options.
Definition at line 382 of file BonBabSetupBase.hpp.