def main(budget=budget, max_runs=max_runs, current_batch=current_batch, number_of_batches=number_of_batches): """Initialize suite and observer, then benchmark solver by calling ``batch_loop(SOLVER, suite, observer, budget,...`` """ suite = Suite(suite_name, suite_instance, suite_options) observer_name = default_observers()[suite_name] # observer_name = another observer if so desired observer_options.update_gracefully(default_observer_options()) observer = Observer(observer_name, observer_options.as_string) print("Benchmarking solver '%s' with budget=%d*dimension on %s suite, %s" % (' '.join( str(SOLVER).split()[:2]), budget, suite.name, time.asctime())) if number_of_batches > 1: print('Batch usecase, make sure you run *all* %d batches.\n' % number_of_batches) t0 = time.clock() batch_loop(SOLVER, suite, observer, budget, max_runs, current_batch, number_of_batches) print(", %s (%s total elapsed time)." % (time.asctime(), ascetime(time.clock() - t0))) print('Data written to folder', observer.result_folder) print('To post-process the data call \n' ' python -m cocopp %s \n' 'from a system shell or \n' ' cocopp.main("%s") \n' 'from a python shell' % (2 * (observer.result_folder, )))
def main(budget=budget, max_runs=max_runs, current_batch=current_batch, number_of_batches=number_of_batches): """Initialize suite and observer, then benchmark solver by calling ``batch_loop(SOLVER, suite, observer, budget,...`` """ suite = Suite(suite_name, suite_instance, suite_options) observer_name = default_observers()[suite_name] # observer_name = another observer if so desired # observer_options.update_gracefully(default_observer_options()) observer = Observer(observer_name, observer_options.as_string) """ print("Benchmarking solver '%s' with budget=%d*dimension on %s suite, %s" % (' '.join(str(SOLVER).split()[:2]), budget, suite.name, time.asctime())) if number_of_batches > 1: print('Batch usecase, make sure you run *all* %d batches.\n' % number_of_batches) t0 = time.clock() """ batch_loop(SOLVER, suite, observer, budget, max_runs, current_batch, number_of_batches) """
def run(self, budget=100, current_batch=1, number_of_batches=15): # type: (int, int, int) -> None suite = Suite(self._suite_name, self._suite_instance, self._suite_options) observer_name = default_observers()[self._suite_name] observer_options = self._build_observer_options(budget) observer = Observer(observer_name, observer_options.as_string) for problem_index, problem in enumerate(tqdm(suite)): if (problem_index % number_of_batches) != current_batch - 1: continue observer.observe(problem) max_evals = budget * problem.dimension self._solver(problem, problem.lower_bounds, problem.upper_bounds, max_evals - problem.evaluations_constraints, verbose=False)