class_docstr: Asynchronous Successive Halving as described in:
  
      @article{li2018massively,
      title={Massively parallel hyperparameter tuning},
      author={Li, Liam and Jamieson, Kevin and Rostamizadeh, Afshin and Gonina, Ekaterina and Hardt, Moritz and Recht, Benjamin and Talwalkar, Ameet},
      journal={arXiv preprint arXiv:1810.05934},
      year={2018}
      }
  
  Asynchronous successive halving operates based on the multi-armed bandit
  algorithm Successive Halving (SHA) and performs principled early stopping for
  random search.
  
  Args:
      r (int): minimum resource that each configuration will be trained for.
      R (int): maximum resource.
      eta (int): elimination rate.
      s (int): minimum early-stopping rate.
      max_finished_configs (int): stop once max_finished_configs models have
          been trained to completion.
class_docstr_tok: ["Asynchronous","Successive","Halving","as","described","in",":","@","article","{","li2018massively",",","title=","{","Massively","parallel","hyperparameter","tuning","}",",","author=","{","Li",",","Liam","and","Jamieson",",","Kevin","and","Rostamizadeh",",","Afshin","and","Gonina",",","Ekaterina","and","Hardt",",","Moritz","and","Recht",",","Benjamin","and","Talwalkar",",","Ameet","}",",","journal=","{","arXiv","preprint","arXiv:1810.05934","}",",","year=","{","2018","}","}","Asynchronous","successive","halving","operates","based","on","the","multi-armed","bandit","algorithm","Successive","Halving","(","SHA",")","and","performs","principled","early","stopping","for","random","search",".","Args",":","r","(","int",")",":","minimum","resource","that","each","configuration","will","be","trained","for",".","R","(","int",")",":","maximum","resource",".","eta","(","int",")",":","elimination","rate",".","s","(","int",")",":","minimum","early-stopping","rate",".","max_finished_configs","(","int",")",":","stop","once","max_finished_configs","models","have","been","trained","to","completion","."]
code: def __init__(self, r=1, R=9, eta=3, s=0, max_finished_configs=50):
      self.eta = eta
      self.r = r
      self.R = R
      self.s = s
      self.rs = RandomSearch()
      self.number_of_rungs = (
          numpy.floor(numpy.log(R / r) / numpy.log(eta)) - s
      ).astype("int")
      self.config_counter = 1
      self.promoted_trials = set()
      self.max_finished_configs = max_finished_configs
  
file_path: sherpa/sherpa/algorithms/successive_halving.py
imports: from sherpa.algorithms import Algorithm, RandomSearch
  import numpy
  import pandas
  from sherpa.core import TrialStatus, AlgorithmState
label_desc: Use image node_id 1 to create a new SuccessiveHalving object from inherited base classes: Algorithm with example: obj = SuccessiveHalving(r, R, eta, s, max_finished_configs)