#include <roboptim/core/problem.hh>
Public Types | |
typedef GenericFunction< T > | function_t |
Function type. More... | |
typedef boost::mpl::vector < function_t > | constraintsList_t |
Constraints types list. More... | |
typedef boost::shared_ptr < function_t > | constraint_t |
Constraint's type. More... | |
typedef function_t::value_type | value_type |
Import function's value_type type. More... | |
typedef function_t::vector_t | vector_t |
Vector type. More... | |
typedef function_t::argument_t | argument_t |
Argument type. More... | |
typedef function_t::result_t | result_t |
Result type. More... | |
typedef function_t::size_type | size_type |
Size type. More... | |
typedef std::vector< constraint_t > | constraints_t |
Constraints are represented as a vector of constraints. More... | |
typedef boost::optional < argument_t > | startingPoint_t |
Optional vector defines a starting point. More... | |
typedef function_t::interval_t | interval_t |
Interval type (e.g. for bounds). More... | |
typedef function_t::intervals_t | intervals_t |
Intervals type. More... | |
typedef std::vector< value_type > | scaling_t |
Scaling vector. More... | |
typedef scaling_t | scales_t |
Scaling vector (deprecated typedef) More... | |
typedef function_t::names_t | names_t |
Vector of names (e.g. for arguments). More... | |
typedef std::vector< intervals_t > | intervalsVect_t |
Vector of interval vectors. More... | |
typedef std::vector< scaling_t > | scalingVect_t |
Vector of scaling vectors. More... | |
typedef scalingVect_t | scalesVect_t |
Vector of scaling vectors (deprecated typedef). More... | |
typedef GenericFunctionTraits < T >::jacobian_t | jacobian_t |
Jacobian matrix type. More... | |
typedef GenericFunctionTraits < T >::const_argument_ref | const_argument_ref |
Constant reference to an argument vector. More... | |
Public Member Functions | |
std::ostream & | print (std::ostream &o) const |
Display the problem on the specified output stream. More... | |
template<> | |
Problem< EigenMatrixSparse > ::jacobian_t | jacobian (const_argument_ref x) const |
template<int NORM> | |
Problem< T >::value_type | constraintsViolation (const_argument_ref x) const |
Constructors and destructors. | |
Problem (const boost::shared_ptr< const function_t > &cost) | |
Constructor taking a shared_ptr to a cost function. More... | |
Problem (const function_t &cost) | |
Deprecated constructor taking a reference to a cost function. More... | |
Problem (const Problem< T > &pb) | |
Copy constructor. More... | |
virtual | ~Problem () |
Virtual destructor. More... | |
Cost function. | |
const function_t & | function () const |
Retrieve cost function. More... | |
intervals_t & | argumentBounds () |
Retrieve arguments bounds. More... | |
const intervals_t & | argumentBounds () const |
Retrieve arguments bounds. More... | |
scaling_t & | objectiveScaling () |
Retrieve objective scaling. More... | |
const scaling_t & | objectiveScaling () const |
Retrieve objective scaling. More... | |
scaling_t & | argumentScaling () |
Retrieve arguments scaling. More... | |
const scaling_t & | argumentScaling () const |
Retrieve arguments scaling. More... | |
scaling_t & | argumentScales () |
Retrieve arguments scaling (deprecated version). More... | |
const scaling_t & | argumentScales () const |
Retrieve arguments scaling (deprecated version). More... | |
names_t & | argumentNames () |
Retrieve arguments names. More... | |
const names_t & | argumentNames () const |
Retrieve arguments names. More... | |
Constraints. | |
const constraints_t & | constraints () const |
Retrieve constraints. More... | |
void | addConstraint (boost::shared_ptr< function_t > constraint, interval_t interval, value_type scale=1.) |
Add a constraint to the problem. More... | |
void | addConstraint (boost::shared_ptr< function_t > constraint, intervals_t intervals, scaling_t scaling) |
Add a constraint to the problem. More... | |
const intervalsVect_t & | boundsVector () const |
Retrieve constraints bounds vector. More... | |
intervalsVect_t & | boundsVector () |
Retrieve constraints bounds vector. More... | |
const scalingVect_t & | scalingVector () const |
Retrieve constraints scaling vector. More... | |
const scalingVect_t & | scalesVector () const |
Retrieve constraints scaling vector (deprecated version). More... | |
size_type | constraintsOutputSize () const |
Return the output size of the problem's constraints. More... | |
size_type | differentiableConstraintsOutputSize () const |
Return the output size of the problem's differentiable constraints. More... | |
void | clearConstraints () |
Clear the constraints from the problem. More... | |
Starting point (initial guess). | |
startingPoint_t & | startingPoint () |
Set the initial guess. More... | |
const startingPoint_t & | startingPoint () const |
Get the initial guess. More... | |
Helper methods. | |
jacobian_t | jacobian (const_argument_ref x) const |
Evaluate the Jacobian matrix of the problem for a given x. More... | |
jacobian_t | scaledJacobian (const_argument_ref x) const |
Evaluate the scaled Jacobian matrix of the problem for a given x. More... | |
result_t | constraintsViolationVector (const_argument_ref x) const |
Evaluate the vector of constraints violation for a given x. More... | |
template<int NORM> | |
value_type | constraintsViolation (const_argument_ref x) const |
Evaluate the constraint violation for a given x. More... | |
typedef function_t::argument_t roboptim::Problem< T >::argument_t |
Argument type.
typedef GenericFunctionTraits<T>::const_argument_ref roboptim::Problem< T >::const_argument_ref |
Constant reference to an argument vector.
typedef boost::shared_ptr<function_t> roboptim::Problem< T >::constraint_t |
Constraint's type.
typedef std::vector<constraint_t> roboptim::Problem< T >::constraints_t |
Constraints are represented as a vector of constraints.
typedef boost::mpl::vector<function_t> roboptim::Problem< T >::constraintsList_t |
Constraints types list.
typedef GenericFunction<T> roboptim::Problem< T >::function_t |
Function type.
This has to be either Function or one of its sub-classes.
typedef function_t::interval_t roboptim::Problem< T >::interval_t |
Interval type (e.g. for bounds).
typedef function_t::intervals_t roboptim::Problem< T >::intervals_t |
Intervals type.
typedef std::vector<intervals_t> roboptim::Problem< T >::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.
typedef GenericFunctionTraits<T>::jacobian_t roboptim::Problem< T >::jacobian_t |
Jacobian matrix type.
typedef function_t::names_t roboptim::Problem< T >::names_t |
Vector of names (e.g. for arguments).
typedef function_t::result_t roboptim::Problem< T >::result_t |
Result type.
typedef scaling_t roboptim::Problem< T >::scales_t |
Scaling vector (deprecated typedef)
typedef scalingVect_t roboptim::Problem< T >::scalesVect_t |
Vector of scaling vectors (deprecated typedef).
typedef std::vector<value_type> roboptim::Problem< T >::scaling_t |
Scaling vector.
If \(g_u\) is the constraint as seen by the user, \(g_a\) the constraint as seen by the solver's algorithm, and \(s\) the scaling factor, then we have: \(g_a = s * g_u\)
typedef std::vector<scaling_t> roboptim::Problem< T >::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.
typedef function_t::size_type roboptim::Problem< T >::size_type |
Size type.
typedef boost::optional<argument_t> roboptim::Problem< T >::startingPoint_t |
Optional vector defines a starting point.
typedef function_t::value_type roboptim::Problem< T >::value_type |
Import function's value_type type.
typedef function_t::vector_t roboptim::Problem< T >::vector_t |
Vector type.
|
explicit |
Constructor taking a shared_ptr to a cost function.
cost | cost function. |
|
explicit |
Deprecated constructor taking a reference to a cost function.
This legacy version meant that we simply kept a const reference to the cost function, which could reference stack variables... This prepares the transition to something safer (shared_ptr).
cost | cost function. |
|
explicit |
Copy constructor.
pb | problem to copy. |
|
virtual |
Virtual destructor.
One may want to inherit from Problem to provide extra information to a solver plugin.
void roboptim::Problem< T >::addConstraint | ( | boost::shared_ptr< function_t > | 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.
constraint | the constraint that will be added |
interval | interval in which the constraint is satisfied |
scale | constraint scale |
std::runtime_error |
void roboptim::Problem< T >::addConstraint | ( | boost::shared_ptr< function_t > | constraint, |
intervals_t | intervals, | ||
scaling_t | scaling | ||
) |
Add a constraint to the problem.
The constraint can be multidimensional.
constraint | the constraint that will be added |
intervals | interval vector in which the constraint is satisfied |
scaling | constraint scaling |
std::runtime_error |
References ROBOPTIM_DEBUG_ONLY.
Problem< T >::intervals_t & roboptim::Problem< T >::argumentBounds | ( | ) |
Retrieve arguments bounds.
Arguments bounds define in which interval each argument is valid.
const Problem< T >::intervals_t & roboptim::Problem< T >::argumentBounds | ( | ) | const |
Retrieve arguments bounds.
Arguments bounds define in which interval each argument is valid.
Problem< T >::names_t & roboptim::Problem< T >::argumentNames | ( | ) |
Retrieve arguments names.
Arguments names define a name for each argument. This is particularly useful when logging data.
const Problem< T >::names_t & roboptim::Problem< T >::argumentNames | ( | ) | const |
Retrieve arguments names.
Arguments names define a name for each argument. This is particularly useful when logging data.
Problem< T >::scaling_t & roboptim::Problem< T >::argumentScales | ( | ) |
Retrieve arguments scaling (deprecated version).
const Problem< T >::scaling_t & roboptim::Problem< T >::argumentScales | ( | ) | const |
Retrieve arguments scaling (deprecated version).
Problem< T >::scaling_t & roboptim::Problem< T >::argumentScaling | ( | ) |
Retrieve arguments scaling.
Arguments scaling define which scale factor is applied for each argument.
const Problem< T >::scaling_t & roboptim::Problem< T >::argumentScaling | ( | ) | const |
Retrieve arguments scaling.
Arguments scaling define which scale factor is applied for each argument.
const Problem< T >::intervalsVect_t & roboptim::Problem< T >::boundsVector | ( | ) | const |
Retrieve constraints bounds vector.
Problem< T >::intervalsVect_t & roboptim::Problem< T >::boundsVector | ( | ) |
Retrieve constraints bounds vector.
void roboptim::Problem< T >::clearConstraints | ( | ) |
Clear the constraints from the problem.
const Problem< T >::constraints_t & roboptim::Problem< T >::constraints | ( | ) | const |
Retrieve constraints.
Referenced by roboptim::ResultAnalyzer< T >::checkNullGradient(), and roboptim::ScalingHelper< T >::ScalingHelper().
Problem< T >::size_type roboptim::Problem< T >::constraintsOutputSize | ( | ) | const |
Return the output size of the problem's constraints.
value_type roboptim::Problem< T >::constraintsViolation | ( | const_argument_ref | x | ) | const |
Evaluate the constraint violation for a given x.
This takes into account both argument bounds and constraint bounds.
x | evaluation point. |
ALG | Eigen norm used for the reduction, e.g. 1 or Eigen::Infinity. |
Problem<T>::value_type roboptim::Problem< T >::constraintsViolation | ( | const_argument_ref | x | ) | const |
Problem< T >::result_t roboptim::Problem< T >::constraintsViolationVector | ( | const_argument_ref | x | ) | const |
Evaluate the vector of constraints violation for a given x.
This takes into account both argument bounds and constraint bounds. If the output value is lower than the lower bound, the violation is negative. If the output value is higher than the upper bound, the violation is positive. If the output value is within the bounds, the violation is null.
x | evaluation point. |
References roboptim::GenericFunction< T >::infinity().
Referenced by roboptim::ResultAnalyzer< T >::checkKKT().
Problem< T >::size_type roboptim::Problem< T >::differentiableConstraintsOutputSize | ( | ) | const |
Return the output size of the problem's differentiable constraints.
const Problem< T >::function_t & roboptim::Problem< T >::function | ( | ) | const |
Retrieve cost function.
Problem< T >::jacobian_t roboptim::Problem< T >::jacobian | ( | const_argument_ref | x | ) | const |
Evaluate the Jacobian matrix of the problem for a given x.
Note: this is a helper method, and is not supposed to be used in any critical loop.
x | evaluation point. |
References roboptim::GenericFunction< T >::inputSize().
|
inline |
References roboptim::GenericFunction< T >::inputSize().
Problem< T >::scaling_t & roboptim::Problem< T >::objectiveScaling | ( | ) |
Retrieve objective scaling.
Objective scaling defines the scaling factors applied to the objective function.
const Problem< T >::scaling_t & roboptim::Problem< T >::objectiveScaling | ( | ) | const |
Retrieve objective scaling.
Objective scaling defines the scaling factors applied to the objective function.
std::ostream & roboptim::Problem< T >::print | ( | std::ostream & | o | ) | const |
Display the problem on the specified output stream.
o | output stream used for display |
References roboptim::decindent(), roboptim::fg::fail(), roboptim::iendl(), roboptim::incendl(), roboptim::fg::ok(), roboptim::fg::reset(), and roboptim::fg::warn().
Problem< T >::jacobian_t roboptim::Problem< T >::scaledJacobian | ( | const_argument_ref | x | ) | const |
Evaluate the scaled Jacobian matrix of the problem for a given x.
Note: this is a helper method, and is not supposed to be used in any critical loop. Both constraint and argument scaling parameters are applied.
x | evaluation point. |
const Problem< T >::scalingVect_t & roboptim::Problem< T >::scalesVector | ( | ) | const |
Retrieve constraints scaling vector (deprecated version).
const Problem< T >::scalingVect_t & roboptim::Problem< T >::scalingVector | ( | ) | const |
Retrieve constraints scaling vector.
Problem< T >::startingPoint_t & roboptim::Problem< T >::startingPoint | ( | ) |
Set the initial guess.
std::runtime_error |
const Problem< T >::startingPoint_t & roboptim::Problem< T >::startingPoint | ( | ) | const |
Get the initial guess.
std::runtime_error |