class_docstr: Abstract base class for Multi-Objective batch acquisition functions.
class_docstr_tok: ["Abstract","base","class","for","Multi-Objective","batch","acquisition","functions","."]
docstr: Takes in a `batch_shape x 1 x d` X Tensor of t-batches with `1` `d`-dim
  design point each, and returns a Tensor with shape `batch_shape'`, where
  `batch_shape'` is the broadcasted batch shape of model and input `X`.
docstr_tok: ["Takes","in","a","`","batch_shape","x","1","x","d","`","X","Tensor","of","t-batches","with","`","1","`","`","d","`","-dim","design","point","each",",","and","returns","a","Tensor","with","shape","`","batch_shape","'","`",",","where","`","batch_shape","'","`","is","the","broadcasted","batch","shape","of","model","and","input","`","X","`","."]
code: def forward(self, X: Tensor) -> Tensor:
      r"""Takes in a `batch_shape x 1 x d` X Tensor of t-batches with `1` `d`-dim
      design point each, and returns a Tensor with shape `batch_shape'`, where
      `batch_shape'` is the broadcasted batch shape of model and input `X`.
      """
      pass
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from itertools import product
  from typing import List, Optional
  import torch
  from botorch.acquisition.acquisition import AcquisitionFunction
  from botorch.acquisition.objective import PosteriorTransform
  from botorch.exceptions.errors import UnsupportedError
  from botorch.models.model import Model
  from botorch.utils.multi_objective.box_decompositions.non_dominated import NondominatedPartitioning
  from botorch.utils.transforms import t_batch_mode_transform
  from torch import Tensor
  from torch.distributions import Normal
label_desc: Use image node_id 2 for calling the MultiObjectiveAnalyticAcquisitionFunction obj's underlying member method code with example usage: obj.forward(X) without return types