Esempio n. 1
0
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, )))
Esempio n. 2
0
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)
    """
Esempio n. 3
0
    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)