Optimization problems

Optimization problem without constraints. More...

Classes

class  roboptim::Problem< F, boost::mpl::vector<> >
 
class  roboptim::Problem< F, CLIST >
 
class  roboptim::ResultWithWarnings
 Represents the solution of an optimization problem when errors occurred during the solving process. More...
 
class  roboptim::Result
 Represents the solution of an optimization problem. More...
 
class  roboptim::SolverError
 Base exception class for solving errors. More...
 
class  roboptim::SolverFactory< T >
 Define a solver factory that instanciate the plug-ins. More...
 
struct  roboptim::StateParameter< F >
 Solver state parameters type. More...
 
class  roboptim::SolverState< P >
 State of the solver. More...
 
class  roboptim::SolverWarning
 Exception used for non-critical errors during optimization. More...
 
struct  roboptim::Parameter
 Solver parameter type. More...
 
class  roboptim::Solver< F, C >
 Solver for a specific problem class. More...
 

Typedefs

typedef boost::mpl::vector roboptim::Problem< F, boost::mpl::vector<> >::constraintsList_t
 
typedef F roboptim::Problem< F, boost::mpl::vector<> >::function_t
 Function type. More...
 
typedef function_t::value_type roboptim::Problem< F, boost::mpl::vector<> >::value_type
 
typedef function_t::vector_t roboptim::Problem< F, boost::mpl::vector<> >::vector_t
 Vector type. More...
 
typedef function_t::argument_t roboptim::Problem< F, boost::mpl::vector<> >::argument_t
 Argument type. More...
 
typedef function_t::size_type roboptim::Problem< F, boost::mpl::vector<> >::size_type
 Size type. More...
 
typedef boost::optional< argument_t > roboptim::Problem< F, boost::mpl::vector<> >::startingPoint_t
 Optional vector defines a starting point. More...
 
typedef function_t::interval_t roboptim::Problem< F, boost::mpl::vector<> >::interval_t
 
typedef function_t::intervals_t roboptim::Problem< F, boost::mpl::vector<> >::intervals_t
 
typedef std::vector< value_type > roboptim::Problem< F, boost::mpl::vector<> >::scaling_t
 Scaling vector. More...
 
typedef scaling_t scales_t roboptim::Problem< F, boost::mpl::vector<> >::ROBOPTIM_CORE_DEPRECATED
 Scaling vector (deprecated typedef). More...
 
typedef function_t::names_t roboptim::Problem< F, boost::mpl::vector<> >::names_t
 Vector of names (e.g. for arguments). More...
 
typedef detail::list_converter< CLIST >::type roboptim::Problem< F, CLIST >::constraintsList_t
 Constraints types list. More...
 
typedef F roboptim::Problem< F, CLIST >::function_t
 Function type. More...
 
typedef detail::shared_ptr_variant< constraintsList_t >::type roboptim::Problem< F, CLIST >::constraint_t
 Constraint's type. More...
 
typedef function_t::value_type roboptim::Problem< F, CLIST >::value_type
 Import function's value_type type. More...
 
typedef function_t::vector_t roboptim::Problem< F, CLIST >::vector_t
 Vector type. More...
 
typedef function_t::argument_t roboptim::Problem< F, CLIST >::argument_t
 Argument type. More...
 
typedef function_t::size_type roboptim::Problem< F, CLIST >::size_type
 Size type. More...
 
typedef std::vector< constraint_t > roboptim::Problem< F, CLIST >::constraints_t
 Constraints are represented as a vector of constraints. More...
 
typedef boost::optional< argument_t > roboptim::Problem< F, CLIST >::startingPoint_t
 Optional vector defines a starting point. More...
 
typedef function_t::interval_t roboptim::Problem< F, CLIST >::interval_t
 Interval type (e.g. for bounds). More...
 
typedef function_t::intervals_t roboptim::Problem< F, CLIST >::intervals_t
 Intervals type. More...
 
typedef std::vector< value_type > roboptim::Problem< F, CLIST >::scaling_t
 Scaling vector. More...
 
typedef scaling_t scales_t roboptim::Problem< F, CLIST >::ROBOPTIM_CORE_DEPRECATED
 Scaling vector (deprecated typedef) More...
 
