code: def search(self, max=False, **params) -> Tuple[np.ndarray, List[float]]:
          
  
          self._max = max
          if max:
              self._coeff = -1.0
          else:
              self._coeff = 1.0
  
          return self._search(**params)
docs: Search for the optimal solution
  
          This sets up the search for the optimization and calls the _search method
  
          Parameters
          ----------
          max : bool (default False)
              If true find mximum of the objective function instead of minimum
  
          **params : dict [optional]
              Parameters for single objective optimization method