docs: def set(self, dic, val=None, force=False):
          """set can assign versatile options from
          `CMAOptions.versatile_options()` with a new value, use `init()`
          for the others.
  
          Arguments
          ---------
              `dic`
                  either a dictionary or a key. In the latter
                  case, `val` must be provided
              `val`
                  value for `key`, approximate match is sufficient
              `force`
                  force setting of non-versatile options, use with caution
  
          This method will be most probably used with the ``opts`` attribute of
          a `CMAEvolutionStrategy` instance.
  
          """
          if val is not None:  # dic is a key in this case
              dic = {dic:val}  # compose a dictionary
          for key_original, val in list(dict(dic).items()):
              key = self.corrected_key(key_original)
              if not self._lock_setting or \
                              key in CMAOptions.versatile_options():
                  self[key] = val
              else:
                  _print_warning('key ' + str(key_original) +
                        ' ignored (not recognized as versatile)',
                                 'set', 'CMAOptions')
          return self