Hock Schittkowsky No.71#
-
struct hock_schittkowski_71#
Problem No.71 from the Hock Schittkowski suite.
Mainly used for testing and debugging during PaGMO development, this struct implements the problem No.71 from the Hock Schittkowski suite:
\[\begin{split} \begin{array}{rl} \mbox{find: } & 1 \le \mathbf x \le 5 \\ \mbox{to minimize: } & x_1x_4(x_1+x_2+x_3) + x_3 \\ \mbox{subject to: } & x_1^2+x_2^2+x_3^2+x_4^2 - 40 = 0 \\ & 25 - x_1 x_2 x_3 x_4 \le 0 \end{array} \end{split}\]See: W. Hock and K. Schittkowski. Test examples for nonlinear programming codes. Lecture Notes in Economics and Mathematical Systems, 187, 1981. doi: 10.1007/978-3-642-48320-2.
Public Functions
-
vector_double fitness(const vector_double&) const#
Fitness computation.
Computes the fitness for this UDP
- Parameters
x – the decision vector.
- Returns
the fitness of
x
.
-
inline vector_double::size_type get_nec() const#
Equality constraint dimension.
It returns the number of equality constraints
- Returns
the number of equality constraints
-
inline vector_double::size_type get_nic() const#
Inequality constraint dimension.
It returns the number of inequality constraints
- Returns
the number of inequality constraints
-
std::pair<vector_double, vector_double> get_bounds() const#
Box-bounds.
It returns the box-bounds for this UDP.
- Returns
the lower and upper bounds for each of the decision vector components
-
vector_double gradient(const vector_double&) const#
Gradients.
It returns the fitness gradient for this UDP.
The gradient is represented in a sparse form as required by problem::gradient().
- Parameters
x – the decision vector.
- Returns
the gradient of the fitness function
-
std::vector<vector_double> hessians(const vector_double&) const#
Hessians.
It returns the hessians for this UDP.
The hessians are represented in a sparse form as required by problem::hessians().
- Parameters
x – the decision vector.
- Returns
the hessians of the fitness function
-
std::vector<sparsity_pattern> hessians_sparsity() const#
Hessians sparsity (only the diagonal elements are non zero)
It returns the hessian sparisty structure for this UDP.
The hessian sparisty is represented in the form required by problem::hessians_sparsity().
- Returns
the hessians of the fitness function
-
inline std::string get_name() const#
Problem name.
- Returns
a string containing the problem name
-
inline std::string get_extra_info() const#
Extra info.
- Returns
a string containing extra info on the problem
-
vector_double best_known() const#
Optimal solution.
- Returns
the decision vector corresponding to the best solution for this problem.
-
vector_double fitness(const vector_double&) const#