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:

Further possible features include:

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).