code: def get_qLogNEHVI(
      model: Model,
      objective_weights: Tensor,
      objective_thresholds: Tensor,
      outcome_constraints: Optional[Tuple[Tensor, Tensor]] = None,
      X_observed: Optional[Tensor] = None,
      X_pending: Optional[Tensor] = None,
      *,
      prune_baseline: bool = True,
      mc_samples: int = DEFAULT_EHVI_MC_SAMPLES,
      alpha: Optional[float] = None,
      marginalize_dim: Optional[int] = None,
      cache_root: bool = True,
      seed: Optional[int] = None,
  ) -> qLogNoisyExpectedHypervolumeImprovement:
      r"""Instantiates a qLogNoisyExpectedHyperVolumeImprovement acquisition function.
  
      Args:
          model: The underlying model which the acqusition function uses
              to estimate acquisition values of candidates.
          objective_weights: The objective is to maximize a weighted sum of
              the columns of f(x). These are the weights.
          outcome_constraints: A tuple of (A, b). For k outcome constraints
              and m outputs at f(x), A is (k x m) and b is (k x 1) such that
              A f(x) <= b. (Not used by single task models)
          X_observed: A tensor containing points observed for all objective
              outcomes and outcomes that appear in the outcome constraints (if
              there are any).
          X_pending: A tensor containing points whose evaluation is pending (i.e.
              that have been submitted for evaluation) present for all objective
              outcomes and outcomes that appear in the outcome constraints (if
              there are any).
          prune_baseline: If True, prune the baseline points for NEI (default: True).
          mc_samples: The number of MC samples to use (default: 512).
          alpha: The hyperparameter controlling the approximate non-dominated
              partitioning. The default value of 0.0 means an exact partitioning
              is used. As the number of objectives `m` increases, consider increasing
              this parameter in order to limit computational complexity (default: None).
          marginalize_dim: The dimension along which to marginalize over, used for fully
              Bayesian models (default: None).
          cache_root: If True, cache the root of the covariance matrix (default: True).
          seed: The random seed for generating random starting points for optimization (
              default: None).
  
      Returns:
          qLogNoisyExpectedHyperVolumeImprovement: The instantiated acquisition function.
      """
      return checked_cast(
          qLogNoisyExpectedHypervolumeImprovement,
          _get_NEHVI(
              acqf_name="qLogNEHVI",
              model=model,
              objective_weights=objective_weights,
              objective_thresholds=objective_thresholds,
              outcome_constraints=outcome_constraints,
              X_observed=X_observed,
              X_pending=X_pending,
              prune_baseline=prune_baseline,
              mc_samples=mc_samples,
              alpha=alpha,
              marginalize_dim=marginalize_dim,
              cache_root=cache_root,
              seed=seed,
          ),
      )
  
imports: from __future__ import annotations
  from typing import Callable, cast, Dict, List, Optional, Tuple, Union
  import torch
  from ax.exceptions.core import AxError
  from ax.models.torch.botorch_defaults import NO_FEASIBLE_POINTS_MESSAGE
  from ax.models.torch.utils import _get_X_pending_and_observed, get_outcome_constraint_transforms, subset_model
  from ax.models.torch_base import TorchModel
  from ax.utils.common.typeutils import checked_cast, not_none
  from botorch.acquisition import get_acquisition_function
  from botorch.acquisition.acquisition import AcquisitionFunction
  from botorch.acquisition.multi_objective.logei import qLogExpectedHypervolumeImprovement, qLogNoisyExpectedHypervolumeImprovement
  from botorch.acquisition.multi_objective.monte_carlo import qExpectedHypervolumeImprovement, qNoisyExpectedHypervolumeImprovement
  from botorch.acquisition.multi_objective.objective import WeightedMCMultiOutputObjective
  from botorch.acquisition.multi_objective.utils import get_default_partitioning_alpha
  from botorch.models.model import Model
  from botorch.optim.optimize import optimize_acqf_list
  from botorch.posteriors.gpytorch import GPyTorchPosterior
  from botorch.posteriors.posterior import Posterior
  from botorch.posteriors.posterior_list import PosteriorList
  from botorch.utils.multi_objective.hypervolume import infer_reference_point
  from botorch.utils.multi_objective.pareto import is_non_dominated
  from torch import Tensor
label_desc: Use image node_id 4 for calling a global function with example usage: get_qLogNEHVI(model, objective_weights, objective_thresholds, outcome_constraints, X_observed, X_pending) and returns: checked_cast