create_search_path_gifs   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 116
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 90
dl 0
loc 116
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A warn() 0 2 1
1
def warn(*args, **kwargs):
2
    pass
3
4
5
import warnings
6
7
warnings.warn = warn
8
9
import os
10
import numpy as np
11
12
13
from gradient_free_optimizers import (
14
    HillClimbingOptimizer,
15
    StochasticHillClimbingOptimizer,
16
    RepulsingHillClimbingOptimizer,
17
    SimulatedAnnealingOptimizer,
18
    DownhillSimplexOptimizer,
19
    RandomSearchOptimizer,
20
    GridSearchOptimizer,
21
    RandomRestartHillClimbingOptimizer,
22
    PowellsMethod,
23
    PatternSearch,
24
    LipschitzOptimizer,
25
    DirectAlgorithm,
26
    RandomAnnealingOptimizer,
27
    ParallelTemperingOptimizer,
28
    ParticleSwarmOptimizer,
29
    SpiralOptimization,
30
    GeneticAlgorithmOptimizer,
31
    EvolutionStrategyOptimizer,
32
    DifferentialEvolutionOptimizer,
33
    BayesianOptimizer,
34
    TreeStructuredParzenEstimators,
35
    ForestOptimizer,
36
)
37
from surfaces.test_functions.mathematical import SphereFunction, AckleyFunction
38
39
from search_path_gif import search_path_gif
40
41
here = os.path.dirname(os.path.abspath(__file__))
42
43
search_space = {
44
    "x0": np.arange(-2, 8, 0.1),
45
    "x1": np.arange(-2, 8, 0.1),
46
}
47
48
initialize_1 = {
49
    "warm_start": [{"x0": 7, "x1": 7}],
50
}
51
initialize_pop = {"vertices": 4}
52
random_state = 23
53
54
sphere_function = SphereFunction(n_dim=2)
55
ackley_function = AckleyFunction()
56
57
test_function_l = [sphere_function, ackley_function]
58
59
optimizer_l = [
60
    HillClimbingOptimizer,
61
    StochasticHillClimbingOptimizer,
62
    RepulsingHillClimbingOptimizer,
63
    SimulatedAnnealingOptimizer,
64
    DownhillSimplexOptimizer,
65
    RandomSearchOptimizer,
66
    GridSearchOptimizer,
67
    RandomRestartHillClimbingOptimizer,
68
    PowellsMethod,
69
    PatternSearch,
70
    LipschitzOptimizer,
71
    DirectAlgorithm,
72
    RandomAnnealingOptimizer,
73
    ParallelTemperingOptimizer,
74
    ParticleSwarmOptimizer,
75
    SpiralOptimization,
76
    GeneticAlgorithmOptimizer,
77
    EvolutionStrategyOptimizer,
78
    DifferentialEvolutionOptimizer,
79
    BayesianOptimizer,
80
    TreeStructuredParzenEstimators,
81
    ForestOptimizer,
82
]
83
"""
84
85
"""
86
87
for test_function_ in test_function_l:
88
    objective_function = test_function_.objective_function
89
    for optimizer in optimizer_l:
90
        if optimizer.computationally_expensive:
91
            n_iter = 50
92
        else:
93
            n_iter = 150
94
95
        if optimizer.optimizer_type == "population":
96
            initialize = initialize_pop
97
        else:
98
            initialize = initialize_1
99
100
        para_dict = {
101
            "path": os.path.join(here, "gifs"),
102
            "optimizer": optimizer,
103
            "opt_para": {},
104
            "name": optimizer._name_
105
            + "_"
106
            + test_function_._name_
107
            + "_"
108
            + ".gif",
109
            "n_iter": n_iter,
110
            "objective_function": objective_function,
111
            "search_space": search_space,
112
            "initialize": initialize,
113
            "random_state": random_state,
114
        }
115
        search_path_gif(**para_dict)
116