Sequential Unconstrained Minimization Technique

Table of contents


Description

For a general problem

\[\min_x f(x) \text{ subject to } g_k (x) \leq 0, \ \ k \in \{1, \ldots, K \}\]

The Sequential Unconstrained Minimization Technique solves:

\[\min_x \left\{ f(x) + c(i) \times \frac{1}{2} \sum_{k=1}^K \left( \max \{ 0, g_k(x) \} \right)^2 \right\}\]

The algorithm stops when the error is less than err_tol, or the total number of ‘generations’ exceeds a desired (or default) value.


Definitions

bool sumt(ColVec_t &init_out_vals, std::function<fp_t(const ColVec_t &vals_inp, ColVec_t *grad_out, void *opt_data)> opt_objfn, void *opt_data, std::function<ColVec_t(const ColVec_t &vals_inp, Mat_t *jacob_out, void *constr_data)> constr_fn, void *constr_data)

Sequential Unconstrained Minimization Technique.

Parameters
  • init_out_vals – a column vector of initial values, which will be replaced by the solution upon successful completion of the optimization algorithm.

  • opt_objfn – the function to be minimized, taking three arguments:

    • vals_inp a vector of inputs;

    • grad_out a vector to store the gradient; and

    • opt_data additional data passed to the user-provided function.

  • opt_data – additional data passed to the user-provided function.

  • constr_fn – the constraint functions, in vector form, taking three arguments.

  • constr_data – additional data passed to the constraints functions.

Returns

a boolean value indicating successful completion of the optimization algorithm.

bool sumt(ColVec_t &init_out_vals, std::function<fp_t(const ColVec_t &vals_inp, ColVec_t *grad_out, void *opt_data)> opt_objfn, void *opt_data, std::function<ColVec_t(const ColVec_t &vals_inp, Mat_t *jacob_out, void *constr_data)> constr_fn, void *constr_data, algo_settings_t &settings)

Sequential Unconstrained Minimization Technique.

Parameters
  • init_out_vals – a column vector of initial values, which will be replaced by the solution upon successful completion of the optimization algorithm.

  • opt_objfn – the function to be minimized, taking three arguments:

    • vals_inp a vector of inputs;

    • grad_out a vector to store the gradient; and

    • opt_data additional data passed to the user-provided function.

  • opt_data – additional data passed to the user-provided function.

  • constr_fn – the constraint functions, in vector form, taking three arguments.

  • constr_data – additional data passed to the constraints functions.

  • settings – parameters controlling the optimization routine.

Returns

a boolean value indicating successful completion of the optimization algorithm.


Examples