class_docstr: Adapter for the HEBO algorithm from https://github.com/huawei-noah/HEBO
  
  Parameters
  ----------
  :param space: Optimisation space with priors for each dimension.
  :param seed: Base seed for the random number generators. Defaults to `None`, in which case the
  randomness is not seeded.
  :param parameters: Parameters for the HEBO algorithm.
code: def __init__(
      self,
      space: Space,
      seed: int | None = None,
      parameters: Parameters | dict | None = None,
  ):
      import_optional.ensure()
  
      super().__init__(space)
      if isinstance(parameters, dict):
          parameters = self.Parameters(**parameters)
      self.parameters: HEBO.Parameters = parameters or self.Parameters()
  
      self.seed = seed
      self.random_state: RandomState | None = None
  
      if (
          self.parameters.model_name not in properly_seeded_models
          and seed is not None
      ):
          warnings.warn(
              UserWarning(
                  f"The randomness used by the chosen model '{self.parameters.model_name}' "
                  f"cannot be properly seeded. The model will still work, but the results may "
                  f"not be reproducible, and the random state will not be properly "
                  f"saved/restored during checkpointing."
              )
          )
      # NOTE: Need to seed the randomness here, since creating the model affects the global torch
      # RNG state. This way, we always get the same model for the same seed.
      if self.seed is not None:
          self.seed_rng(self.seed)
  
      self.hebo_space: DesignSpace = orion_space_to_hebo_space(
          self.space
      )
  
      with control_randomness(self):
          self.model = hebo.optimizers.hebo.HEBO(
              space=self.hebo_space,
              model_name=self.parameters.model_name,
              rand_sample=self.parameters.random_samples,
              acq_cls=self.parameters.acquisition_class,
              es=self.parameters.evolutionary_strategy,
              model_config=self.parameters.model_config,
          )
  
imports: from __future__ import annotations
  import copy
  import typing
  import warnings
  from dataclasses import dataclass
  from logging import getLogger
  from typing import Any, ClassVar, Literal
  import numpy
  import pandas
  from typing_extensions import TypedDict
  from orion.algo.base import BaseAlgorithm
  from orion.algo.space import Dimension, Fidelity, Space
  from orion.core.utils.format_trials import dict_to_trial
  from orion.core.utils.module_import import ImportOptional
  from orion.core.utils.random_state import RandomState, control_randomness
  from orion.core.worker.transformer import TransformedDimension
  from orion.core.worker.trial import Trial
label_desc: Use image node_id 1 to create a new HEBO object from inherited base classes: BaseAlgorithm with example: obj = HEBO(space, seed, parameters)