pyswarms.utils.functions package¶
The mod:pyswarms.utils.functions module implements various test functions for optimization.
pyswarms.utils.functions.single_obj module¶
single_obj.py: collection of singleobjective functions
All objective functions obj_func()
must accept a
(numpy.ndarray)
with shape (n_particles, dimensions)
.
Thus, each row represents a particle, and each column represents its
position on a specific dimension of the searchspace.
In this context, obj_func()
must return an array j
of size (n_particles, )
that contains all the computed fitness
for each particle.
Whenever you make changes to this file via an implementation of a new objective function, be sure to perform unittesting in order to check if all functions implemented adheres to the design pattern stated above.
Function list:  Ackley’s, ackley  Beale, beale  Booth, booth  Bukin’s No 6, bukin6  CrossinTray, crossintray  Easom, easom  Eggholder, eggholder  Goldstein, goldstein  Himmelblau’s, himmelblau  Holder Table, holdertable  Levi, levi  Matyas, matyas  Rastrigin, rastrigin  Rosenbrock, rosenbrock  Schaffer No 2, schaffer2  Sphere, sphere  Three Hump Camel, threehump

pyswarms.utils.functions.single_obj.
ackley
(x)[source]¶ Ackley’s objective function.
Has a global minimum of 0 at
f(0,0,...,0)
with a search domain of [32, 32]Parameters: x (numpy.ndarray) – set of inputs of shape (n_particles, dimensions)
Returns: computed cost of size (n_particles, )
Return type: numpy.ndarray  ValueError
 When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
beale
(x)[source]¶ Beale objective function.
Only takes two dimensions and has a global minimum of 0 at
f([3,0.5])
Its domain is bounded between[4.5, 4.5]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
booth
(x)[source]¶ Booth’s objective function.
Only takes two dimensions and has a global minimum of 0 at
f([1,3])
. Its domain is bounded between[10, 10]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
bukin6
(x)[source]¶ Bukin N. 6 Objective Function
Only takes two dimensions and has a global minimum of 0 at
f([10,1])
. Its coordinates are bounded by: x[:,0] must be within [15, 5]
 x[:,1] must be within [3, 3]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
crossintray
(x)[source]¶ Crossintray objective function.
 Only takes two dimensions and has a four equal global minimums
 of 2.06261 at
f([1.34941, 1.34941])
,f([1.34941, 1.34941])
,f([1.34941, 1.34941])
, andf([1.34941, 1.34941])
.
Its coordinates are bounded within
[10,10]
.Best visualized in the full domain and a range of
[2.0, 0.5]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
easom
(x)[source]¶ Easom objective function.
Only takes two dimensions and has a global minimum of 1 at
f([pi, pi])
. Its coordinates are bounded within[100,100]
.Best visualized in the domain of
[5, 5]
and a range of[1, 0.2]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
eggholder
(x)[source]¶ Eggholder objective function.
Only takes two dimensions and has a global minimum of 959.6407 at
f([512, 404.3219])
. Its coordinates are bounded within[512, 512]
.Best visualized in the full domain and a range of
[1000, 1000]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
goldstein
(x)[source]¶ GoldsteinPrice’s objective function.
Only takes two dimensions and has a global minimum at
f([0,1])
. Its domain is bounded between[2, 2]
Best visualized in the domain of
[1.3,1.3]
and range[1,8000]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
himmelblau
(x)[source]¶ Himmelblau’s objective function
 Only takes two dimensions and has a four equal global minimums
 of zero at
f([3.0,2.0])
,f([2.805118,3.131312])
,f([3.779310,3.283186])
, andf([3.584428,1.848126])
.
Its coordinates are bounded within
[5,5]
.Best visualized with the full domain and a range of
[0,1000]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
holdertable
(x)[source]¶ Holder Table objective function
 Only takes two dimensions and has a four equal global minimums
 of 19.2085 at
f([8.05502, 9.66459])
,f([8.05502, 9.66459])
,f([8.05502, 9.66459])
, andf([8.05502, 9.66459])
.
Its coordinates are bounded within
[10, 10]
.Best visualized with the full domain and a range of
[20, 0]
Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
levi
(x)[source]¶ Levi objective function
Only takes two dimensions and has a global minimum at
f([1,1])
. Its coordinates are bounded within[10,10]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
matyas
(x)[source]¶ Matyas objective function
Only takes two dimensions and has a global minimum at
f([0,0])
. Its coordinates are bounded within[10,10]
.Parameters: x (numpy.ndarray) – set of inputs of shape (n_particles, dimensions)
Returns: Return type: numpy.ndarray

pyswarms.utils.functions.single_obj.
rastrigin
(x)[source]¶ Rastrigin objective function.
Has a global minimum at
f(0,0,...,0)
with a search domain of[5.12, 5.12]
Parameters: x (numpy.ndarray) – set of inputs of shape (n_particles, dimensions)
Returns: computed cost of size (n_particles, )
Return type: numpy.ndarray Raises: ValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
rosenbrock
(x)[source]¶ Rosenbrock objective function.
Also known as the Rosenbrock’s valley or Rosenbrock’s banana function. Has a global minimum of
np.ones(dimensions)
wheredimensions
isx.shape[1]
. The search domain is[inf, inf]
.Parameters: x (numpy.ndarray) – set of inputs of shape (n_particles, dimensions)
Returns: computed cost of size (n_particles, )
Return type: numpy.ndarray

pyswarms.utils.functions.single_obj.
schaffer2
(x)[source]¶ Schaffer N.2 objective function
Only takes two dimensions and has a global minimum at
f([0,0])
. Its coordinates are bounded within[100,100]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain

pyswarms.utils.functions.single_obj.
sphere
(x)[source]¶ Sphere objective function.
 Has a global minimum at
0
and with a search domain of [inf, inf]
Parameters: x (numpy.ndarray) – set of inputs of shape (n_particles, dimensions)
Returns: computed cost of size (n_particles, )
Return type: numpy.ndarray  Has a global minimum at

pyswarms.utils.functions.single_obj.
threehump
(x)[source]¶ Threehump camel objective function
Only takes two dimensions and has a global minimum of 0 at
f([0, 0])
. Its coordinates are bounded within[5, 5]
.Best visualized in the full domin and a range of
[0, 2000]
.Parameters: x (numpy.ndarray) – set of inputs of shape
(n_particles, dimensions)
Returns: computed cost of size
(n_particles, )
Return type: Raises: IndexError
– When the input dimensions is greater than what the function allowsValueError
– When the input is out of bounds with respect to the function domain