class_docstr: A study is one assessment and task combination in the `Benchmark` targets. It will
  build and run experiments for all the algorithms for that task.
  
  Parameters
  ----------
  benchmark: A Benchmark instance
  algorithms: list
      Algorithms used for benchmark, each algorithm can be a string or dict, with same format as `Benchmark` algorithms.
  assessment: list
      `Assessment` instance
  task: list
      `Task` instance
class_docstr_tok: ["A","study","is","one","assessment","and","task","combination","in","the","`","Benchmark","`","targets",".","It","will","build","and","run","experiments","for","all","the","algorithms","for","that","task",".","Parameters","--","--","--","--","--","benchmark",":","A","Benchmark","instance","algorithms",":","list","Algorithms","used","for","benchmark",",","each","algorithm","can","be","a","string","or","dict",",","with","same","format","as","`","Benchmark","`","algorithms",".","assessment",":","list","`","Assessment","`","instance","task",":","list","`","Task","`","instance"]
docstr: Setup experiments to run of the study
docstr_tok: ["Setup","experiments","to","run","of","the","study"]
code: def setup_experiments(self):
      """Setup experiments to run of the study"""
      max_trials = self.task.max_trials
      repetitions = self.assessment.repetitions
      space = self.task.get_search_space()
  
      for repetition_index in range(repetitions):
          for algo_index, algorithm in enumerate(self.algorithms):
              # Run only 1 experiment for deterministic algorithm
              if algorithm.is_deterministic and repetition_index > 0:
                  continue
  
              experiment_name = (
                  self.benchmark.name
                  + "_"
                  + self.assess_name
                  + "_"
                  + self.task_name
                  + "_"
                  + str(repetition_index)
                  + "_"
                  + str(algo_index)
              )
  
              executor = (
                  self.assessment.get_executor(repetition_index)
                  or self.benchmark.executor
              )
              experiment = create_experiment(
                  experiment_name,
                  space=space,
                  algorithm=algorithm.experiment_algorithm,
                  max_trials=max_trials,
                  storage=self.benchmark.storage,
                  executor=executor,
              )
              self.experiments_info.append(
                  (repetition_index, experiment)
              )
  
imports: import copy
  import itertools
  import time
  from collections import defaultdict
  from tabulate import tabulate
  import orion.core
  from orion.algo.base import algo_factory
  from orion.client import create_experiment
  from orion.executor.base import executor_factory
  from orion.storage.base import BaseStorageProtocol
label_desc: Use image node_id 3 for calling the Study obj's underlying member method code with example usage: obj.setup_experiments() without return types