@@ 255-272 (lines=18) @@ | ||
252 | """ |
|
253 | return r"""Storn, Rainer, and Kenneth Price. "Differential evolution - a simple and efficient heuristic for global optimization over continuous spaces." Journal of global optimization 11.4 (1997): 341-359.""" |
|
254 | ||
255 | @staticmethod |
|
256 | def typeParameters(): |
|
257 | r"""Get dictionary with functions for checking values of parameters. |
|
258 | ||
259 | Returns: |
|
260 | Dict[str, Callable]: |
|
261 | * F (Callable[[Union[float, int]], bool]): Check for correct value of parameter. |
|
262 | * CR (Callable[[float], bool]): Check for correct value of parameter. |
|
263 | ||
264 | See Also: |
|
265 | * :func:`NiaPy.algorithms.Algorithm.typeParameters` |
|
266 | """ |
|
267 | d = Algorithm.typeParameters() |
|
268 | d.update({ |
|
269 | 'F': lambda x: isinstance(x, (float, int)) and 0 < x <= 2, |
|
270 | 'CR': lambda x: isinstance(x, float) and 0 <= x <= 1 |
|
271 | }) |
|
272 | return d |
|
273 | ||
274 | def setParameters(self, NP=50, F=1, CR=0.8, CrossMutt=CrossRand1, **ukwargs): |
|
275 | r"""Set the algorithm parameters. |
@@ 52-69 (lines=18) @@ | ||
49 | """ |
|
50 | return r"""Esmat Rashedi, Hossein Nezamabadi-pour, Saeid Saryazdi, GSA: A Gravitational Search Algorithm, Information Sciences, Volume 179, Issue 13, 2009, Pages 2232-2248, ISSN 0020-0255""" |
|
51 | ||
52 | @staticmethod |
|
53 | def typeParameters(): |
|
54 | r"""TODO. |
|
55 | ||
56 | Returns: |
|
57 | Dict[str, Callable]: |
|
58 | * G_0 (Callable[[Union[int, float]], bool]): TODO |
|
59 | * epsilon (Callable[[float], bool]): TODO |
|
60 | ||
61 | See Also: |
|
62 | * :func:`NiaPy.algorithms.algorithm.Algorithm.typeParameters` |
|
63 | """ |
|
64 | d = Algorithm.typeParameters() |
|
65 | d.update({ |
|
66 | 'G_0': lambda x: isinstance(x, (int, float)) and x >= 0, |
|
67 | 'epsilon': lambda x: isinstance(x, float) and 0 < x < 1 |
|
68 | }) |
|
69 | return d |
|
70 | ||
71 | def setParameters(self, NP=40, G_0=2.467, epsilon=1e-17, **ukwargs): |
|
72 | r"""Set the algorithm parameters. |
@@ 60-76 (lines=17) @@ | ||
57 | Main reference: Wang, Gai-Ge & Deb, Suash & Cui, Zhihua. (2015). Monarch Butterfly Optimization. Neural Computing and Applications. 10.1007/s00521-015-1923-y. , https://www.researchgate.net/publication/275964443_Monarch_Butterfly_Optimization. |
|
58 | """ |
|
59 | ||
60 | @staticmethod |
|
61 | def typeParameters(): |
|
62 | r"""Get dictionary with functions for checking values of parameters. |
|
63 | ||
64 | Returns: |
|
65 | Dict[str, Callable]: |
|
66 | * PAR (Callable[[float], bool]): Checks if partition parameter has a proper value. |
|
67 | * PER (Callable[[float], bool]): Checks if period parameter has a proper value. |
|
68 | See Also: |
|
69 | * :func:`NiaPy.algorithms.algorithm.Algorithm.typeParameters` |
|
70 | """ |
|
71 | d = Algorithm.typeParameters() |
|
72 | d.update({ |
|
73 | 'PAR': lambda x: isinstance(x, float) and x > 0, |
|
74 | 'PER': lambda x: isinstance(x, float) and x > 0 |
|
75 | }) |
|
76 | return d |
|
77 | ||
78 | def setParameters(self, NP=20, PAR=5.0 / 12.0, PER=1.2, **ukwargs): |
|
79 | r"""Set the parameters of the algorithm. |
@@ 55-74 (lines=20) @@ | ||
52 | """ |
|
53 | return r"""Fister, I., Fister Jr, I., Yang, X. S., & Brest, J. (2013). A comprehensive review of firefly algorithms. Swarm and Evolutionary Computation, 13, 34-46.""" |
|
54 | ||
55 | @staticmethod |
|
56 | def typeParameters(): |
|
57 | r"""TODO. |
|
58 | ||
59 | Returns: |
|
60 | Dict[str, Callable]: |
|
61 | * alpha (Callable[[Union[float, int]], bool]): TODO. |
|
62 | * betamin (Callable[[Union[float, int]], bool]): TODO. |
|
63 | * gamma (Callable[[Union[float, int]], bool]): TODO. |
|
64 | ||
65 | See Also: |
|
66 | * :func:`NiaPy.algorithms.Algorithm.typeParameters` |
|
67 | """ |
|
68 | d = Algorithm.typeParameters() |
|
69 | d.update({ |
|
70 | 'alpha': lambda x: isinstance(x, (float, int)) and x > 0, |
|
71 | 'betamin': lambda x: isinstance(x, (float, int)) and x > 0, |
|
72 | 'gamma': lambda x: isinstance(x, (float, int)) and x > 0, |
|
73 | }) |
|
74 | return d |
|
75 | ||
76 | def setParameters(self, NP=20, alpha=1, betamin=1, gamma=2, **ukwargs): |
|
77 | r"""Set the parameters of the algorithm. |
@@ 58-75 (lines=18) @@ | ||
55 | """ |
|
56 | return r"""Yang, Xin-She. "Flower pollination algorithm for global optimization. International conference on unconventional computing and natural computation. Springer, Berlin, Heidelberg, 2012.""" |
|
57 | ||
58 | @staticmethod |
|
59 | def typeParameters(): |
|
60 | r"""TODO. |
|
61 | ||
62 | Returns: |
|
63 | Dict[str, Callable]: |
|
64 | * p (function): TODO |
|
65 | * beta (function): TODO |
|
66 | ||
67 | See Also: |
|
68 | * :func:`NiaPy.algorithms.Algorithm.typeParameters` |
|
69 | """ |
|
70 | d = Algorithm.typeParameters() |
|
71 | d.update({ |
|
72 | 'p': lambda x: isinstance(x, float) and 0 <= x <= 1, |
|
73 | 'beta': lambda x: isinstance(x, (float, int)) and x > 0, |
|
74 | }) |
|
75 | return d |
|
76 | ||
77 | def setParameters(self, NP=25, p=0.35, beta=1.5, **ukwargs): |
|
78 | r"""Set core parameters of FlowerPollinationAlgorithm algorithm. |