class_docstr: Blackbox Optimiser Class. 
class_docstr_tok: ["Blackbox","Optimiser","Class","."]
docstr: Get recommended point as part of the ask interface.
  Wrapper for _determine_next_query.
docstr_tok: ["Get","recommended","point","as","part","of","the","ask","interface",".","Wrapper","for","_determine_next_query","."]
code: def ask(self, n_points=None):
      """Get recommended point as part of the ask interface.
      Wrapper for _determine_next_query.
      """
      if n_points:
          points = []
          while self.first_qinfos and n_points > 0:
              qinfo = self.first_qinfos.pop(0)
              if self.is_an_mf_method():
                  if self.domain.get_type() == "euclidean":
                      points.append(
                          self.func_caller.get_raw_fidel_domain_coords(
                              qinfo.fidel, qinfo.point
                          )
                      )
                  else:
                      points.append(
                          (
                              self.func_caller.get_raw_fidel_from_processed(
                                  qinfo.fidel
                              ),
                              self.func_caller.get_raw_domain_point_from_processed(
                                  qinfo.point
                              ),
                          )
                      )
              else:
                  if self.domain.get_type() == "euclidean":
                      points.append(
                          self.func_caller.get_raw_domain_coords(
                              qinfo.point
                          )
                      )
                  else:
                      points.append(
                          self.func_caller.get_raw_domain_point_from_processed(
                              qinfo.point
                          )
                      )
              n_points -= 1
          new_points = []
          while n_points > 0:
              new_points.append(self._determine_next_query())
          if self.is_an_mf_method():
              if self.domain.get_type() == "euclidean":
                  return points + [
                      self.func_caller.get_raw_fidel_domain_coords(
                          x.fidel, x.point
                      )
                      for x in new_points
                  ]
              else:
                  return points + [
                      (
                          self.func_caller.get_raw_fidel_from_processed(
                              x.fidel
                          ),
                          self.func_caller.get_raw_domain_point_from_processed(
                              x.point
                          ),
                      )
                      for x in new_points
                  ]
          else:
              if self.domain.get_type() == "euclidean":
                  return points + [
                      self.func_caller.get_raw_domain_coords(x.point)
                      for x in new_points
                  ]
              else:
                  return points + [
                      self.func_caller.get_raw_domain_point_from_processed(
                          x.point
                      )
                      for x in new_points
                  ]
      else:
          if self.first_qinfos:
              qinfo = self.first_qinfos.pop(0)
              if self.is_an_mf_method():
                  if self.domain.get_type() == "euclidean":
                      return (
                          self.func_caller.get_raw_fidel_domain_coords(
                              qinfo.fidel, qinfo.point
                          )
                      )
                  else:
                      return self.func_caller.get_raw_fidel_from_processed(
                          qinfo.fidel
                      ), self.func_caller.get_raw_domain_point_from_processed(
                          qinfo.point
                      )
              else:
                  if self.domain.get_type() == "euclidean":
                      return self.func_caller.get_raw_domain_coords(
                          qinfo.point
                      )
                  else:
                      return self.func_caller.get_raw_domain_point_from_processed(
                          qinfo.point
                      )
          else:
              qinfo = self._determine_next_query()
              if self.is_an_mf_method():
                  if self.domain.get_type() == "euclidean":
                      return (
                          self.func_caller.get_raw_fidel_domain_coords(
                              qinfo.fidel, qinfo.point
                          )
                      )
                  else:
                      return self.func_caller.get_raw_fidel_from_processed(
                          qinfo.fidel
                      ), self.func_caller.get_raw_domain_point_from_processed(
                          qinfo.point
                      )
              else:
                  if self.domain.get_type() == "euclidean":
                      return self.func_caller.get_raw_domain_coords(
                          qinfo.point
                      )
                  else:
                      return self.func_caller.get_raw_domain_point_from_processed(
                          qinfo.point
                      )
  
imports: from __future__ import division
  from argparse import Namespace
  import numpy
  from ..exd.exd_core import ExperimentDesigner, exd_core_args
  from ..utils.option_handler import load_options
label_desc: Use image node_id 20 for calling the BlackboxOptimiser obj's underlying member method code with example usage: obj.ask(n_points) and returns: unknown, unknown, unknown, unknown, self, self,  self, self, self, self, self,  self, self, self