# Multi-Agent Simulation Environment for Logistics Warehouse Design Based on Self-Contained Agents
## 3 Proposed Multi-Agent Simulation Modeling Environment for Logistics Warehouses
### Multi-Agent Simulation Environment Architecture  
The multi-agent system architecture of the proposed simulation environment is shown in Figure 1. There are three types of agents, i.e., simulation, spatial-temporal and logging agent. The only communication method among these agents is exchanging messages written in the agent communication language. These agents can be running in different computing environments that are networked together via TCP/IP. Since the idea of a performative is effective, the format of agent message is based on KQML (Knowledge Query and Manipulation Language) [23] to ensure ease of description, uniformity, and extensibility. FIPA-ACL [24] can also be utilized as the basic idea of using a performative is inherited in the protocol.  
The simulated entities, such as an automated guided vehicle (AGV), material-handling equipment, and human workers are abstracted as simulation agent. The simulated entities without physical embodiment, such as a warehouse management system (WMS), can also be implemented as a simulation agent. The space and time of the simulation target is represented as a spatial-temporal agent that stores the information of logistics warehouse layouts, each area's attributes, and the physical location of the simulation agents mentioned above. Simulation agents send messages to the spatial-temporal agent to simulate operations (e.g., moving an object) and move themselves.  
All the messages exchanged among simulation agents and the spatial-temporal agents are intercepted by a logging agent. Simulation agents can also log the desired information by sending a message to the logging agent in the designated format at any given simulation time. This method of logging simulation helps users to collect and analyze the simulation results in a distributed environment.  
Figure 1: Overview of proposed multi-agent simulation environment.  
The lifecycle of a simulation is as follows. A simulation starts when the agent workplace, logging agent, simulation agents and then spatial-temporal agent are activated in that order. The simulation ends when the simulation agents terminate themselves according to the embedded knowledge of the simulation, and then the spatial-temporal agent, logging agent, and the agent workplace terminate themselves in that order.  
All the agents communicate with the agent workplace to be a part of the simulation. The agent workplace stores each agent's ID, IP address, port number, and TCP/IP connection for queuing and transferring messages among the agents. This configuration allows developers to model the simulation agents with high heterogeneity, e.g., requiring different operating systems due to an API's restriction. Despite this heterogeneity, agents are able to exchange information, log, and analyze the simulation results in a unified manner by introducing a unified format of messages. This configuration establishes the modifiability of the simulation model by achieving transparency in the runtime environment and APIs used in each simulation agents.