typedef function_t::names_t roboptim::Problem< F, CLIST >::names_t
 Vector of names (e.g. for arguments). More...
 
typedef std::vector< intervals_t > roboptim::Problem< F, CLIST >::intervalsVect_t
 Vector of interval vectors. More...
 
typedef std::vector< scaling_t > roboptim::Problem< F, CLIST >::scalingVect_t
 Vector of scaling vectors. More...
 
typedef scalingVect_t scalesVect_t roboptim::Problem< F, CLIST >::ROBOPTIM_CORE_DEPRECATED
 Vector of scaling vectors (deprecated typedef). More...
 

Functions

std::ostream & roboptim::Problem< F, boost::mpl::vector<> >::print (std::ostream &o) const
 Display the problem on the specified output stream. More...
 
std::ostream & roboptim::Problem< F, CLIST >::print (std::ostream &o) const
 Display the problem on the specified output stream. More...
 
template<typename F >
std::ostream & roboptim::operator<< (std::ostream &o, const Problem< F, boost::mpl::vector<> > &pb)
 Override operator<< to handle problem display. More...
 
template<typename F , typename CLIST >
std::ostream & roboptim::operator<< (std::ostream &o, const Problem< F, CLIST > &pb)
 Override operator<< to handle problem display. More...
 
template<typename F >
std::ostream & roboptim::operator<< (std::ostream &o, const StateParameter< F > &parameter)
 Override operator<< to display ``parameters'' objects. More...
 
template<typename P >
std::ostream & roboptim::operator<< (std::ostream &o, const SolverState< P > &state)
 Override operator<< to display ``parameters'' objects. More...
 
ROBOPTIM_DLLAPI std::ostream & roboptim::operator<< (std::ostream &o, const Parameter &parameter)
 Override operator<< to display ``parameters'' objects. More...
 

Friends

template<typename F_ , typename CLIST_ >
class roboptim::Problem< F, boost::mpl::vector<> >::Problem
 
template<typename F_ , typename CLIST_ >
class roboptim::Problem< F, CLIST >::Problem
 

Constructors and destructors.

 roboptim::Problem< F, boost::mpl::vector<> >::Problem (const function_t &)
 
 roboptim::Problem< F, boost::mpl::vector<> >::Problem (const Problem< F, boost::mpl::vector<> > &)
 Copy constructor. More...
 
template<typename F_ >
 roboptim::Problem< F, boost::mpl::vector<> >::Problem (const Problem< F_, boost::mpl::vector<> > &)
 Copy constructor (convert from another class of problem). More...
 
virtual roboptim::Problem< F, boost::mpl::vector<> >::~Problem ()
 Virtual destructor. More...
 

Cost function.

const function_t & roboptim::Problem< F, boost::mpl::vector<> >::function () const
 Retrieve cost function. More...
 
intervals_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentBounds ()
 Retrieve arguments bounds. More...
 
const intervals_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentBounds () const
 Retrieve arguments bounds. More...
 
scaling_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScaling ()
 Retrieve arguments scaling. More...
 
const scaling_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScaling () const
 Retrieve arguments scaling. More...
 
scales_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScales () ROBOPTIM_CORE_DEPRECATED
 Retrieve arguments scaling (deprecated version). More...
 
const scales_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScales () const ROBOPTIM_CORE_DEPRECATED
 Retrieve arguments scaling (deprecated version). More...
 
names_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentNames ()
 Retrieve arguments names. More...
 
const names_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentNames () const
 Retrieve arguments names. More...
 

Starting point (initial guess).

startingPoint_t & roboptim::Problem< F, boost::mpl::vector<> >::startingPoint ()
 Set the initial guess. More...
 
const startingPoint_t & roboptim::Problem< F, boost::mpl::vector<> >::startingPoint () const
 Get the initial guess. More...
 

Constructors and destructors.

 roboptim::Problem< F, CLIST >::Problem (const function_t &cost)
 
 roboptim::Problem< F, CLIST >::Problem (const Problem< F, CLIST > &pb)
 Copy constructor. More...
 
template<typename F_ , typename CLIST_ >
 roboptim::Problem< F, CLIST >::Problem (const Problem< F_, CLIST_ > &pb)
 Copy constructor (convert from another class of problem). More...
 
