function.mo.kursawe
function.mo.kursawe(X)Kursawe multi-objective test function (2 objectives, minimization).
The Kursawe function is a classic bi-objective minimization benchmark with a non-convex, disconnected Pareto front, often used to test an optimizer’s ability to maintain diversity and avoid getting trapped in local fronts.
Mathematical formulation
f1(X) = sum(-10 * exp(-0.2 * sqrt(x_i^2 + x_{i+1}^2)) for i=1 to n-1) f2(X) = sum(|x_i|^0.8 + 5 * sin(x_i^3) for i=1 to n)
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| X | array - like |
Input points with shape (n_samples, n_features) or (n_features,). Can be a 1D array for a single point or 2D array for multiple points. Must have at least 2 dimensions. | required |
Returns
| Name | Type | Description |
|---|---|---|
| np.ndarray | np.ndarray: Objective values with shape (n_samples, 2) where: - Column 0: f1 values - Column 1: f2 values |
Raises
| Name | Type | Description |
|---|---|---|
| ValueError | If X has fewer than 2 dimensions. |
Note
- Number of objectives: 2
- Typical number of variables: 3
- Search domain: [-5, 5]^n
- Pareto front: Disconnected
- Characteristics: Non-convex, disconnected, multimodal
Examples
>>> from spotoptim.function.mo import kursawe
>>> import numpy as np
>>> X = np.array([0.0, 0.0, 0.0])
>>> result = kursawe(X)
>>> result.shape
(1, 2)>>> X = np.array([[0.0, 0.0, 0.0], [1.0, 1.0, 1.0]])
>>> result = kursawe(X)
>>> result.shape
(2, 2)References
Kursawe, F. (1991). “A variant of evolution strategies for vector optimization.” In International Conference on Parallel Problem Solving from Nature (pp. 193-197). Springer.