NiaPy.benchmarks

Module with implementations of benchmark functions.

class NiaPy.benchmarks.Benchmark(Lower, Upper, **kwargs)[source]

Bases: object

Class representing benchmarks.

Variables:
  • Name (List[str]) – List of names representiong benchmark names.
  • Lower (Union[int, float, list, numpy.ndarray]) – Lower bounds.
  • Upper (Union[int, float, list, numpy.ndarray]) – Upper bounds.

Initialize benchmark.

Parameters:
  • Lower (Union[int, float, list, numpy.ndarray]) – Lower bounds.
  • Upper (Union[int, float, list, numpy.ndarray]) – Upper bounds.
  • **kwargs (Dict[str, Any]) – Additional arguments.
Name = ['Benchmark', 'BBB']
_Benchmark__2dfun(x, y, f)

Calculate function value.

Parameters:
  • x (float) – First coordinate.
  • y (float) – Second coordinate.
  • f (Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]) – Evaluation function.
Returns:

Calculate functional value for given input

Return type:

float

__call__()[source]

Get the optimization function.

Returns:Fitness funciton.
Return type:Callable[[int, Union[list, numpy.ndarray]], float]
__init__(Lower, Upper, **kwargs)[source]

Initialize benchmark.

Parameters:
  • Lower (Union[int, float, list, numpy.ndarray]) – Lower bounds.
  • Upper (Union[int, float, list, numpy.ndarray]) – Upper bounds.
  • **kwargs (Dict[str, Any]) – Additional arguments.
function()[source]

Get the optimization function.