virtual roboptim::Problem< F, CLIST >::~Problem ()
 Virtual destructor. More...
 

Cost function.

const function_t & roboptim::Problem< F, CLIST >::function () const
 Retrieve cost function. More...
 
intervals_t & roboptim::Problem< F, CLIST >::argumentBounds ()
 Retrieve arguments bounds. More...
 
const intervals_t & roboptim::Problem< F, CLIST >::argumentBounds () const
 Retrieve arguments bounds. More...
 
scaling_t & roboptim::Problem< F, CLIST >::argumentScaling ()
 Retrieve arguments scaling. More...
 
const scaling_t & roboptim::Problem< F, CLIST >::argumentScaling () const
 Retrieve arguments scaling. More...
 
scales_t & roboptim::Problem< F, CLIST >::argumentScales () ROBOPTIM_CORE_DEPRECATED
 Retrieve arguments scaling (deprecated version). More...
 
const scales_t & roboptim::Problem< F, CLIST >::argumentScales () const ROBOPTIM_CORE_DEPRECATED
 Retrieve arguments scaling (deprecated version). More...
 
names_t & roboptim::Problem< F, CLIST >::argumentNames ()
 Retrieve arguments names. More...
 
const names_t & roboptim::Problem< F, CLIST >::argumentNames () const
 Retrieve arguments names. More...
 

Constraints.

const constraints_t & roboptim::Problem< F, CLIST >::constraints () const
 Retrieve constraints. More...
 
template<typename C >
void roboptim::Problem< F, CLIST >::addConstraint (boost::shared_ptr< C > constraint, interval_t interval, value_type scale=1.)
 Add a constraint to the problem. More...
 
template<typename C >
void roboptim::Problem< F, CLIST >::addConstraint (boost::shared_ptr< C > constraint, intervals_t intervals, scaling_t scaling)
 Add a constraint to the problem. More...
 
const intervalsVect_t & roboptim::Problem< F, CLIST >::boundsVector () const
 Retrieve constraints bounds vector. More...
 
const scalingVect_t & roboptim::Problem< F, CLIST >::scalingVector () const
 Retrieve constraints scaling vector. More...
 
const scalesVect_t & roboptim::Problem< F, CLIST >::scalesVector () const ROBOPTIM_CORE_DEPRECATED
 Retrieve constraints scaling vector (deprecated version). More...
 

Starting point (initial guess).

startingPoint_t & roboptim::Problem< F, CLIST >::startingPoint ()
 Set the initial guess. More...
 
const startingPoint_t & roboptim::Problem< F, CLIST >::startingPoint () const
 Get the initial guess. More...
 

Detailed Description

Optimization problem without constraints.

Optimization problem.

An optimization problem is defined as:

The goal of the optimization process is finding a point which minimizes the cost function

To use the class, one has to instantiate a problem with a reference to a cost function. method: a reference to a function and an interval is needed.

The cost function is immutable.

Unlike other classes which just copy functions, pointers are used here in order to allow sub-classes of constraints to be inserted in the problem. For instance, a twice derivable function can be inserted in a problem which expects a derivable function.

Template Parameters
Ffunction type

An optimization problem is defined as:

The goal of the optimization process is finding a point which minimizes the cost function and which respects the constraints (i.e. the result of some functions is inside of specific interval).

To use the class, one has to instantiate a problem with a reference to a cost function. Then, constraints can be added through the addConstraint method: a reference to a function and an interval is needed.

The cost function is immutable.

Constraints are stored as a Boost.Variant of smart pointers (i.e. more precisely using a boost::shared_ptr) representing all the different possibles constraint types.

It is recommended to add a constraint using the following syntax:

problem.addConstraint<C> (boost::make_shared<MyFunction> (...), ...);

where C is the constraint type and MyFunction the function type.

Unlike other classes which just copy functions, pointers are used here in order to allow sub-classes of constraints to be inserted in the problem. For instance, a twice-differentiable function can be inserted in a problem which expects a differentiable function.

Template Parameters
Ffunction type
CLISTtype list satisfying MPL's sequence concept

Typedef Documentation

