Intelligent Traffic Lights
Using Q-Learning, the traffic lights learn to switch at the most optimal times to leave as few cars waiting as possible, and to ensure no one car is stuck waiting for an extended period of time.
Graphics
The graphics are quite simple, and show only a basic demonstration. There is scope for them to be improved and to create an interactive interface for users to place roads.
Features
The current system features:
- Multiple traffic lights
- Multiple intersections
- Two-way traffic
- Amber lights
Further possible features include:
- Corner turning traffic
- Advanced graphics - drag and drop road/light placement
- Different speed cars
- Different-laned intersections
Setup Instructions
Once all the files have been downloaded type make and then type Java Main [rewardNum intensity]
The two arguments are optional but both or neither are required.
The first is rewardNum, which is 1-3, and allows you to trial the three reward functions we experimented with.
The second is intensity, which is a float in the range of 0.0 and 0.5 to adjust how many cars are spawned are onto the screen.
Running the program
Once the program has been started the machine will learn for a time, and then the graphical interface will start displaying the traffic lights and cars interacting. The run time is set to be billion timeSteps, and if the program reaches that end it outputs some information about its success in terms of cars stopped at any point.
Authors and Contributors
@abethcrane, Gill Morris and Nathan Wilson built this in early 2012 as a project for their university Machine Learning course (UNSW COMP9417).