# Multi-AGV Scheduling under Limited Buffer Capacity and Battery Charging Using Simulation Techniques
## 4 Multi-AGV Scheduling Rules  
### Simulation Model for a Multi-AGV System  
Simulation modeling for a multi-AGV system is a non-trivial task due to the intricate interactions and dependencies among the entities, including production lines and AGVs. Moreover, in order to apply domain-specific issues, such as limited buffer capacity and battery charging, to a simulation model, complex custom logics need to be developed. In this paper, the simulation model for a multi-AGV system is developed using the FlexSim software, which provides rich 3D visualization for manufacturing shopfloors, a built-in library for modeling AGV systems, and a flexible logic builder for developing custom logics. These advantages of the FlexSim software help to model and simulate multi-AGV systems in an efficient manner. Figure 2(a) depicts a schematic representation of the shopfloor to be modeled, which can be divided into four zones: production zone, drop-off zone, charging zone 1, and charging zone 2. This structure for a shopfloor is motivated by an automobile part manufacturer in South Korea. The production zone contains 20 production lines, and each production line has its own pickup point. The transportation batches at pickup points need to be transported to one of five drop-off points within the drop-off zone by AGVs. We have 10 AGVs and 10 charging stations, and every AGV stays at a charging station at time \(t=0\). The charging stations are grouped into two charging zones, charging zone 1 and charging zone 2, where each charging zone has five charging stations. Note that the path lines are directed, and this can affect the proximity between a production line and a charging zone. For instance, an AGV at charging zone 2 can move to \(L_{11}\) more quickly than other AGVs at charging zone 1. The drop-off zone contains five drop-off points. Moreover, Figure 2(b) shows the layout of the simulation model developed using the FlexSim software. Let \(S_{job}\) denote the set of transportation jobs to be completed, \(S_{AGV}\) the set of available AGVs, and \(S_{CS}\) the set of empty charging stations. During the simulation experiment, new elements can be added to these sets. For instance, a new transportation job will be added to \begin{table}
\begin{tabular}{c c} \hline
**Rule** & **Job to Choose** \\ \hline First in first out (FIFO) & A job with the longest waiting time \\ \hline Longest distance to destination (LDD) & A job with the longest distance between pickup location and drop-off location \\ \hline Shortest distance to destination (SDD) & A job with the shortest distance between pickup location and drop-off location \\ \hline Longest queue in buffer (LQB) & A job at pickup location with the highest \(W(L_{i})\) \\ \hline Shortest queue in buffer (SQB) & A job at pickup location with the lowest \(W(L_{i})\) \\ \hline Random job (RJ) & A job randomly chosen from \(\{job_{k}\}\) \\ \hline \end{tabular}
\end{table} 
Table 2: Job selection rules. \begin{table}
\begin{tabular}{c c} \hline
**Rule** & **AGV to Choose** \\ \hline Longest idle time (LIT) & An available AGV with the longest idle time after last transportation \\ \hline Highest battery level (HBL) & An available AGV with the highest battery level \\ \hline Lowest battery level (LBL) & An available AGV with the lowest battery level \\ \hline Longest distance to pickup location (LDP) & An available AGV with the longest distance to pickup location \\ \hline Shortest distance to pickup location (SDP) & An available AGV with the shortest distance to pickup location \\ \hline Random AGV (RA) & An available AGV randomly chosen from \(\left\{AGV_{j}\right\}\) \\ \hline \end{tabular}
\end{table} 
Table 3: AGV selection rules. \(S_{job}\) whenever a production line produces a transportation batch. Sometimes, an existing element can be deleted from the sets. Assume that a transportation job is assigned to an AGV. Then, the AGV must be deleted from \(S_{AGV}\).