class_docstr: Add constructor and call signature to match suggest()
  
  Also, detect when on_node is handling a hyperparameter, and
  delegate that to an `on_node_hyperparameter` method. This method
  must be implemented by a derived class.
class_docstr_tok: ["Add","constructor","and","call","signature","to","match","suggest","(",")","Also",",","detect","when","on_node","is","handling","a","hyperparameter",",","and","delegate","that","to","an","`","on_node_hyperparameter","`","method",".","This","method","must","be","implemented","by","a","derived","class","."]
code: def __init__(self, domain, trials, seed):
      ExprEvaluator.__init__(self, domain.s_idxs_vals)
      self.domain = domain
      self.trials = trials
      self.label_by_node = {
          n: l for l, n in list(self.domain.vh.vals_by_label().items())
      }
      self._seed = seed
      self.rng = np.random.default_rng(seed)
  
file_path: hyperopt/hyperopt/algobase.py
imports: import copy
  from collections import deque
  import numpy
  from .None import pyll
  from .base import miscs_update_idxs_vals
label_desc: Use image node_id 1 to create a new SuggestAlgo object from inherited base classes: ExprEvaluator with example: obj = SuggestAlgo(domain, trials, seed)