#include <alpaqa/util/problem.hpp>
Problem description for minimization problems.
\[ \begin{aligned} & \underset{x}{\text{minimize}} & & f(x) &&&& f : \mathbb{R}^n \rightarrow \mathbb{R} \\ & \text{subject to} & & \underline{x} \le x \le \overline{x} \\ &&& \underline{z} \le g(x) \le \overline{z} &&&& g : \mathbb{R}^n \rightarrow \mathbb{R}^m \end{aligned} \]
Definition at line 26 of file include/alpaqa/util/problem.hpp.
Public Types | |
using | f_sig = real_t(crvec x) |
Signature of the function that evaluates the cost \( f(x) \). More... | |
using | grad_f_sig = void(crvec x, rvec grad_fx) |
Signature of the function that evaluates the gradient of the cost function \( \nabla f(x) \). More... | |
using | g_sig = void(crvec x, rvec gx) |
Signature of the function that evaluates the constraints \( g(x) \). More... | |
using | grad_g_prod_sig = void(crvec x, crvec y, rvec grad_gxy) |
Signature of the function that evaluates the gradient of the constraints times a vector \( \nabla g(x)\ y \). More... | |
using | grad_gi_sig = void(crvec x, unsigned i, rvec grad_gi) |
Signature of the function that evaluates the gradient of one specific constraints \( \nabla g_i(x) \). More... | |
using | hess_L_prod_sig = void(crvec x, crvec y, crvec v, rvec Hv) |
Signature of the function that evaluates the Hessian of the Lagrangian multiplied by a vector \( \nabla_{xx}^2L(x, y)\ v \). More... | |
using | hess_L_sig = void(crvec x, crvec y, rmat H) |
Signature of the function that evaluates the Hessian of the Lagrangian \( \nabla_{xx}^2L(x, y) \). More... | |
Public Member Functions | |
Problem ()=default | |
Problem (unsigned int n, unsigned int m) | |
Problem (unsigned n, unsigned int m, Box C, Box D, std::function< f_sig > f, std::function< grad_f_sig > grad_f, std::function< g_sig > g, std::function< grad_g_prod_sig > grad_g_prod, std::function< grad_gi_sig > grad_gi, std::function< hess_L_prod_sig > hess_L_prod, std::function< hess_L_sig > hess_L) | |
Public Attributes | |
unsigned int | n |
Number of decision variables, dimension of x. More... | |
unsigned int | m |
Number of constraints, dimension of g(x) and z. More... | |
Box | C |
Constraints of the decision variables, \( x \in C \). More... | |
Box | D |
Other constraints, \( g(x) \in D \). More... | |
std::function< f_sig > | f |
Cost function \( f(x) \). More... | |
std::function< grad_f_sig > | grad_f |
Gradient of the cost function \( \nabla f(x) \). More... | |
std::function< g_sig > | g |
Constraint function \( g(x) \). More... | |
std::function< grad_g_prod_sig > | grad_g_prod |
Gradient of the constraint function times vector \( \nabla g(x)\ y \). More... | |
std::function< grad_gi_sig > | grad_gi |
Gradient of a specific constraint \( \nabla g_i(x) \). More... | |
std::function< hess_L_prod_sig > | hess_L_prod |
Hessian of the Lagrangian function times vector \( \nabla_{xx}^2 L(x, y)\ v \). More... | |
std::function< hess_L_sig > | hess_L |
Hessian of the Lagrangian function \( \nabla_{xx}^2 L(x, y) \). More... | |
Signature of the function that evaluates the cost \( f(x) \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
Definition at line 35 of file include/alpaqa/util/problem.hpp.
using grad_f_sig = void(crvec x, rvec grad_fx) |
Signature of the function that evaluates the gradient of the cost function \( \nabla f(x) \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[out] | grad_fx | Gradient of cost function \( \nabla f(x) \in \mathbb{R}^n \) |
Definition at line 42 of file include/alpaqa/util/problem.hpp.
Signature of the function that evaluates the constraints \( g(x) \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[out] | gx | Value of the constraints \( g(x) \in \mathbb{R}^m \) |
Definition at line 48 of file include/alpaqa/util/problem.hpp.
using grad_g_prod_sig = void(crvec x, crvec y, rvec grad_gxy) |
Signature of the function that evaluates the gradient of the constraints times a vector \( \nabla g(x)\ y \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[in] | y | Vector \( y \in \mathbb{R}^m \) to multiply the gradient by |
[out] | grad_gxy | Gradient of the constraints \( \nabla g(x)\ y \in \mathbb{R}^n \) |
Definition at line 59 of file include/alpaqa/util/problem.hpp.
using grad_gi_sig = void(crvec x, unsigned i, rvec grad_gi) |
Signature of the function that evaluates the gradient of one specific constraints \( \nabla g_i(x) \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[in] | i | Which constraint \( 0 \le i \lt m \) |
[out] | grad_gi | Gradient of the constraint \( \nabla g_i(x) \mathbb{R}^n \) |
Definition at line 70 of file include/alpaqa/util/problem.hpp.
using hess_L_prod_sig = void(crvec x, crvec y, crvec v, rvec Hv) |
Signature of the function that evaluates the Hessian of the Lagrangian multiplied by a vector \( \nabla_{xx}^2L(x, y)\ v \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[in] | y | Lagrange multipliers \( y \in \mathbb{R}^m \) |
[in] | v | Vector to multiply by \( v \in \mathbb{R}^n \) |
[out] | Hv | Hessian-vector product \( \nabla_{xx}^2 L(x, y)\ v \in \mathbb{R}^{n} \) |
Definition at line 83 of file include/alpaqa/util/problem.hpp.
using hess_L_sig = void(crvec x, crvec y, rmat H) |
Signature of the function that evaluates the Hessian of the Lagrangian \( \nabla_{xx}^2L(x, y) \).
[in] | x | Decision variable \( x \in \mathbb{R}^n \) |
[in] | y | Lagrange multipliers \( y \in \mathbb{R}^m \) |
[out] | H | Hessian \( \nabla_{xx}^2 L(x, y) \in \mathbb{R}^{n\times n} \) |
Definition at line 92 of file include/alpaqa/util/problem.hpp.
|
default |
|
inline |
Definition at line 111 of file include/alpaqa/util/problem.hpp.
|
inline |
Definition at line 114 of file include/alpaqa/util/problem.hpp.
unsigned int n |
Number of decision variables, dimension of x.
Definition at line 27 of file include/alpaqa/util/problem.hpp.
unsigned int m |
Number of constraints, dimension of g(x) and z.
Definition at line 28 of file include/alpaqa/util/problem.hpp.
Box C |
Constraints of the decision variables, \( x \in C \).
Definition at line 29 of file include/alpaqa/util/problem.hpp.
Box D |
Other constraints, \( g(x) \in D \).
Definition at line 30 of file include/alpaqa/util/problem.hpp.
std::function<f_sig> f |
Cost function \( f(x) \).
Definition at line 95 of file include/alpaqa/util/problem.hpp.
std::function<grad_f_sig> grad_f |
Gradient of the cost function \( \nabla f(x) \).
Definition at line 97 of file include/alpaqa/util/problem.hpp.
std::function<g_sig> g |
Constraint function \( g(x) \).
Definition at line 99 of file include/alpaqa/util/problem.hpp.
std::function<grad_g_prod_sig> grad_g_prod |
Gradient of the constraint function times vector \( \nabla g(x)\ y \).
Definition at line 101 of file include/alpaqa/util/problem.hpp.
std::function<grad_gi_sig> grad_gi |
Gradient of a specific constraint \( \nabla g_i(x) \).
Definition at line 103 of file include/alpaqa/util/problem.hpp.
std::function<hess_L_prod_sig> hess_L_prod |
Hessian of the Lagrangian function times vector \( \nabla_{xx}^2 L(x, y)\ v \).
Definition at line 106 of file include/alpaqa/util/problem.hpp.
std::function<hess_L_sig> hess_L |
Hessian of the Lagrangian function \( \nabla_{xx}^2 L(x, y) \).
Definition at line 108 of file include/alpaqa/util/problem.hpp.