template<typename F >
typedef function_t::argument_t roboptim::Problem< F, boost::mpl::vector<> >::argument_t

Argument type.

template<typename F, typename CLIST>
typedef function_t::argument_t roboptim::Problem< F, CLIST >::argument_t

Argument type.

template<typename F, typename CLIST>
typedef detail::shared_ptr_variant<constraintsList_t>::type roboptim::Problem< F, CLIST >::constraint_t

Constraint's type.

Generate a Boost.Variant of shared pointers from the static constraints types list.

template<typename F, typename CLIST>
typedef std::vector<constraint_t> roboptim::Problem< F, CLIST >::constraints_t

Constraints are represented as a vector of constraints.

template<typename F >
typedef boost::mpl::vector roboptim::Problem< F, boost::mpl::vector<> >::constraintsList_t
template<typename F, typename CLIST>
typedef detail::list_converter<CLIST>::type roboptim::Problem< F, CLIST >::constraintsList_t

Constraints types list.

CLIST is converted to a boost::mpl::vector to ensure a similar behavior for codes using different random access sequences (vector, list, etc.).

template<typename F >
typedef F roboptim::Problem< F, boost::mpl::vector<> >::function_t

Function type.

This has to be either Function or one of its sub-classes.

template<typename F, typename CLIST>
typedef F roboptim::Problem< F, CLIST >::function_t

Function type.

This has to be either Function or one of its sub-classes.

template<typename F >
typedef function_t::interval_t roboptim::Problem< F, boost::mpl::vector<> >::interval_t
template<typename F, typename CLIST>
typedef function_t::interval_t roboptim::Problem< F, CLIST >::interval_t

Interval type (e.g. for bounds).

template<typename F >
typedef function_t::intervals_t roboptim::Problem< F, boost::mpl::vector<> >::intervals_t
template<typename F, typename CLIST>
typedef function_t::intervals_t roboptim::Problem< F, CLIST >::intervals_t

Intervals type.

template<typename F, typename CLIST>
typedef std::vector<intervals_t> roboptim::Problem< F, CLIST >::intervalsVect_t

Vector of interval vectors.

This type is used to take into account the fact that constraints can have output values in $\mathbb{C}^{m}$.

If $m=1$, then the associated interval vector contains only one element of interval_t type.

template<typename F >
typedef function_t::names_t roboptim::Problem< F, boost::mpl::vector<> >::names_t

Vector of names (e.g. for arguments).

template<typename F, typename CLIST>
typedef function_t::names_t roboptim::Problem< F, CLIST >::names_t

Vector of names (e.g. for arguments).

template<typename F >
typedef scaling_t scales_t roboptim::Problem< F, boost::mpl::vector<> >::ROBOPTIM_CORE_DEPRECATED

Scaling vector (deprecated typedef).

template<typename F, typename CLIST>
typedef scaling_t scales_t roboptim::Problem< F, CLIST >::ROBOPTIM_CORE_DEPRECATED

Scaling vector (deprecated typedef)

template<typename F, typename CLIST>
typedef scalingVect_t scalesVect_t roboptim::Problem< F, CLIST >::ROBOPTIM_CORE_DEPRECATED

Vector of scaling vectors (deprecated typedef).

template<typename F >
typedef std::vector<value_type> roboptim::Problem< F, boost::mpl::vector<> >::scaling_t

Scaling vector.

template<typename F, typename CLIST>
typedef std::vector<value_type> roboptim::Problem< F, CLIST >::scaling_t

Scaling vector.

template<typename F, typename CLIST>
typedef std::vector<scaling_t> roboptim::Problem< F, CLIST >::scalingVect_t

Vector of scaling vectors.

This type is used to take into account the fact that constraints can have output values in $\mathbb{R}^m$.

If $m=1$, then the associated scaling vector contains only one element of scaling_t type.

template<typename F >
typedef function_t::size_type roboptim::Problem< F, boost::mpl::vector<> >::size_type

Size type.

template<typename F, typename CLIST>
typedef function_t::size_type roboptim::Problem< F, CLIST >::size_type

Size type.

template<typename F >
typedef boost::optional<argument_t> roboptim::Problem< F, boost::mpl::vector<> >::startingPoint_t

