def testing():
    """
    A test function for running the experiment manager. Calls all functions.

    :return: Nothing.
    """

    # Quick scrip to run multiple consecutive experiments
    for x in range(10):
        path_1 = path.join(getcwd(), "..", "parameters/progsys.txt")
        new_string = ""
        with open(path_1, 'r') as readf:
            for line in readf:
                if "NOVELTY_FACTOR" in line:
                    line = "NOVELTY_FACTOR:         " + str(x) + "\n"
                elif "EXPERIMENT_NAME" in line:
                    line = "EXPERIMENT_NAME:        NoveltySearchLevi" + str(x) + "\n"
                new_string += line

        with open(path_1, "w") as writef:
            writef.write(new_string)

        # Setup run parameters.
        set_params(sys.argv[1:], create_files=False)

        # Check the correct parameters are set for this set of runs.
        check_params()

        # Execute multiple runs.
        execute_runs()

        # Save spreadsheets and all plots for all runs in the 'EXPERIMENT_NAME'
        # folder.
        parse_stats_from_runs(params['EXPERIMENT_NAME'])
Esempio n. 2
0
def main():
    """
    The main function for running the experiment manager. Calls all functions.

    :return: Nothing.
    """

    # Setup run parameters.
    set_params(sys.argv[1:], create_files=False)

    # Check the correct parameters are set for this set of runs.
    check_params()

    # Execute multiple runs.
    execute_runs()

    # Save spreadsheets and all plots for all runs in the 'EXPERIMENT_NAME'
    # folder.
    parse_stats_from_runs(params['EXPERIMENT_NAME'])
Esempio n. 3
0
def main():
    """
    The main function for running the experiment manager. Calls all functions.

    :return: Nothing.
    """

    # Setup run parameters.
    set_params(sys.argv[1:], create_files=False)

    # Check the correct parameters are set for this set of runs.
    check_params()

    # Execute multiple runs.
    execute_runs()

    # Save spreadsheets and all plots for all runs in the 'EXPERIMENT_NAME'
    # folder.
    parse_stats_from_runs(params['EXPERIMENT_NAME'])
Esempio n. 4
0
import sys


def mane():
    """ Run program """

    # Set Fitness Funtion
    params['FITNESS_FUNCTION'] = set_fitness_function(params['PROBLEM'],
                                                      params['ALTERNATE'])
    # Set Grammar File
    params['BNF_GRAMMAR'] = grammar.Grammar(params['GRAMMAR_FILE'])

    # Run evolution
    individuals = search_loop.search_loop_wheel()

    # Print final review
    get_stats(individuals, end=True)

    # Returns only needed if running experiment manager
    return params['TIME_STAMP'], stats['best_ever'].fitness


if __name__ == "__main__":
    set_params(sys.argv)
    mane()

    # dump an ave_fitness plot for the run
    from utilities import trackers, save_plots
    data = [i['ave_fitness'] for i in trackers.stats_list]
    save_plots.save_plot_from_data(data, 'ave_fitness')
Esempio n. 5
0
    Run all functions to parse a target string into a GE individual.

    :return: A GE individual.
    """

    # Ensure there is a target to parse.
    if not params['REVERSE_MAPPING_TARGET']:
        s = "scripts.GE_LR_Parser.main\n" \
            "Error: No target string specified for parsing."
        raise Exception(s)

    # Parse the terminals in the target string.
    parse_terminals(params['REVERSE_MAPPING_TARGET'])

    # Iterate over the solution list until the target string is parsed.
    solution = parse_target_string()

    # Check the mapping of the solution and all aspects to ensure it is valid.
    check_ind_from_parser(solution, params['REVERSE_MAPPING_TARGET'])

    return solution


if __name__ == '__main__':

    # Set parameters
    set_params(sys.argv[1:], create_files=False)

    # Print parsed GE genome.
    print("\nGenome:\n", params['SEED_INDIVIDUALS'][0].genome)
Esempio n. 6
0
    """
    
    # Ensure there is a target to parse.
    if not params['REVERSE_MAPPING_TARGET']:
        s = "scripts.GE_LR_Parser.main\n" \
            "Error: No target string specified for parsing."
        raise Exception(s)
    
    # Parse the terminals in the target string.
    parse_terminals(params['REVERSE_MAPPING_TARGET'])

    # Iterate over the solution list until the target string is parsed.
    solution = parse_target_string()

    # Check the mapping of the solution and all aspects to ensure it is valid.
    check_ind_from_parser(solution, params['REVERSE_MAPPING_TARGET'])
    
    return solution
    

