-
Notifications
You must be signed in to change notification settings - Fork 0
/
custom_grid.py
72 lines (55 loc) · 1.94 KB
/
custom_grid.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import numpy as np
################################################################
# Set seed for reproducability
################################################################
np.random.seed(0)
################################################################
# Create your environment in this file
################################################################
################################################################
# Width and Height of grid world
#
# gw: width of grid world
# gh: height of grid world
################################################################
gw = 20
gh = 20
################################################################
# Grid World
# Feel free to modify the grid world in any way
################################################################
probability = {'G': 0.166, 'R': 0.33, 'W': 0.5, '': 1.0}
prob = np.random.rand(gh, gw)
grid = []
for row in prob:
grid_row = []
for cell in row:
if cell <= 0.166:
grid_row.append('G')
elif cell <= 0.33:
grid_row.append('R')
elif cell <= 0.5:
grid_row.append('W')
else:
grid_row.append('')
grid.append(grid_row)
################################################################
# Rewards
# Feel free to modify the rewards in any way
# Make sure the reward array has the same shape
# as the grid array
################################################################
reward_map = {'G': +1, 'R': -1, 'W': 0, '': -0.04}
rewards = [[reward_map[cell] for cell in row] for row in grid]
################################################################
# Actions
# The actions are NORTH, SOUTH, EAST and WEST
# Each action is represented by a tuple
#
# NORTH: (-1, 0)
# SOUTH: (1, 0)
# EAST: (0, 1)
# WEST: (0, -1)
################################################################
actions = [(-1, 0), (1, 0), (0, 1), (0, -1)]
num_actions = len(actions)