PANOC-ALM  quadratic-penalty
Nonconvex constrained optimization
Public Types | Public Member Functions | Public Attributes | List of all members
ProblemFull Class Reference

#include <panoc-alm/util/problem.hpp>

Detailed Description

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 213 of file include/panoc-alm/util/problem.hpp.

+ Inheritance diagram for ProblemFull:
+ Collaboration diagram for ProblemFull:

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 g1_sig = void(crvec x, rvec g1x)
 Signature of the function that evaluates the ALM constraints \( g1(x) \). More...
 
using grad_g1_prod_sig = void(crvec x, crvec y, rvec grad_g1xy)
 Signature of the function that evaluates the gradient of the ALM constraints times a vector \( \nabla g1(x)\ y \). More...
 
using grad_g1i_sig = void(crvec x, unsigned i, rvec grad_g1i)
 Signature of the function that evaluates the gradient of one specific ALM constraint \( \nabla g1_i(x) \). More...
 
using g2_sig = void(crvec x, rvec g2x)
 Signature of the function that evaluates the quadratic penalty constraints \( g2(x) \). More...
 
using grad_g2_prod_sig = void(crvec x, crvec y, rvec grad_g2xy)
 Signature of the function that evaluates the gradient of the quadratic penalty constraints times a vector \( \nabla g2(x)\ y \). More...
 
using grad_g2i_sig = void(crvec x, unsigned i, rvec grad_g2i)
 Signature of the function that evaluates the gradient of one specific quadratic penalty constraints \( \nabla g2_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

 ProblemFull ()=default
 
 ProblemFull (unsigned int n, unsigned int m1, unsigned int m2)
 
 ProblemFull (unsigned n, unsigned int m1, unsigned int m2, Box C, Box D1, Box D2, std::function< f_sig > f, std::function< grad_f_sig > grad_f, std::function< g1_sig > g1, std::function< grad_g1_prod_sig > grad_g1_prod, std::function< grad_g1i_sig > grad_g1i, std::function< g2_sig > g2, std::function< grad_g2_prod_sig > grad_g2_prod, std::function< grad_g2i_sig > grad_g2i, 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 m1
 Number of ALM constraints, dimension of g1(x) and z1. More...
 
unsigned int m2
 Number of quadratic penalty constraints, dimension of g2(x) and z2. More...
 
Box C
 Constraints of the decision variables, \( x \in C \). More...
 
Box D1
 ALM constraints, \( g1(x) \in D1 \). More...
 
Box D2
 Quadratic penalty constraints, \( g2(x) \in D2 \). More...
 
std::function< f_sigf
 Cost function \( f(x) \). More...
 
std::function< grad_f_siggrad_f
 Gradient of the cost function \( \nabla f(x) \). More...
 
std::function< g1_sigg1
 Constraint function \( g1(x) \). More...
 
std::function< grad_g1_prod_siggrad_g1_prod
 Gradient of the constraint function times vector \( \nabla g1(x)\ y \). More...
 
std::function< grad_g1i_siggrad_g1i
 Gradient of a specific constraint \( \nabla g1_i(x) \). More...
 
std::function< g2_sigg2
 Constraint function \( g2(x) \). More...
 
std::function< grad_g2_prod_siggrad_g2_prod
 Gradient of the constraint function times vector \( \nabla g2(x)\ y \). More...
 
std::function< grad_g2i_siggrad_g2i
 Gradient of a specific constraint \( \nabla g2_i(x) \). More...
 
std::function< hess_L_prod_sighess_L_prod
 Hessian of the Lagrangian function times vector \( \nabla_{xx}^2 L(x, y)\ v \). More...
 
std::function< hess_L_sighess_L
 Hessian of the Lagrangian function \( \nabla_{xx}^2 L(x, y) \). More...
 

Member Typedef Documentation

◆ f_sig

using f_sig = real_t(crvec x)

Signature of the function that evaluates the cost \( f(x) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)

Definition at line 224 of file include/panoc-alm/util/problem.hpp.

◆ grad_f_sig

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) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[out]grad_fxGradient of cost function \( \nabla f(x) \in \mathbb{R}^n \)

Definition at line 231 of file include/panoc-alm/util/problem.hpp.

◆ g1_sig

using g1_sig = void(crvec x, rvec g1x)

Signature of the function that evaluates the ALM constraints \( g1(x) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[out]g1xValue of the constraints \( g1(x) \in \mathbb{R}^m \)

Definition at line 237 of file include/panoc-alm/util/problem.hpp.

◆ grad_g1_prod_sig

using grad_g1_prod_sig = void(crvec x, crvec y, rvec grad_g1xy)

Signature of the function that evaluates the gradient of the ALM constraints times a vector \( \nabla g1(x)\ y \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]yVector \( y \in \mathbb{R}^m1 \) to multiply the gradient by
[out]grad_g1xyGradient of the constraints \( \nabla g1(x)\ y \in \mathbb{R}^n \)

Definition at line 248 of file include/panoc-alm/util/problem.hpp.

◆ grad_g1i_sig

using grad_g1i_sig = void(crvec x, unsigned i, rvec grad_g1i)

Signature of the function that evaluates the gradient of one specific ALM constraint \( \nabla g1_i(x) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]iWhich constraint \( 0 \le i \lt m1 \)
[out]grad_g1iGradient of the constraint \( \nabla g1_i(x) \mathbb{R}^n \)

Definition at line 259 of file include/panoc-alm/util/problem.hpp.

◆ g2_sig

using g2_sig = void(crvec x, rvec g2x)

Signature of the function that evaluates the quadratic penalty constraints \( g2(x) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[out]g2xValue of the constraints \( g2(x) \in \mathbb{R}^m \)

Definition at line 266 of file include/panoc-alm/util/problem.hpp.

◆ grad_g2_prod_sig

using grad_g2_prod_sig = void(crvec x, crvec y, rvec grad_g2xy)

Signature of the function that evaluates the gradient of the quadratic penalty constraints times a vector \( \nabla g2(x)\ y \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]yVector \( y \in \mathbb{R}^m \) to multiply the gradient by
[out]grad_g2xyGradient of the constraints \( \nabla g2(x)\ y \in \mathbb{R}^n \)

Definition at line 277 of file include/panoc-alm/util/problem.hpp.

◆ grad_g2i_sig

using grad_g2i_sig = void(crvec x, unsigned i, rvec grad_g2i)

Signature of the function that evaluates the gradient of one specific quadratic penalty constraints \( \nabla g2_i(x) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]iWhich constraint \( 0 \le i \lt m2 \)
[out]grad_g2iGradient of the constraint \( \nabla g2_i(x) \mathbb{R}^n \)

Definition at line 288 of file include/panoc-alm/util/problem.hpp.

◆ hess_L_prod_sig

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 \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]yLagrange multipliers \( y \in \mathbb{R}^m \)
[in]vVector to multiply by \( v \in \mathbb{R}^n \)
[out]HvHessian-vector product \( \nabla_{xx}^2 L(x, y)\ v \in \mathbb{R}^{n} \)

Definition at line 301 of file include/panoc-alm/util/problem.hpp.

◆ hess_L_sig

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) \).

Parameters
[in]xDecision variable \( x \in \mathbb{R}^n \)
[in]yLagrange multipliers \( y \in \mathbb{R}^m \)
[out]HHessian \( \nabla_{xx}^2 L(x, y) \in \mathbb{R}^{n\times n} \)

Definition at line 310 of file include/panoc-alm/util/problem.hpp.

Constructor & Destructor Documentation

◆ ProblemFull() [1/3]

ProblemFull ( )
default

◆ ProblemFull() [2/3]

ProblemFull ( unsigned int  n,
unsigned int  m1,
unsigned int  m2 
)
inline

Definition at line 335 of file include/panoc-alm/util/problem.hpp.

◆ ProblemFull() [3/3]

ProblemFull ( unsigned  n,
unsigned int  m1,
unsigned int  m2,
Box  C,
Box  D1,
Box  D2,
std::function< f_sig f,
std::function< grad_f_sig grad_f,
std::function< g1_sig g1,
std::function< grad_g1_prod_sig grad_g1_prod,
std::function< grad_g1i_sig grad_g1i,
std::function< g2_sig g2,
std::function< grad_g2_prod_sig grad_g2_prod,
std::function< grad_g2i_sig grad_g2i,
std::function< hess_L_prod_sig hess_L_prod,
std::function< hess_L_sig hess_L 
)
inline

Definition at line 339 of file include/panoc-alm/util/problem.hpp.

Member Data Documentation

◆ n

unsigned int n

Number of decision variables, dimension of x.

Definition at line 214 of file include/panoc-alm/util/problem.hpp.

◆ m1

unsigned int m1

Number of ALM constraints, dimension of g1(x) and z1.

Definition at line 215 of file include/panoc-alm/util/problem.hpp.

◆ m2

unsigned int m2

Number of quadratic penalty constraints, dimension of g2(x) and z2.

Definition at line 216 of file include/panoc-alm/util/problem.hpp.

◆ C

Box C

Constraints of the decision variables, \( x \in C \).

Definition at line 217 of file include/panoc-alm/util/problem.hpp.

◆ D1

Box D1

ALM constraints, \( g1(x) \in D1 \).

Definition at line 218 of file include/panoc-alm/util/problem.hpp.

◆ D2

Box D2

Quadratic penalty constraints, \( g2(x) \in D2 \).

Definition at line 219 of file include/panoc-alm/util/problem.hpp.

◆ f

std::function<f_sig> f

Cost function \( f(x) \).

Definition at line 313 of file include/panoc-alm/util/problem.hpp.

◆ grad_f

std::function<grad_f_sig> grad_f

Gradient of the cost function \( \nabla f(x) \).

Definition at line 315 of file include/panoc-alm/util/problem.hpp.

◆ g1

std::function<g1_sig> g1

Constraint function \( g1(x) \).

Definition at line 317 of file include/panoc-alm/util/problem.hpp.

◆ grad_g1_prod

std::function<grad_g1_prod_sig> grad_g1_prod

Gradient of the constraint function times vector \( \nabla g1(x)\ y \).

Definition at line 319 of file include/panoc-alm/util/problem.hpp.

◆ grad_g1i

std::function<grad_g1i_sig> grad_g1i

Gradient of a specific constraint \( \nabla g1_i(x) \).

Definition at line 321 of file include/panoc-alm/util/problem.hpp.

◆ g2

std::function<g2_sig> g2

Constraint function \( g2(x) \).

Definition at line 323 of file include/panoc-alm/util/problem.hpp.

◆ grad_g2_prod

std::function<grad_g2_prod_sig> grad_g2_prod

Gradient of the constraint function times vector \( \nabla g2(x)\ y \).

Definition at line 325 of file include/panoc-alm/util/problem.hpp.

◆ grad_g2i

std::function<grad_g2i_sig> grad_g2i

Gradient of a specific constraint \( \nabla g2_i(x) \).

Definition at line 327 of file include/panoc-alm/util/problem.hpp.

◆ hess_L_prod

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 330 of file include/panoc-alm/util/problem.hpp.

◆ hess_L

std::function<hess_L_sig> hess_L

Hessian of the Lagrangian function \( \nabla_{xx}^2 L(x, y) \).

Definition at line 332 of file include/panoc-alm/util/problem.hpp.


The documentation for this class was generated from the following file: