code: def maximise_acquisition(acq_fn, anc_data, *args, **kwargs):
      """Maximises the acquisition and returns the highest point. acq_fn is the acquisition
      function to be maximised. anc_data is a namespace which contains ancillary data.
      """
      # pylint: disable=unbalanced-tuple-unpacking
      acq_opt_method = anc_data.acq_opt_method
      if anc_data.domain.get_type() == "euclidean":
          if acq_opt_method in ["rand"]:
              acquisition = acq_fn
          else:
              # these methods cannot handle vectorised functions.
              acquisition = lambda x: acq_fn(x.reshape((1, -1)))
      elif anc_data.domain.get_type() == "cartesian_product":
          # these methods cannot handle vectorised functions.
          acquisition = lambda x: acq_fn([x])
      _, opt_pt = maximise_with_method(
          acq_opt_method,
          acquisition,
          anc_data.domain,
          anc_data.max_evals,
          *args,
          **kwargs,
      )
      return opt_pt
  
imports: from __future__ import division
  from argparse import Namespace
  from copy import copy
  import numpy
  from scipy.stats import norm
  from ..utils.general_utils import solve_lower_triangular
  from ..gp.gp_core import get_post_covar_from_raw_covar
  from ..exd.domains import EuclideanDomain
  from ..exd.exd_utils import maximise_with_method
label_desc: Use image node_id 1 for calling a global function with example usage: maximise_acquisition(acq_fn, anc_data) and returns: opt_pt