text: import matplotlib.pyplot as plt
  import numpy as np
  
  from pymoo.algorithms.soo.nonconvex.ga import GA
  from pymoo.factory import get_problem
  from pymoo.core.callback import Callback
  from pymoo.optimize import minimize
  
  
  class MyCallback(Callback):
  
      def __init__(self) -> None:
          super().__init__()
          self.data["best"] = []
  
      def notify(self, algorithm):
          self.data["best"].append(algorithm.pop.get("F").min())
  
  
  problem = get_problem("sphere")
  
  algorithm = GA(pop_size=100)
  
  res = minimize(problem,
                 algorithm,
                 ('n_gen', 20),
                 seed=1,
                 callback=MyCallback(),
                 save_history=True,
                 verbose=True)
  
  val = res.algorithm.callback.data["best"]
  plt.plot(np.arange(len(val)), val)
  plt.show()
  
  