class_docstr: .. include:: /global.rst
  
  Please refer to |sobol| for details on this algorithm.
docstr: Initializes a Sobol sequence solver.
  
  :param num_evals: number of evaluations to use
  :type num_evals: int
  :param skip: the number of initial elements of the sequence to skip, if None a random skip is generated
  :type skip: int or None
  :param kwargs: box constraints for each hyperparameter
  :type kwargs: {'name': [lb, ub], ...}
  
  The search space is rescaled to the unit hypercube before the solving process begins.
docstr_tok: ["Initializes","a","Sobol","sequence","solver",".",":","param","num_evals",":","number","of","evaluations","to","use",":","type","num_evals",":","int",":","param","skip",":","the","number","of","initial","elements","of","the","sequence","to","skip",",","if","None","a","random","skip","is","generated",":","type","skip",":","int","or","None",":","param","kwargs",":","box","constraints","for","each","hyperparameter",":","type","kwargs",":","{","'name","'",":","[","lb",",","ub","]",",","...","}","The","search","space","is","rescaled","to","the","unit","hypercube","before","the","solving","process","begins","."]
code: def __init__(self, num_evals, seed=None, skip=None, **kwargs):
      """
      Initializes a Sobol sequence solver.
  
      :param num_evals: number of evaluations to use
      :type num_evals: int
      :param skip: the number of initial elements of the sequence to skip, if None a random skip is generated
      :type skip: int or None
      :param kwargs: box constraints for each hyperparameter
      :type kwargs: {'name': [lb, ub], ...}
  
      The search space is rescaled to the unit hypercube before the solving process begins.
  
      """
  
      assert all(
          [len(v) == 2 and v[0] <= v[1] for v in kwargs.values()]
      ), "kwargs.values() are not [lb, ub] pairs"
      self._bounds = kwargs
      self._num_evals = num_evals
      self._skip = skip if skip else random.randint(200, 1000)
  
imports: import math
  import operator
  import random
  import array
  import functools
  from ..functions import static_key_order
  from .solver_registry import register_solver
  from .util import Solver, _copydoc, uniform_in_bounds
  from .None import util
label_desc: Use image node_id 1 to create a new Sobol object from inherited base classes: Solver with example: obj = Sobol(num_evals, seed, skip)