@@ 21-89 (lines=69) @@ | ||
18 | n_iter = 1000 |
|
19 | ||
20 | ||
21 | def test_start_temp_0(): |
|
22 | n_initialize = 1 |
|
23 | ||
24 | start_temp_0 = 0 |
|
25 | start_temp_1 = 0.1 |
|
26 | start_temp_10 = 1 |
|
27 | start_temp_100 = 100 |
|
28 | start_temp_inf = np.inf |
|
29 | ||
30 | epsilon = 1 / np.inf |
|
31 | ||
32 | opt = SimulatedAnnealingOptimizer( |
|
33 | search_space, |
|
34 | start_temp=start_temp_0, |
|
35 | epsilon=epsilon, |
|
36 | initialize={"random": n_initialize}, |
|
37 | ) |
|
38 | opt.search(objective_function, n_iter=n_iter) |
|
39 | n_transitions_0 = opt.n_transitions |
|
40 | ||
41 | opt = SimulatedAnnealingOptimizer( |
|
42 | search_space, |
|
43 | start_temp=start_temp_1, |
|
44 | epsilon=epsilon, |
|
45 | initialize={"random": n_initialize}, |
|
46 | ) |
|
47 | opt.search(objective_function, n_iter=n_iter) |
|
48 | n_transitions_1 = opt.n_transitions |
|
49 | ||
50 | opt = SimulatedAnnealingOptimizer( |
|
51 | search_space, |
|
52 | start_temp=start_temp_10, |
|
53 | epsilon=epsilon, |
|
54 | initialize={"random": n_initialize}, |
|
55 | ) |
|
56 | opt.search(objective_function, n_iter=n_iter) |
|
57 | n_transitions_10 = opt.n_transitions |
|
58 | ||
59 | opt = SimulatedAnnealingOptimizer( |
|
60 | search_space, |
|
61 | start_temp=start_temp_100, |
|
62 | epsilon=epsilon, |
|
63 | initialize={"random": n_initialize}, |
|
64 | ) |
|
65 | opt.search(objective_function, n_iter=n_iter) |
|
66 | n_transitions_100 = opt.n_transitions |
|
67 | ||
68 | opt = SimulatedAnnealingOptimizer( |
|
69 | search_space, |
|
70 | start_temp=start_temp_inf, |
|
71 | epsilon=epsilon, |
|
72 | initialize={"random": n_initialize}, |
|
73 | ) |
|
74 | opt.search(objective_function, n_iter=n_iter) |
|
75 | n_transitions_inf = opt.n_transitions |
|
76 | ||
77 | print("\n n_transitions_0", n_transitions_0) |
|
78 | print("\n n_transitions_1", n_transitions_1) |
|
79 | print("\n n_transitions_10", n_transitions_10) |
|
80 | print("\n n_transitions_100", n_transitions_100) |
|
81 | print("\n n_transitions_inf", n_transitions_inf) |
|
82 | ||
83 | assert n_transitions_0 == start_temp_0 |
|
84 | assert ( |
|
85 | n_transitions_1 |
|
86 | == n_transitions_10 |
|
87 | == n_transitions_100 |
|
88 | == n_transitions_inf |
|
89 | == n_iter - n_initialize |
|
90 | ) |
|
91 | ||
92 | ||
@@ 93-156 (lines=64) @@ | ||
90 | ) |
|
91 | ||
92 | ||
93 | def test_start_temp_1(): |
|
94 | n_initialize = 1 |
|
95 | ||
96 | start_temp_0 = 0 |
|
97 | start_temp_1 = 0.1 |
|
98 | start_temp_10 = 1 |
|
99 | start_temp_100 = 100 |
|
100 | start_temp_inf = np.inf |
|
101 | ||
102 | epsilon = 0.03 |
|
103 | ||
104 | opt = SimulatedAnnealingOptimizer( |
|
105 | search_space, |
|
106 | start_temp=start_temp_0, |
|
107 | epsilon=epsilon, |
|
108 | initialize={"random": n_initialize}, |
|
109 | ) |
|
110 | opt.search(objective_function, n_iter=n_iter) |
|
111 | n_transitions_0 = opt.n_transitions |
|
112 | ||
113 | opt = SimulatedAnnealingOptimizer( |
|
114 | search_space, |
|
115 | start_temp=start_temp_1, |
|
116 | epsilon=epsilon, |
|
117 | initialize={"random": n_initialize}, |
|
118 | ) |
|
119 | opt.search(objective_function, n_iter=n_iter) |
|
120 | n_transitions_1 = opt.n_transitions |
|
121 | ||
122 | opt = SimulatedAnnealingOptimizer( |
|
123 | search_space, |
|
124 | start_temp=start_temp_10, |
|
125 | epsilon=epsilon, |
|
126 | initialize={"random": n_initialize}, |
|
127 | ) |
|
128 | opt.search(objective_function, n_iter=n_iter) |
|
129 | n_transitions_10 = opt.n_transitions |
|
130 | ||
131 | opt = SimulatedAnnealingOptimizer( |
|
132 | search_space, |
|
133 | start_temp=start_temp_100, |
|
134 | epsilon=epsilon, |
|
135 | initialize={"random": n_initialize}, |
|
136 | ) |
|
137 | opt.search(objective_function, n_iter=n_iter) |
|
138 | n_transitions_100 = opt.n_transitions |
|
139 | ||
140 | opt = SimulatedAnnealingOptimizer( |
|
141 | search_space, |
|
142 | start_temp=start_temp_inf, |
|
143 | epsilon=epsilon, |
|
144 | initialize={"random": n_initialize}, |
|
145 | ) |
|
146 | opt.search(objective_function, n_iter=n_iter) |
|
147 | n_transitions_inf = opt.n_transitions |
|
148 | ||
149 | print("\n n_transitions_0", n_transitions_0) |
|
150 | print("\n n_transitions_1", n_transitions_1) |
|
151 | print("\n n_transitions_10", n_transitions_10) |
|
152 | print("\n n_transitions_100", n_transitions_100) |
|
153 | print("\n n_transitions_inf", n_transitions_inf) |
|
154 | ||
155 | assert n_transitions_0 == start_temp_0 |
|
156 | assert n_transitions_1 < n_transitions_10 < n_transitions_100 < n_transitions_inf |
|
157 | ||
158 | ||
159 | def test_annealing_rate_0(): |