class_docstr: General class for acquisition optimizers defined in domains with mix of discrete, continuous, bandit variables
  
  :param space: design space class from GPyOpt.
  :param optimizer: optimizer to use. Can be selected among:
      - 'lbfgs': L-BFGS.
      - 'DIRECT': Dividing Rectangles.
      - 'CMA': covariance matrix adaptation.
code: def __init__(self, space, optimizer="lbfgs", **kwargs):
      self.space = space
      self.optimizer_name = optimizer
      self.kwargs = kwargs
  
      ### -- save extra options than can be passed to the optimizer
      if "model" in self.kwargs:
          self.model = self.kwargs["model"]
  
      ### -- get a logic for anchor points sampler over acquisition space, with max_objective_anchor_points_logic as default
      if "type_anchor_points_logic" in self.kwargs:
          self.type_anchor_points_logic = self.kwargs[
              "type_anchor_points_logic"
          ]
      else:
          self.type_anchor_points_logic = (
              max_objective_anchor_points_logic
          )
  
      ## -- Context handler: takes
      self.context_manager = ContextManager(space)
  
file_path: GPyOpt/GPyOpt/optimization/acquisition_optimizer.py
imports: from .optimizer import OptLbfgs, OptDirect, OptCma, apply_optimizer, choose_optimizer
  from .anchor_points_generator import ObjectiveAnchorPointsGenerator, ThompsonSamplingAnchorPointsGenerator
  from ..core.task.space import Design_space
  import numpy
label_desc: Use image node_id 1 to create a new AcquisitionOptimizer object from inherited base classes: object with example: obj = AcquisitionOptimizer(space, optimizer)