Optional vector defines a starting point.

template<typename F, typename CLIST>
typedef boost::optional<argument_t> roboptim::Problem< F, CLIST >::startingPoint_t

Optional vector defines a starting point.

template<typename F >
typedef function_t::value_type roboptim::Problem< F, boost::mpl::vector<> >::value_type
template<typename F, typename CLIST>
typedef function_t::value_type roboptim::Problem< F, CLIST >::value_type

Import function's value_type type.

template<typename F >
typedef function_t::vector_t roboptim::Problem< F, boost::mpl::vector<> >::vector_t

Vector type.

template<typename F, typename CLIST>
typedef function_t::vector_t roboptim::Problem< F, CLIST >::vector_t

Vector type.

Function Documentation

template<typename F , typename CLIST >
template<typename C >
void roboptim::Problem< F, CLIST >::addConstraint ( boost::shared_ptr< C >  constraint,
interval_t  interval,
value_type  scale = 1. 
)

Add a constraint to the problem.

Useful only when $m=1$, use addConstraint (boost::shared_ptr<C> constraint, intervals_t intervals, scaling_t scaling) instead.

Parameters
constraintthe constraint that will be added
intervalinterval in which the constraint is satisfied
scaleconstraint scale
Template Parameters
Cconstraint type (has to be in CLIST)
Exceptions
std::runtime_error

References ASSERT_CONSTRAINT_TYPE.

template<typename F , typename CLIST >
template<typename C >
void roboptim::Problem< F, CLIST >::addConstraint ( boost::shared_ptr< C >  constraint,
intervals_t  intervals,
scaling_t  scaling 
)

Add a constraint to the problem.

The constraint can be multidimensional.

Parameters
constraintthe constraint that will be added
intervalsinterval vector in which the constraint is satisfied
scalingconstraint scaling
Template Parameters
Cconstraint type (has to be in CLIST)
Exceptions
std::runtime_error

References ASSERT_CONSTRAINT_TYPE, and ROBOPTIM_DEBUG_ONLY.

template<typename F >
Problem< F, boost::mpl::vector<> >::intervals_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentBounds ( )

Retrieve arguments bounds.

Arguments bounds define in which interval each argument is valid.

Returns
arguments bounds
template<typename F >
const Problem< F, boost::mpl::vector<> >::intervals_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentBounds ( ) const

Retrieve arguments bounds.

Arguments bounds define in which interval each argument is valid.

Returns
arguments bounds
template<typename F , typename CLIST >
Problem< F, CLIST >::intervals_t & roboptim::Problem< F, CLIST >::argumentBounds ( )

Retrieve arguments bounds.

Arguments bounds define in which interval each argument is valid.

Returns
arguments bounds

Referenced by roboptim::Problem< F, CLIST >::print().

template<typename F , typename CLIST >
const Problem< F, CLIST >::intervals_t & roboptim::Problem< F, CLIST >::argumentBounds ( ) const

Retrieve arguments bounds.

Arguments bounds define in which interval each argument is valid.

Returns
arguments bounds
template<typename F >
Problem< F, boost::mpl::vector<> >::names_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentNames ( )

Retrieve arguments names.

Arguments names define a name for each argument. This is particularly useful when logging data. Note: memory is not allocated by default since this is optional.

Returns
arguments names
template<typename F >
const Problem< F, boost::mpl::vector<> >::names_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentNames ( ) const

Retrieve arguments names.

Arguments names define a name for each argument. This is particularly useful when logging data. Note: memory is not allocated by default since this is optional.

Returns
arguments names
template<typename F , typename CLIST >
Problem< F, CLIST >::names_t & roboptim::Problem< F, CLIST >::argumentNames ( )

Retrieve arguments names.

Arguments names define a name for each argument. This is particularly useful when logging data.

Returns
arguments names

Referenced by roboptim::Problem< F, CLIST >::print().

template<typename F , typename CLIST >
const Problem< F, CLIST >::names_t & roboptim::Problem< F, CLIST >::argumentNames ( ) const

Retrieve arguments names.

Arguments names define a name for each argument. This is particularly useful when logging data.

