class_docstr: The config selector handles the surrogate model and the acquisition function. Based on both components, the next
  configuration is selected.
  
  Parameters
  ----------
  retrain_after : int, defaults to 8
      How many configurations should be returned before the surrogate model is retrained.
  retries : int, defaults to 8
      How often to retry receiving a new configuration before giving up.
  min_trials: int, defaults to 1
      How many samples are required to train the surrogate model. If budgets are involved,
      the highest budgets are checked first. For example, if min_trials is three, but we find only
      two trials in the runhistory for the highest budget, we will use trials of a lower budget
      instead.
code: def _set_components(
      self,
      initial_design: AbstractInitialDesign,
      runhistory: RunHistory,
      runhistory_encoder: AbstractRunHistoryEncoder,
      model: AbstractModel,
      acquisition_maximizer: AbstractAcquisitionMaximizer,
      acquisition_function: AbstractAcquisitionFunction,
      random_design: AbstractRandomDesign,
      callbacks: list[Callback] = [],
  ) -> None:
      self._runhistory = runhistory
      self._runhistory_encoder = runhistory_encoder
      self._model = model
      self._acquisition_maximizer = acquisition_maximizer
      self._acquisition_function = acquisition_function
      self._random_design = random_design
      self._callbacks = callbacks
  
      self._initial_design_configs = (
          initial_design.select_configurations()
      )
      if len(self._initial_design_configs) == 0:
          raise RuntimeError(
              "SMAC needs initial configurations to work."
          )
  
imports: from __future__ import annotations
  from typing import Any, Iterator
  import copy
  import numpy
  from ConfigSpace import Configuration
  from smac.acquisition.function.abstract_acquisition_function import AbstractAcquisitionFunction
  from smac.acquisition.maximizer.abstract_acqusition_maximizer import AbstractAcquisitionMaximizer
  from smac.callback.callback import Callback
  from smac.initial_design import AbstractInitialDesign
  from smac.model.abstract_model import AbstractModel
  from smac.random_design.abstract_random_design import AbstractRandomDesign
  from smac.runhistory.encoder.abstract_encoder import AbstractRunHistoryEncoder
  from smac.runhistory.runhistory import RunHistory
  from smac.scenario import Scenario
  from smac.utils.logging import get_logger
label_desc: Use image node_id 2 for calling the ConfigSelector obj's underlying member method code with example usage: obj._set_components(initial_design, runhistory, runhistory_encoder, model, acquisition_maximizer, acquisition_function, random_design, callbacks) without return types