class_docstr: Sample in a low-dimensional linear embedding, to initialize ALEBO.
  
  Generates points on a linear subspace of [-1, 1]^D by generating points in
  [-b, b]^D, projecting them down with a matrix B, and then projecting them
  back up with the pseudoinverse of B. Thus points thus all lie in a linear
  subspace defined by B. Points whose up-projection falls outside of [-1, 1]^D
  are thrown out, via rejection sampling.
  
  To generate n points, we start with nsamp points in [-b, b]^D, which are
  mapped down to the embedding and back up as described above. If >=n points
  fall within [-1, 1]^D after being mapped up, then the first n are returned.
  If there are less than n points in [-1, 1]^D, then b is constricted
  (halved) and the process is repeated until there are at least n points in
  [-1, 1]^D. There exists a b small enough that all points will project to
  [-1, 1]^D, so this is guaranteed to terminate, typically after few rounds.
  
  Args:
      B: A (dxD) projection down.
      nsamp: Number of samples to use for rejection sampling.
      init_bound: b for the initial sampling space described above.
      seed: seed for UniformGenerator
code: def __init__(
      self,
      B: np.ndarray,
      nsamp: int = 10000,
      init_bound: int = 16,
      seed: Optional[int] = None,
  ) -> None:
      warn("ALEBOInitializer is deprecated.", DeprecationWarning)
      # pyre-fixme[4]: Attribute must be annotated.
      self.Q = (
          np.linalg.pinv(B) @ B
      )  # Projects down to B and then back up
      self.nsamp = nsamp
      self.init_bound = init_bound
      super().__init__(seed=seed, deduplicate=False)
  
file_path: Ax/ax/models/random/alebo_initializer.py
imports: from typing import Callable, Dict, List, Optional, Tuple
  from warnings import warn
  import numpy
  from ax.models.random.uniform import UniformGenerator
  from ax.models.types import TConfig
  from ax.utils.common.docutils import copy_doc
label_desc: Use image node_id 1 to create a new ALEBOInitializer object from inherited base classes: UniformGenerator with example: obj = ALEBOInitializer(B, nsamp, init_bound, seed)