Solver for a specific problem class. More...
#include <roboptim/core/solver.hh>
Public Types | |
typedef Problem< F, C > | problem_t |
Solver problem type. More... | |
typedef std::map< std::string, Parameter > | parameters_t |
Map of parameters. More... | |
![]() | |
enum | solutions { SOLVER_NO_SOLUTION, SOLVER_VALUE, SOLVER_VALUE_WARNINGS, SOLVER_ERROR } |
Define the kind of solution which has been found. More... | |
typedef Function::vector_t | vector_t |
Vector type imported from function class. More... | |
typedef boost::variant < NoSolution, Result, ResultWithWarnings, SolverError > | result_t |
Result type. More... | |
Public Member Functions | |
Solver (const problem_t &problem) throw () | |
Instantiate a solver from a problem. More... | |
template<typename F_ , typename C_ > | |
Solver (const Problem< F_, C_ > &problem) throw () | |
Instantiate a solver from a problem in a different problem class. More... | |
virtual | ~Solver () throw () |
const problem_t & | problem () const throw () |
Retrieve the problem. More... | |
virtual std::ostream & | print (std::ostream &) const throw () |
Display the solver on the specified output stream. More... | |
Parameters | |
const parameters_t & | parameters () const throw () |
parameters_t & | parameters () throw () |
template<typename T > | |
const T & | getParameter (const std::string &key) const |
![]() | |
void | reset () throw () |
Force to restart the optimization. More... | |
virtual void | solve ()=0 throw () |
Solve the problem. More... | |
const result_t & | minimum () throw () |
Returns the function minimum This solves the problem automatically, if it has not yet been solved. More... | |
solutions | minimumType () throw () |
Determine real minimum type. More... | |
template<typename T > | |
const T & | getMinimum () throw (boost::bad_get) |
Get real result. More... | |
GenericSolver () throw () | |
GenericSolver (const GenericSolver &) throw () | |
virtual | ~GenericSolver () throw () |
Protected Attributes | |
const problem_t | problem_ |
Problem that will be solved. More... | |
parameters_t | parameters_ |
Solver parameters (run-time configuration). More... | |
![]() | |
result_t | result_ |
/brief Optimization result. More... | |
Static Protected Attributes | |
static log4cxx::LoggerPtr | logger |
Pointer to function logger (see log4cxx documentation). More... | |
![]() | |
static log4cxx::LoggerPtr | logger |
Pointer to function logger (see log4cxx documentation). More... | |
Solver for a specific problem class.
This class is parametrized by two types: the cost function type and the constraints type.
Solver classes are immutable, the problem can not be changed after the class instantiation.
F | cost function type |
C | constraints functions type |
typedef std::map<std::string, Parameter> roboptim::Solver< F, C >::parameters_t |
Map of parameters.
typedef Problem<F, C> roboptim::Solver< F, C >::problem_t |
Solver problem type.
The solver can solve problems of this type. If another kind of problem is given, a conversion will be required.
|
explicit |
Instantiate a solver from a problem.
problem | problem that should be solved |
|
explicit |
Instantiate a solver from a problem in a different problem class.
This constructor is called when the problem cost function or/and constraints type does not match solver's types.
This is only possible if the problem provides too much information compared to the solver requirements: if the problem contains twice derivable function and the solver requires only derivable function, it will work however the opposite will fail. Problem compatibility is known at compile-time, so the failure will be at compile-time.
F_ | original cost function type |
C_ | original constraints functions type |
problem | problem that should be solved |
|
virtual |
const T & roboptim::Solver< F, C >::getParameter | ( | const std::string & | key | ) | const |
const Solver< F, C >::parameters_t & roboptim::Solver< F, C >::parameters | ( | ) | const | |
throw | ( | |||
) |
Solver< F, C >::parameters_t & roboptim::Solver< F, C >::parameters | ( | ) | ||
throw | ( | |||
) |
|
virtual |
Display the solver on the specified output stream.
o | output stream used for display |
Reimplemented from roboptim::GenericSolver.
References roboptim::decindent(), roboptim::iendl(), and roboptim::incindent().
const Solver< F, C >::problem_t & roboptim::Solver< F, C >::problem | ( | ) | const | |
throw | ( | |||
) |
Retrieve the problem.
|
staticprotected |
Pointer to function logger (see log4cxx documentation).
|
protected |
Solver parameters (run-time configuration).
|
protected |
Problem that will be solved.