DIVAs is based upon two underlying concepts. In order to manage a large virtual environment efficiently, it is necessary to partition the space into smaller defined areas called cells. Each cell is managed by a special-purpose agent called cell controller. A cell controller assumes two critical roles: cell information management and cell performance management.
Cell information management is related to the cell controller’s responsibility to:
autonomously manage environmental information about its cell; autonomously manage environmental information about its cell; be able to interact with local virtual agents to inform them about changes in their surroundings; be able to communicate with other cell controllers to inform them of external events. Cell performance management is related to the cell controller’s responsibility to:
keep its cell workload under nominal capacity; meet performance requirements (e.g., CPU usage, simulation cycle time); ability to perform re-organization tasks (i.e., split or merge its cell).
A coordinator is a special-purpose agent responsible for monitoring and guiding a collection of cell controllers. Its main goal is to ensure that the overall simulation requirements (i.e., simulation cycle duration time, resources utilization) are met. Cell controllers and coordinator continuously communicate and interact with each other to achieve their goals.
Cell Controller Architecture The cell controller architecture consists of an interaction module, an information module, a task module, and a planning and control module.
The interaction module is used to perceive external events and handles asynchronous communication among controllers as well as synchronous communication between controllers and agents. Controller-to-Agent interaction must be synchronous in order to ensure that agents receive a consistent state of the environment. Since Controller-to-Controller interaction involves high-level self-adaptation and has no bearing on the consistency of the state of the simulated environment, these interactions occur asynchronously.
The knowledge Module contains the data a controller needs to function. It is composed of external and internal knowledge modules which include seven modules:
The Coordinator Model maintains information about the parent coordinator with whom the controller can interact. The Linked Cell Model maintains a list of neighboring cells, that is, those which share a border with the cell. The cell controller uses this information to handle events that occur near boundaries and potentially affect adjacent cells. The Self Model contains information about the controller (e.g., id) as well as the essential characteristics of the cell assigned to the controller such as its identifier and region boundaries. The Agent Model contains minimal information, such as identification and location, about the agents within the cell’s environment region. The Object Model includes information detailing physical entities that are situated within the cell region but are not actual agents (e.g., barricades, buildings, road signs). The Resource Model contains information about the resources available for the controller. The Constraint Model defines the specific properties and laws of the environment.
The task module manages the specification of the atomic tasks that the controller can perform.
The planning and control module serves as the brain of the controller. It uses information provided by the other modules to plan, initiate tasks and make decisions.
The knowledge module is partitioned into External Knowledge Module (EKM) and Internal Knowledge Module (IKM). The EKM serves as the portion of the agent’s memory that is dedicated to maintaining knowledge about entities external to the agent, such as acquaintances and objects situated in the environment. The IKM serves as the portion of the agent’s memory that is dedicated for keeping information that the agent knows about itself, including its current state, physical constraints, and social limitations.