def construct_training_env(): config = { 'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'finish_position': Point(0, 0), 'random_seed': 15, 'stochasticity': 1., 'lanes': [ LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2]) ], 'width': 50, 'tensor_state': True, 'flicker_rate': 0., 'mask': None } return gym.make('GridDriving-v0', **config)
def get_env(): ''' Get the sample test cases for training and testing. ''' # config = { 'observation_type': 'tensor', 'agent_speed_range': [-2, -1], 'stochasticity': 0.0, 'width': 10, # 'lanes': [ # LaneSpec(cars=3, speed_range=[-2, -1]), # LaneSpec(cars=4, speed_range=[-2, -1]), # LaneSpec(cars=2, speed_range=[-1, -1]), # LaneSpec(cars=2, speed_range=[-3, -1]) # ] } # config = {'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2])] } return gym.make('GridDriving-v0', **config)
def construct_train_task2_env(): random_car = numpy.random.randint(5, 10, 10) speed_range = [[-3, -3], [-3, -2], [-3, -1], [-2, -2], [-2, -1], [-1, -1]] random_speed_range = random.sample(speed_range, 10) config = { 'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [ LaneSpec(cars=random_car[0], speed_range=random_speed_range[0]), LaneSpec(cars=random_car[1], speed_range=random_speed_range[1]), LaneSpec(cars=random_car[2], speed_range=random_speed_range[2]), LaneSpec(cars=random_car[3], speed_range=random_speed_range[3]), LaneSpec(cars=random_car[4], speed_range=random_speed_range[4]), LaneSpec(cars=random_car[5], speed_range=random_speed_range[5]), LaneSpec(cars=random_car[6], speed_range=random_speed_range[6]), LaneSpec(cars=random_car[7], speed_range=random_speed_range[7]), LaneSpec(cars=random_car[8], speed_range=random_speed_range[8]), LaneSpec(cars=random_car[9], speed_range=random_speed_range[9]) ] } return gym.make('GridDriving-v0', **config)
def construct_task_env(): config = { 'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [ LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2]) ] } return gym.make('GridDriving-v0', **config) # Easier env # def construct_task_env(): # config = {'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'stochasticity': 1.0, 'width': 50, # 'lanes': [LaneSpec(cars=3, speed_range=[-2, -1]), # LaneSpec(cars=4, speed_range=[-2, -1]), # LaneSpec(cars=3, speed_range=[-1, -1]), # LaneSpec(cars=4, speed_range=[-3, -1]), # LaneSpec(cars=4, speed_range=[-2, -1]), # LaneSpec(cars=3, speed_range=[-2, -1]), # LaneSpec(cars=2, speed_range=[-3, -2]), # LaneSpec(cars=3, speed_range=[-1, -1]), # LaneSpec(cars=2, speed_range=[-2, -1]), # LaneSpec(cars=3, speed_range=[-2, -2])] # } # return gym.make('GridDriving-v0', **config) # def construct_task_env(): # config = { 'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'stochasticity': 1.0, 'width': 20, # 'lanes': [ # LaneSpec(cars=2, speed_range=[-2, -1]), # LaneSpec(cars=1, speed_range=[-2, -1]), # LaneSpec(cars=2, speed_range=[-1, -1]), # LaneSpec(cars=1, speed_range=[-3, -1]), # LaneSpec(cars=1, speed_range=[-3, -1]), # LaneSpec(cars=2, speed_range=[-2, -1]), # LaneSpec(cars=1, speed_range=[-2, -1]), # LaneSpec(cars=1, speed_range=[-1, -1]), # LaneSpec(cars=2, speed_range=[-3, -1]), # LaneSpec(cars=1, speed_range=[-3, -1]) # ]} # return gym.make('GridDriving-v0', **config)
def construct_task2_env(): config = {'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2])] } return gym.make('GridDriving-v0', **config)
def construct_random_lane_env(): #Tensor version for DQN config = {'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1])], 'random_lane_speed': True } return gym.make('GridDriving-v0', **config)
def get_env(): ''' Get the sample test cases for training and testing. ''' config = { 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [ LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2]) ] } return gym.make('GridDriving-v0', **config)
def construct_random_lane_env(): config = { "observation_type": "tensor", "agent_speed_range": [-3, -1], "width": 50, "lanes": [ LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=8, speed_range=[-3, -1]) ], "random_lane_speed": True } return gym.make("GridDriving-v0", **config)
def get_env(cars=7, tensor=False): ''' Get the sample test cases for training and testing. ''' # config = {'agent_speed_range': [-3, -1], 'width': 50, # 'lanes': [LaneSpec(cars=7, speed_range=[-2, -1]), # LaneSpec(cars=8, speed_range=[-2, -1]), # LaneSpec(cars=6, speed_range=[-1, -1]), # LaneSpec(cars=6, speed_range=[-3, -1]), # LaneSpec(cars=7, speed_range=[-2, -1]), # LaneSpec(cars=8, speed_range=[-2, -1]), # LaneSpec(cars=6, speed_range=[-3, -2]), # LaneSpec(cars=7, speed_range=[-1, -1]), # LaneSpec(cars=6, speed_range=[-2, -1]), # LaneSpec(cars=8, speed_range=[-2, -2])] # } config = { 'agent_speed_range': [-3, -1], 'width': 50, 'lanes': [ LaneSpec(cars=cars, speed_range=[-2, -1]), LaneSpec(cars=cars, speed_range=[-2, -1]), LaneSpec(cars=cars, speed_range=[-1, -1]), LaneSpec(cars=cars, speed_range=[-3, -1]), LaneSpec(cars=cars, speed_range=[-2, -1]), LaneSpec(cars=cars, speed_range=[-2, -1]), LaneSpec(cars=cars, speed_range=[-3, -2]), LaneSpec(cars=cars, speed_range=[-1, -1]), LaneSpec(cars=cars, speed_range=[-2, -1]), LaneSpec(cars=cars, speed_range=[-2, -2]) ] } if tensor: config['observation_type'] = 'tensor' return gym.make('GridDriving-v0', **config)
def construct_task1_env(): test_config = [{ 'lanes': [LaneSpec(10, [-2, -2])] * 2 + [LaneSpec(10, [-3, -3])] * 2 + [LaneSpec(8, [-4, -4])] * 2 + [LaneSpec(8, [-5, -5])] * 2 + [LaneSpec(12, [-4, -4])] * 2 + [LaneSpec(12, [-3, -3])] * 2, 'width': 50, 'agent_speed_range': (-3, -1), 'random_seed': 11 }] test_index = 0 case = test_config[test_index] return gym.make('GridDriving-v0', **case)
def heuristic_reward(): # parse_sas_plan(pos_memo) task2_env = construct_task2_env() n_lanes, n_width, agent_speed_range = len(task2_env.lanes), task2_env.width, task2_env.agent_speed_range pos_memo = [[0 if (x == 0 and y == 0) else None for y in range(n_lanes)] for x in range(n_width)] lanes = [LaneSpec(0, [0, 0])] * n_lanes for start_x in list(range(n_width))[::-1]: for start_y in list(range(n_lanes))[::-1]: if pos_memo[start_x][start_y] is None: print("Start x: {} start y: {}".format(start_x, start_y)) env = gym.make('GridDriving-v0', lanes=lanes, width=n_width, random_seed=42, agent_speed_range=(-3, -1), agent_pos_init=Point(x=start_x, y=start_y)) gen = initializeSystem(env) generateDomainPDDLFile(gen) generateProblemPDDLFile(gen) runPDDLSolver(gen) parse_sas_plan(pos_memo, start_x, start_y) print("pos_memo:") print(pos_memo) pos_inf_reward, neg_inf_reward = 10, -10 for x in range(n_width): for y in range(n_lanes): if pos_memo[x][y] == 0: pos_memo[x][y] = pos_inf_reward elif pos_memo[x][y] == -1: pos_memo[x][y] = neg_inf_reward else: pos_memo[x][y] = 1. / pos_memo[x][y] print("Final reward matrix") pos_memo = np.array(pos_memo) print(pos_memo) save_to_pickle(pos_memo, "reward_shaping.p")
SUBMISSION = False import gym import gym_grid_driving from gym_grid_driving.envs.grid_driving import LaneSpec, Point import os import sys test_config = [{ 'lanes': [LaneSpec(2, [0, 0])] * 3, 'width': 5, 'seed': 13 }, { 'lanes': [LaneSpec(2, [0, 0])] * 3, 'width': 5, 'seed': 10 }, { 'lanes': [LaneSpec(3, [0, 0])] * 4, 'width': 10, 'seed': 25 }, { 'lanes': [LaneSpec(4, [0, 0])] * 4, 'width': 10, 'seed': 25 }, { 'lanes': [LaneSpec(8, [0, 0])] * 7, 'width': 20, 'seed': 25 }, { 'lanes': [LaneSpec(7, [0, 0])] * 10, 'width': 20, 'seed': 125
FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "/fast_downward/" else : FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "" PDDL_FILE_ABSOLUTE_PATH = "" ########################################################## ### Sample test cases for Parking task. # test_config = [{'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 13}, # {'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 10}, # {'lanes' : [LaneSpec(3, [0, 0])] *4,'width' :10, 'seed' : 25}, # {'lanes' : [LaneSpec(4, [0, 0])] *4,'width' :10, 'seed' : 25}, # {'lanes' : [LaneSpec(8, [0, 0])] *7,'width' :20, 'seed' : 25}, # {'lanes' : [LaneSpec(7, [0, 0])] *10,'width' :20, 'seed' : 125}] ### Sample test cases for Crossing Task test_config = [{'lanes' : [LaneSpec(6, [-2, -2])] *2 + [LaneSpec(6, [-5, -5])] *2 + [LaneSpec(5, [-4, -4])] *2 + [LaneSpec(5, [-2, -2])] *1, 'width' :30, 'seed' : 101}] test_case_number = 0 # Change the index for a different test case LANES = test_config[test_case_number]['lanes'] WIDTH = test_config[test_case_number]['width'] RANDOM_SEED = test_config[test_case_number]['seed'] class GeneratePDDL_Stationary : ''' Class to generate the PDDL files given the environment description. ''' def __init__ (self, env, num_lanes, width, file_name) : self.state = env.reset() self.num_lanes = num_lanes
Helper function to convert an env state to a state feature vector. ''' cars = env.cars done = env.done state = [] for car in cars: state += [car.position.x, car.position.y] state.append(int(done == True)) return state if not SUBMISSION: ### Sample test cases. test_config = [{ 'lanes': [LaneSpec(0, [-2, -1])] * 5, 'width': 9, 'gamma': 0.9, 'seed': 15, 'fin_pos': Point(0, 0), 'agent_pos': Point(8, 4), 'stochasticity': 1. }, { 'lanes': [LaneSpec(1, [-2, -1])] * 2, 'width': 4, 'gamma': 0.9, 'seed': 15, 'fin_pos': Point(0, 1), 'agent_pos': Point(3, 1), 'stochasticity': 1. }, {
import gym import gym_grid_driving from gym_grid_driving.envs.grid_driving import LaneSpec, Point import os ################### DO NOT CHANGE THIS ################### if not SUBMISSION: FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "/fast_downward/" else: FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "" PDDL_FILE_ABSOLUTE_PATH = "" ########################################################## ### Sample test cases for Parking task. test_config = [{ 'lanes': [LaneSpec(2, [0, 0])] * 3, 'width': 5, 'seed': 13 }, { 'lanes': [LaneSpec(2, [0, 0])] * 3, 'width': 5, 'seed': 10 }, { 'lanes': [LaneSpec(3, [0, 0])] * 4, 'width': 10, 'seed': 25 }, { 'lanes': [LaneSpec(4, [0, 0])] * 4, 'width': 10, 'seed': 25 }, {
else: FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "" PDDL_FILE_ABSOLUTE_PATH = "" ########################################################## ### Sample test cases for Parking task. # test_config = [{'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 13}, # {'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 10}, # {'lanes' : [LaneSpec(3, [0, 0])] *4,'width' :10, 'seed' : 25}, # {'lanes' : [LaneSpec(4, [0, 0])] *4,'width' :10, 'seed' : 25}, # {'lanes' : [LaneSpec(8, [0, 0])] *7,'width' :20, 'seed' : 25}, # {'lanes' : [LaneSpec(7, [0, 0])] *10,'width' :20, 'seed' : 125}] ### Sample test cases for Crossing Task test_config = [{ 'lanes': [LaneSpec(6, [-2, -2])] * 2 + [LaneSpec(6, [-5, -5])] * 2 + [LaneSpec(5, [-4, -4])] * 2 + [LaneSpec(5, [-2, -2])] * 1, 'width': 30, 'seed': 101 }] test_config = [{ 'lanes': [LaneSpec(6, [-2, -2])] * 2 + [LaneSpec(4, [-3, -3])] * 2 + [LaneSpec(6, [-4, -4])] * 2 + [LaneSpec(4, [-4, -4])] * 2 + [LaneSpec(6, [-2, -2])] * 2 + [LaneSpec(4, [-3, -3])] * 2, 'width': 35, 'seed': 101 }]
import gym from gym_grid_driving.envs.grid_driving import LaneSpec, Point default_lanes = [LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-3, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -1]), LaneSpec(cars=6, speed_range=[-3, -2]), LaneSpec(cars=7, speed_range=[-1, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=8, speed_range=[-2, -2])] default_speed_range = [-3, -1] default_width = 50 def construct_curriculum_env(curr_id, tensor_state=True): one_eight_config = {'agent_speed_range': default_speed_range, 'width': default_width, 'lanes': default_lanes, 'finish_position': Point(43, 8) } quarter_config = {'agent_speed_range': default_speed_range, 'width': default_width, 'lanes': default_lanes, 'finish_position': Point(36, 6) } half_config = {'agent_speed_range': default_speed_range, 'width': default_width, 'lanes': default_lanes, 'finish_position': Point(24, 4) } full_config = {'agent_speed_range': default_speed_range, 'width': default_width,
import gym import gym_grid_driving from gym_grid_driving.envs.grid_driving import LaneSpec, Point import os ################### DO NOT CHANGE THIS ################### if not SUBMISSION : FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "/fast_downward/" else : FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "" PDDL_FILE_ABSOLUTE_PATH = "" ########################################################## ### Sample test cases for Parking task. test_config = [{'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 13}, {'lanes' : [LaneSpec(2, [0, 0])] *3,'width' :5, 'seed' : 10}, {'lanes' : [LaneSpec(3, [0, 0])] *4,'width' :10, 'seed' : 25}, {'lanes' : [LaneSpec(4, [0, 0])] *4,'width' :10, 'seed' : 25}, {'lanes' : [LaneSpec(8, [0, 0])] *7,'width' :20, 'seed' : 25}, {'lanes' : [LaneSpec(7, [0, 0])] *10,'width' :20, 'seed' : 125}] test_case_number = 0 # Change the index for a different test case LANES = test_config[test_case_number]['lanes'] WIDTH = test_config[test_case_number]['width'] RANDOM_SEED = test_config[test_case_number]['seed'] class GeneratePDDL_Stationary : '''
def construct_task2_env(tensor_state=True): large_config = {'agent_speed_range': [-3, -1], 'width': 50, 'lanes': default_lanes } small_config = {'observation_type': 'tensor', 'agent_speed_range': [-2, -1], 'stochasticity': 0.0, 'width': 10, 'lanes': [ LaneSpec(cars=3, speed_range=[-2, -1]), LaneSpec(cars=4, speed_range=[-2, -1]), LaneSpec(cars=2, speed_range=[-1, -1]), LaneSpec(cars=2, speed_range=[-3, -1]) ]} medium_config = {'observation_type': 'tensor', 'agent_speed_range': [-3, -1], 'width': 15, 'lanes': [ LaneSpec(cars=3, speed_range=[-2, -1]), LaneSpec(cars=4, speed_range=[-2, -1]), LaneSpec(cars=2, speed_range=[-1, -1]), LaneSpec(cars=2, speed_range=[-3, -1]), LaneSpec(cars=3, speed_range=[-2, -1]), LaneSpec(cars=4, speed_range=[-2, -1]) ]} medium_large_config = {'agent_speed_range': [-3, -1], 'width': 40, 'lanes': [LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), LaneSpec(cars=5, speed_range=[-1, -1]), LaneSpec(cars=5, speed_range=[-3, -1]), LaneSpec(cars=6, speed_range=[-2, -1]), LaneSpec(cars=7, speed_range=[-2, -1]), ] } curri_large_config = {'agent_speed_range': [-3, -1], 'width': 50, 'lanes': default_lanes, 'finish_position': Point(43, 6) } config = large_config if tensor_state: config['observation_type'] = 'tensor' return gym.make('GridDriving-v0', **config)
math.sqrt(math.log(node.numVisits) / child.numVisits)) if val == bestValue: bestNodes.append(child) if val > bestValue: bestNodes = [child] bestValue = val return random.choice(bestNodes) if not SUBMISSION: ### Sample test cases. test_config = [{ 'lanes': [LaneSpec(1, [-1, -1])] * 3, 'width': 5, 'seed': 10, 'iters': 300 }, { 'lanes': [LaneSpec(2, [-2, -1])] * 3, 'width': 7, 'seed': 15, 'iters': 100 }, { 'lanes': [LaneSpec(2, [-2, -1])] * 4, 'width': 8, 'seed': 125, 'iters': 500 }, { 'lanes': [LaneSpec(2, [-3, -2])] * 4,
def getStateTuple(env): ''' Helper function to convert an env state to a state feature vector. ''' cars = env.cars done = env.done state = [] for car in cars: state += [car.position.x, car.position.y] state.append(int(done==True)) return state if not SUBMISSION: ### Sample test cases. test_config = [{'lanes' : [LaneSpec(0, [-2, -1])] *5,'width' :9, 'gamma' : 0.9, 'seed' : 15, 'fin_pos' : Point(0,0), 'agent_pos': Point(8,4),'stochasticity': 1. }, {'lanes' : [LaneSpec(1, [-2, -1])] *2,'width' :4, 'gamma' : 0.9, 'seed' : 15, 'fin_pos' : Point(0,1), 'agent_pos': Point(3,1),'stochasticity': 1. }, {'lanes' : [LaneSpec(1, [-3, -1])] *2 + [LaneSpec(0, [0, 0])],'width' :4, 'gamma' : 0.9, 'seed' : 100, 'fin_pos' : Point(0,0), 'agent_pos': Point(3,2),'stochasticity': .5 }, {'lanes' : [LaneSpec(0, [0, 0])] + [LaneSpec(1, [-3, -1])] *2,'width' :4, 'gamma' : 0.5, 'seed' : 128, 'fin_pos' : Point(0,0), 'agent_pos': Point(3,2),'stochasticity': 0.75 }, {'lanes' : [LaneSpec(1, [-3, -1])] *2 + [LaneSpec(0, [0, 0])],'width' :4, 'gamma' : 0.99, 'seed' : 111, 'fin_pos' : Point(0,0), 'agent_pos': Point(3,2),'stochasticity': .5 }, {'lanes' : [LaneSpec(1, [-3, -1]), LaneSpec(0, [0, 0]), LaneSpec(1, [-3, -1])] ,'width' :4, 'gamma' : 0.999, 'seed' : 125, 'fin_pos' : Point(0,0), 'agent_pos': Point(3,2),'stochasticity': 0.9 }] test_case_number = 0 #Change the index for a different test case LANES = test_config[test_case_number]['lanes'] WIDTH = test_config[test_case_number]['width'] RANDOM_SEED = test_config[test_case_number]['seed'] GAMMA = test_config[test_case_number]['gamma'] FIN_POS = test_config[test_case_number]['fin_pos'] AGENT_POS = test_config[test_case_number]['agent_pos'] stochasticity = test_config[test_case_number]['stochasticity'] env = gym.make('GridDriving-v0', lanes=LANES, width=WIDTH,
''' val = (child.totalReward / child.numVisits) + (explorationValue * math.sqrt(math.log(node.numVisits) / child.numVisits)) if val == bestValue: bestNodes.append(child) if val > bestValue: bestNodes = [child] bestValue = val return random.choice(bestNodes) if not SUBMISSION: ### Sample test cases. test_config = [{'lanes' : [LaneSpec(1, [-1, -1])] *3,'width' :5, 'seed' : 10, 'iters': 300}, {'lanes' : [LaneSpec(2, [-2, -1])] *3,'width' :7, 'seed' : 15, 'iters': 100}, {'lanes' : [LaneSpec(2, [-2, -1])] *4,'width' :8, 'seed' : 125, 'iters': 500}, {'lanes' : [LaneSpec(2, [-3, -2])] *4,'width' :10, 'seed' : 44, 'iters': 300}, {'lanes' : [LaneSpec(2, [-3, -1])] *4,'width' :10, 'seed' : 125, 'iters': 400}, {'lanes' : [LaneSpec(2, [-3, -1])] *4,'width' :10, 'seed' : 25, 'iters': 300}] test_case_number = 5 #Change the index for a different test case LANES = test_config[test_case_number]['lanes'] WIDTH = test_config[test_case_number]['width'] RANDOM_SEED = test_config[test_case_number]['seed'] numiters = test_config[test_case_number]['iters'] stochasticity = 1. env = gym.make('GridDriving-v0', lanes=LANES, width=WIDTH, agent_speed_range=(-3,-1), finish_position=Point(0,0), #agent_ pos_init=Point(4,2), stochasticity=stochasticity, tensor_state=False, flicker_rate=0., mask=None, random_seed=RANDOM_SEED)
import gym import gym_grid_driving from gym_grid_driving.envs.grid_driving import LaneSpec, Point import os ################### DO NOT CHANGE THIS ################### if not SUBMISSION: FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "/fast_downward/" else: FAST_DOWNWARD_DIRECTORY_ABSOLUTE_PATH = "" PDDL_FILE_ABSOLUTE_PATH = "" ########################################################## ### Sample test cases. test_config = [{ 'lanes': [LaneSpec(3, [-1, -1])] * 3, 'width': 5, 'seed': 12 }, { 'lanes': [LaneSpec(2, [-1, -1])] * 3, 'width': 5, 'seed': 25 }, { 'lanes': [LaneSpec(3, [-1, -1])] * 4, 'width': 10, 'seed': 125 }, { 'lanes': [LaneSpec(4, [-1, -1])] * 4, 'width': 10, 'seed': 28 }, {