input: 
  def optimize(fn, params):
      """Optimizes the given function by searching for the parameters that yield the highest result within a specified range.
      >>> optimize(get_result, Params(a=1, b=2, c=3))
      {'a': 1, 'b': 2, 'c': 3}
      """
  
output:     
      best_params = params
      best_result = fn(**params)
      
      for a in range(params.a - 1, params.a + 2):
          for b in range(params.b - 1, params.b + 2):
              for c in range(params.c - 1, params.c + 2):
                  current_params = {'a': a, 'b': b, 'c': c}
                  current_result = fn(**current_params)
                  if current_result > best_result:
                      best_result = current_result
                      best_params = current_params
      
      return best_params
  