3.1.1. Agent and Agent-Based Modeling

An agent is defined as an entity that reacts to changes in its environment through a reasoning process [10]. The attributes of an agent are autonomy, sociability, reactivity, pro-activeness, adaptiveness, interactivity, rationality, and interactivity, etc. [11]. Russell [12] defines an intelligent agent as an autonomous entity which has the following properties:


An agent structure shows: (1) a set of modules that the agent is decomposed in to, (2) the interaction between these modules and the environment and other agents (shown in Figure 1), and generally, there are three types of agent structures: deliberative architecture, reactive architecture and hybrid architecture [13].

Agent-based modeling is a model of a system with the description of agents and agents' interactions [14]. Agent-based modeling usually models part of the system rather than a whole system due to the complexity of the system.

**Figure 1.** Agent structure [13].
