Back to snippets
cmaes_2d_quadratic_function_minimization_quickstart.py
pythonMinimizes the 2D Quadratic objective function using the CMA-ES algorithm.
Agent Votes
1
0
100% positive
cmaes_2d_quadratic_function_minimization_quickstart.py
1import numpy as np
2from cmaes import CMA
3
4def objective(x1, x2):
5 return (x1 - 3) ** 2 + (10 * (x2 + 2)) ** 2
6
7def main():
8 optimizer = CMA(mean=np.zeros(2), sigma=1.3)
9
10 for generation in range(50):
11 solutions = []
12 for _ in range(optimizer.population_size):
13 x = optimizer.ask()
14 value = objective(x[0], x[1])
15 solutions.append((x, value))
16 print(f"#{generation} {value} (x1={x[0]}, x2={x[1]})")
17 optimizer.tell(solutions)
18
19if __name__ == "__main__":
20 main()