Available online at www.sciencedirect.com
European Journal of Operational Research 189 (2008) 723–733 www.elsevier.com/locate/ejor
Proactive heuristic procedures for robust project scheduling: An experimental analysis Stijn Van de Vonder, Erik Demeulemeester, Willy Herroelen
*
Center for Operations Management, K.U. Leuven Naamsestraat 69, B-3000 Leuven, Belgium Received 22 November 2005; accepted 3 October 2006 Available online 22 January 2007
Abstract Solution-robust project scheduling is a growing research field aiming at constructing proactive schedules to cope with multiple disruptions during project execution. When stochastic activity durations are considered, including time buffers between activities is a proven method to improve the stability of a baseline schedule. This paper introduces multiple algorithms to include time buffers in a given schedule while a predefined project due date remains respected. Multiple efficient heuristic and meta-heuristic procedures are proposed to allocate buffers throughout the schedule. An extensive simulation-based analysis of the performance of all algorithms is given. The impact of the activity duration variance structure on the performance is discussed in detail. 2006 Elsevier B.V. All rights reserved. Keywords: Project scheduling; Uncertainty; Stability; Buffers
1. Introduction The vast majority of the research efforts in project scheduling over the past several years have concentrated on the development of exact and heuristic procedures for the generation of a workable baseline schedule (preschedule or predictive schedule) assuming complete information and a static and deterministic environment. During execution, however, a project may be subject to considerable uncertainty, which may lead to numerous schedule disruptions. Activities can take shorter or longer than primarily *
Corresponding author. Tel.: +32 16326970; fax: +32 16326732. E-mail address:
[email protected] (W. Herroelen).
expected, resource requirements or availability may vary, new activities might have to be inserted, etc. Recent research [14] has demonstrated that when projects have to be executed in the face of uncertainty, proactive–reactive project scheduling procedures are capable of combining schedule stability and makespan performance and the use of an objective function aiming at schedule stability pays off. In [12] it has been shown that a proactive approach is often more effective than a pure reactive approach. However, the literature on proactive stable scheduling procedures is uncovered as being virtually void. For an overview on schedule robustness, we refer to [15]. The objective of this paper is to develop and validate a number of heuristic procedures for generating such stable project baseline schedules. Following common practice in project scheduling (we refer
0377-2217/$ - see front matter 2006 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2006.10.061
724
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
for overviews to [6,7]), we adopt a two-stage approach that first solves the resource-constrained project scheduling problem and afterwards adds safety to the initial schedule in a second stage. The rationale for relying on a two-stage procedure is that we want to allow for the possibility to generate solution robust schedules starting from an existing precedence and resource feasible but ‘‘unprotected’’ schedule (be it the currently available project schedule in the organization set up for a project, or a schedule generated using any exact or heuristic solution procedure for the resource-constrained project scheduling problem (RCPSP)) without having to resolve the resource allocation problem, i.e. the way in which renewable resource units are transferred between the activities. For that reason, the resource flows that solve the resource allocation problem for the initial schedule are preserved in the buffered schedule. The problem used as our vehicle of analysis can be described as follows. A project network G ¼ ðN ; AÞ is represented in activity-on-the-node representation with dummy start and end nodes. All non-dummy project activities have stochastic activity durations dj, are subject to finish start zero-lag precedence constraints and require an integer per period amount rjk of one or more renewable resource types k ðk ¼ 1; 2; . . . ; K) during execution. All resources have a fixed per period availability ak. Every non-dummy activity j has a weight wj that denotes the marginal cost of deviating its realized starting time during execution from its predicted starting time in the baseline schedule. The weight of the dummy end activity wn denotes the cost of delaying the project completion beyond a predefined deterministic project due date dn. The objective is to build a stable precedence and resource feasible baseline schedule by minimizing the stability cost function Rwj ðEjsj sj jÞ, defined as the weighted sum of the expected absolute deviations between the predicted starting times sj of the activities in the baseline and their realized starting times sj during actual schedule execution. The scheduling problem for stability has been shown to be ordinary NP-hard [10]. Both simple heuristics and meta-heuristics will be presented in this paper, the objective of which is to generate stable baseline schedules with acceptable makespan performance. The remainder of the paper is organized as follows. Section 2 introduces the different heuristic procedures. The set-up of the computational experiment is described in Section 3.
Section 4 presents the computational results, while a last section is devoted to overall conclusions. 2. Algorithms The heuristic algorithms described in this section all consider a deterministic project due date dn and start from an initial unbuffered schedule in which time buffers are inserted in order to protect against anticipated disruptions. In this section several buffer allocation algorithms are introduced. Any feasible solution for the deterministic resource-constrained project scheduling problem (RCPSP) using mean activity durations (problem m; 1jcpmjC max [5]) can serve as initial unbuffered schedule. All buffer allocation procedures will be illustrated on the RCPSP solutions obtained by the combined crossover algorithm of Debels and Vanhoucke [2]1 with 50,000 schedule generations as stop condition. This algorithm has been shown to be among the best performing meta-heuristic RCPSP procedures for both small and larger data sets. A recent study [14] investigated the impact of several project due date settings on stability and makespan and a project due date of b1:3 C max c was found to be adequate for most project schedules. The included time buffers are idle periods (gaps) in the schedule between the planned starting time of an activity and the latest planned finish time of its predecessors. The buffers should act as cushions to prevent propagation of a disruption throughout the schedule. Fig. 1 illustrates the insertion of time buffers in a baseline schedule. Fig. 1a shows a minimum makespan schedule. Fig. 1b shows the buffered schedule with time buffers inserted in front of activities 3, 4 and 5. Two factors are taken into consideration in determining the size of the buffer in front of an activity i. First, the variability of all the activities that precede activity i in the schedule (measured by the standard deviation of their duration) is taken into account, because it affects the probability that activity i can start at its scheduled starting time. Second, the weight of activity i, and both the weights of its predecessors and successors contain relevant information, because they reflect how costly it is to disrupt the starting time of activity i in relation to its predecessors and successors in the schedule. 1
An executable program can be found at www.projectmanagement.ugent.be/downloads/RCPSP.
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
Fig. 1. Inserting time buffers in a baseline schedule.
The resource flow dependent float factor (RFDFF) heuristic, proposed in [14], is used as our evaluation benchmark. This heuristic relies completely on the activity weights but does not exploit the available information offered by the activity duration distributions in making its buffering decisions. The operating principles of RFDFF will be recapitulated in Section 2.1. The virtual activity duration extension (VADE) heuristic presented in Section 2.2, relies on the standard deviation of the duration of an activity in order to compute a modified duration to be used in constructing the baseline schedule. The starting time criticality (STC) heuristic (described in Section 2.3) tries to combine information on activity weights and activity duration variances. Section 2.4 introduces an improvement phase that can be added to each of the just mentioned heuristics to enhance their performance. Section 2.5 describes a tabu search meta-heuristic that searches for the best buffer insertion for a given schedule by exploring the neighborhood solutions. 2.1. RFDFF The resource flow dependent float factor (RFDFF) heuristic that has been developed by Van de Vonder et al. [14] as an extension to the adapted float factor (ADFF) heuristic proposed in [9,13], will serve as our benchmark. RFDFF starts from an unbuffered schedule (in this paper this is the feasible RCPSP solution obtained by the combined crossover procedure of Debels and Vanhoucke) and modifies it by adding safety buffers in front of activities. The hope is that the time buffers serve as a cushion to prohibit the propagation of the disruptions through the schedule. The starting time of activity j in the RFDFF schedule is calculated as sj ðSÞ :¼ sj ðBÞ þ aj floatðjÞ, where sj(B) denotes the starting time of activity j in the initial baseline schedule and aj denotes the activity dependent float factor. The total float, float(j), is the difference between the latest allowable starting time of activity j given the project
725
due date (i.e. its starting time in the right-justified version of the unbuffered schedule) and its scheduled starting time in the unbuffered schedule itself. Values of sj(S) are rounded to the nearest integer number. To calculate the float factors aj, we first need to define a resource flow network G0 ¼ ðN ; RÞ [1] on the initial unbuffered schedule. The resource flow network is a network with the same set of nodes (N) as the original project network G ¼ ðN ; AÞ, but with resource arcs connecting two nodes if there is a resource flow between the corresponding activities. It thus identifies how each single item of a resource is passed on between the activities in the schedule. A schedule may allow for different ways of allocating the resources so that the same schedule may be represented by different resource flow networks. We use the single pass algorithm of Artigues and Roubellat [1] to select a feasible resource flow network. The float factors aj are now calculated as aj ¼ bj =ðbj þ kj Þ; where bj is the sum of the weight of activity j and the weights of all its transitive predecessors in both G and G 0 , while kj is the sum of the weights of all transitive successors of activity j in both networks. The weights of activities that start at time 0 are not included in these summations because it is assumed that these activities can always start at their planned starting time and thus do not need any buffering to cope with possible disruptions of their predecessors. The RFDFF heuristic consequently inserts longer time buffers in front of activities that would incur a high cost if started earlier or later than originally planned and because (transitive) predecessors in G 0 have also been included when calculating the aj’s, resource constraints will always remain satisfied in the resulting schedule. 2.2. VADE The virtual activity duration extension (VADE) heuristic starts from a completely different point of view by relying on the variability in the activity durations of the predecessors of an activity to decide on the need for a time buffer. In fact, the variability in an activity duration is used as a surrogate for the variability in the completion time of that predecessor. The standard deviations rj of the activity durations, assumed known, are used to iteratively compute virtual duration extensions for the nondummy activities. These virtual activity durations are used to update the activity starting times and,
726
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
by doing so, insert time gaps in the baseline schedule. The updated activity starting times are then used to generate the buffered baseline schedule using the original expected activity durations. The iterative procedure works as follows: Procedure 1. VADE For j ¼ 1; 2; . . . ; n 1 do d 0j ¼ Eðdj Þ and vj ¼ 1; Compute s0j ; j ¼ 1; 2; . . . ; n; While s0n 6 dn do v v Find j : rjj ¼ minj frjj g (tie-break: P max swi ¼ i¼succðjÞ wi Þ; vj ¼ vj þ 1; d 0j ¼ d 0j þ 1; Compute S 0 and s0n ; Generate the buffered baseline schedule
Initially each non-dummy activity duration d 0j for j ¼ 1; 2; . . . ; n 1 is set equal to its expected value Eðdj Þ and all vj = 1. The activity starting times s0j are initially computed by creating an early start schedule for GðN ; A [ RÞ using the activity durations d 0j . As long as the project duration stays within the due date, the activity starting times are iteratively updated as follows. Determine the activity j* for v v which rjj ¼ minj frjj g. Ties are broken by selecting the activity for which the sum of the weights of all its non-dummy successors is the largest. Set vj ¼ vj þ 1 and d 0j ¼ d 0j þ 1. Then, 8ðj ; kÞ 2 A [ R: if s0j þ d 0j > s0k then the schedule needs to be updated by postponing s0k by 1 time unit. This approach will then be repeated for the successors of k until an updated schedule S 0 is obtained. That schedule will be the input of the next iteration step. At every iteration step, S 0 will be evaluated by simulation and the schedule that minimizes Rwj ðsj s0j Þ will be the output schedule of the VADE procedure.
tify for each activity how critical its current starting time is in the current intermediate baseline schedule. The starting time criticality of an activity j is defined as stcðjÞ ¼ P ðsðjÞ > sðjÞÞ wj ¼ cj wj , where cj denotes the probability that activity j cannot be started at its scheduled starting time. The iterative procedure runs as follows. At each iteration step (see pseudocode below) the buffer sizes of the current intermediate schedule are updated. The activities are listed in decreasing order of the stc(j). The list is scanned and the size of the buffer to be placed in front of the currently selected activity from the list is augmented by one time period such that the starting times of the activity itself and of the direct and transitive successors of the activity in G and G 0 are increased by one time unit. If this new schedule has a feasible project completion (sn 6 P dn ) and results in a lower estimated stability cost ð j2N stcðjÞÞ, the schedule serves as the input schedule for the next iteration step. If not, the next activity in the list is considered. Whenever we reach an activity j for which stc(j) = 0 (all activities j with sj ¼ 0 are by definition in this case) and hence no feasible improvement is found, a local optimum is obtained and the procedure terminates. Procedure 2. The iteration step of the STC heuristic
2.3. STC
Calculate all stc(i) Sort activities by decreasing stc(i) While no improvement found do take next activity j from list if stc(j)=0: procedure terminates else add buffer in front of j update schedule if improvement and feasible do store schedule goto next iteration step else remove buffer in front of j restore schedule
The starting time criticality heuristic exploits information about both the weights of the activities and the variance of the activity durations. The basic idea is to start from an initial unbuffered schedule and iteratively create intermediate schedules by adding a one-unit time buffer in front of that activity that needs it the most in the current intermediate schedule, until adding more safety would no longer improve stability. We thus need a measure to quan-
Regrettably, the probabilities cj are not easy to compute. We define k(i, j) as the event that predecessor i disturbs the planned starting time of activity j. The probability that this event occurs can be expressed as P ðkði; jÞÞ ¼ P ðsi þ di þ LPLði; jÞ > sj Þ in which LPLði; jÞ is the sum of the durations d h ¼ Eðdh Þ of all activities h on the longest path betweenS activity i and activity j in the graph GðN ; A RÞ. cj can then be calculated as
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
S cj ¼ P ð ði;jÞ2T ðA[RÞ kði; jÞÞ, with T ðA [ RÞ being defined as the set of all direct and transitive2 arcs in the original network and the resource flow network. STC makes two assumptions in approximating cj: (a) predecessor i of activity j starts at its originally planned starting time when calculating P ðkði; jÞÞ and (b) only one activity at a time disturbs the starting time of activitySj. Assumption (b) means that we estimate P ð ði;jÞ2T ðA[RÞ kði; jÞÞ by P ði;jÞ2T ðA[RÞ P ðkði; jÞÞ, i.e. we assume that P ðkði1; jÞ\ kði2; jÞÞ ¼ 0 for each ði1; jÞ; ði2; jÞ 2 T ðA [ RÞ. Assumption (a) boils down to setting si ¼ si . By combining P both assumptions we can approximate c as c0j ¼ ði;jÞ2T ðA[RÞ P ðdi > sj si LPLði; jÞÞ such that stcðjÞ ¼ c0j wj . Because si, sj and LPL(i, j) and the distribution of di are all known, we can now easily calculate all values of c0j and stcðjÞ for every activity j.
2.4. Improvement heuristic The improvement heuristic starts from an initial solution. This can be the initial unbuffered schedule or a schedule found by any of the heuristics discussed above. The activities are entered in a list in decreasing order of their starting time in the input schedule S. The activities are considered in the order dictated by the list. For the currently selected activity j from the list, it is determined how many periods the activity can be moved backward and forward in time without affecting the starting time of any other activity in the schedule. A neighborhood of the current solution is constructed by including for each discrete time instant in this displacement interval a schedule with sj equal to this time instant and all other starting times remaining unchanged. These schedules are then all evaluated by simulation and the time instant that yields the lowest stability cost, is chosen as the new starting time of the current activity in the updated schedule. With this updated schedule, we proceed to the next activity in the list. If the next activity in the list is the dummy start activity, we restart the list. If the list is scanned entirely without any improvement, a local optimum has been found and the procedure terminates. Basically the algorithm is a combination of steepest and fastest descent. For an activity selected from the list, we examine all possible starting times and 2
TG ¼ ðN ; TAÞ represents the transitive closure of G ¼ ðN ; AÞ with edge ði; jÞ 2 TA if there is a directed path from i to j in A.
727
select the best one (steepest descent). However, we do not examine the entire range of starting times of all the activities and select the best, but instead we already update the schedule if a better solution is found for the current activity before proceeding to the next activity in the list. This fastest descent part of the algorithm is included to speed up computations. 2.5. Tabu search Descent approaches may terminate at a local optimum after some iterations when no further improvement can be found in the direct neighborhood of the current solution. Glover [3,4] developed the principle of tabu search algorithms, which allow to select the mildest ascent solution to continue the search whenever no improvement can be found. A tabu list keeps track of recent solutions that will be forbidden moves in order to avoid cycling. The tabu search procedure departs from the STC-schedule described in Section 2.3. At each iteration step, the neighborhood of the current solution contains at most 2 · (n 1) solutions. For each non-dummy activity of the project, we have two possible neighborhood solutions. One is obtained by increasing the buffer in front of the activity in the schedule by one time period, if possible (plusmove). The other is obtained by decreasing the buffer size of this activity by one unit, if possible (minus-move). The buffers in front of all other activities are left unchanged. Two tabu lists are kept, pffiffiffi both of length b nc. The first list stores all recent plus-moves, while the second one stores all recent minus-moves. Before allowing a new plus-move, we have to check whether this activity is not in the second list. If a buffer size decrease (minus-move) delivers the best solution in the neighborhood, the first tabu list has to be checked. By doing so, we avoid cycling as much as possible, but we do allow an activity to be consecutively selected more than once if the considered moves have the same direction. The aspiration criterion defines that a move that would yield a new best solution will be accepted even if it would normally be prohibited by the tabu list. Because the tabu search described here only adds or subtracts one unit of time buffer at a time, large shifts of the starting time of an activity compared to its initial starting time will only occur if all intermediate positions yield acceptable solutions. This might obstruct the procedure to move an activity into its actual best positioning for all other
728
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
activity starting times considered fixed. To remove this inconvenience, one iteration step of the improvement heuristic of Section 2.4 will be allowed after a fixed number of iterations (100). The overall best found solution is stored throughout the whole procedure. The tabu search stops after a fixed number of iterations. 3. Experimental set-up All proposed algorithms have been coded in Microsoft Visual C++ 6.0. The procedures were tested on the well-known J30, J60 and J120 PSPLIB data sets [8]. For details on these instances we refer to the parameter settings section of the PSPLIB website (http://129.187.106.231/psplib/). For an extensive study of the impact of the parameter settings on schedule stability we refer to [14]. In order to investigate the impact of activity duration variability, we distinguish between low, high and random duration variability. High duration variability means that the real activity durations are all discretized values drawn from a right-skewed beta-distribution with parameters 2 and 5, that is transformed in such a way that the minimum duration equals 0:25 Eðdj Þ, the mean duration equals Eðdj Þ and the maximum duration equals 2:875 Eðdj Þ. Low duration variability means that the realized activity durations are also discretizations of values drawn from a beta-distribution with parameters 2 and 5, but with the mean equal to Eðdj Þ and with minimum and maximum values equal to 0.75 times and 1.625 times Eðdj Þ, respectively. Random duration variability stands for the case where no overall uncertainty level exists for the project and the variabilities are activity dependent. We randomly select for every activity whether the activity has high, low or medium duration variability. The distribution functions for high and low variability are as explained above, while medium duration vari-
ability is an intermediate case where the realized activity durations are drawn from a beta-distribution with parameters 2 and 5, but with minimum and maximum values equal to 0.5 times and 2.25 times Eðdj Þ, respectively. Fig. 2 shows the distribution functions from which the realized durations are drawn for an activity with an expected 3-period duration. The wj in the stability cost Rwj ðEjsj sj jÞ are drawn for each non-dummy activity j from a discrete triangular distribution with P ðwj ¼ qÞ ¼ ð21 2qÞ% for q 2 f1; 2; . . . ; 10g. This distribution results in a higher probability for low weights and in an average weight wavg ¼ 3:85. The weight wn of the dummy end activity denotes the marginal cost of not making the projected project completion and will be fixed at b10 wavg c ¼ 38: For an extensive evaluation of the impact of the activity weight of the dummy end activity, we refer to [12,14]. Extensive simulation will be used to evaluate all procedures on stability and computational efficiency. For every network instance, two sets of 100 executions (referred to further on as the training set and the test set) are simulated by drawing different actual activity durations from the described distribution functions. The test set of executions is run to avoid overfitting as will be explained below. Using the simulated activity durations, the realized schedule is constructed by applying the following reactive procedure. First, an activity list is deduced from the baseline schedule by ordering the activities in increasing order of their starting time. Ties are broken by decreasing order of activity weight, then by increasing activity number. Afterwards, the realized schedule is constructed by applying a parallel schedule generation scheme (SGS) on this activity list using the actual activity durations. Applying such a SGS in a stochastic environment is a multi-stage decision process that starts at any schedule breakage point as many unscheduled
Fig. 2. Distribution functions for low (a), medium (b) and high (c) duration variability if Eðdi Þ ¼ 3.
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
activities as possible in accordance with the precedence and resource constraints. The scheduling decisions at time t rely on the observed past and the statistical knowledge of future disruptions. To maintain stability, an activity is never allowed to start earlier than its scheduled starting time. Thus, at each decision point we scan the ordered activity list to select the set of eligible unscheduled activities that have a baseline starting time that is not larger than the current decision time. It should be observed that the resource allocation (i.e. the flow network) of the resulting realized schedule and the baseline schedule may differ. Investigating different robust reactive procedures is subject to further research. The algorithms proposed in Sections 2.4 and 2.5 select the best neighborhood solution by evaluating several scenarios of disruptions drawn from the stochastic activity duration density functions. Including information about these simulated disruptions might make the buffer allocation decision process subject to overfitting to these disruption scenarios. The best schedule in the simulation experiment will not necessarily result in the best schedule for the disruptions that will occur during the actual project execution, even if we assume that they are drawn from the same density functions. As mentioned above, we try to detect overfitting by examining the results on both the training and test set of execution scenarios. 4. Computational results All computational results have been obtained on a Pentium IV 2.4 GHz personal computer. A total of ten scheduling procedures are evaluated. The heuristic RCPSP solution obtained by the combined crossover algorithm of Debels and Vanhoucke [2] serves as the benchmark. Algorithms 2–4 are the RFDFF, VADE and STC heuristics introduced in Sections 2.1–2.3. Algorithms 5–8 are all instances of the improvement heuristic of Section 2.4 with the solutions of Algorithms 1–4 as initial solution. The tabu search procedure of Section 2.5 is executed with 100 (Algorithm 9) and 300 (Algorithm 10) iteration steps, respectively. Algorithms 1–4 will be referred to as simple heuristics, while Algorithms 5–10 will be called the improvement heuristics. For every algorithm we calculate the average stability cost (Stab) over all networks and executions on both a training set and a test set of simulated disruptions. %Best denotes the percentage of network instances for which a certain algorithm yields the
729
minimum stability cost among the algorithms within its class. Again, this measure will be calculated for training and test set disruptions to examine the degree of overfitting. We feel that comparing simple heuristics with improvement algorithms would give few additional insights. Finally, also the average computational times (in seconds) are given for each algorithm. Note that the computational time of Algorithms 2–10 include the computational time of Algorithm 1, because the RCPSP always needs to be solved. Also, the reported computational times of the improvement heuristics 5– 10 will comprise the time to calculate their initial solution. Results of the tabu search procedure on the J120 network instances have been omitted due to the enormous computational burden required to solve them. In the remainder of this section, results will be discussed for the three activity duration variability cases introduced in the previous section. 4.1. High duration variability Tables 1–3 show the average results on the PSPLIB data sets when all activities are subject to high activity duration variability. 4.1.1. Simple heuristics Tables 1–3 reveal that STC gives by far the best results among the simple heuristics. Although VADE and RFDFF have a much smaller stability cost than the unbuffered schedule, they only outperform STC on a few network instances. On average, VADE shows worse results than RFDFF on the J30 and J60 sets, but surprisingly Table 1 Results on PSPLIB 30 data set with high duration variability Algorithm
1. 2. 3. 4.
Training set
Test set
Stab
Stab
%Best
Time %Best
RCPSP RFDFF VADE STC
403.49 138.21 145.28 118.31
0 3 2 95
404.98 139.00 147.25 118.78
0 4 2 95
0.38 0.39 0.49 0.40
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
107.59 101.13 100.96 100.33 99.36 99.17
3 19 14 14 53 66
116.62 109.48 109.43 108.49 108.17 108.08
9 21 22 25 24 27
2.29 1.62 1.75 1.51 8.86 25.59
98.74
100
106.10
100
11. Best
730
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
Table 2 Results on PSPLIB 60 data set with high duration variability Algorithm
1. 2. 3. 4.
Training set
Test set
Stab
Stab
%Best
Time %Best
RCPSP RFDFF VADE STC
997.19 242.07 254.74 198.76
0 2 5 94
1002.15 241.65 255.24 198.62
0 3 4 94
0.80 0.81 1.38 0.98
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
194.41 159.79 158.10 157.69 156.22 155.18
0 11 17 9 16 64
210.36 173.98 173.21 171.78 171.11 170.54
1 18 16 20 23 29
15.29 9.34 10.09 8.73 48.37 139.86
11. Best
154.17
100
167.41
100
Table 3 Results on PSPLIB 120 data set with high duration variability Algorithm
Training set
1. 2. 3. 4.
RCPSP RFDFF VADE STC
3235.08 516.37 502.20 433.49
0 1 15 84
3232.81 515.73 503.26 432.40
0 1 15 85
1.97 2.00 5.34 3.46
5. 6. 7. 8.
RCPSP D RFDFF D VADE D STC D
654.92 338.07 330.62 331.33
0 15 47 38
701.56 377.48 372.98 371.03
0 19 39 42
122.74 56.92 56.21 51.05
325.22
100
363.15
100
Stab
9. Best
Test set
%Best
Stab
Time %Best
generates better results on the J120 problem set. However, when we only select the 60 resource intensive networks with resource factor exceeding 0.5 and resource strength equal to 0.2 from the PSPLIB J30 data set, we observe that the average stability cost of the VADE heuristic equals 172.96, which is significantly better than the stability costs of RFDFF (186.81). We might thus conclude that RFDFF encounters problems when dealing with resource intensive networks. In these networks many resource conflicts need to be resolved, which will lead to more extra precedence relations in the resource flow network and eventually to a larger Cmax for the RCPSP and thus a larger dn. RFDFF typically allocates a larger portion of the total safety to the dummy end activity than the other heuristics. For resource intensive networks, the total safety included (recall that dn ¼ b1:3 C max c) might be too high such that RFDFF overprotects the project completion and has to pay a high extra stability cost for this unnecessary extra protection due to poorly
buffered intermediate activities. Also larger networks, i.e. networks with more activities, will in general result in a larger makespan and this explains the fact that VADE outperforms RFDFF on the J120 set. The required computational effort is highly correlated with the number of time-consuming3 evaluations needed in the procedure, which is low for all simple heuristics. Because VADE selects the best among a range of solutions, its computational time is the most demanding among the simple heuristics. Especially for the J120 networks the computational time of VADE exceeds this of the other simple procedures. For the same reason, VADE might be slightly affected by overfitting. Indeed, if there is an increase in average stability cost in the test set over the training set results, it is more pronounced for VADE than for the other simple heuristics. However, this overfitting is clearly not critical. 4.1.2. Improvement heuristics Comparing Algorithms 5–8 on the training set reveals that all stable project schedules (2–4) provide good starting solutions for the improvement heuristic of Section 2.4. Only the initial schedule leads to a substantially higher stability cost and computational effort. As somewhat expected, tabu search obtains the best results of all heuristics. The last row represents the average over all networks of the best solutions found by any of the algorithms. In 66% of the J30 networks and 88% of the J60 networks, this best solution has been obtained by Tabu 300. The deviation between the average stability cost of Tabu 300 and the stability cost of row 11 is around 0.5% for both data sets. The 2 · (n 2) evaluations required at each of the 300 (100) iteration steps of the tabu search procedure account for the increase in computation time. When n ¼ 120 the required computational effort of the improvement heuristic becomes more demanding. Surprisingly, VADE results in the best starting solution for the descent approach in 47% of the cases, while STC only delivers the best starting solution in 38% of the networks. When comparing the performance of the improvement algorithms on the test set, we observe an increase in the average stability costs, while the mutual differences in stability cost between the 3 Remember that each evaluation consists of 100 simulated executions of the project that have to be scheduled by using the parallel SGS.
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
algorithms are largely reduced in J30 and J60. Although Tabu 300 remains slightly better than the improvements heuristic 6–8 on Stab, the small differences make it harder to justify the high computational burden of Tabu 300. We also note that the performance deviation of Tabu 300 from the best result found over all 10 algorithms has increased from 0.5% to approximately 1.9%. We may conclude that the tabu search is subject to overfitting. 4.2. Low duration variability Recent research [12] showed that when activity duration variability is rather low, proactive scheduling becomes increasingly attractive because the disadvantage in makespan performance compared to a minimum duration schedule becomes very small, while the improvement on stability remains large. By consequence, the low variability case of this section might be considered particularly interesting. Remark that increasing dn has been shown [12] to have a similar impact on solution robustness. The amount of uncertainty in a project should always be regarded in accordance with the tightness of the project due date. 4.2.1. Simple heuristics Tables 4–6 give an overview of the obtained results. Compared to the results of Section 4.1.1 we observe that RFDFF performs relatively worse on the training set and is even dominated (%Best = 0) on all networks by the other simple heuristics. RFDFF does not use any information about activity duration variability and will thus construct exactly the same schedule whatever the amount of uncertainty in the environment. While Table 4 Results on PSPLIB 30 data set with low duration variability Algorithm
Training set
Test set
Stab
%Best
Stab
124.12 6.10 1.69 1.09
0 0 16 84
123.90 6.07 1.85 1.07
0 0 10 90
0.38 0.38 0.46 0.40
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
5.84 1.23 0.76 0.67 0.60 0.60
0 8 15 36 78 81
6.74 1.76 1.33 1.06 1.19 1.20
0 5 11 35 23 24
1.82 1.06 0.93 0.82 5.40 15.16
11. Best
0.57
10
0.85
100
1. 2. 3. 4.
RCPSP RFDFF VADE STC
Time %Best
731
Table 5 Results on PSPLIB 60 data set with low duration variability Algorithm
1. 2. 3. 4.
Training set
Test set
Stab
Stab
%Best
Time %Best
RCPSP RFDFF VADE STC
337.05 11.88 3.25 1.83
0 0 8 92
335.09 11.85 3.33 1.80
0 0 8 93
0.80 0.81 1.19 1.01
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
21.80 2.00 1.29 1.03 0.91 0.89
0 1 8 19 75 88
23.96 2.84 2.13 1.58 1.67 1.75
0 3 9 35 24 24
9.65 5.45 4.34 3.77 31.13 87.18
0.87
100
1.39
100
11. Best
Table 6 Results on PSPLIB 120 data set with low duration variability Algorithm
Training set
Stab
%Best
1. 2. 3. 4.
RCPSP RFDFF VADE STC
1359.74 27.74 6.82 4.83
0 0 15 85
1364.97 27.83 7.04 4.86
0 0 13 88
1.97 2.00 4.14 3.48
5. 6. 7. 8.
RCPSP D RFDFF D VADE D STC D
116.43 5.24 2.54 2.34
0 1 37 62
125.37 7.35 4.33 3.79
0 2 29 58
55.62 29.67 23.05 21.27
2.17
100
3.52
Stab
9. Best
Test set
%Best
Time
this procedure provides reasonable results in the case of high variability, its stability cost in the case of low variability is not competitive with the stability cost values obtained by other simple heuristics. RFDFF typically overprotects the project completion, causing poorly buffered intermediate activities and unnecessary stability losses during execution. STC ranks once again best among the simple heuristics, closely followed by VADE. Taking into account that wavg ¼ 3:85, their low average stability costs (e.g.: <2 for J60) indicate that almost every activity of the project will be executed as planned by applying these buffer allocation procedures without any loss in makespan performance compared to the RCPSP solution. The results obtained on the test set are very similar. We only note a substantial smaller %Best performance for VADE on J30. Because VADE evaluates multiple solutions and selects the best one, it does not come as a surprise that this heuristic
732
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
is somewhat subject to overfitting, while all other simple heuristics do not use any evaluation for buffer allocation and are by definition unaffected by overfitting. 4.2.2. Improvement algorithms Improvement Algorithms 6–10 all generate extremely satisfying results. Tabu 300 again ranks best among all heuristics on the training set. On the test set, we remark that STC D outperforms Tabu 300 on Stab as well as %Best for J30 and J60. Even the simple heuristic STC without improvement phase generates a comparable average stability cost than Tabu 300. The improvement phase in STC D has almost no impact. The more intensive local search done by the tabu search algorithm only overfits the baseline schedule on the simulated disruptions in the training set. Tabu search is certainly not recommended in the low duration variability case. 4.3. Random duration variability In this case, we assume that the project manager is able to estimate the amount of uncertainty present in each individual activity. By taking this information into account when allocating buffers VADE and STC construct baseline schedules that should be better adapted to the project under consideration. Overall, the conclusions (Tables 7–9) are very similar to the ones obtained for the high duration variability case of Section 4.1. First, STC is again by far the best performing simple heuristic on all data sets. Second, the tabu search procedure obtains the best overall results, although the differences Table 7 Results on PSPLIB 30 data set with random duration variability Algorithm
1. 2. 3. 4.
Training set
Test set
Stab
Stab
%Best
Time %Best
RCPSP RFDFF VADE STC
267.88 57.71 54.35 40.27
0 2 2 96
268.48 57.73 54.82 40.13
0 3 3 95
0.38 0.39 0.47 0.40
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
35.41 32.15 31.65 31.44 30.87 30.81
3 15 17 20 55 66
39.17 35.63 35.17 34.60 34.52 34.51
9 16 17 27 29 31
2.07 1.39 1.47 1.25 7.53 21.60
11. Best
30.41
100
33.34
100
Table 8 Results on PSPLIB 60 data set with random duration variability Algorithm
1. 2. 3. 4.
Training set
Test set
Stab
Stab
%Best
Time %Best
RCPSP RFDFF VADE STC
695.83 103.78 95.25 67.26
0 0 5 95
696.06 104.24 96.46 67.92
0 0 3 96
0.80 0.81 1.25 1.00
5. RCPSP D 6. RFDFF D 7. VADE D 8. STC D 9. Tabu 100 10. Tabu 300
71.52 50.37 48.37 47.83 46.91 46.59
0 8 19 11 31 64
78.37 56.31 54.38 53.63 53.06 52.82
2 11 20 19 28 33
13.58 7.81 8.09 6.69 40.57 116.87
11. Best
45.83
100
51.26
100
Table 9 Results on PSPLIB 120 data set with random duration variability Algorithm
1. 2. 3. 4.
RCPSP RFDFF VADE STC
5. 6. 7. 8.
RCPSP D RFDFF D VADE D STC D
9. Best
Training set
Test set
Stab
Stab
%Best
Time %Best
2462.45 230.97 195.86 151.80
0 0 9 91
2466.96 230.83 198.44 152.95
0 0 6 94
1.97 2.00 4.42 3.63
305.60 111.38 102.00 102.45
0 10 45 45
331.36 127.00 117.96 117.39
0 11 45 45
104.60 45.37 42.67 38.59
98.89
100
113.36
100
between training set and test set indicate that they are partially affected by overfitting. The RFDFF schedule that does not use the available extra information, now performs on average worse than VADE on J30 and J60 too, while its disadvantage becomes even more explicit on the J120 set. We might conclude that STC (D) manages best to deal with random duration variability. Apart from the tabu search procedure, we see few reasons to use other heuristics than STC in the random variability case. 5. Conclusions and further research Proactive project scheduling is concerned with building stable baseline schedules that are able to absorb most of the anticipated disruptions during project execution. In this paper, we presented various heuristic algorithms for inserting time buffers in a project schedule.
S. Van de Vonder et al. / European Journal of Operational Research 189 (2008) 723–733
An extensive simulation-based experiment on PSPLIB network instances revealed that the STC heuristic in general ranks best among the simple heuristics that do not rely on an improvement phase. STC uses information on activity weights and activity duration variability for the buffer allocation process. Improvement heuristics will typically yield better solutions, but may be subject to overfitting. To detect this, results were examined on both a training and a test set, where the test set was constructed by drawing different actual activity durations from the distribution function. When the project environment comprises low activity duration uncertainty, any improvement on the STC baseline schedule will very likely turn out to be overfitting during project execution. When some or all project activities are subject to considerable uncertainty, local search will improve the stability of the baseline schedule even after the impact of overfitting is removed. The proposed tabu search procedure results in the minimum expected cost of the project, but is rather time consuming. A descent approach with STC (or VADE) as initial scheduling procedure results in an almost equally small expected stability cost and requires much less computational effort to calculate the baseline schedule. In this paper buffers were heuristically allocated to a given initial unbuffered schedule while the resource allocation was kept fixed. The development of efficient exact buffer allocation procedures is a topic for further research. The study of the impact of different initial schedules and different resource allocations on the efficiency and effectiveness of the buffer allocation process is also an interesting open research issue. Ultimately, we aim at finding an integrated solution-robust approach for scheduling, resource allocation and buffering (see also [11], Section 6.5 where such an integrated approach has been proposed that relies on a surrogate measure of early and late floats). Acknowledgement This research has been supported by Project OT/ 03/14 of the Research Fund K.U. Leuven.
733
References [1] C. Artigues, P. Michelon, S. Reusser, Insertion techniques for static and dynamic resource-constrained project scheduling, European Journal of Operational Research 149 (2) (2003) 249–267. [2] D. Debels, M. Vanhoucke, Future research avenues for resource constrained project scheduling: Search space restriction or neighbourhood search extension, Ghent University, Belgium, Tech. Rep., 2006. [3] F. Glover, Tabu search, Part I, INFORMS Journal of Computing 1 (1989) 190–206. [4] F. Glover, Tabu search, Part II, INFORMS Journal of Computing 2 (1990) 4–32. [5] W. Herroelen, B. De Reyck, E. Demeulemeester, On the paper ‘Resource-constrained project scheduling: Notation, classification, models and methods by Brucker et al.’, European Journal of Operational Research 128 (3) (2000) 221– 230. [6] W. Herroelen, R. Leus, Robust and reactive project scheduling: A review and classification of procedures, International Journal of Production Research 42 (8) (2004) 1599–1620. [7] W. Herroelen, R. Leus, Project scheduling under uncertainty – survey and research potentials, European Journal of Operational Research 165 (2005) 289–306. [8] R. Kolisch, A. Sprecher, PSPLIB – a project scheduling library, European Journal of Operational Research 96 (1997) 205–216. [9] R. Leus, The generation of stable project plans, Ph.D. dissertation, Department of applied economics, Katholieke Universiteit Leuven, Belgium, 2003. [10] R. Leus, W. Herroelen, The complexity of machine scheduling for stability with a single disrupted job, Operational Research, Letters 33 (2005) 151–156. [11] C. Schwindt, Resource Allocation in Project Management, Ser, GOR Publications. Springer, 2005. [12] S. Van de Vonder, E. Demeulemeester, W. Herroelen, An investigation of efficient and effective predictive–reactive project scheduling procedures, in: E.L. Demeulemeester, W.S. Herroelen (Eds.), Special Issue on Project Scheduling under Uncertainty, Journal of Scheduling 10 (2), in press. [13] S. Van de Vonder, E. Demeulemeester, W. Herroelen, R. Leus, The use of buffers in project management: The tradeoff between stability and makespan, International Journal of Production Economics 97 (2005) 227–240. [14] S. Van de Vonder, E. Demeulemeester, W. Herroelen, R. Leus, The trade-off between stability and makespan in resource-constrained project scheduling, International Journal of Production Research 44 (2) (2006) 215–236. [15] S. Van de Vonder, E. Demeulemeester, R. Leus, W. Herroelen, Proactive/reactive project scheduling – trade-offs and procedures, in: J. Jozefowska, J. Weglarz (Eds.), Perspectives in Modern Project Scheduling, 2006 (Chapter 2).