# Multi-Agent Simulation Environment for Logistics Warehouse Design Based on Self-Contained Agents
## 2 Related Work  
There are multi-agent simulation modeling environments [4; 11; 12; 13] for general multi-agent simulations. These environments provide users with the functions to define the simple data structure and behaviors of agents. The focus of general multi-agent simulation modeling environments is analyzing relatively simple multi-agent systems with emergence characteristics that consist of several small agents. If developers try to simulate logistics warehouses using these environments, it is necessary for the developers to have comprehensive knowledge of logistics warehouses, because it is difficult to abstract the system of a logistics warehouse to analyze the desired characteristics. Since the appropriate abstraction is key to realizing effective simulation models [14], the existing environments are not useful for the non-experts of logistics warehouses. There are designated simulation environments [6; 7; 15; 16] for logistics warehouses. Some environments (e.g., [6; 7]) provide users with the functions to evaluate the performance of a particular subsystem with high accuracy to evaluate and design the configuration of these subsystems. These environments focus on subsystems, not an inter-subsystem's overall performance in a logistics warehouse. There are environments for simulating logistics warehouse with high accuracy [15], however, the modeling requires highly detailed configuration with 3D CAD. Additionally, it is difficult to incorporate the existing API (Application Programming Interface) for particular material-handling equipment. There exists research [17; 18] on optimizing logistics warehouse based on multi-agent simulations. For example, in [17], they focus on optimizing logistics warehouse, especially the number of automated guided vehicles (AGVs) used to unload items from tracks. They propose a simulation framework to evaluate each scenario of the unloading task with a different number of AGVs. In the experiment, they discovered that the performance is affected by the warehouse layout, not only the number of AGVs. As this study implies, the simulated system's key characteristics are often unclear at the beginning of consideration. It is typically found out later in the experiment, and it induces the new modification requirements. Since they do not provide a technique to ensure modifiability and low-cost development capability, there is still a need to investigate both of them. There are studies based on logistics network simulation using multi-agent simulation technologies [19; 20]. However, the system architecture of a logistics network is different from warehouses and difficult to apply to warehouse simulation and optimization. Given the related work on logistics warehouse simulation, we focused on the following features:  
* Prototypical and modifiable implementation of inter-subsystems: Current simulation environments focus on individual material-handling equipment behavior, the logistics warehouse's inter-subsystem simulation in detail, or prototypical multi-agent simulation of partial logistics warehouse. We focused on prototypical (low development costs) and modifiable implementation of a simulation model with multiple subsystems and material-handling equipment by incorporating pre-defined messages and data structure. * Not necessary to learn new syntax and interfaces: We only used the Python programming language's syntax for rule and data description. In practice, developers often choose a programming language to model the target logistics warehouse from scratch. From a survey of simulation modeling [21], the largest portion of users choose this approach. One of the most significant reasons is that developers do not want to learn the new programming language's syntax. * Third party functions (APIs, software development kits (SDKs)) can be easily integrated into the simulation model: As long as the desired API library or SDK is usable with the Python programming language, our simulation environment can use the library without developing a designated wrapper.