Luksan Vlcek 1
Luksan Vlcek 1#

struct luksan_vlcek1#
Test problem from Luksan and Vlcek.
Implementation of Example 5.1 in the report from Luksan and Vlcek.
The problem is the Chained Rosenbrock function with trigonometricexponential constraints.
Its formulation can be written as:
\[\begin{split} \begin{array}{rl} \mbox{find:} & 5 \le x_i \le 5, \forall i=1..n \\ \mbox{to minimize: } & \sum_{i=1}^{n1}\left[100\left(x_i^2x_{i+1}\right)^2 + \left(x_i1\right)^2\right] \\ \mbox{subject to:} & 3x_{k+1}^3+2x_{k+2}5+\sin(x_{k+1}x_{k+2})\sin(x_{k+1}+x_{k+2}) + \\ & +4x_{k+1}x_k\exp(x_kx_{k+1})3 = 0, \forall k=1..n2 \end{array} \end{split}\]See: Luksan, L., and Jan Vlcek. “Sparse and partially separable test problems for unconstrained and equality
constrained optimization.” (1999).
http://hdl.handle.net/11104/0123965Public Functions

luksan_vlcek1(unsigned dim = 3u)#
Constructor from dimension and bounds.
Constructs the luksan_vlcek1 problem.
 Parameters
dim – the problem dimensions.
 Throws
std::invalid_argument – if
dim
is < 3.

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
.

std::pair<vector_double, vector_double> get_bounds() const#
Boxbounds.
It returns the boxbounds for this UDP.
 Returns
the lower and upper bounds for each of the decision vector components.

inline vector_double::size_type get_nec() const#
Equality constraint dimension.
 Returns
the number of equality constraints.

vector_double gradient(const vector_double&) const#
Gradients.
It returns the fitness gradient.
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.

sparsity_pattern gradient_sparsity() const#
Gradients sparsity.
It returns the gradient sparisty structure for the Luksan Vlcek 1 problem.
The gradients sparisty is represented in the form required by problem::gradient_sparsity().
 Returns
the gradient sparsity structure of the fitness function.

inline std::string get_name() const#
Problem name.
 Returns
a string containing the problem name.
Public Members

unsigned m_dim#
Problem dimensions.

luksan_vlcek1(unsigned dim = 3u)#