Returns
arguments names
template<typename F >
Problem< F, boost::mpl::vector<> >::scales_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScales ( )

Retrieve arguments scaling (deprecated version).

template<typename F >
const Problem< F, boost::mpl::vector<> >::scales_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScales ( ) const

Retrieve arguments scaling (deprecated version).

template<typename F , typename CLIST >
Problem< F, CLIST >::scales_t & roboptim::Problem< F, CLIST >::argumentScales ( )

Retrieve arguments scaling (deprecated version).

References roboptim::Problem< F, CLIST >::argumentScaling().

template<typename F , typename CLIST >
const Problem< F, CLIST >::scales_t & roboptim::Problem< F, CLIST >::argumentScales ( ) const

Retrieve arguments scaling (deprecated version).

References roboptim::Problem< F, CLIST >::argumentScaling().

template<typename F >
Problem< F, boost::mpl::vector<> >::scaling_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScaling ( )

Retrieve arguments scaling.

Arguments scaling define which scale factor is applied for each argument.

Returns
arguments scaling
template<typename F >
const Problem< F, boost::mpl::vector<> >::scaling_t & roboptim::Problem< F, boost::mpl::vector<> >::argumentScaling ( ) const

Retrieve arguments scaling.

Arguments scaling define which scale factor is applied for each argument.

Returns
arguments scaling
template<typename F , typename CLIST >
Problem< F, CLIST >::scaling_t & roboptim::Problem< F, CLIST >::argumentScaling ( )

Retrieve arguments scaling.

Arguments scaling define which scale factor is applied for each argument.

Returns
arguments scaling

Referenced by roboptim::Problem< F, CLIST >::argumentScales(), and roboptim::Problem< F, CLIST >::print().

template<typename F , typename CLIST >
const Problem< F, CLIST >::scaling_t & roboptim::Problem< F, CLIST >::argumentScaling ( ) const

Retrieve arguments scaling.

Arguments scaling define which scale factor is applied for each argument.

Returns
arguments scaling
template<typename F , typename CLIST >
const Problem< F, CLIST >::intervalsVect_t & roboptim::Problem< F, CLIST >::boundsVector ( ) const

Retrieve constraints bounds vector.

Returns
constraints bounds vector
template<typename F , typename CLIST >
const Problem< F, CLIST >::constraints_t & roboptim::Problem< F, CLIST >::constraints ( ) const

Retrieve constraints.

Returns
constraints

Referenced by roboptim::Problem< F, CLIST >::print().

template<typename F >
const Problem< F, boost::mpl::vector<> >::function_t & roboptim::Problem< F, boost::mpl::vector<> >::function ( ) const

Retrieve cost function.

Returns
cost function
template<typename F , typename CLIST >
const Problem< F, CLIST >::function_t & roboptim::Problem< F, CLIST >::function ( ) const

Retrieve cost function.

Returns
cost function
template<typename F >
std::ostream & roboptim::operator<< ( std::ostream &  o,
const StateParameter< F > &  parameter 
)

Override operator<< to display ``parameters'' objects.

Parameters
ooutput stream used for display
parameterparameter to display
Template Parameters
Ffunction type.
Returns
output stream
template<typename P >
std::ostream & roboptim::operator<< ( std::ostream &  o,
const SolverState< P > &  state 
)

Override operator<< to display ``parameters'' objects.

Parameters
ooutput stream used for display
statesolver state to display
Template Parameters
Pproblem type.
Returns
output stream
std::ostream & roboptim::operator<< ( std::ostream &  o,
const Parameter parameter 
)

Override operator<< to display ``parameters'' objects.

Parameters
ooutput stream used for display
nsNoSolution object, ignored
Returns
output stream

References roboptim::Parameter::description, and roboptim::Parameter::value.

template<typename F >
std::ostream & roboptim::operator<< ( std::ostream &  o,
const Problem< F, boost::mpl::vector<> > &  pb 
)

Override operator<< to handle problem display.

Parameters
ooutput stream used for display
pbproblem to be displayed
Returns
output stream
template<typename F , typename CLIST >
std::ostream & roboptim::operator<< ( std::ostream &  o,
const Problem< F, CLIST > &  pb 
)

Override operator<< to handle problem display.

