Bonmin  1.7
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
Bonmin::TNLPSolver Class Reference

This is a generic class for calling an NLP solver to solve a TNLP. More...

#include <BonTNLPSolver.hpp>

Inheritance diagram for Bonmin::TNLPSolver:
Bonmin::BqpdSolver Bonmin::FilterSolver Bonmin::IpoptSolver

List of all members.

Classes

class  UnsolvedError
 We will throw this error when a problem is not solved. More...

Public Types

enum  ReturnStatus {
  iterationLimit = -3, timeLimit = 5, doesNotConverge = -8, computationError = -2,
  notEnoughFreedom = -1, illDefinedProblem = -4, illegalOption = -5, externalException = -6,
  exception = -7, solvedOptimal = 1, solvedOptimalTol = 2, provenInfeasible = 3,
  unbounded = 4, numReturnCodes
}
 Standard return statuses for a solver. More...

Public Member Functions

virtual UnsolvedErrornewUnsolvedError (int num, Ipopt::SmartPtr< TMINLP2TNLP > problem, std::string name)=0
 TNLPSolver ()
 default Constructor
 TNLPSolver (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist, const std::string &prefix)
 Constructor with options initialization.
virtual Ipopt::SmartPtr
< TNLPSolver
clone ()=0
 virtual copy constructor
virtual ~TNLPSolver ()
 Virtual destructor.
virtual bool Initialize (std::string params_file)=0
 Initialize the TNLPSolver (read options from params_file)
virtual bool Initialize (std::istream &is)=0
 Initialize the TNLPSolver (read options from istream is)
Ipopt::SmartPtr
< Ipopt::Journalist > 
journalist ()
 Get a pointer to a journalist.
Ipopt::SmartPtr
< Bonmin::RegisteredOptions
roptions ()
 Get a pointer to RegisteredOptions (generally used to add new ones)
Ipopt::SmartPtr< const
Ipopt::OptionsList > 
options () const
 Get the options (for getting their values).
Ipopt::SmartPtr
< Ipopt::OptionsList > 
options ()
 Get the options (for getting and setting their values).
const char * prefix ()
 Get the prefix.
virtual double CPUTime ()=0
 Get the CpuTime of the last optimization.
virtual int IterationCount ()=0
 Get the iteration count of the last optimization.
virtual void setOutputToDefault ()=0
 turn off all output from the solver
virtual void forceSolverOutput (int log_level)=0
 turn on all output from the solver
virtual std::string & solverName ()=0
 Get the solver name.
bool isRecoverable (ReturnStatus &r)
 Say if an optimization status for a problem which failed is recoverable (problem may be solvable).
void setup_global_time_limit (double time_limit)
 Setup for a global time limit for solver.
bool isError (ReturnStatus &r)
 Say if return status is an error.
virtual int errorCode () const =0
 Error code (solver specific).
Solve methods
virtual ReturnStatus OptimizeTNLP (const Ipopt::SmartPtr< Ipopt::TNLP > &tnlp)=0
 Solves a problem expresses as a TNLP.
virtual ReturnStatus ReOptimizeTNLP (const Ipopt::SmartPtr< Ipopt::TNLP > &tnlp)=0
 Resolves a problem expresses as a TNLP.
virtual bool setWarmStart (const CoinWarmStart *warm, Ipopt::SmartPtr< TMINLP2TNLP > tnlp)=0
 Set the warm start in the solver.
virtual CoinWarmStart * getUsedWarmStart (Ipopt::SmartPtr< TMINLP2TNLP > tnlp) const =0
 Get warm start used in last optimization.
virtual CoinWarmStart * getWarmStart (Ipopt::SmartPtr< TMINLP2TNLP > tnlp) const =0
 Get the warm start form the solver.
virtual CoinWarmStart * getEmptyWarmStart () const =0
 Solves a problem expresses as a TNLP.
virtual bool warmStartIsValid (const CoinWarmStart *ws) const =0
 Check that warm start object is valid.
virtual void enableWarmStart ()=0
 Enable the warm start options in the solver.
virtual void disableWarmStart ()=0
 Disable the warm start options in the solver.

Static Public Member Functions

static void RegisterOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Register this solver options into passed roptions.

Protected Member Functions

bool zeroDimension (const Ipopt::SmartPtr< Ipopt::TNLP > &tnlp, ReturnStatus &optimization_status)
 Determine if problem is of dimension zero and if it is check if solution is feasible.
