# Production Optimization in a Grain Facility through Mixed-Integer Linear Programming +
## 7 Overall Improvement of Solution Time and Solution Quality Using Pre-Computed Bounds
The gap was even zero in three cases: instance 11 with ShiftsBound scenario, instance 12 with AllBounds scenario, and 16 with AllBounds scenario, respectively. In instances 3, 4, 7, 12, and 16 the gap was below the considered value of CPX_PARAM_EPGAP parameter (\(1\times 10^{-5}\)), with scenarios ShiftsBound, AllBounds or both, depending on the instance. For the three instances where a gap of zero was achieved (instances 11, 12, and 16), the computed objective value is the same for all bound scenarios. In these cases, the bound scheme reduced the gap metric in all cases except for instances 1 and 5. The gap was even zero in three cases: instance 11 with ShiftsBound scenario, instance 12 with AllBounds scenario, and 16 with AllBounds scenario, respectively. In instances 3, 4, 7, 12, and 16 the gap was below the considered value of CPX_PARAM_EPGAP parameter (\(1\times 10^{-5}\)), with scenarios ShiftsBound, AllBounds or both, depending on the instance. schemes allow guaranteeing optimality, i.e., that the optimal value for the optimization problem is computed. Efficiency results also demonstrate that the largest reductions in the execution time are computed when using the ShiftsBound scenario (e.g., in problem instances 4, 7, 11, 12, 15, and 16). These results suggest that the number of shifts has a higher impact on solution quality than the number of hours. Execution times results confirm that using the proposed bounds schemes improved the global computation times in half the cases. For some instances, significantly large improvements were achieved (e.g., for instances 3, 4, 7, 8, 11, 12, 15, and 16). In those three instances where a gap zero was achieved, the bounds scheme also helped to reduce the overall computational time by 82%, 90% and 96%, respectively. A similar situation occurred for those cases where the computed gap is lower than the considered value of CPX_PARAM_EPGAP parameter, achieving time improvements between 88% and 99%. The NoBounds scenario was able to achieve the CPLEX halting gap in just three instances (instances 3, 11, and 12), without spending the one hour time limit. Even in this instances, the ShiftBound and AllBounds scenarios were able to reduce the computational time significantly. In summary, the proposed bounds scheme improved the quality of the solutions attained, while reducing the computational time in 15 out of the 16 instances solved. The average and best improvements to the execution time for those instances, as well as the average and best objective value improvements respect to the original formulation without pre-computed bounds are reported in Table 10.  
The results in Table 10 indicate that the best time reductions were obtained when pre-computing bound for shifts, with an average time improvement of 22% and a best improvement of 99%. Pre-computing bounds for production hours did not yield to improvements in the execution time. However, when combined with bounds on shifts, large execution time improvements were required. Hence, results indicate that it is worth evaluating different scenarios of the bounds scheme to determine the best variable (or combination of variables) that is suitable to be prebounded. This task can be performed by applying parallel computing techniques using over high performance infrastructures [38], in order to further speed up the computation. The proposed bounds scheme is also combinable with relaxation techniques to be applied in the constrains to further reduce the execution time.