|
1
|
|
|
"""Implementation of benchmarks utility function.""" |
|
2
|
|
|
|
|
3
|
|
|
from . import Rastrigin, Rosenbrock, Griewank, \ |
|
4
|
|
|
Sphere, Ackley, Schwefel, Schwefel221, \ |
|
5
|
|
|
Schwefel222, Whitley, Alpine1, Alpine2, HappyCat, \ |
|
6
|
|
|
Ridge, ChungReynolds, Csendes, Pinter, Qing, Quintic, \ |
|
7
|
|
|
Salomon, SchumerSteiglitz, Step, Step2, Step3, Stepint, SumSquares, StyblinskiTang |
|
8
|
|
|
|
|
9
|
|
|
|
|
10
|
|
|
__all__ = ['Utility'] |
|
11
|
|
|
|
|
12
|
|
|
|
|
13
|
|
|
class Utility(object): |
|
14
|
|
|
|
|
15
|
|
|
def __init__(self): |
|
16
|
|
|
self.classes = { |
|
17
|
|
|
'ackley': Ackley, |
|
18
|
|
|
'alpine1': Alpine1, |
|
19
|
|
|
'alpine2': Alpine2, |
|
20
|
|
|
'chungReynolds': ChungReynolds, |
|
21
|
|
|
'csendes': Csendes, |
|
22
|
|
|
'griewank': Griewank, |
|
23
|
|
|
'happyCat': HappyCat, |
|
24
|
|
|
'pinter': Pinter, |
|
25
|
|
|
'quing': Qing, |
|
26
|
|
|
'quintic': Quintic, |
|
27
|
|
|
'rastrigin': Rastrigin, |
|
28
|
|
|
'ridge': Ridge, |
|
29
|
|
|
'rosenbrock': Rosenbrock, |
|
30
|
|
|
'salomon': Salomon, |
|
31
|
|
|
'schumerSteiglitz': SchumerSteiglitz, |
|
32
|
|
|
'schwefel': Schwefel, |
|
33
|
|
|
'schwefel221': Schwefel221, |
|
34
|
|
|
'schwefel222': Schwefel222, |
|
35
|
|
|
'sphere': Sphere, |
|
36
|
|
|
'step': Step, |
|
37
|
|
|
'step2': Step2, |
|
38
|
|
|
'step3': Step3, |
|
39
|
|
|
'stepint': Stepint, |
|
40
|
|
|
'styblinskiTang': StyblinskiTang, |
|
41
|
|
|
'sumSquares': SumSquares, |
|
42
|
|
|
'whitley': Whitley |
|
43
|
|
|
} |
|
44
|
|
|
|
|
45
|
|
|
def get_benchmark(self, benchmark): |
|
46
|
|
|
if not isinstance(benchmark, ''.__class__): |
|
47
|
|
|
return benchmark |
|
48
|
|
|
else: |
|
49
|
|
|
if benchmark in self.classes: |
|
50
|
|
|
return self.classes[benchmark]() |
|
51
|
|
|
else: |
|
52
|
|
|
raise TypeError('Passed benchmark is not defined!') |
|
53
|
|
|
|
|
54
|
|
|
@classmethod |
|
55
|
|
|
def __raiseLowerAndUpperNotDefined(cls): |
|
56
|
|
|
raise TypeError('Upper and Lower value must be defined!') |
|
57
|
|
|
|