#include <alpaqa/cutest/cutest-loader.hpp>
Wrapper for CUTEst problems loaded from an external shared library.
Definition at line 16 of file cutest-loader.hpp.
Classes | |
struct | Report |
The report generated by CUTEst. More... | |
Public Types | |
using | Box = alpaqa::Box< config_t > |
Public Member Functions | |
CUTEstProblem (const char *so_fname, const char *outsdif_fname, bool sparse=false) | |
Load a CUTEst problem from the given shared library and OUTSDIF.d file. | |
CUTEstProblem (const CUTEstProblem &) | |
CUTEstProblem & | operator= (const CUTEstProblem &) |
CUTEstProblem (CUTEstProblem &&) noexcept | |
CUTEstProblem & | operator= (CUTEstProblem &&) noexcept |
~CUTEstProblem () | |
Report | get_report () const |
std::ostream & | format_report (std::ostream &os, const Report &r) const |
std::ostream & | format_report (std::ostream &os) const |
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_jac_g (crvec x, rindexvec inner_idx, rindexvec outer_ptr, rvec J_values) const |
length_t | get_jac_g_num_nonzeros () const |
void | eval_grad_gi (crvec x, index_t i, rvec grad_gi) const |
void | eval_hess_L_prod (crvec x, crvec y, real_t scale, crvec v, rvec Hv) const |
void | eval_hess_L (crvec x, crvec y, real_t scale, rindexvec inner_idx, rindexvec outer_ptr, rvec H_values) const |
length_t | get_hess_L_num_nonzeros () const |
void | eval_hess_ψ_prod (crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const |
real_t | eval_f_grad_f (crvec x, rvec grad_fx) const |
real_t | eval_f_g (crvec x, rvec g) const |
void | eval_grad_L (crvec x, crvec y, rvec grad_L, rvec work_n) const |
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::string | name = "<UNKNOWN>" |
Problem name. | |
vec | x0 |
Initial value of decision variables. | |
vec | y0 |
Initial value of Lagrange multipliers. | |
length_t | n |
Number of decision variables, dimension of x. | |
length_t | m |
Number of constraints, dimension of g(x) and z. | |
Box | C |
Constraints of the decision variables, \( x \in C \). | |
Box | D |
Other constraints, \( g(x) \in D \). | |
vec | l1_reg |
\( \ell_1 \) (1-norm) regularization parameter. | |
index_t | penalty_alm_split |
Components of the constraint function with indices below this number are handled using a quadratic penalty method rather than using an augmented Lagrangian method. | |
Private Attributes | |
util::copyable_unique_ptr< class CUTEstLoader > | impl |
bool | sparse = false |
int | nnz_H = -1 |
int | nnz_J = -1 |
Eigen::VectorX< int > | H_row |
Eigen::VectorX< int > | H_col |
Eigen::VectorX< int > | J_row |
Eigen::VectorX< int > | J_col |
vec | H_work |
vec | J_work |
indexvec | H_perm |
indexvec | J_perm |
struct alpaqa::CUTEstProblem::Report |
Class Members | ||
---|---|---|
Calls | calls | Function call counters. |
double | time_setup = 0 | CPU time (in seconds) for CUTEST_csetup. |
double | time = 0 | CPU time (in seconds) since the end of CUTEST_csetup. |
|
inherited |
Definition at line 19 of file box-constr-problem.hpp.
CUTEstProblem | ( | const char * | so_fname, |
const char * | outsdif_fname, | ||
bool | sparse = false |
||
) |
Load a CUTEst problem from the given shared library and OUTSDIF.d file.
Definition at line 242 of file cutest-loader.cpp.
|
default |
|
defaultnoexcept |
|
default |
|
default |
|
defaultnoexcept |
auto get_report | ( | ) | const |
Definition at line 260 of file cutest-loader.cpp.
std::ostream & format_report | ( | std::ostream & | os, |
const Report & | r | ||
) | const |
Definition at line 544 of file cutest-loader.cpp.
std::ostream & format_report | ( | std::ostream & | os | ) | const |
auto eval_f | ( | crvec | x | ) | const |
Definition at line 280 of file cutest-loader.cpp.
Definition at line 288 of file cutest-loader.cpp.
Definition at line 305 of file cutest-loader.cpp.
Definition at line 317 of file cutest-loader.cpp.
auto get_jac_g_num_nonzeros | ( | ) | const |
Definition at line 366 of file cutest-loader.cpp.
Definition at line 381 of file cutest-loader.cpp.
void eval_hess_L | ( | crvec | x, |
crvec | y, | ||
real_t | scale, | ||
rindexvec | inner_idx, | ||
rindexvec | outer_ptr, | ||
rvec | H_values | ||
) | const |
Definition at line 448 of file cutest-loader.cpp.
auto get_hess_L_num_nonzeros | ( | ) | const |
Definition at line 503 of file cutest-loader.cpp.
Definition at line 517 of file cutest-loader.cpp.
Definition at line 526 of file cutest-loader.cpp.
Definition at line 534 of file cutest-loader.cpp.
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.
Definition at line 142 of file box-constr-problem.hpp.
|
inlinestaticinherited |
Definition at line 144 of file box-constr-problem.hpp.
Definition at line 166 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.
std::string name = "<UNKNOWN>" |
Problem name.
Definition at line 70 of file cutest-loader.hpp.
vec x0 |
Initial value of decision variables.
Definition at line 71 of file cutest-loader.hpp.
vec y0 |
Initial value of Lagrange multipliers.
Definition at line 72 of file cutest-loader.hpp.
|
private |
Definition at line 75 of file cutest-loader.hpp.
|
private |
Definition at line 76 of file cutest-loader.hpp.
|
mutableprivate |
Definition at line 77 of file cutest-loader.hpp.
|
mutableprivate |
Definition at line 78 of file cutest-loader.hpp.
|
mutableprivate |
Definition at line 79 of file cutest-loader.hpp.
|
private |
Definition at line 79 of file cutest-loader.hpp.
|
private |
Definition at line 79 of file cutest-loader.hpp.
|
private |
Definition at line 79 of file cutest-loader.hpp.
|
mutableprivate |
Definition at line 80 of file cutest-loader.hpp.
|
private |
Definition at line 80 of file cutest-loader.hpp.
|
mutableprivate |
Definition at line 81 of file cutest-loader.hpp.
|
private |
Definition at line 81 of file cutest-loader.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.
|
inherited |
Constraints of the decision variables, \( x \in C \).
Definition at line 59 of file box-constr-problem.hpp.
|
inherited |
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.