19 lines
578 B
Python
19 lines
578 B
Python
import numpy as np
|
|
from cmaes import CMA
|
|
|
|
# Rosenbrock Funktion
|
|
def rosenbrock(x1, x2):
|
|
return (1 - x1) ** 2 + 10 * (x2 - x1**2) ** 2
|
|
|
|
if __name__ == "__main__":
|
|
optimizer = CMA(mean=np.zeros(2), sigma=1.3, population_size = 10)
|
|
|
|
# optimize over 50 generations
|
|
for gen in range(50):
|
|
solutions = []
|
|
for _ in range(optimizer.population_size):
|
|
x = optimizer.ask()
|
|
val = rosenbrock(x[0], x[1])
|
|
solutions.append((x, val))
|
|
print(f"#{gen} {val} (x1={x[0]}, x2 = {x[1]})")
|
|
optimizer.tell(solutions) |