## 5 Results
### Results for Problem Instances of the Large Dataset  
Experiments were also run for problem instances of the large dataset. The problem instances selected were the smaller ones of the large dataset. Experiments only used the first 30 problem instances for each case of two, three, four, five, six, and seven factories, totaling 180 problem instances. This means there were 10 problem instances for each case of scheduling 20 jobs at 5, 10, and 20 machines per factory for two to seven factories. Other problem instances that involved 50, 100, 200, and even 500 jobs, starting at problem index 31 for each factory number group, proved to be beyond the capabilities of this paper's approach for producing optimal results. This behavior was anticipated since the size of the problem (i.e., number of decision variables, number of constraints) assumes high values starting at problem index 31 (i.e., jobs = 50) and reaches extremely high values for problem instances with 100, 200, and 500 jobs. This paper's approach optimally solved the majority of the problem instances within the time allotted for execution to the CP solver, which was 300 s on the hardware and software setting described at the beginning of Section 5. In particular, optimal values were found for 13 out of the 30 problem instances for two factories and for all problem instances (\(5\times 30=150\) problem instances) for three, four, five, six, and seven factories. Moreover, comparison with the best-known results of [PERSON] et al. [13] revealed that all best-knownresults were reached, proving that 163 of them are indeed optimal. For the 17 problem instances that the CP approach proposed in this paper was not able to prove optimality within the allotted time, a lower bound is provided by the approach instead. These lower bounds (all about problem instances with two factories) are presented in the Appendix A at Table A2. Furthermore, the solutions' objective (i.e., makespan), the best-known objective values, and the time needed, either due to the 300 s timeout or because the optimal solution was found, are presented in Appendix A at Tables A2-A7. In the column \"Makespan\" of these tables, the star symbol indicates an optimal result, while the plus symbol indicates that the solution is not proven optimal but is equal to the best-known solution. The time needed to prove optimality for each problem instance that is eventually proved optimal is usually longer than the time needed to reach the optimal value. Indeed, by analyzing these times, it was found that, on average, the optimal value is reached at a fraction of the time needed to prove optimality. This is graphically shown in Figure 8. Moreover, Table 3 shows statistics across the problem instances about how many times reaching optimality is faster than proving optimality. The DFSP model has also been applied to the same problem instances (i.e., the first 30 instances for factories in 2,3,4,5,6,7) of the large dataset. Among the solutions for the 180 problem instances, 133 were optimally solved within 300 s of execution time. The comparison of the solutions with the best-known solutions for the DPFSP model showed that, on 142 of them, the solution that the DFSP model produced is better. On 33 problem instances, the solutions of the DFSP model are equal to the best-known solutions for the DPFSP model, and in only five problem instances, the solutions' objective values are worse (Ta_013_2 with 1008 instead of 1001, Ta_018_2 with 1027 instead of 1025, Ta_021_2 with 1676 instead of 1674, Ta_027_2 with 1677 instead of 1671, and Ta_028_2 with 1621 instead of 1610). Figure 9 compares the execution times that were needed by the solver to reach optimality for both the DPFSP and DFSP models, for problem instances that were optimally solved within 300 s. As expected, the DFSP model, having more degrees of freedom, is a more difficult problem, and for the majority of problem instances, it needs more time to prove optimality. Nevertheless, this effect is minimized when more factories are added.