-
Notifications
You must be signed in to change notification settings - Fork 6
/
main.py
21 lines (19 loc) · 1011 Bytes
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from argparse import ArgumentParser
from DefaultCycles import default_cycle
from ReinforcementLearning import q_learning
from Search import search
if __name__ == '__main__':
parser = ArgumentParser(description="AI Traffic Lights Controller")
methods = ['fc', 'lqf', 'qlearning', 'search']
parser.add_argument("-m", "--method", choices=methods, required=True)
parser.add_argument("-e", "--episodes", metavar='N', type=int, required=True,
help="Number of evaluation episodes to run")
parser.add_argument("-r", "--render", action='store_true',
help="Displays the simulation window")
args = parser.parse_args()
if args.method in ['fc', 'lqf']:
default_cycle(n_episodes=args.episodes, action_func_name=args.method, render=args.render)
elif args.method == 'qlearning':
q_learning(n_episodes=args.episodes, render=args.render)
elif args.method == 'search':
search(episodes=args.episodes, render=args.render)