class_docstr: The acquisition function for the multi-objective Max-value Entropy Search,
  where the batches `q > 1` are supported through the lower bound formulation.
  
  This acquisition function computes the mutual information between the observation
  at a candidate point `X` and the Pareto optimal outputs.
  
  See [Tu2022]_ for a discussion on the estimation procedure.
  
  NOTES:
  (i) The estimated acquisition value could be negative.
  
  (ii) The lower bound batch acquisition function might not be monotone in the
  sense that adding more elements to the batch does not necessarily increase the
  acquisition value. Specifically, the acquisition value can become smaller when
  more inputs are added.
class_docstr_tok: ["The","acquisition","function","for","the","multi-objective","Max-value","Entropy","Search",",","where","the","batches","`","q",">","1","`","are","supported","through","the","lower","bound","formulation",".","This","acquisition","function","computes","the","mutual","information","between","the","observation","at","a","candidate","point","`","X","`","and","the","Pareto","optimal","outputs",".","See","[","Tu2022","]","_","for","a","discussion","on","the","estimation","procedure",".","NOTES",":","(","i",")","The","estimated","acquisition","value","could","be","negative",".","(","ii",")","The","lower","bound","batch","acquisition","function","might","not","be","monotone","in","the","sense","that","adding","more","elements","to","the","batch","does","not","necessarily","increase","the","acquisition","value",".","Specifically",",","the","acquisition","value","can","become","smaller","when","more","inputs","are","added","."]
docstr: Lower bound multi-objective max-value entropy search acquisition function.
  
  Args:
      model: A fitted batch model with 'M' number of outputs.
      hypercell_bounds:  A `num_pareto_samples x 2 x J x M`-dim Tensor
          containing the hyper-rectangle bounds for integration, where `J` is
          the number of hyper-rectangles. In the unconstrained case, this gives
          the partition of the dominated space. In the constrained case, this
          gives the partition of the feasible dominated space union the
          infeasible space.
      X_pending: A `m x d`-dim Tensor of `m` design points that have been
          submitted for function evaluation, but have not yet been evaluated.
      estimation_type: A string to determine which entropy estimate is
          computed: "0", "LB", "LB2", or "MC".
      num_samples: The number of Monte Carlo samples for the Monte Carlo
          estimate.
docstr_tok: ["Lower","bound","multi-objective","max-value","entropy","search","acquisition","function",".","Args",":","model",":","A","fitted","batch","model","with","'M","'","number","of","outputs",".","hypercell_bounds",":","A","`","num_pareto_samples","x","2","x","J","x","M","`","-dim","Tensor","containing","the","hyper-rectangle","bounds","for","integration",",","where","`","J","`","is","the","number","of","hyper-rectangles",".","In","the","unconstrained","case",",","this","gives","the","partition","of","the","dominated","space",".","In","the","constrained","case",",","this","gives","the","partition","of","the","feasible","dominated","space","union","the","infeasible","space",".","X_pending",":","A","`","m","x","d","`","-dim","Tensor","of","`","m","`","design","points","that","have","been","submitted","for","function","evaluation",",","but","have","not","yet","been","evaluated",".","estimation_type",":","A","string","to","determine","which","entropy","estimate","is","computed",":","``","0","''",",","``","LB","''",",","``","LB2","''",",","or","``","MC","''",".","num_samples",":","The","number","of","Monte","Carlo","samples","for","the","Monte","Carlo","estimate","."]
code: def __init__(
      self,
      model: Model,
      hypercell_bounds: Tensor,
      X_pending: Optional[Tensor] = None,
      estimation_type: str = "LB",
      num_samples: int = 64,
      **kwargs: Any,
  ) -> None:
      r"""Lower bound multi-objective max-value entropy search acquisition function.
  
      Args:
          model: A fitted batch model with 'M' number of outputs.
          hypercell_bounds:  A `num_pareto_samples x 2 x J x M`-dim Tensor
              containing the hyper-rectangle bounds for integration, where `J` is
              the number of hyper-rectangles. In the unconstrained case, this gives
              the partition of the dominated space. In the constrained case, this
              gives the partition of the feasible dominated space union the
              infeasible space.
          X_pending: A `m x d`-dim Tensor of `m` design points that have been
              submitted for function evaluation, but have not yet been evaluated.
          estimation_type: A string to determine which entropy estimate is
              computed: "0", "LB", "LB2", or "MC".
          num_samples: The number of Monte Carlo samples for the Monte Carlo
              estimate.
      """
      super().__init__(
          model=model,
          pareto_sets=None,
          pareto_fronts=None,
          hypercell_bounds=hypercell_bounds,
          X_pending=X_pending,
          estimation_type=estimation_type,
          num_samples=num_samples,
      )
  
imports: from __future__ import annotations
  from math import pi
  from typing import Any, Callable, Optional, Tuple, Union
  import torch
  from botorch.acquisition.max_value_entropy_search import qMaxValueEntropy
  from botorch.acquisition.multi_objective.joint_entropy_search import LowerBoundMultiObjectiveEntropySearch
  from botorch.acquisition.multi_objective.monte_carlo import MultiObjectiveMCAcquisitionFunction
  from botorch.models.converter import batched_multi_output_to_single_output, model_list_to_batched
  from botorch.models.model import Model
  from botorch.models.model_list_gp_regression import ModelListGP
  from botorch.posteriors.gpytorch import GPyTorchPosterior
  from botorch.sampling.base import MCSampler
  from botorch.sampling.normal import SobolQMCNormalSampler
  from botorch.utils.transforms import concatenate_pending_points, t_batch_mode_transform
  from torch import Tensor
label_desc: Use image node_id 1 to create a new qLowerBoundMultiObjectiveMaxValueEntropySearch object from inherited base classes: LowerBoundMultiObjectiveEntropySearch with example: obj = qLowerBoundMultiObjectiveMaxValueEntropySearch(model, hypercell_bounds, X_pending, estimation_type, num_samples)