# A Division-of-Labour Approach to Traffic Light Scheduling
## 2 Background
### Traffic Signal Control  
Traffic light control consists of showing a combination of signals that allow certain pre-defined movements of vehicles at traffic intersections from incoming lanes to outgoing lanes for a chosen period of time and disallowing other movements. A phase refers to a specific combination of movement signals that allows nonconflicting traffic movements. A cycle refers to a cyclic sequence of all possible phases of an intersection. The simplest approach to traffic light control is the static controller, which allocates the same fixed amount of time to every phase in a cycle. This approach is stable but generally not efficient because the fixed timings prevent the controller from adapting to changing traffic distributions. The Webster method [5] is a widely used adaptive traffic light scheduling algorithm. After a predefined period of time, it calculates a cycle length and splits the cycle length between the phases based on the volume of traffic since the last calculation. The calculation uses the time lost for every phase change, including the acceleration of any stationary vehicles, the number of cars travelling through the intersection, and the saturation flow rate. The saturation flow rate is defined as the highest amount of vehicular flow possible. It can be proved [5] that the Webster method minimises the travel time of vehicles passing through an intersection when the traffic distribution is uniform. The max pressure traffic light scheduling algorithm [11] is a delay-related algorithm designed to reduce the risk of over-saturation at a traffic intersection by minimising the \"pressure\" of an intersection. The \"pressure\" of a phase is defined as the difference between the number of vehicles in the incoming lanes and the number of vehicles in the corresponding outgoing lanes. It can be proved [11] that max pressure maximises the throughput of a road network when all intersections use this algorithm. [PERSON] et al. [5] presented an overview of classical traffic scheduling algorithms that have been successfully deployed to real-world traffic. The paper talks about the deterministic timing-based Webster algorithm, the offset-based GreenWave and Maxband algorithms, the rule-based actuated control, self-organising traffic lights (SOTL), and the Sydney coordinated adaptive traffic system (SCATS) algorithms, as well as the dynamic max pressure algorithm. [PERSON] et al. [8] presented six algorithms utilising reinforcement learning of some form. Reinforcement learning [12] is a machine learning paradigm where a model, referred to as an agent, learns what actions are most optimal to accomplish a specific task in a given environment through a trial-and-error-based learning process. A more in-depth discussion of reinforcement learning is beyond the scope of this paper, but further detail can be found in [13]. [PERSON] and [PERSON] [14] implemented traffic scheduling algorithms that utilise the deep Q-network (DQN) [15] and deep deterministic policy gradient (DDPG) [16] reinforcement learning algorithms that also utilise neural networks. Actuated control-based traffic scheduling algorithms are a broad range of real-time algorithms that utilise sensors and complex sets of rules. Most modern traffic scheduling algorithms in urban areas, such as SCATS and SCOOT [17], are considered actuated control. A more comprehensive review of modern actuated control-based traffic scheduling is beyond the scope of this paper, but more information on these approaches can be found in [PERSON] et al. [18]. Simulation of urban mobility (SUMO) [19] is an established open-source program for traffic simulation. Useful features of this simulator include being able to apply custom traffic light scheduling algorithms to traffic lights and importing real-world road networks from OpenStreetMap ([[https://www.openstreetmap.org](https://www.openstreetmap.org)]([https://www.openstreetmap.org](https://www.openstreetmap.org)) (accessed on 1 July 2023)).