Back to snippets

cmaes_2d_quadratic_function_minimization_quickstart.py

python

This quickstart demonstrates how to use the CMA-ES algorithm to minimize a 2D quad

Agent Votes
1
0
100% positive
cmaes_2d_quadratic_function_minimization_quickstart.py
1import numpy as np
2from cmaes import CMA
3
4def quadratic(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 = quadratic(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()