blackboxopt.optimizers.random_search
    
        
RandomSearch            (MultiObjectiveOptimizer)
        
    Source code in blackboxopt/optimizers/random_search.py
          class RandomSearch(MultiObjectiveOptimizer):
    def __init__(
        self,
        search_space: ParameterSpace,
        objectives: List[Objective],
        max_steps: int,
        seed: int = None,
    ) -> None:
        """Randomly sample up to `max_steps` configurations from the given search space.
        Args:
            search_space: Space to search
            objectives: The objectives of the optimization.
            max_steps: Max number of evaluation specifications the optimizer generates
                before raising `OptimizationComplete`
            seed: Optional number to seed the random number generator with.
                Defaults to None.
        """
        super().__init__(search_space=search_space, objectives=objectives, seed=seed)
        self.max_steps: int = max_steps
        self.n_steps: int = 0
    def generate_evaluation_specification(self) -> EvaluationSpecification:
        """[summary]
        Raises:
            OptimizationComplete: Raised if the optimizer's `max_steps` are reached.
        Returns:
            [description]
        """
        if self.n_steps >= self.max_steps:
            raise OptimizationComplete()
        eval_spec = EvaluationSpecification(
            configuration=self.search_space.sample(),
            settings={},
            optimizer_info={"step": self.n_steps},
        )
        self.n_steps += 1
        return eval_spec
generate_evaluation_specification(self)
    [summary]
Exceptions:
| Type | Description | 
|---|---|
| OptimizationComplete | Raised if the optimizer's  | 
Returns:
| Type | Description | 
|---|---|
| EvaluationSpecification | [description] | 
Source code in blackboxopt/optimizers/random_search.py
          def generate_evaluation_specification(self) -> EvaluationSpecification:
    """[summary]
    Raises:
        OptimizationComplete: Raised if the optimizer's `max_steps` are reached.
    Returns:
        [description]
    """
    if self.n_steps >= self.max_steps:
        raise OptimizationComplete()
    eval_spec = EvaluationSpecification(
        configuration=self.search_space.sample(),
        settings={},
        optimizer_info={"step": self.n_steps},
    )
    self.n_steps += 1
    return eval_spec
report(self, evaluations)
  
      inherited
  
    Report one or more evaluated evaluation specifications.
NOTE: Not all optimizers support reporting results for evaluation specifications that were not proposed by the optimizer.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| evaluations | Union[blackboxopt.evaluation.Evaluation, Iterable[blackboxopt.evaluation.Evaluation]] | A single evaluated evaluation specifications, or an iterable of many. | required | 
Source code in blackboxopt/optimizers/random_search.py
          def report(self, evaluations: Union[Evaluation, Iterable[Evaluation]]) -> None:
    _evals = [evaluations] if isinstance(evaluations, Evaluation) else evaluations
    call_functions_with_evaluations_and_collect_errors(
        [functools.partial(validate_objectives, objectives=self.objectives)],
        _evals,
    )