Classes
ProblemFormulation

The elements to formulate the solver independent optimization problem. More...

Classes

class  ifopt::ConstraintSet
 A container holding a set of related constraints. More...
 
class  ifopt::CostTerm
 A container holding a single cost term. More...
 
class  ifopt::Problem
 A generic optimization problem with variables, costs and constraints. More...
 
class  ifopt::VariableSet
 A container holding a set of related optimization variables. More...
 

Detailed Description

The elements to formulate the solver independent optimization problem.

An optimization problem usually consists of multiple sets of independent variable- or constraint-sets. Each set represents a common concept, e.g. one set of variables represents spline coefficients, another footstep positions. Similarly, each constraint-set groups a set of similar constraints.

The Nonlinear Optimization Problem to solve is defined as:

find x0, x1                              (variable-sets 0 & 1)
s.t
  x0_lower  <= x0 <= x0_upper            (bounds on variable-set x0 \in R^2)

  {x0,x1} = arg min c0(x0,x1)+c1(x0,x1)  (cost-terms 0 and 1)

  g0_lower < g0(x0,x1) < g0_upper        (constraint-set 0 \in R^2)
  g1_lower < g1(x0,x1) < g0_upper        (constraint-set 1 \in R^1)

GetValues()

This structure allows a user to define each of these sets independently in separate classes and ifopt takes care of building the overall problem from these sets. This is implemented by

GetJacobian()

Supplying derivative information greatly increases solution speed. ifopt allows to define the derivative of each cost-term/constraint-set with respect to each variable-set independently. This ensures that when the order of variable-sets changes in the overall vector, this derivative information is still valid. These "Jacobian blocks" must be supplied through ConstraintSet::FillJacobianBlock() and are then used to build the complete Jacobian for the cost and constraints.

ifopt.png


ifopt
Author(s): Alexander W. Winkler
autogenerated on Fri Sep 16 2022 02:15:26