class_docstr: Has the same attributes/properties as a `SingleObjectiveBenchmarkProblem`,
  but allows for constructing from a surrogate.
class_docstr_tok: ["Has","the","same","attributes\/properties","as","a","`","SingleObjectiveBenchmarkProblem","`",",","but","allows","for","constructing","from","a","surrogate","."]
code: def __init__(
      self,
      *,
      name: str,
      search_space: SearchSpace,
      optimization_config: OptimizationConfig,
      num_trials: int,
      infer_noise: bool,
      optimal_value: float,
      metric_names: List[str],
      get_surrogate_and_datasets: Optional[
          Callable[[], Tuple[Surrogate, List[SupervisedDataset]]]
      ] = None,
      tracking_metrics: Optional[List[Metric]] = None,
      _runner: Optional[Runner] = None,
  ) -> None:
      super().__init__(
          name=name,
          search_space=search_space,
          optimization_config=optimization_config,
          num_trials=num_trials,
          infer_noise=infer_noise,
          metric_names=metric_names,
          get_surrogate_and_datasets=get_surrogate_and_datasets,
          tracking_metrics=tracking_metrics,
          _runner=_runner,
      )
      self.optimization_config = optimization_config
      self.optimal_value = optimal_value
  
imports: from typing import Any, Callable, Dict, Iterable, List, Optional, Set, Tuple
  import pandas
  import torch
  from ax.benchmark.benchmark_problem import BenchmarkProblemBase
  from ax.core.base_trial import BaseTrial, TrialStatus
  from ax.core.data import Data
  from ax.core.metric import Metric, MetricFetchE, MetricFetchResult
  from ax.core.observation import ObservationFeatures
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.parameter import RangeParameter
  from ax.core.runner import Runner
  from ax.core.search_space import SearchSpace
  from ax.core.types import TParameterization
  from ax.modelbridge.transforms.int_to_float import IntToFloat
  from ax.modelbridge.transforms.log import Log
  from ax.models.torch.botorch_modular.surrogate import Surrogate
  from ax.utils.common.base import Base
  from ax.utils.common.equality import equality_typechecker
  from ax.utils.common.result import Err, Ok
  from ax.utils.common.serialization import TClassDecoderRegistry, TDecoderRegistry
  from ax.utils.common.typeutils import not_none
  from botorch.utils.datasets import SupervisedDataset
label_desc: Use image node_id 1 to create a new SOOSurrogateBenchmarkProblem object from inherited base classes: SurrogateBenchmarkProblemBase with example: obj = SOOSurrogateBenchmarkProblem()