Skip to content

Michalewicz

Iannick Gagnon edited this page May 22, 2025 · 5 revisions

Description [view source]

The Michalewicz function is a commonly used benchmark for testing optimization algorithms due to its steep valleys and ridges, which create a challenging search space. It is defined mathematically as:

$$ \LARGE f(\vec{x}) = -\sum_{i=1}^{d} \sin(x_i) \left(\sin\left(\frac{i x_i^2}{\pi}\right)\right)^{2m} $$

The $m$ parameter has a default value of 10, with $d$ representing the dimensionality of the input vector $\vec{x}$. The default dimensionality (Michalewicz.ndim) is 2.

Visualization

Here is a link to an interactive Desmos version: https://www.desmos.com/3d/lwyzddlti0

Michalewicz().visualize()

Features

  1. Multimodality: The function has a large number of local minima, making it challenging for optimization algorithms to find the global minimum.
  2. Global minimum: The location of the global minimum varies with the dimensionality (d) and the parameter (m). For instance, in 2 dimensions with $(m = 10)$, the global minimum is approximately $f(x^*=<2.20, 1.57>) = -1.8013$.
  3. Search space: Typically, the function is evaluated over the bounded region $0 \leq x_i \leq \pi$ for each dimension, which is also the default value.

Discussion

The Michalewicz function is useful for evaluating the performance of optimization algorithms in terms of their ability to handle non-separable, highly nonlinear, and multimodal search spaces. Its complex landscape, with steep ridges and valleys, poses a significant challenge for many optimization techniques, especially those that rely on smooth, unimodal, or separable assumptions. Algorithms that can effectively navigate the Michalewicz function's terrain are likely to perform well on a variety of real-world optimization problems.

Sources

The function was introduced by Zbigniew Michalewicz, a well-known researcher in the field of evolutionary computation in the following book :

Zbigniew, M. (1996). Genetic algorithms+ data structures= evolution programs. Computational statistics, 24, 372-373.

Clone this wiki locally