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 trigonometric-exponential 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}^{n-1}\left[100\left(x_i^2-x_{i+1}\right)^2 + \left(x_i-1\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_k-x_{k+1})-3 = 0, \forall k=1..n-2 \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#
Box-bounds.
It returns the box-bounds 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)#