## 4 Results  
Hereafter, we present the randomly generated test instances used to validate the method proposed and the results obtained with it. As in [40], three types of instances were used, based on [24]: mixed-distance, short-distance, and long-distance instances. In the long-distance instances, all the containers traveled through many ports before being unloaded, staying onboard the ship for a relatively long period of time. In contrast, in the short-distance instances, the containers traveled through few ports before being unloaded and were, on average, onboard for a short period of time. In the mixed-distance instances, some containers traveled through several ports, and other containers traveled through few ports before being unloaded. Another measure that could affect our problem was the occupancy rate (\(OR\)) of the yards. The more containers in the yard, the less space is available for performing relocation movements, which can make it more difficult to solve the problem. Given this, Table 1 presents the computational results for the small- and medium-sized instances, and Table 2 presents the computational results for the large-sized instances. For both tables, column \(I\) indicates the instance number, and \(M\) indicates the instance type: 1 for mixed-distance, 2 for short-distance, and 3 for long-distance shipping. The \(OR\) column gives the yard occupancy rate, and \(H\) and \(W\) indicate the number of rows and columns of the yard, respectively. Columns \(R\), \(C\), and \(B\) indicate the number of rows, columns, and bags of the ship, respectively. \(N\) shows the total number of containers which the ship dealt with throughout the entire problem. Finally, the objective function value (\(OF\)) is presented in terms of the number of relocations performed throughout the entire problem, and the _Time_ column provides the time in seconds that the proposed method took to solve the instance. In addition, the number of ports in the ship's route was equal to five for all instances. After many experiments, the chosen stopping criterion was the maximum number of 15 generations without any improvement to the objective function or when the maximum computational time of 1 h was reached. After these criteria, there was usually very little or  
Figure 10: Representation of the proposed method. no improvement in the objective function. Therefore, after reaching one of the conditions, the optimization problem was stopped, and the best solution obtained thus far was reported. Additionally, the population used had 10 individuals. The crossover operator was set to \(c_{j}=0.8\) and the mutation operator to \(m_{i}=0.3\). The implementation was performed in Python 3.8 and executed on a computer with an Intel Core(tm) i5-4210U (1.70 GHz) with 8 GB of RAM and using 4 threads. \begin{table}
\begin{tabular}{c c c c c c c c c c c} \hline \multirow{2}{*}{\(I\)} & \multirow{2}{*}{\(M\)} & \multicolumn{4}{c}{**Yard**} & \multicolumn{4}{c}{**Ship**} & \multirow{2}{*}{\(N\)} & \multicolumn{2}{c}{**Results**} \\ \cline{3-10}  & & \(OR\) & & \(H\) & \(W\) & \(R\) & \(C\) & \(B\) & & \(OF\) & **Time (s)** \\ \hline  
\hline \end{tabular}
\end{table} 
Table 1: Computational results for small- and medium-sized instances for a problem with five ports. \begin{table}
\begin{tabular}{c c c c c c c c c c c} \hline \multirow{2}{*}{\(I\)} & \multirow{2}{*}{\(M\)} & \multicolumn{4}{c}{**Yard**} & \multicolumn{4}{c}{**Ship**} & \multirow{2}{*}{\(N\)} & \multicolumn{2}{c}{**Results**} \\ \cline{3-10}  & & \(OR\) & & \(H\) & \(W\) & \(R\) & \(C\) & \(B\) & & \(OF\) & **Time (s)** \\ \hline  
600 & 4972 & 4022.46 \\ \hline \end{tabular}
\end{table} 
Table 2: Computational results for large-sized instances for a problem with five ports. From the results presented in Tables 1 and 2, it can be seen that our solution was able to find good-quality feasible solutions for all instances within a reasonable computational time, especially when we consider the large number of rules that was evaluated by the method.