/
run.py
123 lines (109 loc) · 2.82 KB
/
run.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import gym
from src.driver import Driver
from src.agents.random import Random
from src.agents.qlearner import Qlearner
from src.agents.tdlearner import TDlearner
'''
USAGE INSTRUCTIONS
At the bottom of this file, these functions defining a combination of an agent
and an environment are invoked. All but one are commented out. Choose which
agent and environment you want to run, and uncomment that line. For example,
to see the Qlearner agent operating the Taxi environment, uncomment:
#taxi_qlearner()
It is recommended you leave all other function invocations commented out when
you run this file, as it will be faster and you will only see the output you
are interested in.
'''
def taxi_random():
agent = Random()
driver = Driver({
'epochs': 1000,
'env': gym.make('Taxi-v2'),
'agent': agent,
})
driver.run_taxi_random()
def taxi_qlearner():
agent = Qlearner({
'alpha': 0.1,
'gamma': 0.6,
'epsilon': 0.1,
})
driver = Driver({
'epochs': 10000,
'env': gym.make('Taxi-v2'),
'agent': agent,
})
driver.run_taxi_qlearner()
def cartpole_random():
agent = Random()
driver = Driver({
'epochs': 1000,
'env': gym.make('CartPole-v1'),
'agent': agent,
})
driver.run_cartpole_random()
def cartpole_qlearner():
agent = Qlearner({
'alpha': 0.2,
'gamma': 0.5,
'epsilon': 0.1,
})
driver = Driver({
'epochs': 50000,
'env': gym.make('CartPole-v1'),
'agent': agent,
})
driver.run_cartpole_qlearner()
def cartpole_tdlearner():
agent = TDlearner({
'alpha': 0.2,
'gamma': 0.5,
'epsilon': 0.1,
})
driver = Driver({
'epochs': 50000,
'env': gym.make('CartPole-v1'),
'agent': agent,
})
driver.run_cartpole_tdlearner()
def frozen_lake_random():
agent = Random()
driver = Driver({
'epochs': 1000,
'env': gym.make('FrozenLake-v0'),
'agent': agent,
})
driver.run_frozen_lake_random()
def frozen_lake_qlearner():
agent = Qlearner({
'alpha': 0.1,
'gamma': 0.6,
'epsilon': 0.3,
})
driver = Driver({
'epochs': 10000,
'env': gym.make('FrozenLake-v0'),
'agent': agent,
})
driver.run_frozen_lake_qlearner()
def frozen_lake_tdlearner():
agent = TDlearner({
'alpha': 0.1,
'gamma': 0.6,
'epsilon': 0.3,
})
driver = Driver({
'epochs': 10000,
'env': gym.make('FrozenLake-v0'),
'agent': agent,
})
driver.run_frozen_lake_tdlearner()
if __name__ == '__main__':
taxi_random()
#taxi_qlearner()
#cartpole_random()
#cartpole_qlearner()
#cartpole_tdlearner()
#frozen_lake_random()
#frozen_lake_qlearner()
#frozen_lake_tdlearner()