示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#8
0
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)
示例#10
0
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)
示例#11
0
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")
示例#12
0
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
示例#13
0
    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
示例#14
0
    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.
    }, {
示例#15
0
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
}, {
示例#16
0
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
}]
示例#17
0
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 :
	'''
示例#19
0
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,
示例#21
0
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, 
示例#22
0
            '''
            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
}, {