class_docstr: The implementation of a double parameter.
      
class_docstr_tok: ["The","implementation","of","a","double","parameter","."]
docstr: Performs mutation for the differential evolution algorithm.
  
  :param base: a member of the original population.
  :type base: double
  
  :param left: another member of the original population.
  :type left: double
  
  :param right: another member of the original population.
  :type right: double
  
  :param fluctuation: the coefficient for mutation.
  :type fluctuation: double
  
  :param min_value: the lower bound for the mutated value.
  :type min_value: double
  
  :param max_value: the upper bound for the mutated value.
  :type max_value: double
docstr_tok: ["Performs","mutation","for","the","differential","evolution","algorithm",".",":","param","base",":","a","member","of","the","original","population",".",":","type","base",":","double",":","param","left",":","another","member","of","the","original","population",".",":","type","left",":","double",":","param","right",":","another","member","of","the","original","population",".",":","type","right",":","double",":","param","fluctuation",":","the","coefficient","for","mutation",".",":","type","fluctuation",":","double",":","param","min_value",":","the","lower","bound","for","the","mutated","value",".",":","type","min_value",":","double",":","param","max_value",":","the","upper","bound","for","the","mutated","value",".",":","type","max_value",":","double"]
code: def mutate(
      self, base, left, right, fluctuation, min_value, max_value
  ):
      """Performs mutation for the differential evolution algorithm.
  
      :param base: a member of the original population.
      :type base: double
  
      :param left: another member of the original population.
      :type left: double
  
      :param right: another member of the original population.
      :type right: double
  
      :param fluctuation: the coefficient for mutation.
      :type fluctuation: double
  
      :param min_value: the lower bound for the mutated value.
      :type min_value: double
  
      :param max_value: the upper bound for the mutated value.
      :type max_value: double
      """
      mute = base + fluctuation * (left - right)
      if mute < min_value:
          mute = min_value + random.random() * (base - min_value)
      elif mute > max_value:
          mute = max_value - random.random() * (max_value - base)
  
      return min(max(mute, min_value), max_value)
  
imports: import random
  from abc import ABCMeta, abstractmethod
  import neoml.PythonWrapper
label_desc: Use image node_id 3 for calling the DoubleTraits obj's underlying member method code with example usage: obj.mutate(base, left, right, fluctuation, min_value, max_value) and returns: min