Exemplo n.º 1
0
def f_start_experiment(experiment_yaml,
                       min_scenario_index,
                       max_scenario_index,
                       concurrent,
                       log_level_print,
                       log_level_file,
                       shuffle_instances=True,
                       overwrite_existing_temporary_scenarios=False,
                       overwrite_existing_intermediate_solutions=False,
                       remove_temporary_scenarios=False,
                       remove_intermediate_solutions=False):
    util.ExperimentPathHandler.initialize()
    file_basename = os.path.basename(experiment_yaml).split(".")[0].lower()
    log_file = os.path.join(
        util.ExperimentPathHandler.LOG_DIR,
        "{}_experiment_execution.log".format(file_basename))

    initialize_logger(log_file, log_level_print, log_level_file)

    run_experiment.register_algorithm(
        modelcreator_ecg_decomposition.ModelCreatorCactusDecomposition.
        ALGORITHM_ID,
        modelcreator_ecg_decomposition.ModelCreatorCactusDecomposition)

    run_experiment.register_algorithm(
        treewidth_model.SeparationLP_OptDynVMP.ALGORITHM_ID,
        treewidth_model.SeparationLP_OptDynVMP)

    run_experiment.register_algorithm(
        randomized_rounding_triumvirate.RandomizedRoundingTriumvirate.
        ALGORITHM_ID,
        randomized_rounding_triumvirate.RandomizedRoundingTriumvirate)

    run_experiment.register_algorithm(
        vine.OfflineViNEAlgorithmCollection.ALGORITHM_ID,
        vine.OfflineViNEAlgorithmCollection)

    run_experiment.register_algorithm(
        treewidth_model.RandRoundSepLPOptDynVMPCollection.ALGORITHM_ID,
        treewidth_model.RandRoundSepLPOptDynVMPCollection)
    with open(experiment_yaml, "r") as actual_experiment_yaml:
        run_experiment.run_experiment(
            actual_experiment_yaml, min_scenario_index, max_scenario_index,
            concurrent, shuffle_instances,
            overwrite_existing_temporary_scenarios,
            overwrite_existing_intermediate_solutions,
            remove_temporary_scenarios, remove_intermediate_solutions)
Exemplo n.º 2
0
def start_experiment(experiment_yaml, min_scenario_index, max_scenario_index,
                     concurrent, log_level_print, log_level_file,
                     shuffle_instances, overwrite_existing_temporary_scenarios,
                     overwrite_existing_intermediate_solutions,
                     remove_temporary_scenarios,
                     remove_intermediate_solutions):
    """ Execute experiments according to given experiment_yaml file (absolute path).
        The contents of the experiment_yaml detail which scenario file to load which must be
        located in ALIB_EXPERIMENT_HOME/input. The min_scenario_index and max_scenario_index
        specify the range of scenario ids to consider: only scenarios of ids in
        [min_scenario_index, max_scenario_index] are considered.
        The --concurrent option can be used to solve multiple scenarios in parallel. Note
        that this does not equal the number of threads as e.g. Gurobi might use more than
        one thread (per solving process).

        The logs are stored in ALIB_EXPERIMENT_HOME.

        The environment variable ALIB_EXPERIMENT_HOME needs to be set!
    """
    click.echo('Start Experiment')
    util.ExperimentPathHandler.initialize()
    file_basename = os.path.basename(
        experiment_yaml.name).split(".")[0].lower()
    log_file = os.path.join(
        util.ExperimentPathHandler.LOG_DIR,
        "{}_experiment_execution.log".format(file_basename))

    initialize_logger(log_file, log_level_print, log_level_file)

    run_experiment.register_algorithm(
        modelcreator_ecg_decomposition.ModelCreatorCactusDecomposition.
        ALGORITHM_ID,
        modelcreator_ecg_decomposition.ModelCreatorCactusDecomposition)

    run_experiment.register_algorithm(
        randomized_rounding_triumvirate.RandomizedRoundingTriumvirate.
        ALGORITHM_ID,
        randomized_rounding_triumvirate.RandomizedRoundingTriumvirate)

    run_experiment.run_experiment(
        experiment_yaml, min_scenario_index, max_scenario_index, concurrent,
        shuffle_instances, overwrite_existing_temporary_scenarios,
        overwrite_existing_intermediate_solutions, remove_temporary_scenarios,
        remove_intermediate_solutions)