The objective of resource leveling is to minimize schedule length while honoring precedence relationships and resource constraints. If we know what a schedule’s optimal leveled length is, we can compare that to leveling results that Project provides. In a prior article, we assessed the optimality of Project’s leveling relative to one particular schedule. The next step is to explore the optimality of Project’s leveling across multiple schedules.
To do this, we need a sample of schedules to study. The Project Scheduling Problem Library (PSPLIB) is a benchmark against which the performance of leveling algorithms has been gauged for over two decades. In particular, we will use the j30 set for which an optimal leveling has been determined for each of the 480 schedules in the set. From the schedule data in this set, we can extract two observations for each schedule, the unleveled schedule length and the optimal leveled schedule length.
By loading the schedules into Microsoft Project Pro 2019 and leveling them using the standard and the ID only leveling orders, we can add Project’s standard and ID only leveled schedule lengths to the observations. A computer program was written to automate the loading and leveling of the schedules. Project’s leveling was done without task splitting or adjustment of resource assignments.
The resulting dataset contains four lengths for each schedule in the sample: unleveled, optimal leveled, Project standard leveled and Project ID only leveled.
Leveled schedule lengths
To show the effect of leveling on schedule length, the leveled scheduled lengths were scaled relative to the unleveled schedule length. As can be seen in the Figure 1 boxplots, the lower bound of leveled schedule lengths is the unleveled scheduled length. Of the 480 schedules in the sample, 216 have an optimal leveled schedule length equal to their unleveled schedule length. Due to the factorial design of the PSPLIB sample, one-quarter (120) of the sample schedules did not need to be leveled. That is, they had no resource over allocations. The remaining 96 schedules could be leveled within available slack.
The boxplots show that the leveled scheduled lengths are positively skewed. There are instances where the optimal leveled schedule length is more than twice the length of the unleveled schedule in this sample. The median increase in schedule length for the optimal leveled schedules is 103%. The median increases in length for the standard and ID only levelings are 112% and 116%, respectively. The distributions of standard and ID only leveling lengths differ significantly from the optimal distribution. And, the distributions of standard and ID only levelings are different from each other.
Leveled schedule lengths relative to the optimal leveling
To show how Project’s leveling varied from the optimal, the standard and ID only lengths were scaled to the optimal leveled schedule length. The boxplots in Figure 2 show that relative to the optimal leveled schedule length, the median increases in length for the standard and ID only levelings are 105% and 109%, respectively. Scaled relative to the optimal schedule length, the distribution of standard leveling lengths is different from the ID only leveling lengths.
Resource utilization and optimal leveled schedule length
Resource utilization is the ratio of a resource’s total assigned work units to total available work units in the unleveled schedule. The number of total available work units is the product of the resource capacity per time period and schedule length. Utilization is averaged across all resources in the schedule. As shown in the figure below, there is a positive correlation between resource utilization and scaled optimal leveled schedule length in this sample of schedules.
The boxplots above compare Project’s levelings of a sample of schedules to the published optimal levelings for those schedules. The distributions of Project’s standard and ID only levelings are different from the distribution of optimal levelings. And, the distributions of standard and ID only levelings are different from each other. While we can see the differences, it is difficult to explain them without explicit knowledge of what algorithms or heuristics Project uses to level schedules.
Resource utilization and optimal leveled schedule length are positively correlated. But, resource utilization may not be the sole predictor of leveled schedule length or a very good one. Other factors such as network topology might influence the leveling performance. More study is needed in this area.
Distributions of leveled schedule lengths are positively skewed, which means we should not be surprised if Project levels a schedule to two or three times its unleveled length. The factors that contribute to this skewing need to be determined.
Schedule samples need to be tailored to specific companies or industries. We cannot generalize leveling behavior based on a single, artificially generated sample. The parameters that are used to generate sample schedules need to be based upon values observed in the field.
See the PSPLIB site for more information about the j30 schedule set and related research.
What do you think?
Were you surprised by Project’s leveling performance? Is finding an optimal leveling useful? What parameters help you describe the resource utilization or network topology of your project schedules? How do these parameters affect your leveling?
Please share your thoughts in the comments below.
I would like to thank Eric Uyttewaal for commenting on a draft of this article.