-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_diff_evolution_4.py
More file actions
67 lines (54 loc) · 7.2 KB
/
Copy pathtest_diff_evolution_4.py
File metadata and controls
67 lines (54 loc) · 7.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import pytest
import numpy as np
import random
from scipy.stats import qmc
import math
def test_diff_evolution_part_4():
from diff_evolution import differential_evolution
SEED = 21
random.seed(SEED)
np.random.seed(SEED)
def rastrigin(array, A=10):
return A * 2 + (array[0] ** 2 - A * np.cos(2 * np.pi * array[0])) + (array[1] ** 2 - A * np.cos(2 * np.pi * array[1]))
def griewank(array):
term_1 = (array[0] ** 2 + array[1] ** 2) / 2
term_2 = np.cos(array[0]/ np.sqrt(2)) * np.cos(array[1]/ np.sqrt(2))
return 1 + term_1 - term_2
def rosenbrock(array):
return (1 - array[0]) ** 2 + 100 * (array[1] - array[0] ** 2) ** 2
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.0007965913468088421
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='LatinHypercube', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.0030976463647417354
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='Halton', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.0020390331159686175
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='Sobol', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.00041926842306164364
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.942063862893974e-06
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='LatinHypercube', mutation_setting='rand1', selection_setting='current'))[-1][1] == 7.703976443451666e-06
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='Halton', mutation_setting='rand1', selection_setting='current'))[-1][1] == 1.5745836474678754e-06
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='Sobol', mutation_setting='rand1', selection_setting='current'))[-1][1] == 7.500436325358351e-07
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.7769787297747826e-13
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='LatinHypercube', mutation_setting='rand1', selection_setting='current'))[-1][1] == 5.88462611972318e-12
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='Halton', mutation_setting='rand1', selection_setting='current'))[-1][1] == 1.0628165014736624e-11
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='Sobol', mutation_setting='rand1', selection_setting='current'))[-1][1] == 7.244205235679146e-13
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.0007965913468088421
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand2', selection_setting='current'))[-1][1] == 0.003549742176257003
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='best1', selection_setting='current'))[-1][1] == 1.238660013196448e-08
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand_to_p_best1', selection_setting='current'))[-1][1] == 4.1099679882772574e-08
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.942063862893974e-06
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand2', selection_setting='current'))[-1][1] == 0.0012017547047786792
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='best1', selection_setting='current'))[-1][1] == 8.881784197001252e-15
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand_to_p_best1', selection_setting='current'))[-1][1] == 6.572520305780927e-13
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.7769787297747826e-13
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand2', selection_setting='current'))[-1][1] == 5.508860034808549e-10
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='best1', selection_setting='current'))[-1][1] == 0.0
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand_to_p_best1', selection_setting='current'))[-1][1] == 0.0
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 0.0007965913468088421
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='worst'))[-1][1] == 9.08373646547208e-06
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='random_among_worst'))[-1][1] == 0.1283725015340844
assert list(differential_evolution(rosenbrock, [[-2, 2], [-2, 2]], init_setting='random', mutation_setting='rand1', selection_setting='random_selection'))[-1][1] == 0.006731723073572758
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.942063862893974e-06
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='worst'))[-1][1] == 0.0
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='random_among_worst'))[-1][1] == 8.881784197001252e-15
assert list(differential_evolution(rastrigin, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='random_selection'))[-1][1] == 3.2196574295539904e-09
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='current'))[-1][1] == 3.7769787297747826e-13
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='worst'))[-1][1] == 0.0
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='random_among_worst'))[-1][1] == 0.0
assert list(differential_evolution(griewank, [[-20, 20], [-20, 20]], init_setting='random', mutation_setting='rand1', selection_setting='random_selection'))[-1][1] == 1.4921397450962104e-13