Total Complexity | 1 |
Total Lines | 22 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import numpy as np |
||
2 | from gradient_free_optimizers import RandomSearchOptimizer |
||
3 | |||
4 | |||
5 | def ackley_function(pos_new): |
||
6 | x = pos_new["x1"] |
||
7 | y = pos_new["x2"] |
||
8 | |||
9 | a1 = -20 * np.exp(-0.2 * np.sqrt(0.5 * (x * x + y * y))) |
||
10 | a2 = -np.exp(0.5 * (np.cos(2 * np.pi * x) + np.cos(2 * np.pi * y))) |
||
11 | score = a1 + a2 + 20 |
||
12 | return -score |
||
13 | |||
14 | |||
15 | search_space = { |
||
16 | "x1": np.arange(-100, 101, 0.1), |
||
17 | "x2": np.arange(-100, 101, 0.1), |
||
18 | } |
||
19 | |||
20 | opt = RandomSearchOptimizer(search_space) |
||
21 | opt.search(ackley_function, n_iter=30000) |
||
22 |