## 2 Background
### The Decentralized Architectures and Multi-Agent Systems  
In decentralized architectures and multi-agent systems, each vehicle is considered a processing unit of its own [40]. The term \"agent\" is used to determine the intelligent actor who is interacting with the environment via an actuator or a sensor. Therefore, a multi-agent system is a product composed of multiple agents interacting via this network to communicate with one another. Using a multi-agent approach within a distributed architecture is viable; however, it must have a unique combination of actions in order to solve a problem. In other words, the specific solutions used for particular issues need to be understood. However, it is not possible to compute a general solution that keeps agents who are interacting with other agents away from performing a specific task [2; 40]. This framework defines a method which can be used to perform the actions and account for the unplanned conditions. This unique method of communication is usually considered a vehicle-to-vehicle communication method [1; 29]. It has an ad hoc structure which ensures the direct communication among vehicles.  
Traffic networks usually fit into a multi-agent paradigm. With the ABM method, it is possible to understand a set of rules which determine the behavior of a specific agent. This process is called the \"mapping\" of all the sensory inputs that can achieve a task [1; 2; 38; 40].  
Multi-agent systems use several different states. All states are designed to work in the sequence of sensing, planning, and acting [11; 13]. The agent first needs to gather information about the environment with the assistance of sensors, and the data collected by the sensors are used to create a model environment. Once the agent is familiar with the environment, it then develops an action plan that can be used to achieve a specific goal, which is made from multiple, smaller, sequential methods that are used to complete the desired task [11; 14]. When using the multi-agent approach, every vehicle acts as an agent. This way, the network is able to receive comprehensive information which is used to make a better decision. These agents are positioned to create a vehicular ad-hoc network (VANET) [14]. VANETs are made from a cluster of agents who are continually moving. With the assistance of a distributed architecture method, modeling vehicles as agents to exhibit behaviors in a trend can be described in detail. However, a distributed architecture approach cannot differentiate among individual vehicles.  
Inside the VANET, the agents are provided with the task of reacting according to changing conditions. To do that, they need to use behaviors that exhibit the right approach. However, behaviors in nature are usually quite reactive when the timing of the changes is unknown to agents. One of the biggest challenges that exists here is how to deal with the information in real time and process it inside the vehicle. Traditionally, an event-looping programming paradigm processes data that are being received by the observer [14]. Using this system, the observer pattern is used with event-handling. As a result, the object maintains a list of dependents who are acting as observers. They are sent out with automatic notifications of the changes in status. It follows that the complexity of the system increases when it is covering larger geographical boundaries with additional agents.  
In a decentralized network, data are captured from the vehicles that share information in the same local range. The exchanged data among agents include but are not limited to: Current position, route, velocity, and type [1; 38; 40]. The data are locally processed by the vehicles. This process of communicating and exchanging data can be considered an example of a pure multi-agent system developed on the ITS framework. Several studies [6; 40] have found that a distributed decentralized approach outperforms a centralized one by improving vehicles' travel times.