Skills › Scientific Agent Skills › pymoo › single_objective_example.py
single_objective_example.py
59 lines · skills/pymoo/scripts/single_objective_example.py at 5f2bc03
1"""
2Single-objective optimization example using pymoo.
4This script demonstrates basic single-objective optimization
5using the Genetic Algorithm on the Sphere function.
6"""
8from pymoo.algorithms.soo.nonconvex.ga import GA
9from pymoo.problems import get_problem
10from pymoo.optimize import minimize
11from pymoo.operators.crossover.sbx import SBX
12from pymoo.operators.mutation.pm import PM
13from pymoo.operators.sampling.rnd import FloatRandomSampling
14from pymoo.termination import get_termination
15import numpy as np
18def run_single_objective_optimization():
19 """Run single-objective optimization example."""
21 # Define the problem - Sphere function (sum of squared distances from 0.5)
22 problem = get_problem("sphere", n_var=10)
24 # Configure the algorithm
25 algorithm = GA(
26 pop_size=40,
27 sampling=FloatRandomSampling(),
28 crossover=SBX(prob=0.9, eta=15),
29 mutation=PM(eta=20),
30 eliminate_duplicates=True
31 )
33 # Define termination criteria
34 termination = get_termination("n_gen", 50)
36 # Run optimization
37 result = minimize(
38 problem,
39 algorithm,
40 termination,
41 seed=1,
42 verbose=True
43 )
45 # Print results
46 print("\n" + "="*60)
47 print("OPTIMIZATION RESULTS")
48 print("="*60)
49 print(f"Best solution: {result.X}")
50 print(f"Best objective value: {result.F[0]:.6f}")
51 print(f"Completed generations: {result.algorithm.n_gen - 1}")
52 print(f"Number of function evaluations: {result.algorithm.evaluator.n_eval}")
53 print("="*60)
55 return result
58if __name__ == "__main__":
59 result = run_single_objective_optimization()