## 4 Results
### Threshold  
To arrive at the optimum threshold value to determine strong rules, the authors ran the proposed approach for values threshold values from \(t_{0.0}\) and \(t_{0.6}\) using a synthetic workload. At \(t_{0.6}\), the fuzzy approach was found to degrade heavily in functionality, whereas the lower threshold values often achieved results close to each other. Plotting results for \(t_{0.6}\), along with the lower threshold values, was found to cause the differences between lower threshold values to become less discernible. Thus, only the comparative graphs of results obtained for threshold values between 0.0 and 0.5 are presented in this subsection. Figure 5a, shows the total number of VMs used at each threshold. Compared to thresholds \(t_{0.0}\) and \(t_{0.1}\), \(t_{0.2}\) was found to require 13.48% and 8.16% more VMs, respectively, whereas for thresholds \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\), it required 5.66%, 8.33%, and 8.44% fewer VMs, respectively. The degree of imbalance between the finish times of VMs for various threshold levels is shown in Figure 5b. When comparing the performance of \(t_{0.2}\) against \(t_{0.0}\) and \(t_{0.1}\), it was found to have a 9.69%, and 7.05% higher degree of imbalance, respectively. Compared to \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\), it had a 3.18%, 4.09%, and 3.32% lower degree of imbalance, respectively. Figure 5c shows the graphs for makespan achieved at various threshold levels. It was found that \(t_{0.2}\) had a 3.89% and 1.83% lower makespan compared to \(t_{0.0}\) and \(t_{0.1}\), respectively, and a 1.49%, 2.94%, and 2.98% higher makespan than \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\), respectively. This can be attributed to the number of VMs used at the aforementioned thresholds, with the use of a higher number VMs contributing to a lower makespan. In Figure 5d, it is found that, in terms of total cost, \(t_{0.2}\) is superior to all the other thresholds, with improvements ranging from 0.30% for \(t_{0.0}\) to 1.64% for \(t_{0.5}\). Graphs showing the performance of the proposed approach at various threshold levels and the average completion times for high-priority tasks are presented in Figure 6a. It was determined that there was no difference between any of the considered thresholds for this measure. The results for average completion times for low-priority tasks are shown  
Figure 13: (**a**) Average waiting times for all tasks. (**b**) Total SLA violation times of high-priority tasks. (**c**) Total number of SLA violations for all tasks. (**d**) Total number of SLA violations for high-priority tasks. in Figure 6b. Here, \(t_{0.2}\) achieved 5.31% and 2.89% lower completion times compared to \(t_{0.0}\) and \(t_{0.1}\), respectively. Compared to \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\), it required 2.04%, 2.72%, and 2.95% more time, respectively, on average, to complete the low-priority tasks. The average waiting time for high-priority tasks was zero for all the compared threshold values, and the graph summarizing this result is presented in Figure 6c. The graph for average waiting time incurred for low-priority tasks is presented in Figure 6d. For this measure, it was found that \(t_{0.2}\) had a 12.20%, and 6.63% lower waiting time when compared to \(t_{0.0}\) and \(t_{0.1}\), respectively. On the other hand, it incurred a 4.68%, 6.26%, and 6.79% longer waiting time compared to \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\),respectively. Figure 7a presents the outputs for average waiting time for all tasks. It was found that for \(t_{0.2}\), the waiting time was 7.10% and 3.86% shorter than the waiting times for \(t_{0.0}\) and \(t_{0.1}\), respectively. On the other hand, its waiting time was 2.72%, 3.63%, and 3.94% longer than that for \(t_{0.3}\), \(t_{0.4}\), and \(t_{0.5}\), respectively. The next measure to consider is the total time spent beyond on high-priority tasks beyond the deadline, which is presented in Figure 7b.