Skip to content

Commit 255b12d

Browse files
author
Julian Blank
committed
VERSION 0.4.1.dev
1 parent 361db83 commit 255b12d

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

pymoo/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.4.0"
1+
__version__ = "0.4.1.dev"

tests/algorithms/test_pattern_search.py

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,51 @@
66
from pymoo.model.evaluator import Evaluator
77
from pymoo.model.individual import Individual
88
from pymoo.model.population import Population
9+
from pymoo.operators.sampling.random_sampling import FloatRandomSampling
910
from pymoo.optimize import minimize
10-
from pymoo.problems.single import Rosenbrock
11+
from pymoo.problems.single import Rosenbrock, Ackley, Sphere
1112

1213

1314
class PatternSearchTest(unittest.TestCase):
1415

1516
def test_against_orginal_implementation(self):
1617

17-
problem = Rosenbrock(n_var=2)
18-
problem.xl = None
19-
problem.xu = None
20-
x0 = np.array([-1.2, 1.0])
21-
pop = run(problem, x0)[1:]
18+
for problem in [
19+
Sphere(n_var=10),
20+
Ackley(n_var=2),
21+
Rosenbrock(n_var=2),
22+
]:
2223

24+
print(problem.__class__.__name__)
2325

24-
algorithm = PatternSearch(x0=x0, explr_delta=np.array([0.6, 0.5]))
26+
x0 = FloatRandomSampling().do(problem, 1)[0].X
2527

26-
ret = minimize(problem, algorithm, verbose=True)
28+
problem.xl = None
29+
problem.xu = None
2730

28-
X, _X = pop.get("X"), ret.pop.get("X")
29-
F, _F = pop.get("F"), ret.pop.get("F")
31+
rho = 0.5
3032

31-
n = min(len(X), len(_X))
32-
X, _X, F, _F = X[:n], _X[:n], F[:n], _F[:n]
33+
pop = run(problem, x0, rho=rho)[1:]
3334

34-
np.testing.assert_allclose(X, _X)
35-
np.testing.assert_allclose(F, _F)
35+
delta = np.zeros(problem.n_var)
36+
for i in range(0, problem.n_var):
37+
if (x0[i] == 0.0):
38+
delta[i] = rho
39+
else:
40+
delta[i] = rho * abs(x0[i])
3641

42+
algorithm = PatternSearch(x0=x0, explr_delta=delta)
43+
44+
ret = minimize(problem, algorithm, verbose=True)
45+
46+
X, _X = pop.get("X"), ret.pop.get("X")
47+
F, _F = pop.get("F"), ret.pop.get("F")
48+
49+
n = min(len(X), len(_X))
50+
X, _X, F, _F = X[:n], _X[:n], F[:n], _F[:n]
51+
52+
np.testing.assert_allclose(X, _X, rtol=0, atol=1e-4)
53+
np.testing.assert_allclose(F, _F, rtol=0, atol=1e-4)
3754

3855

3956
def best_nearby(delta, point, prevbest, nvars, f, funevals):

0 commit comments

Comments
 (0)