class_docstr: Multiobjective CMA-ES strategy based on the paper [Voss2010]_. It
  is used similarly as the standard CMA-ES strategy with a generate-update
  scheme.
  
  :param population: An initial population of individual.
  :param sigma: The initial step size of the complete system.
  :param mu: The number of parents to use in the evolution. When not
             provided it defaults to the length of *population*. (optional)
  :param lambda_: The number of offspring to produce at each generation.
                  (optional, defaults to 1)
  :param indicator: The indicator function to use. (optional, default to
                    :func:`~deap.tools.hypervolume`)
  
  Other parameters can be provided as described in the next table
  
  +----------------+---------------------------+----------------------------+
  | Parameter      | Default                   | Details                    |
  +================+===========================+============================+
  | ``d``          | ``1.0 + N / 2.0``         | Damping for step-size.     |
  +----------------+---------------------------+----------------------------+
  | ``ptarg``      | ``1.0 / (5 + 1.0 / 2.0)`` | Target success rate.       |
  +----------------+---------------------------+----------------------------+
  | ``cp``         | ``ptarg / (2.0 + ptarg)`` | Step size learning rate.   |
  +----------------+---------------------------+----------------------------+
  | ``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.    |
  +----------------+---------------------------+----------------------------+
  
  .. [Voss2010] Voss, Hansen, Igel, "Improved Step Size Adaptation
     for the MO-CMA-ES", 2010.
class_docstr_tok: ["Multiobjective","CMA-ES","strategy","based","on","the","paper","[","Voss2010","]","_",".","It","is","used","similarly","as","the","standard","CMA-ES","strategy","with","a","generate-update","scheme",".",":","param","population",":","An","initial","population","of","individual",".",":","param","sigma",":","The","initial","step","size","of","the","complete","system",".",":","param","mu",":","The","number","of","parents","to","use","in","the","evolution",".","When","not","provided","it","defaults","to","the","length","of","*","population","*",".","(","optional",")",":","param","lambda_",":","The","number","of","offspring","to","produce","at","each","generation",".","(","optional",",","defaults","to","1",")",":","param","indicator",":","The","indicator","function","to","use",".","(","optional",",","default","to",":","func",":","`","~deap.tools.hypervolume","`",")","Other","parameters","can","be","provided","as","described","in","the","next","table","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","Parameter","|","Default","|","Details","|","+================+===========================+============================+","|","``","d","``","|","``","1.0","+","N","\/","2.0","``","|","Damping","for","step-size",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","ptarg","``","|","``","1.0","\/","(","5","+","1.0","\/","2.0",")","``","|","Target","success","rate",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","cp","``","|","``","ptarg","\/","(","2.0","+","ptarg",")","``","|","Step","size","learning","rate",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","|","``","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",".","|","+","--","--","--","--","--","--","--","--","+","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","+","..","[","Voss2010","]","Voss",",","Hansen",",","Igel",",","``","Improved","Step","Size","Adaptation","for","the","MO-CMA-ES","''",",","2010","."]
code: def __init__(self, population, sigma, **params):
      self.parents = population
      self.dim = len(self.parents[0])
  
      # Selection
      self.mu = params.get("mu", len(self.parents))
      self.lambda_ = params.get("lambda_", 1)
  
      # Step size control
      self.d = params.get("d", 1.0 + self.dim / 2.0)
      self.ptarg = params.get("ptarg", 1.0 / (5.0 + 0.5))
      self.cp = params.get("cp", self.ptarg / (2.0 + self.ptarg))
  
      # Covariance matrix adaptation
      self.cc = params.get("cc", 2.0 / (self.dim + 2.0))
      self.ccov = params.get("ccov", 2.0 / (self.dim**2 + 6.0))
      self.pthresh = params.get("pthresh", 0.44)
  
      # Internal parameters associated to the mu parent
      self.sigmas = [sigma] * len(population)
      # Lower Cholesky matrix (Sampling matrix)
      self.A = [
          numpy.identity(self.dim) for _ in range(len(population))
      ]
      # Inverse Cholesky matrix (Used in the update of A)
      self.invCholesky = [
          numpy.identity(self.dim) for _ in range(len(population))
      ]
      self.pc = [numpy.zeros(self.dim) for _ in range(len(population))]
      self.psucc = [self.ptarg] * len(population)
  
      self.indicator = params.get("indicator", tools.hypervolume)
  
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 1 to create a new StrategyMultiObjective object from inherited base classes: object with example: obj = StrategyMultiObjective(population, sigma)