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:

Inheritance graph
[legend]
List of all members.

Public Types

 iterationLimit = -3
 doesNotConverge = -8
 computationError = -2
 notEnoughFreedom = -1
 illDefinedProblem = -4
 illegalOption = -5
 externalException = -6
 exception = -7
 solvedOptimal = 1
 solvedOptimalTol = 2
 provenInfeasible = 3
 unbounded = 4
 numReturnCodes
 Fake member to know size.
enum  ReturnStatus {
  iterationLimit = -3, 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)
 Constructor with options initialization.
virtual Ipopt::SmartPtr< TNLPSolverclone ()=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::RegisteredOptionsroptions ()
 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).
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 turnOffOutput ()=0
 turn off all output from the solver
virtual void turnOnOutput ()=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).
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 ()
 Initialize the options and the journalist.

Protected Attributes

Ipopt::SmartPtr< Ipopt::Journalist > journalist_
 Storage of Journalist for output.
Ipopt::SmartPtr< Ipopt::OptionsList > options_
 List of Options.
Ipopt::SmartPtr< Bonmin::RegisteredOptionsroptions_
 Registered Options.

Private Member Functions

 TNLPSolver (TNLPSolver &other)
 There is no copy constructor for this class.

Classes

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

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 25 of file BonTNLPSolver.hpp.


Member Enumeration Documentation

enum Bonmin::TNLPSolver::ReturnStatus

Standard return statuses for a solver.

Enumerator:
iterationLimit 
doesNotConverge 
computationError 
notEnoughFreedom 
illDefinedProblem 
illegalOption 
externalException 
exception 
solvedOptimal 
solvedOptimalTol 
provenInfeasible 
unbounded 
numReturnCodes  Fake member to know size.

Definition at line 28 of file BonTNLPSolver.hpp.


Constructor & Destructor Documentation

Bonmin::TNLPSolver::TNLPSolver (  ) 

default Constructor

Definition at line 40 of file BonTNLPSolver.cpp.

References initializeOptionsAndJournalist().

Bonmin::TNLPSolver::TNLPSolver ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions,
Ipopt::SmartPtr< Ipopt::OptionsList >  options,
Ipopt::SmartPtr< Ipopt::Journalist >  journalist 
)

Constructor with options initialization.

Definition at line 45 of file BonTNLPSolver.cpp.

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

Virtual destructor.

Definition at line 54 of file BonTNLPSolver.cpp.

Bonmin::TNLPSolver::TNLPSolver ( TNLPSolver other  )  [private]

There is no copy constructor for this class.


Member Function Documentation

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

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

virtual Ipopt::SmartPtr<TNLPSolver> Bonmin::TNLPSolver::clone (  )  [pure virtual]

virtual copy constructor

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

Referenced by Bonmin::QpBranchingSolver::markHotStart().

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

Initialize the TNLPSolver (read options from params_file).

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

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

Initialize the TNLPSolver (read options from istream is).

Implemented in Bonmin::BqpdSolver, Bonmin::FilterSolver, 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::BqpdSolver, Bonmin::FilterSolver, 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::BqpdSolver, Bonmin::FilterSolver, 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::BqpdSolver, Bonmin::FilterSolver, and Bonmin::IpoptSolver.

Referenced by Bonmin::Bab::branchAndBound().

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

Get warm start used in last optimization.

Implemented in Bonmin::BqpdSolver, Bonmin::FilterSolver, 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::BqpdSolver, and Bonmin::FilterSolver.

Referenced by Bonmin::Bab::branchAndBound().

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

Solves a problem expresses as a TNLP.

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

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

Check that warm start object is valid.

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

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

Enable the warm start options in the solver.

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

Referenced by FP(), FPGeneralIntegers(), and Bonmin::StartPointReader::readAndApply().

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

Disable the warm start options in the solver.

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

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

Get a pointer to a journalist.

Definition at line 152 of file BonTNLPSolver.hpp.

References journalist_.

Referenced by Bonmin::StrongBranchingSolver::StrongBranchingSolver(), and Bonmin::BabSetupBase::use().

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

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

Definition at line 156 of file BonTNLPSolver.hpp.

References roptions_.

Referenced by Bonmin::StrongBranchingSolver::StrongBranchingSolver(), and Bonmin::BabSetupBase::use().

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

Get the options (for getting their values).

Definition at line 160 of file BonTNLPSolver.hpp.

References options_.

Referenced by Bonmin::StrongBranchingSolver::StrongBranchingSolver(), and Bonmin::BabSetupBase::use().

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

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

Definition at line 164 of file BonTNLPSolver.hpp.

References options_.

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 168 of file BonTNLPSolver.hpp.

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

Get the CpuTime of the last optimization.

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

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

Get the iteration count of the last optimization.

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

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

turn off all output from the solver

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

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

turn on all output from the solver

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

Referenced by main().

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

Get the solver name.

Implemented in Bonmin::BqpdSolver, Bonmin::FilterSolver, 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).

Definition at line 231 of file BonTNLPSolver.cpp.

References computationError, illDefinedProblem, and illegalOption.

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

Say if return status is an error.

Definition at line 189 of file BonTNLPSolver.hpp.

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

Error code (solver specific).

Implemented in Bonmin::BqpdSolver, Bonmin::FilterSolver, 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.

Definition at line 59 of file BonTNLPSolver.cpp.

References e, lam, m, n, provenInfeasible, and solvedOptimal.

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

Initialize the options and the journalist.

Definition at line 237 of file BonTNLPSolver.cpp.

References journalist_, options_, and roptions_.

Referenced by TNLPSolver().


Member Data Documentation

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

Storage of Journalist for output.

Definition at line 203 of file BonTNLPSolver.hpp.

Referenced by Bonmin::BqpdSolver::clone(), Bonmin::BqpdSolver::Initialize(), initializeOptionsAndJournalist(), Bonmin::IpoptSolver::IpoptSolver(), and journalist().

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

List of Options.

Definition at line 206 of file BonTNLPSolver.hpp.

Referenced by Bonmin::BqpdSolver::clone(), Bonmin::BqpdSolver::Initialize(), initializeOptionsAndJournalist(), Bonmin::IpoptSolver::IpoptSolver(), Bonmin::BqpdSolver::OptimizeTNLP(), options(), and Bonmin::BqpdSolver::setWarmStart().

Ipopt::SmartPtr<Bonmin::RegisteredOptions> Bonmin::TNLPSolver::roptions_ [protected]

Registered Options.

Definition at line 209 of file BonTNLPSolver.hpp.

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


The documentation for this class was generated from the following files:
Generated on Tue Sep 30 03:03:06 2008 by  doxygen 1.4.7