## 4 Numerical Results  
### Minimizing Make-Span  
The ACO algorithm explained in previous section has been implemented in MATLAB. The input includes all jobs for scheduling, their operations as well as processing time and machine of each operation. Users can input the required information into a csv file. Subsequently, the ACO program loads the information from the csv file and executes the optimization algorithm. Once the optimization operation has been performed, a schedule or Gantt chart is generated as output. A use case has been deployed in order to demonstrate the performance of ACO algorithm. In this use case, there are 10 components that correspond to 10 jobs to be scheduled. After damages on these components were identified at an inspection station, the operations of the jobs, their sequences, required machines and processing times were defined as shown in Table 1. These data are also included in the input file for the algorithm to run. Values of the parameters of algorithm are selected as follows: \(\alpha=0.1\); \(\rho=0.1\); \(\beta=0\); \(q_{0}=0.8\); \(\tau_{0}=0.1\). Values of the other parameters which are \(Q\) and \(A\) will be discussed in the next sub-section as they have significant impacts to performance of the algorithm. \begin{table}
\begin{tabular}{c c c c c c c c c c} \hline \hline \multirow{2}{*}{**Job**} & **Operation** & **Operation 1** & \multicolumn{2}{c}{**Operation 2**} & \multicolumn{2}{c}{**Operation 3**} & \multicolumn{2}{c}{**Operation 4**} & \multicolumn{2}{c}{**Operation 5**} \\ \cline{2-10}  & **Process** & **Machine** & **Process** & **Machine** & **Process** & **Machine** & **Process** & **Machine** & **Process** & **Machine** \\ \hline Job 1 & 5 (min) & 2 & 2 (min) & 9 & 3 (min) & 10 & - & - & - & - \\ \hline Job 2 & 2 (min) & 1 & 4 (min) & 2 & 1 (min) & 3 & - & - & - & - \\ \hline Job 3 & 1 (min) & 1 & 4 (min) & 3 & 3 (min) & 2 & - & - & - & - \\ \hline Job 4 & 20 (min) & 1 & 5 (min) & 2 & 16 (min) & 3 & 15 (min) & 4 & 25 (min) & 5 \\ \hline Job 5 & 15 (min) & 1 & 25 (min) & 10 & - & - & - & - & - & - \\ \hline Job 6 & 15 (min) & 6 & 7 (min) & 5 & - & - & - & - & - & - \\ \hline Job 7 & 10 (min) & 1 & 7 (min) & 2 & 20 (min) & 3 & - & - & - & - \\ \hline Job 8 & 20 (min) & 4 & 5 (min) & 5 & 16 (min) & 6 & 15 (min) & 7 & 25 (min) & 8 \\ \hline Job 9 & 15 (min) & 10 & 7 (min) & 8 & - & - & - & - & - & - \\ \hline Job 10 & 15 (min) & 3 & 7 (min) & 6 & - & - & - & - & - & - \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Required machines and processing times of operations in the use case to execute the ACO algorithm. Figure 3a presents the solution of the ACO algorithm, which is the scheduling time, \(C_{max}\), resulted in each iteration during the execution of the algorithm. It can be observed that the solution starts to converge to the minimum value, \(C_{max}=81\) min, after about 10 iterations. Figure 4 shows the Gantt chart that corresponds to the optimized solution. The operations displayed in the same color belong to the same job. For example, three operations of Job 1 \(O_{11}\), \(O_{12}\) and \(O_{13}\) are presented in Figure 4.  
Figure 4: Gantt chart from ACO algorithm. Figure 3: Convergence rate of the developed algorithm with different number of operations: (**a**) 30 operations, (**b**) 60 operations and (**c**) 100 operations. In order to further validate performance of the ACO algorithm, the commercial software Siemens SIMATIC IT Preactor AS has been utilized to schedule the jobs in this use case. Preactor AS uses order at a time scheduling method where each order is loaded in sequence according to predefined dispatching rule. Once an order is selected, all of its operations are loaded in a straightforward manner. Figure 5 presents the Gantt chart provided by this software. The scheduling time is resulted at C\({}_{max}=84\) min, whereas the ACO algorithm provided the schedule with C\({}_{max}=81\) min.