Ejemplo n.º 1
0
def run_premade_map():
    # Set up RL
    data = Data(ROWS, COLS, load_data=False, epsilon=0.25)
    gen = Generator(ROWS, COLS, resolution, size)
    vis = Plotter(data, cell_edge, ROWS, COLS)

    data.load_racetrack(directory='Sensitivity_Analysis')
    data.get_start_line()
    data.get_finish_line()
    vis.visualize_racetrack()

    # Finish setting up RL
    env = Environment(data, gen, ROWS, COLS)
    mcc = Monte_Carlo_Control(data, ROWS, COLS)
    agent = Agent()

    print("Saving data")
    # Save arrays
    data.save_racetrack(directory='Sensitivity_Analysis_2')
    data.save_Q_vals(directory='Sensitivity_Analysis_2')
    data.save_C_vals(directory='Sensitivity_Analysis_2')
    data.save_rewards(directory='Sensitivity_Analysis_2')
    data.save_pi(directory='Sensitivity_Analysis_2')

    # Train agent
    train_agent(mcc,
                env,
                agent,
                data,
                plot=True,
                image_name='sensitivity_epsilon=0.25')

    get_gif('epsilon=0.25', data, vis)
Ejemplo n.º 2
0
def test_map_making():
    data = Data(ROWS, COLS, load_data=False)
    gen = Generator(ROWS, COLS, resolution, size)
    vis = Plotter(data, cell_edge, ROWS, COLS)

    data.racetrack = gen.generate_map()

    vis.visualize_racetrack()
Ejemplo n.º 3
0
def run_random_map(plot=False,
                   directory='Random_Map_Data',
                   image_name='random_reward_graph',
                   epsilon=0.1):
    # Set up RL
    data = Data(ROWS, COLS, load_data=False, epsilon=epsilon)
    gen = Generator(ROWS, COLS, resolution, size)
    vis = Plotter(data, cell_edge, ROWS, COLS)

    # TODO:: Must be able to plot map without needing space bar
    # Display maps until we get one we like
    while True:
        data.racetrack = gen.generate_map()
        data.get_start_line()
        data.get_finish_line()

        vis.visualize_racetrack()
        response = input("Is this map suitable for our test? (y/n): ")

        if response == 'y':
            break

    # Finish setting up RL
    env = Environment(data, gen, ROWS, COLS)
    mcc = Monte_Carlo_Control(data, ROWS, COLS)
    agent = Agent()

    print("Saving data")
    # Save arrays
    data.save_racetrack(directory=directory)
    data.save_Q_vals(directory=directory)
    data.save_C_vals(directory=directory)
    data.save_rewards(directory=directory)
    data.save_pi(directory=directory)

    # Train agent
    train_agent(mcc, env, agent, data, plot=plot, image_name=image_name)

    if plot:
        get_gif(image_name, data, vis)
Ejemplo n.º 4
0
def sensitivity_analysis():
    # Sensitivity analysis settings for epsilon=0.1
    directory = 'Sensitivity_Analysis'
    image_name = 'epsilon=0.1'
    epsilon = 0.1

    # Set up RL
    data = Data(ROWS, COLS, load_data=False, epsilon=epsilon)
    gen = Generator(ROWS, COLS, resolution, size)
    vis = Plotter(data, cell_edge, ROWS, COLS)

    # Display maps until we get one we like
    while True:
        data.racetrack = gen.generate_map()
        data.get_start_line()
        data.get_finish_line()

        vis.visualize_racetrack()
        response = input("Is this map suitable for our test? (y/n): ")

        if response == 'y':
            break

    # Finish setting up RL
    env = Environment(data, gen, ROWS, COLS)
    mcc = Monte_Carlo_Control(data, ROWS, COLS)
    agent = Agent()

    print("Saving data")
    # Save arrays
    data.save_racetrack(directory=directory)
    data.save_Q_vals(directory=directory)
    data.save_C_vals(directory=directory)
    data.save_rewards(directory=directory)
    data.save_pi(directory=directory)

    # Train agent
    train_agent(mcc, env, agent, data, plot=True, image_name=image_name)

    # Sensitivity analysis settings for epsilon=0.01
    image_name = 'epsilon=0.01'
    epsilon = 0.01
    gif_name = 'epsilon=0.01'

    # Set up RL
    data2 = Data(ROWS, COLS, load_data=False, epsilon=epsilon)
    vis = Plotter(data2, cell_edge, ROWS, COLS)

    # Get old map
    data2.racetrack = data.racetrack
    data2.get_start_line()
    data2.get_finish_line()

    # Finish setting up RL
    env = Environment(data2, gen, ROWS, COLS)
    mcc = Monte_Carlo_Control(data2, ROWS, COLS)

    print("Saving data")
    # Save arrays
    data.save_racetrack(directory=directory)
    data.save_Q_vals(directory=directory)
    data.save_C_vals(directory=directory)
    data.save_rewards(directory=directory)
    data.save_pi(directory=directory)

    # Train agent
    train_agent(mcc, env, agent, data2, plot=True, image_name=image_name)

    get_gif(gif_name, data2, vis)