void initializeOptionsAndJournalist ()
 Initializes options and journalist.
 TNLPSolver (const TNLPSolver &other)
 Copy Constructor.

Protected Attributes

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.
std::string prefix_
 Prefix to use for reading bonmin's options.
double start_time_
 Global start time.
double time_limit_
 Global time limit.
int default_log_level_
 To record default log level.

Detailed Description

This is a generic class for calling an NLP solver to solve a TNLP.

A TNLPSolver is able to solve and resolve a problem, it has some options (stored with Ipopt OptionList structure and registeredOptions) it produces some statistics (in SolveStatisctics and sometimes some errorCodes.

Definition at line 26 of file BonTNLPSolver.hpp.


Member Enumeration Documentation

Standard return statuses for a solver.

Enumerator:
iterationLimit 
timeLimit 
doesNotConverge 
computationError 
notEnoughFreedom 
illDefinedProblem 
illegalOption 
externalException 
exception 
solvedOptimal 
solvedOptimalTol 
provenInfeasible 
unbounded 
numReturnCodes 

Fake member to know size.

Definition at line 29 of file BonTNLPSolver.hpp.


Constructor & Destructor Documentation

Bonmin::TNLPSolver::TNLPSolver ( )

default Constructor

Bonmin::TNLPSolver::TNLPSolver ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions,
Ipopt::SmartPtr< Ipopt::OptionsList >  options,
Ipopt::SmartPtr< Ipopt::Journalist >  journalist,
const std::string &  prefix 
)

Constructor with options initialization.

virtual Bonmin::TNLPSolver::~TNLPSolver ( ) [virtual]

Virtual destructor.

Bonmin::TNLPSolver::TNLPSolver ( const TNLPSolver other) [protected]

Copy Constructor.


Member Function Documentation

virtual UnsolvedError* Bonmin::TNLPSolver::newUnsolvedError ( int  num,
Ipopt::SmartPtr< TMINLP2TNLP problem,
std::string  name 
) [pure virtual]
virtual Ipopt::SmartPtr<TNLPSolver> Bonmin::TNLPSolver::clone ( ) [pure virtual]

virtual copy constructor

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual bool Bonmin::TNLPSolver::Initialize ( std::string  params_file) [pure virtual]

Initialize the TNLPSolver (read options from params_file)

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual bool Bonmin::TNLPSolver::Initialize ( std::istream &  is) [pure virtual]

Initialize the TNLPSolver (read options from istream is)

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual ReturnStatus Bonmin::TNLPSolver::OptimizeTNLP ( const Ipopt::SmartPtr< Ipopt::TNLP > &  tnlp) [pure virtual]

Solves a problem expresses as a TNLP.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual ReturnStatus Bonmin::TNLPSolver::ReOptimizeTNLP ( const Ipopt::SmartPtr< Ipopt::TNLP > &  tnlp) [pure virtual]

Resolves a problem expresses as a TNLP.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual bool Bonmin::TNLPSolver::setWarmStart ( const CoinWarmStart *  warm,
Ipopt::SmartPtr< TMINLP2TNLP tnlp 
) [pure virtual]

Set the warm start in the solver.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual CoinWarmStart* Bonmin::TNLPSolver::getUsedWarmStart ( Ipopt::SmartPtr< TMINLP2TNLP tnlp) const [pure virtual]

Get warm start used in last optimization.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual CoinWarmStart* Bonmin::TNLPSolver::getWarmStart ( Ipopt::SmartPtr< TMINLP2TNLP tnlp) const [pure virtual]

Get the warm start form the solver.

Implemented in Bonmin::FilterSolver, and Bonmin::BqpdSolver.

virtual CoinWarmStart* Bonmin::TNLPSolver::getEmptyWarmStart ( ) const [pure virtual]

Solves a problem expresses as a TNLP.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual bool Bonmin::TNLPSolver::warmStartIsValid ( const CoinWarmStart *  ws) const [pure virtual]

Check that warm start object is valid.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual void Bonmin::TNLPSolver::enableWarmStart ( ) [pure virtual]

Enable the warm start options in the solver.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual void Bonmin::TNLPSolver::disableWarmStart ( ) [pure virtual]

Disable the warm start options in the solver.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

Ipopt::SmartPtr<Ipopt::Journalist> Bonmin::TNLPSolver::journalist ( ) [inline]

Get a pointer to a journalist.

Definition at line 155 of file BonTNLPSolver.hpp.

