class_docstr: A CMA-ES strategy that uses the :math:`1 + \lambda` paradigm ([Igel2007]_).
  
  :param parent: An iterable object that indicates where to start the
                 evolution. The parent requires a fitness attribute.
  :param sigma: The initial standard deviation of the distribution.
  :param lambda_: Number of offspring to produce from the parent.
                  (optional, defaults to 1)
  :param parameter: One or more parameter to pass to the strategy as
                    described in the following table. (optional)
  
  Other parameters can be provided as described in the next table
  
  +----------------+---------------------------+----------------------------+
  | Parameter      | Default                   | Details                    |
  +================+===========================+============================+
  | ``d``          | ``1.0 + N / (2.0 *        | Damping for step-size.     |
  |                | lambda_)``                |                            |
  +----------------+---------------------------+----------------------------+
  | ``ptarg``      | ``1.0 / (5 + sqrt(lambda_)| Target success rate.       |
  |                | / 2.0)``                  |                            |
  +----------------+---------------------------+----------------------------+
  | ``cp``         | ``ptarg * lambda_ / (2.0 +| Step size learning rate.   |
  |                | ptarg * lambda_)``        |                            |
  +----------------+---------------------------+----------------------------+
  | ``cc``         | ``2.0 / (N + 2.0)``       | Cumulation time horizon.   |
  +----------------+---------------------------+----------------------------+
  | ``ccov``       | ``2.0 / (N**2 + 6.0)``    | Covariance matrix learning |
  |                |                           | rate.                      |
  +----------------+---------------------------+----------------------------+
  | ``pthresh``    | ``0.44``                  | Threshold success rate.    |
  +----------------+---------------------------+----------------------------+
  
  .. [Igel2007] Igel, Hansen, Roth, 2007. Covariance matrix adaptation for
     multi-objective optimization. *Evolutionary Computation* Spring;15(1):1-28
class_docstr_tok: ["A","CMA-ES","strategy","that","uses","the",":","math",":","`","1","+","\\lambda","`","paradigm","(","[","Igel2007","]","_",")",".",":","param","parent",":","An","iterable","object","that","indicates","where","to","start","the","evolution",".","The","parent","requires","a","fitness","attribute",".",":","param","sigma",":","The","initial","standard","deviation","of","the","distribution",".",":","param","lambda_",":","Number","of","offspring","to","produce","from","the","parent",".","(","optional",",","defaults","to","1",")",":","param","parameter",":","One","or","more","parameter","to","pass","to","the","strategy","as","described","in","the","following","table",".","(","optional",")","Other","parameters","can","be","provided","as","described","in","the","next","table","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","Parameter","|","Default","|","Details","|","+================+===========================+============================+","|","``","d","``","|","``","1.0","+","N","\/","(","2.0","*","|","Damping","for","step-size",".","|","|","|","lambda_",")","``","|","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","ptarg","``","|","``","1.0","\/","(","5","+","sqrt","(","lambda_",")","|","Target","success","rate",".","|","|","|","\/","2.0",")","``","|","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","cp","``","|","``","ptarg","*","lambda_","\/","(","2.0","+|","Step","size","learning","rate",".","|","|","|","ptarg","*","lambda_",")","``","|","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","cc","``","|","``","2.0","\/","(","N","+","2.0",")","``","|","Cumulation","time","horizon",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","ccov","``","|","``","2.0","\/","(","N","*","*","2","+","6.0",")","``","|","Covariance","matrix","learning","|","|","|","|","rate",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","pthresh","``","|","``","0.44","``","|","Threshold","success","rate",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","..","[","Igel2007","]","Igel",",","Hansen",",","Roth",",","2007",".","Covariance","matrix","adaptation","for","multi-objective","optimization",".","*","Evolutionary","Computation","*","Spring",";","15","(","1",")",":1-28"]
docstr: Update the current covariance matrix strategy from the
  *population*.
  
  :param population: A list of individuals from which to update the
                     parameters.
docstr_tok: ["Update","the","current","covariance","matrix","strategy","from","the","*","population","*",".",":","param","population",":","A","list","of","individuals","from","which","to","update","the","parameters","."]
code: def update(self, population):
      """Update the current covariance matrix strategy from the
      *population*.
  
      :param population: A list of individuals from which to update the
                         parameters.
      """
      population.sort(key=lambda ind: ind.fitness, reverse=True)
      lambda_succ = sum(
          self.parent.fitness <= ind.fitness for ind in population
      )
      p_succ = float(lambda_succ) / self.lambda_
      self.psucc = (1 - self.cp) * self.psucc + self.cp * p_succ
  
      if self.parent.fitness <= population[0].fitness:
          x_step = (
              population[0] - numpy.array(self.parent)
          ) / self.sigma
          self.parent = copy.deepcopy(population[0])
          if self.psucc < self.pthresh:
              self.pc = (1 - self.cc) * self.pc + sqrt(
                  self.cc * (2 - self.cc)
              ) * x_step
              self.C = (
                  1 - self.ccov
              ) * self.C + self.ccov * numpy.outer(self.pc, self.pc)
          else:
              self.pc = (1 - self.cc) * self.pc
              self.C = (1 - self.ccov) * self.C + self.ccov * (
                  numpy.outer(self.pc, self.pc)
                  + self.cc * (2 - self.cc) * self.C
              )
  
      self.sigma = self.sigma * exp(
          1.0 / self.d * (self.psucc - self.ptarg) / (1.0 - self.ptarg)
      )
  
      # We use Cholesky since for now we have no use of eigen decomposition
      # Basically, Cholesky returns a matrix A as C = A*A.T
      # Eigen decomposition returns two matrix B and D^2 as C = B*D^2*B.T = B*D*D*B.T
      # So A == B*D
      # To compute the new individual we need to multiply each vector z by A
      # as y = centroid + sigma * A*z
      # So the Cholesky is more straightforward as we don't need to compute
      # the squareroot of D^2, and multiply B and D in order to get A, we directly get A.
      # This can't be done (without cost) with the standard CMA-ES as the eigen decomposition is used
      # to compute covariance matrix inverse in the step-size evolutionary path computation.
      self.A = numpy.linalg.cholesky(self.C)
  
imports: import copy
  from math import sqrt, log, exp
  from itertools import cycle
  import warnings
  import numpy
  from .None import tools
label_desc: Use image node_id 4 for calling the StrategyOnePlusLambda obj's underlying member method code with example usage: obj.update(population) without return types