if __name__ == '__main__':
    
    # Set parameters
    set_params(sys.argv[1:])
    
    # Generate solution.
    solution = main()
    
    # Print parsed GE genome.
    print("\nGenome:\n", solution.genome)
Esempio n. 7
0
#                   Michael Fenton and David Fagan
# Hereby licensed under the GNU GPL v3.
""" Python GE implementation """

from utilities.algorithm.general import check_python_version

check_python_version()

from stats.stats import get_stats
from algorithm.parameters import params, set_params
from utilities.stats import trackers
import sys


def mane():
    """ Run program """

    # Run evolution
    individuals = params['SEARCH_LOOP']()

    # Print final review
    get_stats(individuals, end=True)

    # Returns only needed if running experiment manager
    return params['TIME_STAMP'], trackers.best_ever.fitness


if __name__ == "__main__":
    set_params(sys.argv[1:])  # exclude the ponyge.py arg itself
    mane()
# PonyGE2
# Copyright (c) 2017 Michael Fenton, James McDermott,
#                    David Fagan, Stefan Forstenlechner,
#                    and Erik Hemberg
# Hereby licensed under the GNU GPL v3.
""" Python GE implementation """

from utilities.algorithm.general import check_python_version

check_python_version()

from stats.stats import get_stats
from algorithm.parameters import params, set_params
import sys


def mane():
    """ Run program """

    # Run evolution
    individuals = params['SEARCH_LOOP']()

    # Print final review
    get_stats(individuals, end=True)


if __name__ == "__main__":
    # set_params(sys.argv[1:])  # exclude the ponyge.py arg itself
    set_params(['--parameters', 'progsys.txt'])
    mane()
Esempio n. 9
0
    print("Result for SMAC: SAT,{},{},{},{},0".format(duration, length, 100 - fitness, seed))

def preprocess_parameters(cmd_line_params):
    def add_dash(name):
        return "-{}".format(name)
    keys = cmd_line_params[::2]
    values = cmd_line_params[1::2]
    cmd_line_params_dict = dict(zip(keys, values))
    cmd_line_params = []
    for (k,v) in cmd_line_params_dict.items():
        pk = add_dash(k)

        if v == "False":
            continue
        if v == "True":
            cmd_line_params += [pk]
        else:
            cmd_line_params += [pk, v]
    return cmd_line_params 

if __name__ == "__main__":
    seed = sys.argv[5]
    cmd_line_params = ["-parameters", "tune.txt", "-random_seed", seed] + sys.argv[6:]
    cmd_line_params = preprocess_parameters(cmd_line_params)
    set_params(cmd_line_params) 
    start = timer()
    fitness, length = tune()
    duration = int(timer() - start)
    print_results(seed, fitness, duration, length)
    sys.exit(0)
