1 | # encoding=utf8 |
||
2 | # This is temporary fix to import module from parent folder |
||
3 | # It will be removed when package is published on PyPI |
||
4 | import sys |
||
5 | sys.path.append('../') |
||
6 | # End of fix |
||
7 | |||
8 | from NiaPy import Runner |
||
9 | from NiaPy.algorithms.basic import ( |
||
10 | GreyWolfOptimizer, |
||
11 | ParticleSwarmAlgorithm |
||
12 | ) |
||
13 | from NiaPy.benchmarks import ( |
||
14 | Benchmark, |
||
15 | Ackley, |
||
16 | Griewank, |
||
17 | Sphere, |
||
18 | HappyCat |
||
19 | ) |
||
20 | |||
21 | |||
22 | """Example demonstrating the use of NiaPy Runner.""" |
||
23 | |||
24 | View Code Duplication | class MyBenchmark(Benchmark): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
25 | def __init__(self): |
||
26 | Benchmark.__init__(self, -10, 10) |
||
27 | |||
28 | def function(self): |
||
29 | def evaluate(D, sol): |
||
30 | val = 0.0 |
||
31 | for i in range(D): val += sol[i] ** 2 |
||
32 | return val |
||
33 | return evaluate |
||
34 | |||
35 | runner = Runner( |
||
36 | D=40, |
||
37 | nFES=100, |
||
38 | nRuns=2, |
||
39 | useAlgorithms=[ |
||
40 | GreyWolfOptimizer(), |
||
41 | "FlowerPollinationAlgorithm", |
||
42 | ParticleSwarmAlgorithm(), |
||
43 | "HybridBatAlgorithm", |
||
44 | "SimulatedAnnealing", |
||
45 | "CuckooSearch"], |
||
46 | useBenchmarks=[ |
||
47 | Ackley(), |
||
48 | Griewank(), |
||
49 | Sphere(), |
||
50 | HappyCat(), |
||
51 | "rastrigin", |
||
52 | MyBenchmark() |
||
53 | ] |
||
54 | ) |
||
55 | |||
56 | runner.run(export='dataframe', verbose=True) |
||
57 |