# Efficient Task Scheduling Using Constraints Programming for Enhanced Planning and Reliability
## 4 Experimental Results
### Summary of Experimental Results  
We tested several cases by duplicating the 3 given works to 6, 9, 12, and 24. Up to 12 works, all the works can be conducted with three workplaces within a year of 260 working days. However, in the case of 24 works, works cannot be performed with three workplaces, and this should be increased to six workplaces, as shown in Table 4. In Table 4, horizon is the maximum days boundary expected when all the tasks are assigned consecutively. CPU time increases when the number of tasks increases. Most of the cases achieved over 99% utilization, except the first case. Some cases even have 100% utilization. The average utilization of all the cases is 99.34%. We used an Intel i7-14700K-based PC with Ubuntu 22.04. In Table 4, we compared the results with a genetic algorithm (GA) using a population size of 50; 30,000 generations; and mutation rate of 0.1. To obtain the optimum solution using the genetic algorithm, we had to tune the parameters by trying several combinations of parameters. When using the parameters for a similar order of CPU time, the GA could not find optimal solutions.  
When the minimum start days for each work is given, the total days required increases, as shown in Table 5. The increased days and utilization depend on the given minimum start days.  
The observed CPU times follow an expected trend: as the number of tasks increases, the CPU time required to compute the optimal schedule grows. This is due to the increased complexity of the problem, which involves a larger number of task dependencies, resource constraints, and possible combinations of task assignments across workplaces. The computational effort required to explore the solution space and satisfy the constraints grows with the size of the problem, leading to a nonlinear increase in CPU time.  
Figure 3: A simple scheduling result with start day constraint as shown in blue arrows.  
Figure 2: A simple scheduling result without start day constraint.  
However, the increase in CPU time is manageable, even for the larger problem instances tested. See the following example:  
For 3 tasks: The algorithm finds a schedule in just 1.37 s.  
For 24 tasks: It takes about 73.49 s to compute the schedule, which is still within a reasonable time frame for practical use in MRO environments where scheduling tasks can span weeks or months.  
This scalability trend indicates that the constraint programming approach remains computationally feasible for small-to-medium-sized MRO scheduling problems. However, as the problem size continues to increase, it is likely that the CPU time will grow more significantly, potentially posing challenges for very large-scale problems involving hundreds of tasks or more.  
The CPU times reported in this study are encouraging, as they indicate that the proposed constraint programming approach can generate high-quality schedules within seconds or minutes for small-to-moderate problem sizes. In practical MRO environments, where maintenance tasks are typically planned well in advance (e.g., weeks or months), these CPU times are highly acceptable. This makes the algorithm suitable for day-to-day scheduling tasks in MRO operations. Even if urgent checkup interruptions occur, it can provide dynamic task scheduling by using a fast automatic task scheduling which can be rescheduled in minutes.