class_docstr: A special data structure used in hypervolume computation.
  
  It consists of several doubly linked lists that share common nodes.
  Every node has multiple predecessors and successors, one in every list.
class_docstr_tok: ["A","special","data","structure","used","in","hypervolume","computation",".","It","consists","of","several","doubly","linked","lists","that","share","common","nodes",".","Every","node","has","multiple","predecessors","and","successors",",","one","in","every","list","."]
docstr: Initialize `m` doubly linked lists.
  
  Args:
      m: number of doubly linked lists
      dtype: the dtype
      device: the device
docstr_tok: ["Initialize","`","m","`","doubly","linked","lists",".","Args",":","m",":","number","of","doubly","linked","lists","dtype",":","the","dtype","device",":","the","device"]
code: def __init__(
      self, m: int, dtype: torch.dtype, device: torch.device
  ) -> None:
      r"""Initialize `m` doubly linked lists.
  
      Args:
          m: number of doubly linked lists
          dtype: the dtype
          device: the device
  
      """
      self.m = m
      self.sentinel = Node(m=m, dtype=dtype, device=device)
      self.sentinel.next = [self.sentinel] * m
      self.sentinel.prev = [self.sentinel] * m
  
imports: from __future__ import annotations
  import warnings
  from copy import deepcopy
  from itertools import combinations
  from typing import Callable, List, Optional, Union
  import torch
  from botorch.acquisition.cached_cholesky import CachedCholeskyMCSamplerMixin
  from botorch.acquisition.multi_objective.objective import MCMultiOutputObjective
  from botorch.acquisition.multi_objective.utils import prune_inferior_points_multi_objective
  from botorch.exceptions.errors import BotorchError, BotorchTensorDimensionError, UnsupportedError
  from botorch.exceptions.warnings import BotorchWarning
  from botorch.models.model import Model
  from botorch.sampling.base import MCSampler
  from botorch.utils.multi_objective.box_decompositions.box_decomposition_list import BoxDecompositionList
  from botorch.utils.multi_objective.box_decompositions.dominated import DominatedPartitioning
  from botorch.utils.multi_objective.box_decompositions.non_dominated import FastNondominatedPartitioning, NondominatedPartitioning
  from botorch.utils.multi_objective.box_decompositions.utils import _pad_batch_pareto_frontier
  from botorch.utils.objective import compute_feasibility_indicator
  from botorch.utils.torch import BufferDict
  from torch import Tensor
label_desc: Use image node_id 1 to create a new MultiList object  with example: obj = MultiList(m, dtype, device)