Parameters
ooutput stream used for display
pbproblem to be displayed
Returns
output stream
template<typename F >
std::ostream & roboptim::Problem< F, boost::mpl::vector<> >::print ( std::ostream &  o) const

Display the problem on the specified output stream.

Parameters
ooutput stream used for display
Returns
output stream

References roboptim::decindent(), roboptim::fg::fail(), roboptim::iendl(), roboptim::incendl(), roboptim::fg::ok(), roboptim::fg::reset(), and roboptim::fg::warn().

template<typename F , typename CLIST >
std::ostream & roboptim::Problem< F, CLIST >::print ( std::ostream &  o) const
template<typename F >
roboptim::Problem< F, boost::mpl::vector<> >::Problem ( const function_t f)
explicit
Precondition
costfunction $\mathbb{R}^n \rightarrow \mathbb{R}$
template<typename F >
roboptim::Problem< F, boost::mpl::vector<> >::Problem ( const Problem< F, boost::mpl::vector<> > &  pb)
explicit

Copy constructor.

template<typename F >
template<typename F_ >
roboptim::Problem< F, boost::mpl::vector<> >::Problem ( const Problem< F_, boost::mpl::vector<> > &  pb)
explicit

Copy constructor (convert from another class of problem).

template<typename F , typename CLIST >
roboptim::Problem< F, CLIST >::Problem ( const function_t cost)
explicit
Precondition
costfunction $\mathbb{R}^n \rightarrow \mathbb{R}$
Parameters
costcost function.
template<typename F , typename CLIST >
roboptim::Problem< F, CLIST >::Problem ( const Problem< F, CLIST > &  pb)
explicit

Copy constructor.

Parameters
pbproblem to copy.
template<typename F , typename CLIST >
template<typename F_ , typename CLIST_ >
roboptim::Problem< F, CLIST >::Problem ( const Problem< F_, CLIST_ > &  pb)
explicit

Copy constructor (convert from another class of problem).

Parameters
pbproblem to copy and convert.
template<typename F , typename CLIST >
const Problem< F, CLIST >::scalesVect_t & roboptim::Problem< F, CLIST >::scalesVector ( ) const

Retrieve constraints scaling vector (deprecated version).

References roboptim::Problem< F, CLIST >::scalingVector().

template<typename F , typename CLIST >
const Problem< F, CLIST >::scalingVect_t & roboptim::Problem< F, CLIST >::scalingVector ( ) const

Retrieve constraints scaling vector.

Returns
constraints scaling vector

Referenced by roboptim::Problem< F, CLIST >::scalesVector().

template<typename F >
Problem< F, boost::mpl::vector<> >::startingPoint_t & roboptim::Problem< F, boost::mpl::vector<> >::startingPoint ( )

Set the initial guess.

Returns
reference on the initial guess
Exceptions
std::runtime_error
template<typename F >
const Problem< F, boost::mpl::vector<> >::startingPoint_t & roboptim::Problem< F, boost::mpl::vector<> >::startingPoint ( ) const

Get the initial guess.

Returns
reference on the initial guess
Exceptions
std::runtime_error
template<typename F , typename CLIST >
Problem< F, CLIST >::startingPoint_t & roboptim::Problem< F, CLIST >::startingPoint ( )

Set the initial guess.

Returns
reference on the initial guess
Exceptions
std::runtime_error
template<typename F , typename CLIST >
const Problem< F, CLIST >::startingPoint_t & roboptim::Problem< F, CLIST >::startingPoint ( ) const

Get the initial guess.

Returns
reference on the initial guess
Exceptions
std::runtime_error
template<typename F >
roboptim::Problem< F, boost::mpl::vector<> >::~Problem ( )
virtual

Virtual destructor.

One may want to inherit from Problem to provide extra information to a solver plugin.

template<typename F , typename CLIST >
roboptim::Problem< F, CLIST >::~Problem ( )
virtual

Virtual destructor.

One may want to inherit from Problem to provide extra information to a solver plugin.

Friends

template<typename F >
template<typename F_ , typename CLIST_ >
friend class Problem
friend
template<typename F, typename CLIST>
template<typename F_ , typename CLIST_ >
friend class Problem
friend