docs: def __update(self, score, values, error):
          '''Update the best score and values if the given score is better than
          the current best score
  
          Args:
              score (float): new score to evaluate
              values (list): new value ranges to evaluate
              error (float): new fitness function return value to evaluate
  
          Returns:
              bool: True if new score is better, False otherwise
          '''
  
          if self._minimize:
              if self._best_score is None or score > self._best_score:
                  self._best_score = score
                  self._best_values = values.copy()
                  self._best_error = error
                  self._logger.log(
                      'debug',
                      'New best food source memorized: {}'.format(
                          self._best_error
                      )
                  )
                  return True
          elif not self._minimize:
              if self._best_score is None or score < self._best_score:
                  self._best_score = score
                  self._best_values = values.copy()
                  self._best_error = error
                  self._logger.log(
                      'debug',
                      'New best food source memorized: {}'.format(
                          self._best_error
                      )
                  )
                  return True
          return False