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)
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()
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)
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)