## 3 Results  
The computational results were measured through a 2.6 GHz processor and 8 GB of built-in RAM, considering a 64-bit architecture. The implementation was carried out using the Gurobi optimization solver, embedded with Pyomo programming language. Different performance indicators were considered to measure and quantify the results of each maintenance plan, under several tolerance factors. In addition to the system availability indicators and related indicators, it is also relevant to measure the effective use of the tolerance time windows, with respect to the estimated optimal grouping scheme. In this sense, the following percentage indicators of average advancement \(A^{AV}\) and average delay \(D^{AV}\) of the activities are presented in (29)-(30), where the sets \(IJ^{-}\) and \(IJ^{+}\) exclusively consider the number of early or late execution pairs \((i,j)\), respectively:  
\[A^{AV}=\frac{\sum_{(i,j)\in IJ^{-}}\frac{\left(\left(t^{s}_{ij-1}+T_{i}\right) -t_{ij}\right)}{\varepsilon T_{i}}}{\sum_{i\in I}\left|I\right|_{i}},IJ^{-}= \left\{(i,j):t^{s}_{i,j}-\left(t^{s}_{i,j-1}+T_{i}\right)<0,\;\forall i\in I,j\in J_{i}\right\} \tag{29}\]  
\[D^{AV}=\frac{\sum_{(i,j)\in IJ^{+}}\frac{\left(t^{s}_{ij-}\left(t^{s}_{ij-1}+T _{i}\right)\right)}{\varepsilon T_{i}}}{\sum_{i\in I}\left|I\right|_{i}},IJ^{+ }=\left\{(i,j):t^{s}_{i,j}-\left(t^{s}_{i,j-1}+T_{i}\right)>0,\;\forall i\in I,j\in J_{i}\right\} \tag{30}\]  
Additionally, the percentage frequencies of advanced, delayed, and conservative executions of PM activities will be reported as auxiliary indicators for each instance. These performance indicators are defined through the expressions (31)-(33) as follows:  
\[f^{A}=\frac{\left|IJ^{-}\right|}{\sum_{i\in I}\left|I\right|_{i}},\;IJ^{-}= \left\{(i,j):t^{s}_{i,j}-\left(t^{s}_{i,j-1}+T_{i}\right)<0,\;\forall i\in I,j\in J_{i}\right\} \tag{31}\]  
\[f^{D}=\frac{\left|IJ^{+}\right|}{\sum_{i\in I}\left|I\right|_{i}},\;IJ^{+}= \left\{(i,j):t^{s}_{i,j}-\left(t^{s}_{i,j-1}+T_{i}\right)>0,\;\forall i\in I,j\in J_{i}\right\} \tag{32}\]  
\[f^{0}=\frac{\left|IJ^{0}\right|}{\sum_{i\in I}\left|I\right|_{i}},\;IJ^{0}= \left\{(i,j):t^{s}_{i,j}-\left(t^{s}_{i,j-1}+T_{i}\right)=0,\;\forall i\in I,j\in J_{i}\right\} \tag{33}\]  
Considering the complexity in the representation of the instances, as well as the difficulty of presenting them explicitly, the results of the computational implementation under several tolerance factors are summarized in Table 4. For the implementation of the grouping strategy, it was considered an annual planning horizon (52 weeks), and a maximum tolerance factor of 5%, according to the standard percentages proposed in [46]. According to the reported optimality gap, results reveal that the optimization model has reached optimal solutions for each one of the instances. Simultaneously, a consistent increase in the tolerance factor offers, in turn, a progressive decrease in the system unavailability. The results show the capacity of the formulated framework to generate new grouping schemes as the tolerance factor increases. This observation is corroborated by the progressive decrease in the number of activities carried out on their tentative date. Alternatively, the performance indicators \(A^{AV}\) and \(D^{AV}\) do not show a systematic behavior related to the tolerance factor, as well as \(f^{A}\) and \(f^{D}\). Additionally, the results show an increase in the computing times related to each optimal solution as the tolerance factor increases. This is directly related to the increase in the number of feasible grouping schemes as the time-window tolerances increase their width for each execution pair. Therefore, an increase in the number of grouping schemes implies a greater number of decision variables. However, the computing processing times do not exceed more than 1(s) to solve the optimality problem, which is not a limitation for solving grouping schemes to optimality in reasonable computational times.