#include <BonCouenneSetup.hpp>
Public Member Functions | |
CouenneSetup () | |
Default constructor. More... | |
CouenneSetup (const CouenneSetup &other) | |
Copy constructor. More... | |
virtual Bonmin::BabSetupBase * | clone () const |
virtual copy constructor. More... | |
virtual | ~CouenneSetup () |
destructor More... | |
bool | InitializeCouenne (char **argv=NULL, CouenneProblem *couenneProb=NULL, Ipopt::SmartPtr< Bonmin::TMINLP > tminlp=NULL, CouenneInterface *ci=NULL, Bonmin::Bab *bb=NULL) |
Initialize from command line arguments. More... | |
virtual void | registerOptions () |
register the options More... | |
virtual void | readOptionsFile () |
Get the basic options if don't already have them. More... | |
CouenneCutGenerator * | couennePtr () const |
return pointer to cut generator (used to get pointer to problem) More... | |
bool | displayStats () |
true if one wants to display statistics at the end of program More... | |
void | addMilpCutGenerators () |
add cut generators More... | |
void | setDoubleParameter (const DoubleParameter &p, const double val) |
modify parameter (used for MaxTime) More... | |
double | getDoubleParameter (const DoubleParameter &p) const |
modify parameter (used for MaxTime) More... | |
void | setNodeComparisonMethod (Bonmin::BabSetupBase::NodeComparison c) |
![]() | |
BonminSetup (const CoinMessageHandler *handler=NULL) | |
Default constructor. More... | |
BonminSetup (const BonminSetup &other) | |
Copy constructor. More... | |
BonminSetup (const BonminSetup &setup, OsiTMINLPInterface &nlp) | |
Copy but uses an other nlp. More... | |
BonminSetup (const BonminSetup &setup, OsiTMINLPInterface &nlp, const std::string &prefix) | |
Copy but uses another nlp and algorithm. More... | |
BonminSetup * | clone (OsiTMINLPInterface &nlp) const |
Make a copy with solver replace by one passed . More... | |
BonminSetup * | clone (OsiTMINLPInterface &nlp, const std::string &prefix) const |
Make a copy but take options with different prefix. More... | |
virtual | ~BonminSetup () |
void | initialize (Ipopt::SmartPtr< TMINLP > tminlp, bool createContinuousSolver=true) |
Initialize, read options and create appropriate bonmin setup. More... | |
void | initialize (const OsiTMINLPInterface &nlpSi, bool createContinuousSolver=true) |
Initialize, read options and create appropriate bonmin setup. More... | |
Bonmin::Algorithm | getAlgorithm () |
Get the algorithm used. More... | |
void | addCutGenerator (CuttingMethod &cg) |
virtual void | setBabDefaultOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Setup the defaults options for this algorithm. More... | |
![]() | |
void | gatherParametersValues () |
Get the values of base parameters from the options stored. More... | |
void | gatherParametersValues (Ipopt::SmartPtr< Ipopt::OptionsList > options) |
Get the values of the base parameters from the passed options. More... | |
Ipopt::SmartPtr < Ipopt::Journalist > | journalist () |
Acces storage of Journalist for output. More... | |
Ipopt::SmartPtr < Ipopt::OptionsList > | options () |
Acces list of Options. More... | |
Ipopt::SmartPtr < Bonmin::RegisteredOptions > | roptions () |
Access registered Options. More... | |
const vector< OsiObject * > & | objects () const |
Access to extra objects. More... | |
vector< OsiObject * > & | objects () |
Access to extra objects. More... | |
void | addCutGenerator (CuttingMethod &cg) |
void | set_linearizer (TMINLP2OsiLP *linearizer) |
void | use (const OsiTMINLPInterface &nlp) |
use existing TMINLP interface (containing the options). More... | |
void | use (Ipopt::SmartPtr< TMINLP > tminlp) |
Read options (if not done before) and create interface using tminlp. More... | |
void | use (Ipopt::SmartPtr< TMINLP2TNLP > prob) |
use specific instanciation of a TMINLP2TNLP. More... | |
void | setNonlinearSolver (OsiTMINLPInterface *s) |
Set the non-linear solver used. More... | |
OsiTMINLPInterface * | nonlinearSolver () |
Pointer to the non-linear solver used. More... | |
OsiSolverInterface * | continuousSolver () |
Pointer to the continuous solver to use for relaxations. More... | |
CuttingMethods & | cutGenerators () |
list of cutting planes methods to apply with their frequencies. More... | |
HeuristicMethods & | heuristics () |
list of Heuristic methods to use. More... | |
OsiChooseVariable * | branchingMethod () |
branching method to use. More... | |
NodeComparison & | nodeComparisonMethod () |
Method used to compare nodes. More... | |
TreeTraversal | treeTraversalMethod () |
Method used to traverse tree. More... | |
int | getIntParameter (const IntParameter &p) const |
Return value of integer parameter. More... | |
double | getDoubleParameter (const DoubleParameter &p) const |
Return value of double parameter. More... | |
void | setIntParameter (const IntParameter &p, const int v) |
Return value of integer parameter. More... | |
void | setDoubleParameter (const DoubleParameter &p, const double v) |
Return value of double parameter. More... | |
BabSetupBase (const CoinMessageHandler *handler=NULL) | |
Default constructor. More... | |
BabSetupBase (Ipopt::SmartPtr< TMINLP > tminlp, const CoinMessageHandler *handler=NULL) | |
Construct from existing tminlp. More... | |
BabSetupBase (Ipopt::SmartPtr< TNLPSolver > app) | |
Construct from existing application. More... | |
BabSetupBase (const OsiTMINLPInterface &nlp) | |
Construct from existing TMINLP interface. More... | |
BabSetupBase (const BabSetupBase &setup, OsiTMINLPInterface &nlp) | |
Copy but uses an other nlp. More... | |
BabSetupBase (const BabSetupBase &setup, OsiTMINLPInterface &nlp, const std::string &prefix) | |
Copy but uses an other nlp. More... | |
BabSetupBase (const BabSetupBase &other) | |
Copy constructor. More... | |
virtual | ~BabSetupBase () |
Virtual destructor. More... | |
void | readOptionsFile (std::string fileName) |
Get the options from given fileName. More... | |
void | readOptionsString (std::string opt_string) |
Get the options from long string containing all. More... | |
void | readOptionsStream (std::istream &is) |
Get the options from stream. More... | |
void | mayPrintDoc () |
May print documentation of options if options print_options_documentation is set to yes. More... | |
const char * | prefix () const |
Get prefix to use for options. More... | |
void | setOptionsAndJournalist (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist) |
Set the value for options, output... More... | |
void | initializeOptionsAndJournalist () |
Initialize the options and the journalist. More... | |
Static Public Member Functions | |
static void | registerAllOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Register all Couenne options. More... | |
![]() | |
static void | registerAllOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Register all bonmin type executable options. More... | |
![]() | |
static void | registerAllOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Register all the options for this algorithm instance. More... | |
Private Attributes | |
Ipopt::SmartPtr< SmartAsl > | aslfg_ |
CouenneCutGenerator * | CouennePtr_ |
hold a reference to Couenne cut generator to delete it at last. More... | |
bool | displayStats_ |
true if one wants to display statistics at the end of program More... | |
CouenneProblem * | couenneProb_ |
MINLP formulation. More... | |
bool | couenneProb_is_own_ |
whether the couenneProb_ has been created by Couenne, and thus will be deleted by Couenne More... | |
Additional Inherited Members | |
![]() | |
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 |
enum | VarSelectStra_Enum { MOST_FRACTIONAL =0, STRONG_BRANCHING, RELIABILITY_BRANCHING, QP_STRONG_BRANCHING, LP_STRONG_BRANCHING, NLP_STRONG_BRANCHING, OSI_SIMPLE, OSI_STRONG, RANDOM } |
Parameters represented by an integer. More... | |
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... | |
![]() | |
void | addMilpCutGenerators () |
Add milp cut generators according to options. More... | |
void | initializeBBB () |
Initialize a plain branch-and-bound. More... | |
void | initializeBHyb (bool createContinuousSolver=false) |
Initialize a branch-and-cut with some OA. More... | |
![]() | |
void | setPriorities () |
Set the priorities into OsiTMINLPInterface when needed. More... | |
void | addSos () |
Add SOS constraints to OsiTMINLPInterface when needed. More... | |
![]() | |
static void | registerMilpCutGenerators (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions) |
Register standard MILP cut generators. More... | |
![]() | |
int | intParam_ [NumberIntParam] |
storage of integer parameters. More... | |
double | doubleParam_ [NumberDoubleParam] |
storage of double parameters. More... | |
OsiTMINLPInterface * | nonlinearSolver_ |
Storage of the non-linear solver used. More... | |
OsiSolverInterface * | continuousSolver_ |
Storage of continuous solver. More... | |
Ipopt::SmartPtr< TMINLP2OsiLP > | linearizer_ |
Method to linearize MINLPs. More... | |
CuttingMethods | cutGenerators_ |
Cut generation methods. More... | |
HeuristicMethods | heuristics_ |
Heuristic methods. More... | |
OsiChooseVariable * | branchingMethod_ |
Branching method. More... | |
NodeComparison | nodeComparisonMethod_ |
Node comparison method. More... | |
TreeTraversal | treeTraversalMethod_ |
Tree traversal method. More... | |
vector< OsiObject * > | objects_ |
Extra object to add to Cbc (not OsiObjects). More... | |
Ipopt::SmartPtr < Ipopt::Journalist > | journalist_ |
Storage of Journalist for output. More... | |
Ipopt::SmartPtr < Ipopt::OptionsList > | options_ |
List of Options. More... | |
Ipopt::SmartPtr < Bonmin::RegisteredOptions > | roptions_ |
Registered Options. More... | |
bool | readOptions_ |
flag to say if option file was read. More... | |
CoinMessageHandler * | messageHandler_ |
separate message handler. More... | |
std::string | prefix_ |
Prefix to use when reading options. More... | |
![]() | |
static int | defaultIntParam_ [NumberIntParam] |
default values for int parameters. More... | |
static double | defaultDoubleParam_ [NumberDoubleParam] |
default values for double parameters. More... | |
Definition at line 43 of file BonCouenneSetup.hpp.
|
inline |
Default constructor.
Definition at line 46 of file BonCouenneSetup.hpp.
|
inline |
Copy constructor.
Definition at line 55 of file BonCouenneSetup.hpp.
|
virtual |
destructor
Definition at line 96 of file BonCouenneSetup.cpp.
|
inlinevirtual |
virtual copy constructor.
Reimplemented from Bonmin::BonminSetup.
Definition at line 62 of file BonCouenneSetup.hpp.
bool CouenneSetup::InitializeCouenne | ( | char ** | argv = NULL , |
CouenneProblem * | couenneProb = NULL , |
||
Ipopt::SmartPtr< Bonmin::TMINLP > | tminlp = NULL , |
||
CouenneInterface * | ci = NULL , |
||
Bonmin::Bab * | bb = NULL |
||
) |
Initialize from command line arguments.
Change default value for failure behavior so that code doesn't crash when Ipopt does not solve a sub-problem.
Set the output level of the journalist for all Couenne categories. We probably want to make that a bit more flexible later.
trying to avoid repetitions here...
setup initial heuristic (in principle it should only run once...)
Definition at line 105 of file BonCouenneSetup.cpp.
|
virtual |
register the options
Reimplemented from Bonmin::BonminSetup.
Definition at line 830 of file BonCouenneSetup.cpp.
|
static |
Register all Couenne options.
Heuristics
TODO: move later!
Definition at line 834 of file BonCouenneSetup.cpp.
|
inlinevirtual |
Get the basic options if don't already have them.
Reimplemented from Bonmin::BabSetupBase.
Definition at line 81 of file BonCouenneSetup.hpp.
|
inline |
return pointer to cut generator (used to get pointer to problem)
Definition at line 87 of file BonCouenneSetup.hpp.
|
inline |
true if one wants to display statistics at the end of program
Definition at line 91 of file BonCouenneSetup.hpp.
void CouenneSetup::addMilpCutGenerators | ( | ) |
add cut generators
Add milp cut generators according to options.
Definition at line 1010 of file BonCouenneSetup.cpp.
|
inline |
modify parameter (used for MaxTime)
Definition at line 98 of file BonCouenneSetup.hpp.
|
inline |
modify parameter (used for MaxTime)
Definition at line 102 of file BonCouenneSetup.hpp.
|
inline |
Definition at line 105 of file BonCouenneSetup.hpp.
|
private |
Definition at line 109 of file BonCouenneSetup.hpp.
|
private |
hold a reference to Couenne cut generator to delete it at last.
The alternative would be to clone it every time the CouenneSolverInterface is cloned (that is, at each call of Optimality-based bound tightening).
Definition at line 115 of file BonCouenneSetup.hpp.
|
private |
true if one wants to display statistics at the end of program
Definition at line 118 of file BonCouenneSetup.hpp.
|
private |
MINLP formulation.
Definition at line 121 of file BonCouenneSetup.hpp.
|
private |
whether the couenneProb_ has been created by Couenne, and thus will be deleted by Couenne
Definition at line 124 of file BonCouenneSetup.hpp.