gemseo.problems.optimization.rastrigin module#

The Rastrigin analytic problem.

class Rastrigin[source]#

Bases: OptimizationProblem

The Rastrigin optimization problem.

It uses the Rastrigin objective function with the DesignSpace \([-0.1,0.1]^2\)

From http://en.wikipedia.org/wiki/Rastrigin_function: the Rastrigin function is a non-convex function used as a performance test problem for optimization algorithms. It is a typical example of non-linear multimodal function. It was first proposed by [Rastrigin] as a 2-dimensional function and has been generalized by [MuhlenbeinEtAl]. Finding the minimum of this function is a fairly difficult problem due to its large search space and its large number of local minima. It has a global minimum at \(x=0\) where \(f(x)=0\). It can be extended to \(n>2\) dimensions:

\[f(x) = 10n + \sum_{i=1}^n [x_i^2 - 10\cos(2\pi x_i)]\]

[Rastrigin] Rastrigin, L. A. "Systems of extremal control." Mir, Moscow (1974).

[MuhlenbeinEtAl] H. Mühlenbein, D. Schomisch and J. Born. "The Parallel Genetic Algorithm as Function Optimizer ". Parallel Computing, 17, pages 619-632, 1991.

Parameters:
  • pb_type -- The type of the optimization problem.

  • use_standardized_objective -- Whether to use standardized objective for logging and post-processing.

static get_solution()[source]#

Return theoretical optimal value of Rastrigin function.

Returns:

The design variable and objective function at optimum.

static rastrigin(x_dv)[source]#

Evaluate the 2nd order Rastrigin function.

Parameters:

x_dv -- The design variables.

Returns:

The Rastrigin function output.

Return type:

float

static rastrigin_jac(x_dv)[source]#

Compute the analytical gradient of 2nd order Rastrigin function.

Parameters:

x_dv -- The design variable vector.

Returns:

The analytical gradient vector of Rastrigin function.