NiaPy.benchmarks
¶
Module with implementations of benchmark functions.
-
class
NiaPy.benchmarks.
Benchmark
(Lower, Upper, **kwargs)[source]¶ Bases:
object
Class representing benchmarks.
- Date:
- 2018
- Author:
- Klemen Berkovič
- License:
- MIT
Variables: Initialize benchmark.
Parameters: -
Name
= ['Benchmark', 'BBB', 'benchmark', 'bbb']¶
-
_Benchmark__2dfun
(x, y, f)¶ Calculate function value.
Parameters: Returns: Calculate functional value for given input
Return type:
-
__call__
()[source]¶ Get the optimization function.
Returns: Fitness funciton. Return type: Callable[[int, Union[list, numpy.ndarray]], float]
-
function
()[source]¶ Get the optimization function.
Returns: Fitness function. Return type: Callable[[int, Union[list, numpy.ndarray]], float]
-
class
NiaPy.benchmarks.
Rastrigin
(Lower=-5.12, Upper=5.12, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Rastrigni benchmark.
Parameters: -
Name
= ['Rastrigin', 'rastrigin']¶
-
class
NiaPy.benchmarks.
Rosenbrock
(Lower=-30.0, Upper=30.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Rosenbrock benchmark.
Parameters: -
Name
= ['Rosenbrock', 'rosenbrock']¶
-
__init__
(Lower=-30.0, Upper=30.0, **kwargs)[source]¶ Initialize of Rosenbrock benchmark.
Parameters:
-
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$
Variables: Name (List[str]) – Names of the algorithm. See also
- 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: -
Name
= ['Griewank', 'griewank']¶
-
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$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Expanded Griewank’s plus Rosenbrock benchmark.
Parameters: -
Name
= ['ExpandedGriewankPlusRosenbrock', 'expandedgriewankplusrosenbrock']¶
-
__init__
(Lower=-100.0, Upper=100.0)[source]¶ Initialize of Expanded Griewank’s plus Rosenbrock benchmark.
Parameters:
-
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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Sphere benchmark.
Parameters: -
Name
= ['Sphere', 'sphere']¶
-
class
NiaPy.benchmarks.
Ackley
(Lower=-32.768, Upper=32.768, a=20, b=0.2, c=6.283185307179586, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementation of Ackley function.
Date: 2018
Author: Lucija Brezočnik and Klemen Berkovič
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
Variables: See also
Initialize of Ackley benchmark.
Parameters: - Lower (Optional[float]) – Lower bound of problem.
- Upper (Optional[float]) – Upper bound of problem.
- a (Optional[float]) – Objective function argument.
- b (Optional[float]) – Objective function argument.
- c (Optional[float]) – Objective function argument.
- kwargs (Dict[str, Any]) – Additional arguments.
-
Name
= ['Ackley', 'ackley']¶
-
__init__
(Lower=-32.768, Upper=32.768, a=20, b=0.2, c=6.283185307179586, **kwargs)[source]¶ Initialize of Ackley benchmark.
Parameters: - Lower (Optional[float]) – Lower bound of problem.
- Upper (Optional[float]) – Upper bound of problem.
- a (Optional[float]) – Objective function argument.
- b (Optional[float]) – Objective function argument.
- c (Optional[float]) – Objective function argument.
- kwargs (Dict[str, Any]) – Additional arguments.
-
a
= 20¶
-
b
= 0.2¶
-
c
= 6.283185307179586¶
-
class
NiaPy.benchmarks.
Schwefel
(Lower=-500.0, Upper=500.0, **kwargs)[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{\lvert x_i \rvert})\)
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{lvert x_i rvert})$
- Equation:
- begin{equation} f(textbf{x}) = 418.9829d - sum_{i=1}^{D} x_i sin(sqrt{lvert x_i rvert}) end{equation}
- Domain:
- $-500 leq x_i leq 500$
- Reference:
- https://www.sfu.ca/~ssurjano/schwef.html
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Schwefel benchmark.
Parameters: -
Name
= ['Schwefel', 'schwefel']¶
-
__init__
(Lower=-500.0, Upper=500.0, **kwargs)[source]¶ Initialize of Schwefel benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Schwefel221
(Lower=-100.0, Upper=100.0, **kwargs)[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} lvert x_i rvert$
- Equation:
- begin{equation}f(mathbf{x}) = max_{i=1,…,D} lvert x_i rvert 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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Schwefel221 benchmark.
Parameters: -
Name
= ['Schwefel221', 'schwefel221']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Schwefel221 benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Schwefel222
(Lower=-100.0, Upper=100.0, **kwargs)[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} \lvert x_i \rvert +\prod_{i=1}^{D} \lvert x_i \rvert\)
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} lvert x_i rvert +prod_{i=1}^{D} lvert x_i rvert$
- Equation:
- begin{equation}f(mathbf{x}) = sum_{i=1}^{D} lvert x_i rvert + prod_{i=1}^{D} lvert x_i rvert 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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Schwefel222 benchmark.
Parameters: -
Name
= ['Schwefel222', 'schwefel222']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Schwefel222 benchmark.
Parameters:
-
class
NiaPy.benchmarks.
ModifiedSchwefel
(Lower=-100.0, Upper=100.0, **kwargs)[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( \lvert z \rvert^{\frac{1}{2}} \right) &\quad \lvert z \rvert \leq 500 \\ \left( 500 - \mod (z, 500) \right) \sin \left( \sqrt{\lvert 500 - \mod (z, 500) \rvert} \right) - \frac{ \left( z - 500 \right)^2 }{ 10000 D } &\quad z > 500 \\ \left( \mod (\lvert z \rvert, 500) - 500 \right) \sin \left( \sqrt{\lvert \mod (\lvert z \rvert, 500) - 500 \rvert} \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( lvert z rvert^{frac{1}{2}} right) &quad lvert z rvert leq 500 \ left( 500 - mod (z, 500) right) sin left( sqrt{lvert 500 - mod (z, 500) rvert} right) - frac{ left( z - 500 right)^2 }{ 10000 D } &quad z > 500 \ left( mod (lvert z rvert, 500) - 500 right) sin left( sqrt{lvert mod (lvert z rvert, 500) - 500 rvert} 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( lvert z rvert^{frac{1}{2}} right) &quad lvert z rvert leq 500 \ left( 500 - mod (z, 500) right) sin left( sqrt{lvert 500 - mod (z, 500) rvert} right) - frac{ left( z - 500 right)^2 }{ 10000 D } &quad z > 500 \ left( mod (lvert z rvert, 500) - 500 right) sin left( sqrt{lvert mod (lvert z rvert, 500) - 500 rvert} 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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Modified Schwefel benchmark.
Parameters: -
Name
= ['ModifiedSchwefel', 'modifiedschwefel']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Modified Schwefel benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Whitley
(Lower=-10.24, Upper=10.24, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Whitley benchmark.
Parameters: -
Name
= ['Whitley', 'whitley']¶
-
class
NiaPy.benchmarks.
Alpine1
(Lower=-10.0, Upper=10.0, **kwargs)[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} \lvert x_i \sin(x_i)+0.1x_i \rvert\)
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} lvert x_i sin(x_i)+0.1x_i rvert$
- Equation:
- begin{equation} f(mathbf{x}) = sum_{i=1}^{D} lvert x_i sin(x_i)+0.1x_i rvert end{equation}
- Domain:
- $-10 leq x_i leq 10$
Variables: Name (List[str]) – Names of benchmark. See also
- 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: -
Name
= ['Alpine1', 'alpine1']¶
-
class
NiaPy.benchmarks.
Alpine2
(Lower=0.0, Upper=10.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
- 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: -
Name
= ['Alpine2', 'alpine2']¶
-
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$
Variables: Name (List[str]) – Names of the benchmark. See also
- Reference URL:
- http://bee22.com/manual/tf_images/Liang%20CEC2014.pdf
- Reference:
- 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: -
Name
= ['HappyCat', 'happyCat', 'happycat']¶
-
class
NiaPy.benchmarks.
Ridge
(Lower=-64.0, Upper=64.0, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Ridge benchmark.
Parameters: -
Name
= ['Ridge', 'ridge']¶
-
class
NiaPy.benchmarks.
ChungReynolds
(Lower=-100.0, Upper=100.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
- 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: -
Name
= ['ChungReynolds', 'chungreynolds', 'chungReynolds']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Chung Reynolds benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Csendes
(Lower=-1.0, Upper=1.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
- 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: -
Name
= ['Csendes', 'csendes']¶
-
class
NiaPy.benchmarks.
Pinter
(Lower=-10.0, Upper=10.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
- 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: -
Name
= ['Pinter', 'pinter']¶
-
class
NiaPy.benchmarks.
Qing
(Lower=-500.0, Upper=500.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Qing benchmark.
Parameters: -
Name
= ['Qing', 'qing']¶
-
class
NiaPy.benchmarks.
Quintic
(Lower=-10.0, Upper=10.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Quintic benchmark.
Parameters: -
Name
= ['Quintic', 'quintic']¶
-
class
NiaPy.benchmarks.
Salomon
(Lower=-100.0, Upper=100.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Salomon benchmark.
Parameters: -
Name
= ['Salomon', 'salomon']¶
-
class
NiaPy.benchmarks.
SchumerSteiglitz
(Lower=-100.0, Upper=100.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Schumer Steiglitz benchmark.
Parameters: -
Name
= ['SchumerSteiglitz', 'schumerSteiglitz', 'schumersteiglitz']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Schumer Steiglitz benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Step
(Lower=-100.0, Upper=100.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Step benchmark.
Parameters: -
Name
= ['Step', 'step']¶
-
class
NiaPy.benchmarks.
Step2
(Lower=-100.0, Upper=100.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Step2 benchmark.
Parameters: -
Name
= ['Step2', 'step2']¶
-
class
NiaPy.benchmarks.
Step3
(Lower=-100.0, Upper=100.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Step3 benchmark.
Parameters: -
Name
= ['Step3', 'step3']¶
-
class
NiaPy.benchmarks.
Stepint
(Lower=-5.12, Upper=5.12, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Stepint benchmark.
Parameters: -
Name
= ['Stepint', 'stepInt', 'stepint']¶
-
class
NiaPy.benchmarks.
SumSquares
(Lower=-10.0, Upper=10.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Sum Squares benchmark.
Parameters: -
Name
= ['SumSquares', 'sumSquares', 'sumsquares']¶
-
__init__
(Lower=-10.0, Upper=10.0, **kwargs)[source]¶ Initialize of Sum Squares benchmark.
Parameters:
-
class
NiaPy.benchmarks.
StyblinskiTang
(Lower=-5.0, Upper=5.0, **kwargs)[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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Styblinski Tang benchmark.
Parameters: -
Name
= ['StyblinskiTang', 'styblinskiTang', 'styblinskitang']¶
-
__init__
(Lower=-5.0, Upper=5.0, **kwargs)[source]¶ Initialize of Styblinski Tang benchmark.
Parameters:
-
class
NiaPy.benchmarks.
BentCigar
(Lower=-100.0, Upper=100.0, **kwargs)[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$
Variables: Name (List[str]) – Names of benchmark. See also
Initialize of Bent Cigar benchmark.
Parameters: -
Name
= ['BentCigar', 'bentcigar']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Bent Cigar benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Weierstrass
(Lower=-100.0, Upper=100.0, a=0.5, b=3, k_max=20, **kwargs)[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
Variables: See also
Initialize of Bent Cigar benchmark.
Parameters: -
Name
= ['Weierstrass', 'weierstrass']¶
-
__init__
(Lower=-100.0, Upper=100.0, a=0.5, b=3, k_max=20, **kwargs)[source]¶ Initialize of Bent Cigar benchmark.
Parameters:
-
a
= 0.5¶
-
b
= 3¶
-
function
()[source]¶ Return benchmark evaluation function.
Returns: Fitness function Return type: Callable[[int, Union[int, float, list, numpy.ndarray], dict], float]
-
k_max
= 20¶
-
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
\(f(\textbf{x}) = \lvert \left( \sum_{i=1}^D x_i^2 \right)^2 - \left( \sum_{i=1}^D x_i \right)^2 \rvert^{\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}) = lvert left( sum_{i=1}^D x_i^2 right)^2 - left( sum_{i=1}^D x_i right)^2 rvert^{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}) = lvert left( sum_{i=1}^D x_i^2 right)^2 - left( sum_{i=1}^D x_i right)^2 rvert^{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$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of HGBat benchmark.
Parameters: -
Name
= ['HGBat', 'hgbat']¶
-
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{\lvert 2^j x_i - round\left(2^j x_i \right) \rvert}{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{lvert 2^j x_i - roundleft(2^j x_i right) rvert}{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{lvert 2^j x_i - roundleft(2^j x_i right) rvert}{2^j} right)^frac{10}{D^{1.2}} - frac{10}{D^2} end{equation}
- Domain:
- $-100 leq x_i leq 100$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Katsuura benchmark.
Parameters: -
Name
= ['Katsuura', 'katsuura']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Katsuura benchmark.
Parameters:
-
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$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of High Conditioned Elliptic benchmark.
Parameters: -
Name
= ['Elliptic', 'elliptic']¶
-
__init__
(Lower=-100.0, Upper=100.0)[source]¶ Initialize of High Conditioned Elliptic benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Discus
(Lower=-100.0, Upper=100.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Discus benchmark.
Parameters: -
Name
= ['Discus', 'discus']¶
-
class
NiaPy.benchmarks.
Michalewichz
(Lower=0.0, Upper=3.141592653589793, m=10, **kwargs)[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$
Variables: See also
- Reference URL:
- https://www.sfu.ca/~ssurjano/michal.html
Initialize of Michalewichz benchmark.
Parameters: -
Name
= ['Michalewichz', 'michalewicz']¶
-
__init__
(Lower=0.0, Upper=3.141592653589793, m=10, **kwargs)[source]¶ Initialize of Michalewichz benchmark.
Parameters:
-
function
()[source]¶ Return benchmark evaluation function.
Returns: Fitness function Return type: Callable[[int, Union[int, float, list, numpy.ndarray], Dict[str, Any]], float]
-
static
latex_code
()[source]¶ Return the latex code of the problem.
Returns: Latex code Return type: str
-
m
= 10¶
-
class
NiaPy.benchmarks.
Levy
(Lower=0.0, Upper=3.141592653589793, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
- Reference:
- https://www.sfu.ca/~ssurjano/levy.html
Initialize of Levy benchmark.
Parameters: -
Name
= ['Levy', 'levy']¶
-
__init__
(Lower=0.0, Upper=3.141592653589793, **kwargs)[source]¶ Initialize of Levy benchmark.
Parameters:
-
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.
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Sphere benchmark.
Parameters: -
Name
= ['Sphere', 'sphere']
-
__init__
(Lower=-5.12, Upper=5.12)[source] Initialize of Sphere benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Sphere2
(Lower=-1.0, Upper=1.0, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementation of Sphere with different powers function.
- Date:
- 2018
- Authors:
- Klemen Berkovič
- License:
- MIT
- Function:
Sub of different powers function \(f(\textbf{x}) = \sum_{i = 1}^D \lvert x_i \rvert^{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 lvert x_i rvert^{i + 1}$
- Equation:
- begin{equation} f(textbf{x}) = sum_{i = 1}^D lvert x_i rvert^{i + 1} end{equation}
- Domain:
- $-1 leq x_i leq 1$
- Reference URL:
- https://www.sfu.ca/~ssurjano/sumpow.html
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Sphere2 benchmark.
Parameters: -
Name
= ['Sphere2', 'sphere2']¶
-
class
NiaPy.benchmarks.
Sphere3
(Lower=-65.536, Upper=65.536, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementation of rotated hyper-ellipsoid function.
- Date:
- 2018
- Authors:
- Klemen Berkovič
- License:
- MIT
- Function:
Sum 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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Sphere3 benchmark.
Parameters: -
Name
= ['Sphere3', 'sphere3']¶
-
__init__
(Lower=-65.536, Upper=65.536, **kwargs)[source]¶ Initialize of Sphere3 benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Trid
(D=2, **kwargs)[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
Variables: See also
Initialize of Trid benchmark.
Parameters: -
Name
= ['Trid', 'trid']¶
-
class
NiaPy.benchmarks.
Perm
(D=10.0, beta=0.5, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementations of Perm functions.
- Date:
- 2018
- Author:
- Klemen Berkovič
- License:
- MIT
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$
Variables: See also
- Reference:
- https://www.sfu.ca/~ssurjano/perm0db.html
Initialize of Bent Cigar benchmark.
Parameters: -
D
= 10.0¶
-
Name
= ['Perm', 'perm']¶
-
beta
= 0.5¶
-
class
NiaPy.benchmarks.
Zakharov
(Lower=-5.0, Upper=10.0, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Zakharov benchmark.
Parameters: -
Name
= ['Zakharov', 'zakharov']¶
-
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$
Variables: Name (List[str]) – Names of the benchmark. See also
- Reference:
- https://www.sfu.ca/~ssurjano/dixonpr.html
Initialize of Dixon Price benchmark.
Parameters: -
Name
= ['DixonPrice', 'dixonprice']¶
-
class
NiaPy.benchmarks.
Powell
(Lower=-4.0, Upper=5.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the algorithm. See also
- Reference:
- https://www.sfu.ca/~ssurjano/levy.html
Initialize of Powell benchmark.
Parameters: -
Name
= ['Powell', 'powell']¶
-
class
NiaPy.benchmarks.
CosineMixture
(Lower=-1.0, Upper=1.0, **kwargs)[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$
Variables: Name (List[str]) – Names of the benchmark. See also
NiaPy.benchmark.Benchmark
- Reference:
- http://infinity77.net/global_optimization/test_functions_nd_C.html#go_benchmark.CosineMixture
Initialize of Cosine mixture benchmark.
Parameters: -
Name
= ['CosineMixture', 'cosinemixture']¶
-
__init__
(Lower=-1.0, Upper=1.0, **kwargs)[source]¶ Initialize of Cosine mixture benchmark.
Parameters:
-
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$
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Infinity benchmark.
Parameters: -
Name
= ['Infinity', 'infinity']¶
-
class
NiaPy.benchmarks.
ExpandedSchaffer
(Lower=-100.0, Upper=100.0, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of Expanded Scaffer benchmark.
Parameters: -
Name
= ['ExpandedSchaffer', 'expandedschaffer']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of Expanded Scaffer benchmark.
Parameters:
-
class
NiaPy.benchmarks.
SchafferN2
(Lower=-100.0, Upper=100.0, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of SchafferN2 benchmark.
Parameters: -
Name
= ['SchafferN2', 'schaffer2', 'schaffern2']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of SchafferN2 benchmark.
Parameters:
-
class
NiaPy.benchmarks.
SchafferN4
(Lower=-100.0, Upper=100.0, **kwargs)[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
Variables: Name (List[str]) – Names of the benchmark. See also
Initialize of ScahfferN4 benchmark.
Parameters: -
Name
= ['SchafferN4', 'schaffer4', 'schaffern4']¶
-
__init__
(Lower=-100.0, Upper=100.0, **kwargs)[source]¶ Initialize of ScahfferN4 benchmark.
Parameters:
-
class
NiaPy.benchmarks.
Clustering
(dataset, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementation of Clustering function.
- Date:
- 2019
- Author:
- Klemen Berkovič
- License:
- MIT
- Function:
Clustering function \(f(\mathbf{O}, \mathbf{Z}) = \sum_{i=1}^N \sum_{j=1}^K w_{ij} || \mathbf{o}_i - \mathbf{z}_j ||^2\)
Input domain: Depends on dataset used.
Global minimum: Depends on dataset used.
- LaTeX formats:
- Inline:
- $f(mathbf{O}, mathbf{Z}) = sum_{i=1}^N sum_{j=1}^K w_{ij} || mathbf{o}_i - mathbf{z}_j ||^2$
- Equation:
- begin{equation} f(mathbf{O}, mathbf{Z}) = sum_{i=1}^N sum_{j=1}^K w_{ij} || mathbf{o}_i - mathbf{z}_j ||^2 end{equation}
Variables: See also
Initialize Clustering benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
Name
= ['Clustering', 'clustering']¶
-
__init__
(dataset, **kwargs)[source]¶ Initialize Clustering benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
a
= 0¶
-
dataset
= None¶
-
class
NiaPy.benchmarks.
ClusteringMin
(dataset, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.clustering.Clustering
Implementation of Clustering min function.
- Date:
- 2019
- Author:
- Klemen Berkovič
- License:
- MIT
- Function:
Clustering min function \(f(\mathbf{O}, \mathbf{Z}) = \min_{j=1}^M \left( \sum_{i=1}^N w_{ij} || \mathbf{o}_i - \mathbf{z}_j ||^2 \right)\)
Input domain: Depends on dataset used.
Global minimum: Depends on dataset used.
- LaTeX formats:
- Inline:
- $f(mathbf{O}, mathbf{Z}) = min_{j=1}^M left( sum_{i=1}^N w_{ij} || mathbf{o}_i - mathbf{z}_j ||^2 right)$
- Equation:
- begin{equation} f(mathbf{O}, mathbf{Z}) = min_{j=1}^M left( sum_{i=1}^N w_{ij} || mathbf{o}_i - mathbf{z}_j ||^2 right) end{equation}
Variables: Name (List[str]) – Names of the benchmark. See also
NiaPy.benchmark.Clustering
Initialize Clustering min benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
Name
= ['ClusteringMin', 'clusteringmin']¶
-
__init__
(dataset, **kwargs)[source]¶ Initialize Clustering min benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
class
NiaPy.benchmarks.
ClusteringMinPenalty
(dataset, **kwargs)[source]¶ Bases:
NiaPy.benchmarks.clustering.ClusteringMin
Implementation of Clustering min function with penalty.
- Date:
- 2019
- Author:
- Klemen Berkovič
- License:
- MIT
- Function:
Clustering min with penalty function \(\mathcal{f} \left(\mathbf{O}, \mathbf{Z} \right) = \mathcal{p} \left( \mathbf{Z} \right) + \sum_{i=0}^{\mathit{N}-1} \min_{\forall j \in \mathfrak{k}} \left( w_{i, j} \times || \mathbf{o}_i - \mathbf{z}_j ||^2 \right) \\ \mathcal{p} \left(\mathbf{Z} \right) = \sum_{\forall \mathbf{e} \in \mathfrak{I}} \sum_{j=0}^{\mathit{A}-1} \min \left(\frac{r}{\mathit{K}}, \max \left(0, \frac{r}{\mathit{K}} - || z_{e_0, j} - z_{e_1, j} ||^2 \right) \right)\)
Input domain: Depends on dataset used.
Global minimum: Depends on dataset used.
- LaTeX formats:
- Inline:
- $mathcal{f} left(mathbf{O}, mathbf{Z} right) = mathcal{p} left( mathbf{Z} right) + sum_{i=0}^{mathit{N}-1} min_{forall j in mathfrak{k}} left( w_{i, j} times || mathbf{o}_i - mathbf{z}_j ||^2 right) \ mathcal{p} left(mathbf{Z} right) = sum_{forall mathbf{e} in mathfrak{I}} sum_{j=0}^{mathit{A}-1} min left(frac{r}{mathit{K}}, max left(0, frac{r}{mathit{K}} - || z_{e_0, j} - z_{e_1, j} ||^2 right) right)$
- Equation:
- begin{equation} mathcal{f} left(mathbf{O}, mathbf{Z} right) = mathcal{p} left( mathbf{Z} right) + sum_{i=0}^{mathit{N}-1} min_{forall j in mathfrak{k}} left( w_{i, j} times || mathbf{o}_i - mathbf{z}_j ||^2 right) \ mathcal{p} left(mathbf{Z} right) = sum_{forall mathbf{e} in mathfrak{I}} sum_{j=0}^{mathit{A}-1} min left(frac{r}{mathit{K}}, max left(0, frac{r}{mathit{K}} - || z_{e_0, j} - z_{e_1, j} ||^2 right) right) end{equation}
Variables: Name (List[str]) – Names of the benchmark. See also
NiaPy.benchmark.ClusteringMin
Initialize Clustering min benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
Name
= ['ClusteringMinPenalty', 'clusteringminpen']¶
-
__init__
(dataset, **kwargs)[source]¶ Initialize Clustering min benchmark.
Parameters: - dataset (numpy.ndarray) – Dataset.
- kwargs (Dict[str, Any]) – Additional arguments.
-
function
()[source]¶ Return benchmark evaluation function.
Returns: Evaluation function. Return type: Callable[[int, numpy.ndarray, Dict[str, Any]], float]
-
class
NiaPy.benchmarks.
AutoCorrelation
(Lower=-inf, Upper=inf)[source]¶ Bases:
NiaPy.benchmarks.benchmark.Benchmark
Implementations of AutoCorrelation functions.
- Date:
- 2020
- Author:
- Klemen Berkovič
- License:
- MIT
- Function:
AutoCorelation Function \(f(\textbf{x}) = \sum_{i = 1}^{D - k} x_i * x_{i + k}\)
Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-\inf, \inf]\), for all \(i = 1, 2,..., D\).
Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (1, \cdots, 1)\)
- LaTeX formats:
- Inline:
- $f(textbf{x}) = sum_{i = 1}^{D - k} x_i * x_{i + k}$
- Equation:
- begin{equation} f(textbf{x}) = sum_{i = 1}^{D - k} x_i * x_{i + k} end{equation}
- Domain:
- $-inf leq x_i leq inf$
- Reference:
- TODO
Variables: Name (List[str]) – Names of benchmark. See also
Initialize of Levy benchmark.
Parameters: -
Name
= ['AutoCorrelation', 'autocorrelation']¶
-
class
NiaPy.benchmarks.
AutoCorrelationEnergy
(Lower=-inf, Upper=inf)[source]¶ Bases:
NiaPy.benchmarks.autocorelation.AutoCorrelation
Implementations of AutoCorrelation Energy functions.
- Date:
- 2020
- Author:
- Klemen Berkovič
- License:
- MIT
- Function:
AutoCorelation Energy Function \(f(\textbf{x}) = \sum_{i = 1}^{D - k} x_i * x_{i + k}\)
Input domain: The function can be defined on any input domain but it is usually evaluated on the hypercube \(x_i ∈ [-\inf, \inf]\), for all \(i = 1, 2,..., D\).
Global minimum: \(f(\textbf{x}^*) = 0\) at \(\textbf{x}^* = (1, \cdots, 1)\)
- LaTeX formats:
- Inline:
- $f(textbf{x}) = sum_{i = 1}^{D - k} x_i * x_{i + k}$
- Equation:
- begin{equation} f(textbf{x}) = sum_{i = 1}^{D - k} x_i * x_{i + k} end{equation}
- Domain:
- $-inf leq x_i leq inf$
- Reference:
- TODO
Variables: Name (List[str]) – Names of benchmark. See also
Initialize of Levy benchmark.
Parameters: -
Name
= ['AutoCorelationEnergey', 'autocorrelationenergy']¶