Esempio n. 10
0
    Run all functions to parse a target string into a GE individual.

    :return: A GE individual.
    """

    # Ensure there is a target to parse.
    if not params['REVERSE_MAPPING_TARGET']:
        s = "scripts.GE_LR_Parser.main\n" \
            "Error: No target string specified for parsing."
        raise Exception(s)

    # Parse the terminals in the target string.
    parse_terminals(params['REVERSE_MAPPING_TARGET'])

    # Iterate over the solution list until the target string is parsed.
    solution = parse_target_string()

    # Check the mapping of the solution and all aspects to ensure it is valid.
    check_ind_from_parser(solution, params['REVERSE_MAPPING_TARGET'])

    return solution


if __name__ == '__main__':

    # Set parameters
    set_params(sys.argv[1:], create_files=False)

    # Print parsed GE genome.
    print("\nGenome:\n", params['SEED_INDIVIDUALS'][0].genome)
Esempio n. 11
0
# PonyGE2
# Copyright (c) 2017 Michael Fenton, James McDermott,
#                    David Fagan, Stefan Forstenlechner,
#                    and Erik Hemberg
# Hereby licensed under the GNU GPL v3.
""" Python GE implementation """

from utilities.algorithm.general import check_python_version

check_python_version()

from stats.stats import get_stats
from algorithm.parameters import params, set_params
import sys


def mane():
    """ Run program """

    # Run evolution
    individuals = params['SEARCH_LOOP']()

    # Print final review
    get_stats(individuals, end=True)


if __name__ == "__main__":
    set_params(sys.argv[1:])  # exclude the ponyge.py arg itself
    mane()
Esempio n. 12
0
    def __init__(self, master):
        set_params(["--parameters", "cargobot.txt"])
        self.path = params['GAME_BOARD']
        self.master = master
        self.generated_board = []
        self.initial_board = Board.Board(self.path, "init")
        self.final_board = Board.Board(self.path, "end")
        self.lift = Lift(self.path)
        self.width = 800
        self.height = 500
        master.title("Cargobot automatic programmer")
        frame0 = tk.Frame(master=master, width=self.width, height=50)
        frame0.pack()

        frame0_1 = tk.Frame(master=frame0, width=self.width // 2, height=50)
        frame0_1.pack(side="left")

        label_in = Label(frame0_1, text="Initial board")
        label_in.pack(side="left")

        frame0_2 = tk.Frame(master=frame0, width=self.width // 2, height=50)
        frame0_2.pack(side="right")

        label_fi = Label(frame0_2, text="Final board")
        label_fi.pack(side="right")

        frame1 = tk.Frame(master=master,
                          width=self.width,
                          height=self.height // 2)
        frame1.pack()

        frame1_1 = tk.Frame(master=frame1,
                            width=self.width // 2,
                            height=self.height // 2)
        frame1_1.pack(side="left")

        self.print_board(self.initial_board, frame1_1)

        frame1_2 = tk.Frame(master=frame1,
                            width=self.width // 2,
                            height=self.height // 2)
        frame1_2.pack(side="right")
        self.print_board(self.final_board, frame1_2)

        frame1_5_0 = tk.Frame(master=master, width=self.width, height=50)
        frame1_5_0.pack()

        label_in = Label(frame1_5_0, text="Generated result ")
        label_in.pack(side="left")

        frame2 = tk.Frame(master=master,
                          width=self.width,
                          height=self.height // 2)
        frame2.pack()

        self.frame2_1 = tk.Frame(master=frame2,
                                 width=int(self.width),
                                 height=self.height // 2)
        self.frame2_1.pack(side="left")

        frame3 = tk.Frame(master=master, width=self.width, height=50)
        frame3.pack()

        greet_button = Button(frame3,
                              text="Generate solution",
                              command=self.generate_solution)
        greet_button.pack()

        close_button = Button(frame3, text="Close", command=self.master.quit)
        close_button.pack()
Esempio n. 13
0
# PonyGE2
# Copyright (c) 2017 Michael Fenton, James McDermott,
#                    David Fagan, Stefan Forstenlechner,
#                    and Erik Hemberg
# Hereby licensed under the GNU GPL v3.
""" Python GE implementation """

from utilities.algorithm.general import check_python_version

check_python_version()

from stats.stats import get_stats
from algorithm.parameters import params, set_params
import sys


def mane():
    """ Run program """

    # Run evolution
    individuals = params['SEARCH_LOOP']()

    # Print final review
    get_stats(individuals, end=True)


if __name__ == "__main__":
    set_params(['--parameters',
                'trading.txt'])  # exclude the ponyge.py arg itself
    mane()