class_docstr: Class for a general acquisition optimizer.
  
  :param bounds: list of tuple with bounds of the optimizer
class_docstr_tok: ["Class","for","a","general","acquisition","optimizer",".",":","param","bounds",":","list","of","tuple","with","bounds","of","the","optimizer"]
docstr: :param x0: initial point for a local optimizer.
  :param f: function to optimize.
  :param df: gradient of the function to optimize.
  :param f_df: returns both the function to optimize and its gradient.
docstr_tok: [":","param","x0",":","initial","point","for","a","local","optimizer",".",":","param","f",":","function","to","optimize",".",":","param","df",":","gradient","of","the","function","to","optimize",".",":","param","f_df",":","returns","both","the","function","to","optimize","and","its","gradient","."]
code: def optimize(self, x0, f=None, df=None, f_df=None):
      """
      :param x0: initial point for a local optimizer.
      :param f: function to optimize.
      :param df: gradient of the function to optimize.
      :param f_df: returns both the function to optimize and its gradient.
      """
      raise NotImplementedError(
          "The optimize method is not implemented in the parent class."
      )
  
imports: import numpy
  from ..core.errors import InvalidVariableNameError
label_desc: Use image node_id 2 for calling the Optimizer obj's underlying member method code with example usage: obj.optimize(x0, f, df, f_df) without return types