Returns:Fitness funciton.
Return type:Callable[[int, Union[list, numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
plot2d()[source]

Plot 2D graph.

plot3d(scale=0.32)[source]

Plot 3d scatter plot of benchmark function.

Parameters:scale (float) – Scale factor for points.
class NiaPy.benchmarks.Rastrigin(Lower=-5.12, Upper=5.12)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Rastrigin benchmark function.

Date: 2018

Authors: Lucija Brezočnik and Iztok Fister Jr.

License: MIT

Function: Rastrigin function

\(f(\mathbf{x}) = 10D + \sum_{i=1}^D \left(x_i^2 -10\cos(2\pi x_i)\right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-5.12, 5.12]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = 10D + sum_{i=1}^D left(x_i^2 -10cos(2pi x_i)right)$
Equation:
begin{equation} f(mathbf{x}) = 10D + sum_{i=1}^D left(x_i^2 -10cos(2pi x_i)right) end{equation}
Domain:
$-5.12 leq x_i leq 5.12$

Reference: https://www.sfu.ca/~ssurjano/rastr.html

Initialize of Rastrigni benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Rastrigin']
__init__(Lower=-5.12, Upper=5.12)[source]

Initialize of Rastrigni benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Rosenbrock(Lower=-30.0, Upper=30.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Rosenbrock benchmark function.

Date: 2018

Authors: Iztok Fister Jr. and Lucija Brezočnik

License: MIT

Function: Rosenbrock function

\(f(\mathbf{x}) = \sum_{i=1}^{D-1} \left (100 (x_{i+1} - x_i^2)^2 + (x_i - 1)^2 \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-30, 30]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (1,...,1)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^{D-1} (100 (x_{i+1} - x_i^2)^2 + (x_i - 1)^2)$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^{D-1} (100 (x_{i+1} - x_i^2)^2 + (x_i - 1)^2) end{equation}
Domain:
$-30 leq x_i leq 30$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Rosenbrock benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Rosenbrock']
__init__(Lower=-30.0, Upper=30.0)[source]

Initialize of Rosenbrock benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Griewank(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Griewank function.

Date: 2018

Authors: Iztok Fister Jr. and Lucija Brezočnik

License: MIT

Function: Griewank function

\(f(\mathbf{x}) = \sum_{i=1}^D \frac{x_i^2}{4000} - \prod_{i=1}^D \cos(\frac{x_i}{\sqrt{i}}) + 1\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D frac{x_i^2}{4000} - prod_{i=1}^D cos(frac{x_i}{sqrt{i}}) + 1$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D frac{x_i^2}{4000} - prod_{i=1}^D cos(frac{x_i}{sqrt{i}}) + 1 end{equation}
Domain:
$-100 leq x_i leq 100$

Reference paper: Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Griewank benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Griewank']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Griewank benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.ExpandedGriewankPlusRosenbrock(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Expanded Griewank’s plus Rosenbrock function.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Expanded Griewank’s plus Rosenbrock function

\(f(\textbf{x}) = h(g(x_D, x_1)) + \sum_{i=2}^D h(g(x_{i - 1}, x_i)) \\ g(x, y) = 100 (x^2 - y)^2 + (x - 1)^2 \\ h(z) = \frac{z^2}{4000} - \cos \left( \frac{z}{\sqrt{1}} \right) + 1\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = h(g(x_D, x_1)) + sum_{i=2}^D h(g(x_{i - 1}, x_i)) \ g(x, y) = 100 (x^2 - y)^2 + (x - 1)^2 \ h(z) = frac{z^2}{4000} - cos left( frac{z}{sqrt{1}} right) + 1$
Equation:
begin{equation} f(textbf{x}) = h(g(x_D, x_1)) + sum_{i=2}^D h(g(x_{i - 1}, x_i)) \ g(x, y) = 100 (x^2 - y)^2 + (x - 1)^2 \ h(z) = frac{z^2}{4000} - cos left( frac{z}{sqrt{1}} right) + 1 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Expanded Griewank’s plus Rosenbrock benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['ExpandedGriewankPlusRosenbrock']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Expanded Griewank’s plus Rosenbrock benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Sphere(Lower=-5.12, Upper=5.12)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Sphere functions.

Date: 2018

Authors: Iztok Fister Jr.

License: MIT

Function: Sphere function

\(f(\mathbf{x}) = \sum_{i=1}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [0, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D x_i^2$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D x_i^2 end{equation}
Domain:
$0 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Sphere benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Sphere']
__init__(Lower=-5.12, Upper=5.12)[source]

Initialize of Sphere benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Ackley(Lower=-32.768, Upper=32.768)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Ackley function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Ackley function

\(f(\mathbf{x}) = -a\;\exp\left(-b \sqrt{\frac{1}{D}\sum_{i=1}^D x_i^2}\right) - \exp\left(\frac{1}{D}\sum_{i=1}^D \cos(c\;x_i)\right) + a + \exp(1)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-32.768, 32.768]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = -a;expleft(-b sqrt{frac{1}{D} sum_{i=1}^D x_i^2}right) - expleft(frac{1}{D} sum_{i=1}^D cos(c;x_i)right) + a + exp(1)$
Equation:
begin{equation}f(mathbf{x}) = -a;expleft(-b sqrt{frac{1}{D} sum_{i=1}^D x_i^2}right) - expleft(frac{1}{D} sum_{i=1}^D cos(c;x_i)right) + a + exp(1) end{equation}
Domain:
$-32.768 leq x_i leq 32.768$
Reference:
https://www.sfu.ca/~ssurjano/ackley.html

Initialize of Ackley benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Ackley']
__init__(Lower=-32.768, Upper=32.768)[source]

Initialize of Ackley benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Schwefel(Lower=-500.0, Upper=500.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Schewel function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Schwefel function

\(f(\textbf{x}) = 418.9829d - \sum_{i=1}^{D} x_i \sin(\sqrt{|x_i|})\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-500, 500]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = 418.9829d - sum_{i=1}^{D} x_i sin(sqrt{|x_i|})$
Equation:
begin{equation} f(textbf{x}) = 418.9829d - sum_{i=1}^{D} x_i sin(sqrt{|x_i|}) end{equation}
Domain:
$-500 leq x_i leq 500$
Reference:
https://www.sfu.ca/~ssurjano/schwef.html

Initialize of Schwefel benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Schwefel']
__init__(Lower=-500.0, Upper=500.0)[source]

Initialize of Schwefel benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Schwefel221(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Schwefel 2.21 function implementation.

Date: 2018

Author: Grega Vrbančič

Licence: MIT

Function: Schwefel 2.21 function

\(f(\mathbf{x})=\max_{i=1,...,D}|x_i|\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x})=max_{i=1,…,D}|x_i|$
Equation:
begin{equation}f(mathbf{x}) = max_{i=1,…,D}|x_i| end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Schwefel221 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Schwefel221']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Schwefel221 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Schwefel222(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Schwefel 2.22 function implementation.

Date: 2018

Author: Grega Vrbančič

Licence: MIT

Function: Schwefel 2.22 function

\(f(\mathbf{x})=\sum_{i=1}^{D}|x_i|+\prod_{i=1}^{D}|x_i|\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x})=sum_{i=1}^{D}|x_i|+prod_{i=1}^{D}|x_i|$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^{D}|x_i| + prod_{i=1}^{D}|x_i| end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Schwefel222 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Schwefel222']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Schwefel222 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.ModifiedSchwefel(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Modified Schwefel functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Modified Schwefel Function

\(f(\textbf{x}) = 418.9829 \cdot D - \sum_{i=1}^D h(x_i) \\ h(x) = g(x + 420.9687462275036) \\ g(z) = \begin{cases} z \sin \left( | z |^{\frac{1}{2}} \right) &\quad | z | \leq 500 \\ \left( 500 - \mod (z, 500) \right) \sin \left( \sqrt{| 500 - \mod (z, 500) |} \right) - \frac{ \left( z - 500 \right)^2 }{ 10000 D } &\quad z > 500 \\ \left( \mod (| z |, 500) - 500 \right) \sin \left( \sqrt{| \mod (|z|, 500) - 500 |} \right) + \frac{ \left( z - 500 \right)^2 }{ 10000 D } &\quad z < -500\end{cases}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = 418.9829 cdot D - sum_{i=1}^D h(x_i) \ h(x) = g(x + 420.9687462275036) \ g(z) = begin{cases} z sin left( | z |^{\frac{1}{2}} \right) &\quad | z | \leq 500 \\ \left( 500 - \mod (z, 500) \right) \sin \left( \sqrt{| 500 - mod (z, 500) |} \right) - \frac{ \left( z - 500 \right)^2 }{ 10000 D } &\quad z > 500 \\ \left( \mod (| z |, 500) - 500 \right) \sin \left( \sqrt{| mod (|z|, 500) - 500 |} right) + frac{ left( z - 500 right)^2 }{ 10000 D } &quad z < -500end{cases}$
Equation:
begin{equation} f(textbf{x}) = 418.9829 cdot D - sum_{i=1}^D h(x_i) \ h(x) = g(x + 420.9687462275036) \ g(z) = begin{cases} z sin left( | z |^{\frac{1}{2}} \right) &\quad | z | \leq 500 \\ \left( 500 - \mod (z, 500) \right) \sin \left( \sqrt{| 500 - mod (z, 500) |} \right) - \frac{ \left( z - 500 \right)^2 }{ 10000 D } &\quad z > 500 \\ \left( \mod (| z |, 500) - 500 \right) \sin \left( \sqrt{| mod (|z|, 500) - 500 |} right) + frac{ left( z - 500 right)^2 }{ 10000 D } &quad z < -500end{cases} end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Modified Schwefel benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['ModifiedSchwefel']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Modified Schwefel benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Whitley(Lower=-10.24, Upper=10.24)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Whitley function.

Date: 2018

Authors: Grega Vrbančič and Lucija Brezočnik

License: MIT

Function: Whitley function

\(f(\mathbf{x}) = \sum_{i=1}^D \sum_{j=1}^D \left(\frac{(100(x_i^2-x_j)^2 + (1-x_j)^2)^2}{4000} - \cos(100(x_i^2-x_j)^2 + (1-x_j)^2)+1\right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10.24, 10.24]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (1,...,1)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D sum_{j=1}^D left(frac{(100(x_i^2-x_j)^2 + (1-x_j)^2)^2}{4000} - cos(100(x_i^2-x_j)^2 + (1-x_j)^2)+1right)$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D sum_{j=1}^D left(frac{(100(x_i^2-x_j)^2 + (1-x_j)^2)^2}{4000} - cos(100(x_i^2-x_j)^2 + (1-x_j)^2)+1right) end{equation}
Domain:
$-10.24 leq x_i leq 10.24$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Whitley benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Whitley']
__init__(Lower=-10.24, Upper=10.24)[source]

Initialize of Whitley benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Alpine1(Lower=-10.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Alpine1 function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Alpine1 function

\(f(\mathbf{x}) = \sum_{i=1}^{D} |x_i \sin(x_i)+0.1x_i|\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^{D} left |x_i sin(x_i)+0.1x_i right|$
Equation:
begin{equation} f(x) = sum_{i=1}^{D} left|x_i sin(x_i) + 0.1x_i right| end{equation}
Domain:
$-10 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Alpine1 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Alpine1']
__init__(Lower=-10.0, Upper=10.0)[source]

Initialize of Alpine1 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Alpine2(Lower=0.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Alpine2 function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Alpine2 function

\(f(\mathbf{x}) = \prod_{i=1}^{D} \sqrt{x_i} \sin(x_i)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [0, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 2.808^D\), at \(x^* = (7.917,...,7.917)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = prod_{i=1}^{D} sqrt{x_i} sin(x_i)$
Equation:
begin{equation} f(mathbf{x}) = prod_{i=1}^{D} sqrt{x_i} sin(x_i) end{equation}
Domain:
$0 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Alpine2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Alpine2']
__init__(Lower=0.0, Upper=10.0)[source]

Initialize of Alpine2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.HappyCat(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Happy cat function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Happy cat function

\(f(\mathbf{x}) = {\left |\sum_{i = 1}^D {x_i}^2 - D \right|}^{1/4} + (0.5 \sum_{i = 1}^D {x_i}^2 + \sum_{i = 1}^D x_i) / D + 0.5\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (-1,...,-1)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = {left|sum_{i = 1}^D {x_i}^2 - D right|}^{1/4} + (0.5 sum_{i = 1}^D {x_i}^2 + sum_{i = 1}^D x_i) / D + 0.5$
Equation:
begin{equation} f(mathbf{x}) = {left| sum_{i = 1}^D {x_i}^2 - D right|}^{1/4} + (0.5 sum_{i = 1}^D {x_i}^2 + sum_{i = 1}^D x_i) / D + 0.5 end{equation}
Domain:
$-100 leq x_i leq 100$

Reference: http://bee22.com/manual/tf_images/Liang%20CEC2014.pdf & Beyer, H. G., & Finck, S. (2012). HappyCat - A Simple Function Class Where Well-Known Direct Search Algorithms Do Fail. In International Conference on Parallel Problem Solving from Nature (pp. 367-376). Springer, Berlin, Heidelberg.

Initialize of Happy cat benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['HappyCat']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Happy cat benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Ridge(Lower=-64.0, Upper=64.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Ridge function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Ridge function

\(f(\mathbf{x}) = \sum_{i=1}^D (\sum_{j=1}^i x_j)^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-64, 64]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D (sum_{j=1}^i x_j)^2 $
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D (sum_{j=1}^i x_j)^2 end{equation}
Domain:
$-64 leq x_i leq 64$

Reference: http://www.cs.unm.edu/~neal.holts/dga/benchmarkFunction/ridge.html

Initialize of Ridge benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Ridge']
__init__(Lower=-64.0, Upper=64.0)[source]

Initialize of Ridge benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.ChungReynolds(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Chung Reynolds functions.

Date: 2018

Authors: Lucija Brezočnik

License: MIT

Function: Chung Reynolds function

\(f(\mathbf{x}) = \left(\sum_{i=1}^D x_i^2\right)^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\)

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = left(sum_{i=1}^D x_i^2right)^2$
Equation:
begin{equation} f(mathbf{x}) = left(sum_{i=1}^D x_i^2right)^2 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Chung Reynolds benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['ChungReynolds']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Chung Reynolds benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Csendes(Lower=-1.0, Upper=1.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Csendes function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Csendes function

\(f(\mathbf{x}) = \sum_{i=1}^D x_i^6\left( 2 + \sin \frac{1}{x_i}\right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-1, 1]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D x_i^6left( 2 + sin frac{1}{x_i}right)$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D x_i^6left( 2 + sin frac{1}{x_i}right) end{equation}
Domain:
$-1 leq x_i leq 1$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Csendes benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Csendes']
__init__(Lower=-1.0, Upper=1.0)[source]

Initialize of Csendes benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Pinter(Lower=-10.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Pintér function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Pintér function

\(f(\mathbf{x}) = \sum_{i=1}^D ix_i^2 + \sum_{i=1}^D 20i \sin^2 A + \sum_{i=1}^D i \log_{10} (1 + iB^2);\) \(A = (x_{i-1}\sin(x_i)+\sin(x_{i+1}))\quad \text{and} \quad\) \(B = (x_{i-1}^2 - 2x_i + 3x_{i+1} - \cos(x_i) + 1)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D ix_i^2 + sum_{i=1}^D 20i sin^2 A + sum_{i=1}^D i log_{10} (1 + iB^2); A = (x_{i-1}sin(x_i)+sin(x_{i+1}))quad text{and} quad B = (x_{i-1}^2 - 2x_i + 3x_{i+1} - cos(x_i) + 1)$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D ix_i^2 + sum_{i=1}^D 20i sin^2 A + sum_{i=1}^D i log_{10} (1 + iB^2); A = (x_{i-1}sin(x_i)+sin(x_{i+1}))quad text{and} quad B = (x_{i-1}^2 - 2x_i + 3x_{i+1} - cos(x_i) + 1) end{equation}
Domain:
$-10 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Pinter benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Pinter']
__init__(Lower=-10.0, Upper=10.0)[source]

Initialize of Pinter benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Qing(Lower=-500.0, Upper=500.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Qing function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Qing function

\(f(\mathbf{x}) = \sum_{i=1}^D \left(x_i^2 - i\right)^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-500, 500]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (\pm √i))\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D left (x_i^2 - iright)^2$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D left{(x_i^2 - iright)}^2 end{equation}
Domain:
$-500 leq x_i leq 500$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Qing benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Qing']
__init__(Lower=-500.0, Upper=500.0)[source]

Initialize of Qing benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Quintic(Lower=-10.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Quintic function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Quintic function

\(f(\mathbf{x}) = \sum_{i=1}^D \left| x_i^5 - 3x_i^4 + 4x_i^3 + 2x_i^2 - 10x_i - 4\right|\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = f(-1\; \text{or}\; 2)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D left| x_i^5 - 3x_i^4 + 4x_i^3 + 2x_i^2 - 10x_i - 4right|$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D left| x_i^5 - 3x_i^4 + 4x_i^3 + 2x_i^2 - 10x_i - 4right| end{equation}
Domain:
$-10 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Quintic benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Quintic']
__init__(Lower=-10.0, Upper=10.0)[source]

Initialize of Quintic benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Salomon(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Salomon function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Salomon function

\(f(\mathbf{x}) = 1 - \cos\left(2\pi\sqrt{\sum_{i=1}^D x_i^2} \right)+ 0.1 \sqrt{\sum_{i=1}^D x_i^2}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = f(0, 0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = 1 - cosleft(2pisqrt{sum_{i=1}^D x_i^2} right)+ 0.1 sqrt{sum_{i=1}^D x_i^2}$
Equation:
begin{equation} f(mathbf{x}) = 1 - cosleft(2pisqrt{sum_{i=1}^D x_i^2} right)+ 0.1 sqrt{sum_{i=1}^D x_i^2} end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Salomon benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Salomon']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Salomon benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.SchumerSteiglitz(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Schumer Steiglitz function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Schumer Steiglitz function

\(f(\mathbf{x}) = \sum_{i=1}^D x_i^4\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D x_i^4$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D x_i^4 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Schumer Steiglitz benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['SchumerSteiglitz']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Schumer Steiglitz benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Step(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Step function.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Step function

\(f(\mathbf{x}) = \sum_{i=1}^D \left( \lfloor \left | x_i \right | \rfloor \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D left( lfloor left | x_i right | rfloor right)$
Equation:
begin{equation} f(mathbf{x}) = sum_{i=1}^D left( lfloor left | x_i right | rfloor right) end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Step benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Step']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Step benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Step2(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Step2 function implementation.

Date: 2018

Author: Lucija Brezočnik

Licence: MIT

Function: Step2 function

\(f(\mathbf{x}) = \sum_{i=1}^D \left( \lfloor x_i + 0.5 \rfloor \right)^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

lobal minimum: \(f(x^*) = 0\), at \(x^* = (-0.5,...,-0.5)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D left( lfloor x_i + 0.5 rfloor right)^2$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D left( lfloor x_i + 0.5 rfloor right)^2 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Step2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Step2']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Step2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Step3(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Step3 function implementation.

Date: 2018

Author: Lucija Brezočnik

Licence: MIT

Function: Step3 function

\(f(\mathbf{x}) = \sum_{i=1}^D \left( \lfloor x_i^2 \rfloor \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D left( lfloor x_i^2 rfloor right)$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D left( lfloor x_i^2 rfloor right)end{equation}
Domain:
$-100 leq x_i leq 100$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Step3 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Step3']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Step3 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Stepint(Lower=-5.12, Upper=5.12)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Stepint functions.

Date: 2018

Author: Lucija Brezočnik

License: MIT

Function: Stepint function

\(f(\mathbf{x}) = \sum_{i=1}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-5.12, 5.12]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (-5.12,...,-5.12)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D x_i^2$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D x_i^2 end{equation}
Domain:
$0 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Stepint benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Stepint']
__init__(Lower=-5.12, Upper=5.12)[source]

Initialize of Stepint benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.SumSquares(Lower=-10.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Sum Squares functions.

Date: 2018

Authors: Lucija Brezočnik

License: MIT

Function: Sum Squares function

\(f(\mathbf{x}) = \sum_{i=1}^D i x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D i x_i^2$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D i x_i^2 end{equation}
Domain:
$0 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Sum Squares benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['SumSquares']
__init__(Lower=-10.0, Upper=10.0)[source]

Initialize of Sum Squares benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.StyblinskiTang(Lower=-5.0, Upper=5.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Styblinski-Tang functions.

Date: 2018

Authors: Lucija Brezočnik

License: MIT

Function: Styblinski-Tang function

\(f(\mathbf{x}) = \frac{1}{2} \sum_{i=1}^D \left( x_i^4 - 16x_i^2 + 5x_i \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-5, 5]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = -78.332\), at \(x^* = (-2.903534,...,-2.903534)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = frac{1}{2} sum_{i=1}^D left( x_i^4 - 16x_i^2 + 5x_i right) $
Equation:
begin{equation}f(mathbf{x}) = frac{1}{2} sum_{i=1}^D left( x_i^4 - 16x_i^2 + 5x_i right) end{equation}
Domain:
$-5 leq x_i leq 5$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Styblinski Tang benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['StyblinskiTang']
__init__(Lower=-5.0, Upper=5.0)[source]

Initialize of Styblinski Tang benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.BentCigar(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Bent Cigar functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Bent Cigar Function

\(f(\textbf{x}) = x_1^2 + 10^6 \sum_{i=2}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = x_1^2 + 10^6 sum_{i=2}^D x_i^2$
Equation:
begin{equation} f(textbf{x}) = x_1^2 + 10^6 sum_{i=2}^D x_i^2 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['BentCigar']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Weierstrass(Lower=-100.0, Upper=100.0, a=0.5, b=3, k_max=20)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Weierstrass functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Weierstass Function

\(f(\textbf{x}) = \sum_{i=1}^D \left( \sum_{k=0}^{k_{max}} a^k \cos\left( 2 \pi b^k ( x_i + 0.5) \right) \right) - D \sum_{k=0}^{k_{max}} a^k \cos \left( 2 \pi b^k \cdot 0.5 \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\). Default value of a = 0.5, b = 3 and k_max = 20.

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$$f(textbf{x}) = sum_{i=1}^D left( sum_{k=0}^{k_{max}} a^k cosleft( 2 pi b^k ( x_i + 0.5) right) right) - D sum_{k=0}^{k_{max}} a^k cos left( 2 pi b^k cdot 0.5 right)
Equation:
begin{equation} f(textbf{x}) = sum_{i=1}^D left( sum_{k=0}^{k_{max}} a^k cosleft( 2 pi b^k ( x_i + 0.5) right) right) - D sum_{k=0}^{k_{max}} a^k cos left( 2 pi b^k cdot 0.5 right) end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
  • a (Optional[float]) – TODO
  • b (Optional[float]) – TODO
  • k (Optional[float]) – TODO
Name = ['Weierstrass']
__init__(Lower=-100.0, Upper=100.0, a=0.5, b=3, k_max=20)[source]

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
  • a (Optional[float]) – TODO
  • b (Optional[float]) – TODO
  • k (Optional[float]) – TODO
a = 0.5
b = 3
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
k_max = 20
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.HGBat(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of HGBat functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function:

HGBat Function :math:``f(textbf{x}) = left| left( sum_{i=1}^D x_i^2 right)^2 - left( sum_{i=1}^D x_i right)^2 right|^{frac{1}{2}} + frac{0.5 sum_{i=1}^D x_i^2 + sum_{i=1}^D x_i}{D} + 0.5

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$$f(textbf{x}) = left| left( sum_{i=1}^D x_i^2 right)^2 - left( sum_{i=1}^D x_i right)^2 right|^{frac{1}{2}} + frac{0.5 sum_{i=1}^D x_i^2 + sum_{i=1}^D x_i}{D} + 0.5
Equation:
begin{equation} f(textbf{x}) = left| left( sum_{i=1}^D x_i^2 right)^2 - left( sum_{i=1}^D x_i right)^2 right|^{frac{1}{2}} + frac{0.5 sum_{i=1}^D x_i^2 + sum_{i=1}^D x_i}{D} + 0.5 end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of HGBat benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['HGBat']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of HGBat benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Katsuura(Lower=-100.0, Upper=100.0, **kwargs)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Katsuura functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Katsuura Function

\(f(\textbf{x}) = \frac{10}{D^2} \prod_{i=1}^D \left( 1 + i \sum_{j=1}^{32} \frac{| 2^j x_i - round\left(2^j x_i \right) |}{2^j} \right)^\frac{10}{D^{1.2}} - \frac{10}{D^2}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = frac{10}{D^2} prod_{i=1}^D left( 1 + i sum_{j=1}^{32} frac{| 2^j x_i - roundleft(2^j x_i right) |}{2^j} right)^frac{10}{D^{1.2}} - frac{10}{D^2}$
Equation:
begin{equation} f(textbf{x}) = frac{10}{D^2} prod_{i=1}^D left( 1 + i sum_{j=1}^{32} frac{| 2^j x_i - roundleft(2^j x_i right) |}{2^j} right)^frac{10}{D^{1.2}} - frac{10}{D^2} end{equation}
Domain:
$-100 leq x_i leq 100$
Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Katsuura benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Katsuura']
__init__(Lower=-100.0, Upper=100.0, **kwargs)[source]

Initialize of Katsuura benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Elliptic(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of High Conditioned Elliptic functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: High Conditioned Elliptic Function

\(f(\textbf{x}) = \sum_{i=1}^D \left( 10^6 \right)^{ \frac{i - 1}{D - 1} } x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i=1}^D left( 10^6 right)^{ frac{i - 1}{D - 1} } x_i^2$
Equation:
begin{equation} f(textbf{x}) = sum_{i=1}^D left( 10^6 right)^{ frac{i - 1}{D - 1} } x_i^2 end{equation}
Domain:
$-100 leq x_i leq 100$

Reference: http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of High Conditioned Elliptic benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Elliptic']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of High Conditioned Elliptic benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Discus(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Discus functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Discus Function

\(f(\textbf{x}) = x_1^2 10^6 + \sum_{i=2}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = x_1^2 10^6 + sum_{i=2}^D x_i^2$
Equation:
begin{equation} f(textbf{x}) = x_1^2 10^6 + sum_{i=2}^D x_i^2 end{equation}
Domain:
$-100 leq x_i leq 100$

Reference: http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Discus benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Discus']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Discus benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Michalewichz(Lower=0.0, Upper=3.141592653589793, m=10)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Michalewichz’s functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: High Conditioned Elliptic Function

\(f(\textbf{x}) = \sum_{i=1}^D \left( 10^6 \right)^{ \frac{i - 1}{D - 1} } x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [0, \pi]\), for all \(i = 1, 2,..., D\).

Global minimum: at \(d = 2\) \(f(\textbf{x}^*) = -1.8013\) at \(\textbf{x}^* = (2.20, 1.57)\) at \(d = 5\) \(f(\textbf{x}^*) = -4.687658\) at \(d = 10\) \(f(\textbf{x}^*) = -9.66015\)

LaTeX formats:
Inline:
$f(textbf{x}) = - sum_{i = 1}^{D} sin(x_i) sinleft( frac{ix_i^2}{pi} right)^{2m}$
Equation:
begin{equation} f(textbf{x}) = - sum_{i = 1}^{D} sin(x_i) sinleft( frac{ix_i^2}{pi} right)^{2m} end{equation}
Domain:
$0 leq x_i leq pi$
Reference URL:
https://www.sfu.ca/~ssurjano/michal.html

Initialize of Michalewichz benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Michalewichz']
__init__(Lower=0.0, Upper=3.141592653589793, m=10)[source]

Initialize of Michalewichz benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
classmethod function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Levy(Lower=0.0, Upper=3.141592653589793)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Levy functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Levy Function

\(f(\textbf{x}) = \sin^2 (\pi w_1) + \sum_{i = 1}^{D - 1} (w_i - 1)^2 \left( 1 + 10 \sin^2 (\pi w_i + 1) \right) + (w_d - 1)^2 (1 + \sin^2 (2 \pi w_d)) \\ w_i = 1 + \frac{x_i - 1}{4}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (1, \cdots, 1)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sin^2 (pi w_1) + sum_{i = 1}^{D - 1} (w_i - 1)^2 left( 1 + 10 sin^2 (pi w_i + 1) right) + (w_d - 1)^2 (1 + sin^2 (2 pi w_d)) \ w_i = 1 + frac{x_i - 1}{4}$
Equation:
begin{equation} f(textbf{x}) = sin^2 (pi w_1) + sum_{i = 1}^{D - 1} (w_i - 1)^2 left( 1 + 10 sin^2 (pi w_i + 1) right) + (w_d - 1)^2 (1 + sin^2 (2 pi w_d)) \ w_i = 1 + frac{x_i - 1}{4} end{equation}
Domain:
$-10 leq x_i leq 10$
Reference:
https://www.sfu.ca/~ssurjano/levy.html

Initialize of Levy benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Levy']
__init__(Lower=0.0, Upper=3.141592653589793)[source]

Initialize of Levy benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Sphere(Lower=-5.12, Upper=5.12)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Sphere functions.

Date: 2018

Authors: Iztok Fister Jr.

License: MIT

Function: Sphere function

\(f(\mathbf{x}) = \sum_{i=1}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [0, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(mathbf{x}) = sum_{i=1}^D x_i^2$
Equation:
begin{equation}f(mathbf{x}) = sum_{i=1}^D x_i^2 end{equation}
Domain:
$0 leq x_i leq 10$
Reference paper:
Jamil, M., and Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.

Initialize of Sphere benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Sphere']
__init__(Lower=-5.12, Upper=5.12)[source]

Initialize of Sphere benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Sphere2(Lower=-1.0, Upper=1.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of Sphere with different powers function.

Date: 2018

Authors: Klemen Berkovič

License: MIT

Function: Sun of different powers function

\(f(\textbf{x}) = \sum_{i = 1}^D | x_i |^{i + 1}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-1, 1]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D | x_i |^{i + 1}$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D | x_i |^{i + 1} end{equation}
Domain:
$-1 leq x_i leq 1$
Reference URL:
https://www.sfu.ca/~ssurjano/sumpow.html

Initialize of Sphere2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Sphere2']
__init__(Lower=-1.0, Upper=1.0)[source]

Initialize of Sphere2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Sphere3(Lower=-65.536, Upper=65.536)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementation of rotated hyper-ellipsoid function.

Date: 2018

Authors: Klemen Berkovič

License: MIT

Function: Sun of rotated hyper-elliposid function

\(f(\textbf{x}) = \sum_{i = 1}^D \sum_{j = 1}^i x_j^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-65.536, 65.536]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (0,...,0)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D sum_{j = 1}^i x_j^2$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D sum_{j = 1}^i x_j^2 end{equation}
Domain:
$-65.536 leq x_i leq 65.536$
Reference URL:
https://www.sfu.ca/~ssurjano/rothyp.html

Initialize of Sphere3 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Sphere3']
__init__(Lower=-65.536, Upper=65.536)[source]

Initialize of Sphere3 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Trid(D=2)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Trid functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Levy Function

\(f(\textbf{x}) = \sum_{i = 1}^D \left( x_i - 1 \right)^2 - \sum_{i = 2}^D x_i x_{i - 1}\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-D^2, D^2]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = \frac{-D(D + 4)(D - 1)}{6}\) at \(\textbf{x}^* = (1 (D + 1 - 1), \cdots , i (D + 1 - i) , \cdots , D (D + 1 - D))\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D left( x_i - 1 right)^2 - sum_{i = 2}^D x_i x_{i - 1}$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D left( x_i - 1 right)^2 - sum_{i = 2}^D x_i x_{i - 1} end{equation}
Domain:
$-D^2 leq x_i leq D^2$
Reference:
https://www.sfu.ca/~ssurjano/trid.html

Initialize of Trid benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Trid']
__init__(D=2)[source]

Initialize of Trid benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Perm(D=10.0, beta=0.5)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Perm functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Arguments: beta {real} – value added to inner sum of funciton

Function: Perm Function

\(f(\textbf{x}) = \sum_{i = 1}^D \left( \sum_{j = 1}^D (j - \beta) \left( x_j^i - \frac{1}{j^i} \right) \right)^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-D, D]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (1, \frac{1}{2}, \cdots , \frac{1}{i} , \cdots , \frac{1}{D})\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D left( sum_{j = 1}^D (j - beta) left( x_j^i - frac{1}{j^i} right) right)^2$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D left( sum_{j = 1}^D (j - beta) left( x_j^i - frac{1}{j^i} right) right)^2 end{equation}
Domain:
$-D leq x_i leq D$
Reference:
https://www.sfu.ca/~ssurjano/perm0db.html

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Perm']
__init__(D=10.0, beta=0.5)[source]

Initialize of Bent Cigar benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Zakharov(Lower=-5.0, Upper=10.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Zakharov functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Levy Function

\(f(\textbf{x}) = \sum_{i = 1}^D x_i^2 + \left( \sum_{i = 1}^D 0.5 i x_i \right)^2 + \left( \sum_{i = 1}^D 0.5 i x_i \right)^4\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-5, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (0, \cdots, 0)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D x_i^2 + left( sum_{i = 1}^D 0.5 i x_i right)^2 + left( sum_{i = 1}^D 0.5 i x_i right)^4$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D x_i^2 + left( sum_{i = 1}^D 0.5 i x_i right)^2 + left( sum_{i = 1}^D 0.5 i x_i right)^4 end{equation}
Domain:
$-5 leq x_i leq 10$
Reference:
https://www.sfu.ca/~ssurjano/levy.html

Initialize of Zakharov benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Zakharov']
__init__(Lower=-5.0, Upper=10.0)[source]

Initialize of Zakharov benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.DixonPrice(Lower=-10.0, Upper=10)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Dixon Price function.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Levy Function

\(f(\textbf{x}) = (x_1 - 1)^2 + \sum_{i = 2}^D i (2x_i^2 - x_{i - 1})^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-10, 10]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (2^{-\frac{2^1 - 2}{2^1}}, \cdots , 2^{-\frac{2^i - 2}{2^i}} , \cdots , 2^{-\frac{2^D - 2}{2^D}})\)

LaTeX formats:
Inline:
$f(textbf{x}) = (x_1 - 1)^2 + sum_{i = 2}^D i (2x_i^2 - x_{i - 1})^2$
Equation:
begin{equation} f(textbf{x}) = (x_1 - 1)^2 + sum_{i = 2}^D i (2x_i^2 - x_{i - 1})^2 end{equation}
Domain:
$-10 leq x_i leq 10$

Reference: https://www.sfu.ca/~ssurjano/dixonpr.html

Initialize of Dixon Price benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['DixonPrice']
__init__(Lower=-10.0, Upper=10)[source]

Initialize of Dixon Price benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Powell(Lower=-4.0, Upper=5.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Powell functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Levy Function

\(f(\textbf{x}) = \sum_{i = 1}^{D / 4} \left( (x_{4 i - 3} + 10 x_{4 i - 2})^2 + 5 (x_{4 i - 1} - x_{4 i})^2 + (x_{4 i - 2} - 2 x_{4 i - 1})^4 + 10 (x_{4 i - 3} - x_{4 i})^4 \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-4, 5]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (0, \cdots, 0)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^{D / 4} left( (x_{4 i - 3} + 10 x_{4 i - 2})^2 + 5 (x_{4 i - 1} - x_{4 i})^2 + (x_{4 i - 2} - 2 x_{4 i - 1})^4 + 10 (x_{4 i - 3} - x_{4 i})^4 right)$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^{D / 4} left( (x_{4 i - 3} + 10 x_{4 i - 2})^2 + 5 (x_{4 i - 1} - x_{4 i})^2 + (x_{4 i - 2} - 2 x_{4 i - 1})^4 + 10 (x_{4 i - 3} - x_{4 i})^4 right) end{equation}
Domain:
$-4 leq x_i leq 5$
Reference:
https://www.sfu.ca/~ssurjano/levy.html

Initialize of Powell benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Powell']
__init__(Lower=-4.0, Upper=5.0)[source]

Initialize of Powell benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.CosineMixture(Lower=-1.0, Upper=1.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Cosine mixture function.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Cosine Mixture Function

\(f(\textbf{x}) = - 0.1 \sum_{i = 1}^D \cos (5 \pi x_i) - \sum_{i = 1}^D x_i^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-1, 1]\), for all \(i = 1, 2,..., D\).

Global maximu: \(f(x^*) = -0.1 D\), at \(x^* = (0.0,...,0.0)\)

LaTeX formats:
Inline:
$f(textbf{x}) = - 0.1 sum_{i = 1}^D cos (5 pi x_i) - sum_{i = 1}^D x_i^2$
Equation:
begin{equation} f(textbf{x}) = - 0.1 sum_{i = 1}^D cos (5 pi x_i) - sum_{i = 1}^D x_i^2 end{equation}
Domain:
$-1 leq x_i leq 1$

Reference: http://infinity77.net/global_optimization/test_functions_nd_C.html#go_benchmark.CosineMixture

Initialize of Cosine mixture benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['CosineMixture']
__init__(Lower=-1.0, Upper=1.0)[source]

Initialize of Cosine mixture benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.Infinity(Lower=-1.0, Upper=1.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Infinity function.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Infinity Function

\(f(\textbf{x}) = \sum_{i = 1}^D x_i^6 \left( \sin \left( \frac{1}{x_i} \right) + 2 \right)\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-1, 1]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats:
Inline:
$f(textbf{x}) = sum_{i = 1}^D x_i^6 left( sin left( frac{1}{x_i} right) + 2 right)$
Equation:
begin{equation} f(textbf{x}) = sum_{i = 1}^D x_i^6 left( sin left( frac{1}{x_i} right) + 2 right) end{equation}
Domain:
$-1 leq x_i leq 1$
Reference:
http://infinity77.net/global_optimization/test_functions_nd_I.html#go_benchmark.Infinity

Initialize of Infinity benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['Infinity']
__init__(Lower=-1.0, Upper=1.0)[source]

Initialize of Infinity benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.ExpandedSchaffer(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Expanded Schaffer functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Expanded Schaffer Function \(f(\textbf{x}) = g(x_D, x_1) + \sum_{i=2}^D g(x_{i - 1}, x_i) \\ g(x, y) = 0.5 + \frac{\sin \left(\sqrt{x^2 + y^2} \right)^2 - 0.5}{\left( 1 + 0.001 (x^2 + y^2) \right)}^2\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats: Inline: $f(textbf{x}) = g(x_D, x_1) + sum_{i=2}^D g(x_{i - 1}, x_i) \ g(x, y) = 0.5 + frac{sin left(sqrt{x^2 + y^2} right)^2 - 0.5}{left( 1 + 0.001 (x^2 + y^2) right)}^2$

Equation: begin{equation} f(textbf{x}) = g(x_D, x_1) + sum_{i=2}^D g(x_{i - 1}, x_i) \ g(x, y) = 0.5 + frac{sin left(sqrt{x^2 + y^2} right)^2 - 0.5}{left( 1 + 0.001 (x^2 + y^2) right)}^2 end{equation}

Domain: $-100 leq x_i leq 100$

Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of Expanded Scaffer benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['ExpandedSchaffer']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of Expanded Scaffer benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.SchafferN2(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Schaffer N. 2 functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Schaffer N. 2 Function \(f(\textbf{x}) = 0.5 + \frac{ \sin^2 \left( x_1^2 - x_2^2 \right) - 0.5 }{ \left( 1 + 0.001 \left( x_1^2 + x_2^2 \right) \right)^2 }\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats: Inline: $f(textbf{x}) = 0.5 + frac{ sin^2 left( x_1^2 - x_2^2 right) - 0.5 }{ left( 1 + 0.001 left( x_1^2 + x_2^2 right) right)^2 }$

Equation: begin{equation} f(textbf{x}) = 0.5 + frac{ sin^2 left( x_1^2 - x_2^2 right) - 0.5 }{ left( 1 + 0.001 left( x_1^2 + x_2^2 right) right)^2 } end{equation}

Domain: $-100 leq x_i leq 100$

Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of SchafferN2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['SchafferN2']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of SchafferN2 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str
class NiaPy.benchmarks.SchafferN4(Lower=-100.0, Upper=100.0)[source]

Bases: NiaPy.benchmarks.benchmark.Benchmark

Implementations of Schaffer N. 2 functions.

Date: 2018

Author: Klemen Berkovič

License: MIT

Function: Schaffer N. 2 Function \(f(\textbf{x}) = 0.5 + \frac{ \cos^2 \left( \sin \left( x_1^2 - x_2^2 \right) \right)- 0.5 }{ \left( 1 + 0.001 \left( x_1^2 + x_2^2 \right) \right)^2 }\)

Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-100, 100]\), for all \(i = 1, 2,..., D\).

Global minimum: \(f(x^*) = 0\), at \(x^* = (420.968746,...,420.968746)\)

LaTeX formats: Inline: $f(textbf{x}) = 0.5 + frac{ cos^2 left( sin left( x_1^2 - x_2^2 right) right)- 0.5 }{ left( 1 + 0.001 left( x_1^2 + x_2^2 right) right)^2 }$

Equation: begin{equation} f(textbf{x}) = 0.5 + frac{ cos^2 left( sin left( x_1^2 - x_2^2 right) right)- 0.5 }{ left( 1 + 0.001 left( x_1^2 + x_2^2 right) right)^2 } end{equation}

Domain: $-100 leq x_i leq 100$

Reference:
http://www5.zzu.edu.cn/__local/A/69/BC/D3B5DFE94CD2574B38AD7CD1D12_C802DAFE_BC0C0.pdf

Initialize of ScahfferN4 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
Name = ['SchafferN4']
__init__(Lower=-100.0, Upper=100.0)[source]

Initialize of ScahfferN4 benchmark.

Parameters:
  • Lower (Optional[float]) – Lower bound of problem.
  • Upper (Optional[float]) – Upper bound of problem.
function()[source]

Return benchmark evaluation function.

Returns:Fitness function
Return type:Callable[[int, Union[int, float, List[int, float], numpy.ndarray]], float]
static latex_code()[source]

Return the latex code of the problem.

Returns:Latex code
Return type:str