Agent Optimization of a Traffic Signal The purpose of this project is to produce an intelligent transport system (ITS) that controls a traffic signal in order to achieve maximum traffic throughput at the intersection. To produce an accurate model of the traffic flow, it is necessary to have each car be an autonomous agent with its own driving behavior. A learning agent will be used to optimize a traffic signal for the traffic of the autonomous cars. I am using MASON software to do my traffic simulation. MASON is a Javabased modeling package that is distributed by George Mason University. In MASON, everything runs from the Schedule class. The Schedule keeps track of time and moves the simulation along one step at a time. Objects that move have a Step method that the Schedule calls at each step in time. In this program, the visible simulation is made by the CarUI – Car User Interface – class. The CarUI starts the CarRun class running. The CarRun class is what starts the Schedule and creates everything in the simulation. CarUI takes information from CarRun to display on the screen. CarRun makes objects of the Car, Region, Signal, and eventController classes. The Car class contains the information for how each autonomous car runs. Regions are what goes on the background of the visual output. Examples of Region objects are the roads and medians. Signals control the lights and how they work. Lastly, because there is no way in MASON to control when actions happen in the Schedule, I made the eventController class to to actions when to happen. The traffic control strategy being used in this project is actuated signal control. The actuated control strategy utilizes sensors to tell where cars are at the intersection. It then uses what it learns from the sensors to figure out how long it should wait before changing the light colors. For example, if the signal picks up a car coming just before the green light is scheduled to change, the length of the green light can be extended for the car to go through