class_docstr: Hyperband formulates hyperparameter optimization as a pure-exploration non-stochastic
  infinite-armed bandit problem where a predefined resource like iterations, data samples,
  or features is allocated to randomly sampled configurations.`
  
  For more information on the algorithm,
  see original paper at http://jmlr.org/papers/v18/16-558.html.
  
  Li, Lisha et al. "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization"
  Journal of Machine Learning Research, 18:1-52, 2018.
  
  Parameters
  ----------
  space: `orion.algo.space.Space`
      Optimisation space with priors for each dimension.
  seed: None, int or sequence of int
      Seed for the random number generator used to sample new trials.
      Default: ``None``
  repetitions: int
      Number of executions for Hyperband. A single execution of Hyperband takes a finite budget of
      ``(log(R)/log(eta) + 1) * (log(R)/log(eta) + 1) * R``, and ``repetitions`` allows you to run
      multiple executions of Hyperband. Default is ``numpy.inf`` which means to run Hyperband
      until no new trials can be suggested.
docstr: Suggest a number of new sets of parameters.
  
  Sample new points until first rung is filled. Afterwards
  waits for all trials to be completed before promoting trials
  to the next rung.
  
  Parameters
  ----------
  num: int, optional
      Number of points to suggest. Defaults to 1.
  
  Returns
  -------
  list of `orion.core.worker.trial:Trial` or None
      A list of trials suggested by the algorithm. The algorithm may opt out if it cannot make
      a good suggestion at the moment (it may be waiting for other trials to complete), in
      which case it will return None.
docstr_tok: ["Suggest","a","number","of","new","sets","of","parameters",".","Sample","new","points","until","first","rung","is","filled",".","Afterwards","waits","for","all","trials","to","be","completed","before","promoting","trials","to","the","next","rung",".","Parameters","--","--","--","--","--","num",":","int",",","optional","Number","of","points","to","suggest",".","Defaults","to","1",".","Returns","--","--","--","-","list","of","`","orion.core.worker.trial",":","Trial","`","or","None","A","list","of","trials","suggested","by","the","algorithm",".","The","algorithm","may","opt","out","if","it","can","not","make","a","good","suggestion","at","the","moment","(","it","may","be","waiting","for","other","trials","to","complete",")",",","in","which","case","it","will","return","None","."]
code: def suggest(self, num: int) -> list[Trial]:
      """Suggest a number of new sets of parameters.
  
      Sample new points until first rung is filled. Afterwards
      waits for all trials to be completed before promoting trials
      to the next rung.
  
      Parameters
      ----------
      num: int, optional
          Number of points to suggest. Defaults to 1.
  
      Returns
      -------
      list of `orion.core.worker.trial:Trial` or None
          A list of trials suggested by the algorithm. The algorithm may opt out if it cannot make
          a good suggestion at the moment (it may be waiting for other trials to complete), in
          which case it will return None.
  
      """
      self._refresh_brackets()
  
      samples = self.promote(num)
  
      samples.extend(self.sample(max(num - len(samples), 0)))
      tabulate_status(self.brackets)
  
      if samples:
          return samples
  
      # Either all brackets are done or none are ready and algo needs to wait for some trials to
      # complete
      if len(self.trial_to_brackets) >= self.space.cardinality:
          logger.warning(
              "The number of unique trials of bottom rungs exceeds the search space "
              "cardinality %i, Hyperband algorithm exits.",
              self.space.cardinality,
          )
      else:
          logger.debug(
              f"{self.__class__.__name__} cannot suggest new samples and must wait "
              "for trials to complete."
          )
      return []
  
imports: from __future__ import annotations
  import copy
  import logging
  from collections import OrderedDict
  from typing import Any, Generic, NamedTuple, Sequence, TypeVar
  import numpy
  from tabulate import tabulate
  from orion.algo.base import BaseAlgorithm
  from orion.algo.space import Fidelity, Space
  from orion.core.utils.flatten import flatten
  from orion.core.worker.trial import Trial
label_desc: Use image node_id 11 for calling the Hyperband obj's underlying member method code with example usage: obj.suggest(num) and returns: list, samples