References journalist_.

Ipopt::SmartPtr<Bonmin::RegisteredOptions> Bonmin::TNLPSolver::roptions ( ) [inline]

Get a pointer to RegisteredOptions (generally used to add new ones)

Definition at line 159 of file BonTNLPSolver.hpp.

References roptions_.

Ipopt::SmartPtr<const Ipopt::OptionsList> Bonmin::TNLPSolver::options ( ) const [inline]

Get the options (for getting their values).

Definition at line 163 of file BonTNLPSolver.hpp.

References options_.

Ipopt::SmartPtr<Ipopt::OptionsList> Bonmin::TNLPSolver::options ( ) [inline]

Get the options (for getting and setting their values).

Definition at line 167 of file BonTNLPSolver.hpp.

References options_.

const char* Bonmin::TNLPSolver::prefix ( ) [inline]

Get the prefix.

Definition at line 171 of file BonTNLPSolver.hpp.

References prefix_.

static void Bonmin::TNLPSolver::RegisterOptions ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions) [inline, static]

Register this solver options into passed roptions.

Reimplemented in Bonmin::IpoptSolver.

Definition at line 175 of file BonTNLPSolver.hpp.

virtual double Bonmin::TNLPSolver::CPUTime ( ) [pure virtual]

Get the CpuTime of the last optimization.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual int Bonmin::TNLPSolver::IterationCount ( ) [pure virtual]

Get the iteration count of the last optimization.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual void Bonmin::TNLPSolver::setOutputToDefault ( ) [pure virtual]

turn off all output from the solver

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual void Bonmin::TNLPSolver::forceSolverOutput ( int  log_level) [pure virtual]

turn on all output from the solver

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

virtual std::string& Bonmin::TNLPSolver::solverName ( ) [pure virtual]

Get the solver name.

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

bool Bonmin::TNLPSolver::isRecoverable ( ReturnStatus r)

Say if an optimization status for a problem which failed is recoverable (problem may be solvable).

void Bonmin::TNLPSolver::setup_global_time_limit ( double  time_limit) [inline]

Setup for a global time limit for solver.

Definition at line 196 of file BonTNLPSolver.hpp.

References start_time_, and time_limit_.

bool Bonmin::TNLPSolver::isError ( ReturnStatus r) [inline]

Say if return status is an error.

Definition at line 202 of file BonTNLPSolver.hpp.

virtual int Bonmin::TNLPSolver::errorCode ( ) const [pure virtual]

Error code (solver specific).

Implemented in Bonmin::FilterSolver, Bonmin::BqpdSolver, and Bonmin::IpoptSolver.

bool Bonmin::TNLPSolver::zeroDimension ( const Ipopt::SmartPtr< Ipopt::TNLP > &  tnlp,
ReturnStatus optimization_status 
) [protected]

Determine if problem is of dimension zero and if it is check if solution is feasible.

void Bonmin::TNLPSolver::initializeOptionsAndJournalist ( ) [protected]

Initializes options and journalist.


Member Data Documentation

Ipopt::SmartPtr<Ipopt::Journalist> Bonmin::TNLPSolver::journalist_ [protected]

Storage of Journalist for output.

Definition at line 216 of file BonTNLPSolver.hpp.

Referenced by journalist().

Ipopt::SmartPtr<Ipopt::OptionsList> Bonmin::TNLPSolver::options_ [protected]

List of Options.

Definition at line 219 of file BonTNLPSolver.hpp.

Referenced by options().

Registered Options.

Definition at line 222 of file BonTNLPSolver.hpp.

Referenced by Bonmin::BqpdSolver::registerOptions(), Bonmin::FilterSolver::registerOptions(), and roptions().

std::string Bonmin::TNLPSolver::prefix_ [protected]

Prefix to use for reading bonmin's options.

Definition at line 225 of file BonTNLPSolver.hpp.

Referenced by prefix().

double Bonmin::TNLPSolver::start_time_ [protected]

Global start time.

Definition at line 227 of file BonTNLPSolver.hpp.

Referenced by setup_global_time_limit().

double Bonmin::TNLPSolver::time_limit_ [protected]

Global time limit.

Definition at line 230 of file BonTNLPSolver.hpp.

Referenced by setup_global_time_limit().

To record default log level.

Reimplemented in Bonmin::BqpdSolver, and Bonmin::FilterSolver.

Definition at line 233 of file BonTNLPSolver.hpp.


The documentation for this class was generated from the following file: