#include <alpaqa/problem/functional-problem.hpp>
Problem class that allows specifying the basic functions as C++ std::function
s.
Definition at line 12 of file functional-problem.hpp.
Public Types | |
using | Box = alpaqa::Box< config_t > |
Public Member Functions | |
real_t | eval_f (crvec x) const |
void | eval_grad_f (crvec x, rvec grad_fx) const |
void | eval_g (crvec x, rvec gx) const |
void | eval_grad_g_prod (crvec x, crvec y, rvec grad_gxy) const |
void | eval_grad_gi (crvec x, index_t i, rvec grad_gix) const |
void | eval_hess_L_prod (crvec x, crvec y, real_t scale, crvec v, rvec Hv) const |
void | eval_hess_ψ_prod (crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const |
void | eval_jac_g (crvec x, rindexvec, rindexvec, rvec J_values) const |
void | eval_hess_L (crvec x, crvec y, real_t scale, rindexvec, rindexvec, rvec H_values) const |
void | eval_hess_ψ (crvec x, crvec y, crvec Σ, real_t scale, rindexvec, rindexvec, rvec H_values) const |
bool | provides_eval_grad_gi () const |
bool | provides_eval_jac_g () const |
bool | provides_eval_hess_L_prod () const |
bool | provides_eval_hess_L () const |
bool | provides_eval_hess_ψ_prod () const |
bool | provides_eval_hess_ψ () const |
FunctionalProblem (const FunctionalProblem &)=default | |
FunctionalProblem & | operator= (const FunctionalProblem &)=default |
FunctionalProblem (FunctionalProblem &&) noexcept=default | |
FunctionalProblem & | operator= (FunctionalProblem &&) noexcept=default |
void | resize (length_t n, length_t m) |
Change the dimensions of the problem (number of decision variables and number of constaints). | |
length_t | get_n () const |
Number of decision variables, n. | |
length_t | get_m () const |
Number of constraints, m. | |
real_t | eval_prox_grad_step (real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const |
void | eval_proj_diff_g (crvec z, rvec p) const |
void | eval_proj_multipliers (rvec y, real_t M) const |
const Box & | get_box_C () const |
const Box & | get_box_D () const |
index_t | eval_inactive_indices_res_lna (real_t γ, crvec x, crvec grad_ψ, rindexvec J) const |
void | check () const |
Static Public Member Functions | |
static real_t | eval_proj_grad_step_box (const Box &C, real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) |
Projected gradient step for rectangular box C. | |
static void | eval_prox_grad_step_box_l1_impl (const Box &C, const auto &λ, real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) |
Proximal gradient step for rectangular box C with ℓ₁-regularization. | |
static real_t | eval_prox_grad_step_box_l1 (const Box &C, const auto &λ, real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) |
Proximal gradient step for rectangular box C with ℓ₁-regularization. | |
static real_t | eval_prox_grad_step_box_l1_scal (const Box &C, real_t λ, real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) |
Proximal gradient step for rectangular box C with ℓ₁-regularization. | |
static void | eval_proj_multipliers_box (const Box &D, rvec y, real_t M, index_t penalty_alm_split) |
Public Attributes | |
std::function< real_t(crvec)> | f |
std::function< void(crvec, rvec)> | grad_f |
std::function< void(crvec, rvec)> | g |
std::function< void(crvec, crvec, rvec)> | grad_g_prod |
std::function< void(crvec, index_t, rvec)> | grad_gi |
std::function< void(crvec, rmat)> | jac_g |
std::function< void(crvec, crvec, real_t, crvec, rvec)> | hess_L_prod |
std::function< void(crvec, crvec, real_t, rmat)> | hess_L |
std::function< void(crvec, crvec, crvec, real_t, crvec, rvec)> | hess_ψ_prod |
std::function< void(crvec, crvec, crvec, real_t, rmat)> | hess_ψ |
length_t | n |
Number of decision variables, dimension of x. | |
length_t | m |
Number of constraints, dimension of g(x) and z. | |
Box | C {this->n} |
Constraints of the decision variables, \( x \in C \). | |
Box | D {this->m} |
Other constraints, \( g(x) \in D \). | |
vec | l1_reg {} |
\( \ell_1 \) (1-norm) regularization parameter. | |
index_t | penalty_alm_split = 0 |
Components of the constraint function with indices below this number are handled using a quadratic penalty method rather than using an augmented Lagrangian method. | |
|
inherited |
Definition at line 19 of file box-constr-problem.hpp.
|
default |
|
defaultnoexcept |
Definition at line 29 of file functional-problem.hpp.
Definition at line 30 of file functional-problem.hpp.
Definition at line 31 of file functional-problem.hpp.
Definition at line 32 of file functional-problem.hpp.
Definition at line 33 of file functional-problem.hpp.
Definition at line 34 of file functional-problem.hpp.
Definition at line 35 of file functional-problem.hpp.
Definition at line 37 of file functional-problem.hpp.
|
inline |
Definition at line 42 of file functional-problem.hpp.
|
inline |
Definition at line 47 of file functional-problem.hpp.
|
inline |
Definition at line 55 of file functional-problem.hpp.
|
inline |
Definition at line 57 of file functional-problem.hpp.
|
inline |
Definition at line 59 of file functional-problem.hpp.
|
inline |
Definition at line 61 of file functional-problem.hpp.
|
inline |
Definition at line 63 of file functional-problem.hpp.
|
inline |
Definition at line 65 of file functional-problem.hpp.
|
default |
|
defaultnoexcept |
Change the dimensions of the problem (number of decision variables and number of constaints).
Destructive: resizes and/or resets the members C, D, l1_reg and penalty_alm_split.
Definition at line 41 of file box-constr-problem.hpp.
|
inlineinherited |
Number of decision variables, n.
Definition at line 75 of file box-constr-problem.hpp.
|
inlineinherited |
Number of constraints, m.
Definition at line 77 of file box-constr-problem.hpp.
|
inlinestaticinherited |
Projected gradient step for rectangular box C.
\[ \begin{aligned} \hat x &= \Pi_C(x - \gamma\nabla\psi(x)) \\ p &= \hat x - x \\ &= \max(\underline x - x, \;\min(-\gamma\nabla\psi(x), \overline x - x) \end{aligned} \]
Definition at line 84 of file box-constr-problem.hpp.
|
inlinestaticinherited |
Proximal gradient step for rectangular box C with ℓ₁-regularization.
\[ \begin{aligned} h(x) &= \|x\|_1 + \delta_C(x) \\ \hat x &= \prox_{\gamma h}(x - \gamma\nabla\psi(x)) \\ &= -\max\big( x - \overline x, \;\min\big( x - \underline x, \;\min\big( \gamma(\nabla\psi(x) + \lambda), \;\max\big( \gamma(\nabla\psi(x) - \lambda), x \big) \big) \big) \big) \end{aligned} \]
Definition at line 107 of file box-constr-problem.hpp.
|
inlinestaticinherited |
Proximal gradient step for rectangular box C with ℓ₁-regularization.
\[ \begin{aligned} h(x) &= \|x\|_1 + \delta_C(x) \\ \hat x &= \prox_{\gamma h}(x - \gamma\nabla\psi(x)) \\ &= -\max\big( x - \overline x, \;\min\big( x - \underline x, \;\min\big( \gamma(\nabla\psi(x) + \lambda), \;\max\big( \gamma(\nabla\psi(x) - \lambda), x \big) \big) \big) \big) \end{aligned} \]
Definition at line 116 of file box-constr-problem.hpp.
|
inlinestaticinherited |
Proximal gradient step for rectangular box C with ℓ₁-regularization.
\[ \begin{aligned} h(x) &= \|x\|_1 + \delta_C(x) \\ \hat x &= \prox_{\gamma h}(x - \gamma\nabla\psi(x)) \\ &= -\max\big( x - \overline x, \;\min\big( x - \underline x, \;\min\big( \gamma(\nabla\psi(x) + \lambda), \;\max\big( \gamma(\nabla\psi(x) - \lambda), x \big) \big) \big) \big) \end{aligned} \]
Definition at line 123 of file box-constr-problem.hpp.
|
inlineinherited |
Definition at line 132 of file box-constr-problem.hpp.
|
inlineinherited |
Definition at line 171 of file box-constr-problem.hpp.
|
inlineinherited |
Definition at line 173 of file box-constr-problem.hpp.
|
inlineinherited |
Definition at line 176 of file box-constr-problem.hpp.
|
inlineinherited |
Definition at line 213 of file box-constr-problem.hpp.
Definition at line 17 of file functional-problem.hpp.
Definition at line 18 of file functional-problem.hpp.
Definition at line 19 of file functional-problem.hpp.
Definition at line 20 of file functional-problem.hpp.
Definition at line 21 of file functional-problem.hpp.
Definition at line 22 of file functional-problem.hpp.
Definition at line 23 of file functional-problem.hpp.
Definition at line 24 of file functional-problem.hpp.
Definition at line 25 of file functional-problem.hpp.
Definition at line 26 of file functional-problem.hpp.
|
inherited |
Number of decision variables, dimension of x.
Definition at line 22 of file box-constr-problem.hpp.
|
inherited |
Number of constraints, dimension of g(x) and z.
Definition at line 24 of file box-constr-problem.hpp.
Constraints of the decision variables, \( x \in C \).
Definition at line 59 of file box-constr-problem.hpp.
Other constraints, \( g(x) \in D \).
Definition at line 61 of file box-constr-problem.hpp.
|
inherited |
\( \ell_1 \) (1-norm) regularization parameter.
Possible dimensions are: \( 0 \) (no regularization), \( 1 \) (a single scalar factor), or \( n \) (a different factor for each variable).
Definition at line 66 of file box-constr-problem.hpp.
|
inherited |
Components of the constraint function with indices below this number are handled using a quadratic penalty method rather than using an augmented Lagrangian method.
Specifically, the Lagrange multipliers for these components (which determine the shifts in ALM) are kept at zero.
Definition at line 72 of file box-constr-problem.hpp.