Annals of Operations Research 102, 17–37, 2001 2001 Kluwer Academic Publishers. Manufactured in The Netherlands. Criticality Analysis in Activity-on-Node Networks with Minimal Time Lags VICENTE VALLS Departamento de Estadística e Investigación Operativa, Facultad de Matemáticas, Universidad de Valencia, Dr. Moliner 50, 46100 Burjassot (Valencia), Spain PILAR LINO Departamento de Economía Financiera y Matemática, Facultad de Ciencias Económicas y Empresariales, Universidad de Valencia, Avda. de los Naranjos s/n, Edificio Departamental Oriental, 46071 Valencia, Spain Abstract. This paper is a systematic study of the critical nature of activities and relationships in AON networks with minimal time lags in the unlimited resource case, when activity splitting is not allowed. An analysis of all possible cases produces an extended and now complete classification of critical activities in six classes: normal, reverse, neutral, bicritical, increasing normal and decreasing reverse. We also present a procedure for classifying any critical task depending on the early start/finish times and on position within the critical paths. Keywords: project scheduling, generalised precedence constraints, precedence diagramming, criticality analysis AMS subject classification: 90B35 1. Introduction The introduction of more general precedence relationships than the traditional “finishto-start” relationship (FS) of PERT/CPM networks has provided a more flexible project representation in networks. This facilitates the modelling process and a more accurate representation of projects. Nevertheless, these new relationships introduce greater complexity in the study of slack and criticality in activities. These concepts are very useful when planning and controlling a project. Project planning is an iterative process: it proceeds in steps from an initial outline to a detailed acceptable project plan. If the project duration is revealed to be unacceptable in one of the planning steps, then the project planner must change the duration of some activities (critical activities), and/or change some technological relations (critical relations) in order to reduce the project length. In the control phase, these concepts offer important information about the altered duration of a project after differences between the planned schedule and the actual sequence of execution appear. If the predicted project duration is longer than desired, then 18 VALLS AND LINO this information can help the project manager make the necessary corrections and avoid missing an established deadline. Some authors have studied slack and criticality in activity-on-node (AON) project networks with minimal time lags (also termed precedence diagramming or precedence networks). Wiest and Levy [11] define a critical path as a connected sequence of activities from the beginning to the end of the project network – all of which have zero slack. Using an example, they highlighted some peculiarities, or anomalies, in critical activities compared with PERT/CPM networks. Wiest [10] also showed some different effects on the length of a critical path when the durations of some of the component activities are changed. He proposed a classification of critical activities (normal, neutral, reverse, perverse) relating to the effect on the minimum project duration of a change in the duration of a given activity. We will later show that this classification is incomplete because it groups together critical activities which behave differently. Moder et al. [8], and Moder and Crandall [7], proposed a similar critical activity classification to that of Wiest. The only differences are that they termed the perverse class as bicritical, and they divided neutral class activities – when splitting is allowed – into two groups: start-critical and finish-critical. The same classification appears in Hajdu [5]. This paper offers a systematic study of the critical nature of activities and relationships in AON networks with minimal time lags in the unlimited resource case, when activity splitting is not allowed. Specifically, in section 2, we discuss the meaning of the usual concepts of total slack, critical activity, longest path, and critical path, when applied to AON networks with minimal time lags. In section 3, we propose a classification of critical activities relating to the effect on the minimum project duration of a change in the duration of a given activity. This classification extends and completes the partial classifications proposed above by other authors. In section 4, we present a procedure for classifying any critical task depending on the early start/finish times, and the type of relationship represented by the critical arcs incident with the task. This procedure can easily be included in forward/backward calculations. The proofs of the propositions supporting this proposal appear in the appendix. Other models also incorporate relationships with maximal time lags (Bartusch et al. [1], De Reyck and Herroelen [3], Elmaghraby and Kamburowski [4], Neumann and Zhan [9]), but it is worth noting that, as far as we know, none address the issue of criticality in the same way as our proposal. 2. Slack and criticality We assume that a project is represented by an AON network G = (V , A) in which V denotes the set of vertices representing the activities, and A is the set of arcs representing the precedence relationships. The activities are to be performed without preemption and are numbered from 1 to n. The activities have known integer durations, Di (all following CRITICALITY ANALYSIS 19 quantities are assumed to be integers). The starting time of an activity i is denoted by Si and its finishing time by Fi . As splitting is not allowed, note that Fi = Si + Di . Four types of relationships may be considered between two activities i and j . A start-to-start relationship (SS relationship) between the preceding activity i and the successor j , with a SSij lag factor, indicates that at least SSij time units must elapse from the start of the activity i prior to the start of the activity j , i.e., Sj − Si SSij , where SSij 0. The lag factor of a finish-to-finish relationship (FF relationship) with predecessor i and successor j is represented by FFij and indicates that Fj − Fi FFij , where FFij 0. An extension of the only relationship considered in the classical PERT/CPM networks is the finish-to-start relationship (FS relationship) whose lag factor FSij 0 means that Sj − Fi FSij . The final possibility is the start-to-finish relationship (SF relationship). Its lag factor SF ij 0 indicates that Fj − Si SF ij . The computation of the minimum project duration, T , and the early/late and start/finish times, E/L and S/F , respectively, for activities in an AON network with minimal time lags follow the same logic as time analysis in the PERT/CPM model. These calculations can be performed without requiring the AON network to contain a single project start or end and maintaining the nature of each precedence relationship as is shown, for example, in Moder et al. [8]; or alternatively, first converting all precedence constraints to FS precedence relationships and then applying the standard forward and backward pass calculations – as has been noted by several authors (Bartusch et al. [1], Elmaghraby and Kamburowski [4], Herroelen et al. [6]). In standard PERT/CPM models, the total slack of an activity is defined as Hi = LSi − ESi = LFi − EFi and has two equivalent interpretations: (a) Maximum amount of time that an activity start-time can be delayed without delaying the project completion time. (b) Maximum amount of time that an activity duration can be increased without delaying the project completion time. When working with precedence networks, the total slack of an activity is defined in the same way and the concept follows the first of the interpretations mentioned above. Nevertheless, in this context there is no equivalence between the two interpretations; and to study the effect of changes in the duration of an activity on the project it is necessary to know more than just its slack. Additionally, it is impossible to undertake this study in a transformed network in which each precedence relation has been substituted for an FS relationship with an appropriate parameter. We will examine the project represented by the network G in figure 1. The network G in figure 2 represents the same project after transforming the relationships to FS type in accordance with the formula proposed by Herroelen et al. [6]: FSij = max{SSij − Di , SF ij − Di − Dj , FSij , FFij − Dj }. 20 VALLS AND LINO Figure 1. Network G = (V , A). Figure 2. Network G = (V , A ). In the network G , activity 3 has a slack of 2, meaning that its start can be delayed 2 time-units, or its duration can be extended by 2 time-units, without changing the minimum project duration. If the activity is delayed or prolonged by 3 units (more than its slack) then the project cannot be completed in 9 time-units, and the minimum duration will have become 10. With the original precedence relationships (figure 1), the activity 3 slack is also 2, meaning the maximum delay the activity can suffer without changing the project duration is 2 time-units. Nevertheless, if the activity duration is 5 or 6 (instead of 4) the result is T = 9, and if the increase were 3 time-units, meaning D3 = 7, then the minimum project duration would continue to be 9. In network G, an increase in the duration of activity 3 that is larger than its slack does not cause a delay in the project end-date – in contrast to G . In network G, we can also observe that if the duration of activity 3 increases from 4 to 5, 6, or 7 then its slack changes from 2 to 3, 3, 2, respectively. So, in a precedence network, if the duration of an activity with a positive slack increases (decreases), then its slack may increase, decrease, or remain unchanged. The precedence networks contemplate the possibility of more than one relationship (none being redundant) between the same pair of activities. But when these relationships are transformed to FS type, all but one will be eliminated as redundant in the new network. Though the suppression of these relationships will not, in reality, affect the time CRITICALITY ANALYSIS 21 calculations, it will mean the loss of information that is necessary if we wish to discover the variation the project end-date could suffer if some of the activity durations were changed. Following the logic of finish-to-start relationships, the restriction imposed in G by the relationship FS24 = −3 is redundant and can be eliminated. If in G we consider a reduction in the duration of task 2 by two time-units, then the minimum project duration will also decrease by 2 units. Nevertheless, the same variation in activity 2 in the original G network will increase the project duration by 1 unit – an effect that would not have been produced if the relationship SS24 = 2 had been eliminated. Wiest and Levy [11] and Wiest [10] described this type of behaviour as an anomaly. It is a product of the existence of various types of precedence relationships, and cannot be detected in the transformed network. The example shown above demonstrates that though converting all the relationships of the precedence network to FS type allows the basic calculations to be performed more easily (as only one precedence concept needs to be handled), the transformed network is not useful in the control phase of a project because it does not adequately reflect the changes to T caused by possible variations in activity duration. In these networks, zero slack activities are also termed critical activities, because a delay in their execution prolongs the project duration. However, an increase in the duration of a critical task does not always produce an increase in the minimum project duration – but may produce different effects as mentioned by Wiest and Levy [11], Wiest [10] and Moder et al. [8]. Like the above authors, we use the term critical precedence relationship (critical arc) to describe a relationship between two critical activities that determines the ES time of its final vertex (or equivalently, a relationship between two critical activities determining the LF time of its initial vertex). In conventional networks, the term “path length” refers to the minimum possible duration of the activities in a path. In this way, the length of the longest path determines the minimum project duration; and given the nature of precedence relationships in these networks, the length of a path is determined by the sum of the duration of the component activities. Any task with a 0 slack must be in one of the longest paths of the network; and all the activities in a maximum length path have a 0 slack, and so these paths are called critical. When working with precedence networks, the concept “path length” has the same meaning as in PERT/CPM networks. Nevertheless, the properties indicated above are not generally true. The length of the path 1FF 12 2FF 24 4SS45 5 in figure 1 is 9, but the sum of the duration of its activities is 15. When activity 5 – which has a positive duration – is eliminated, a sub-path (1FF 12 2FF 24 4) of the same length is produced. This is completely impossible in PERT/CPM networks. Another difference worth highlighting is the fact that a maxi- 22 VALLS AND LINO mum length path can contain non-critical activities. For example, the previous path is a longest path in the project shown by figure 1, yet activity 5 has a positive slack. As a result, in precedence networks it is not adequate to identify the concepts of critical path and longest path in the traditional PERT/CPM manner. It would be more adequate to define a critical path as a series of critical vertices and critical arcs where the first vertex has ES = 0 and the EF of the final vertex coincides with the minimum project duration. Note that this definition includes the well-known concept of critical path used by the standard PERT/CPM techniques. It is not difficult to demonstrate that, like PERT/CPM networks, at least one critical path always exists. It can also be shown that all critical vertices, and all critical arcs, form part of a critical path and that all critical paths are longest paths. The inverse relation is reflected in the following proposition. Proposition 1. All longest paths contain a critical path. 3. Classification of critical activities To investigate the effect on the minimum project duration of a change in the duration of a critical activity, it is necessary first to study the effect of that change on the length of those critical paths the activity belongs to. As already pointed out by Wiest [10], any increase (decrease) in the lag factor associated with a critical precedence relationship will always result in a corresponding increase (decrease) in the project duration. However, the next example shows that if the duration of a critical activity increases (decreases), then the length of a critical path that contains that activity may increase, decrease, or remain unchanged. Figure 3 shows a project G together with results of forward/backward calculations. The project duration is T = 38; the critical activities are 1, 2, 3, 4, 6, 7, 8, 9; and the critical arcs are FF12 , SS23 , SS24 , FF36 , FS46 , SF 67 , FF68 , SS78 , FF89 . Figure 4 represents a critical path P of G. If the duration of activity 3 increases by 1 unit, then the length of P also increases by 1 unit. This is normal behaviour in PERT/CPM networks. However, the length of P Figure 3. Project G. CRITICALITY ANALYSIS 23 Figure 4. A critical path P . does not change when the same increase is applied to activity 6. We can also observe that an increase of 1 unit in the duration of activity 2 will decrease the path length by 1 unit. Therefore, further information is needed for the classification of a critical activity: the type of critical arcs incident with it. The following definitions account for all possible situations. Below, P denotes a path v0 a1 v1 . . . ak vk . A path P passes through an activity vi (i = 0, k) from start to finish if the arc ai is either FS or SS type, and the arc ai+1 is either FS or FF type. It is considered that v0 (vk ) satisfies this definition if a1 (ak ) is either FS or FF type (FS or SS). If ai is either FF or SF type, but ai+1 is either SS or SF type, then it is said that P passes through the activity vi (i = 0, k) from finish to start. It is considered that v0 and vk cannot exist in this case. A path P enters and exits from the starting point of an activity vi (i = 0, k) if ai is either FS or SS type and ai+1 is either SS or SF type. A path P exits from the starting point of the activity v0 if a1 is either SS or SF type. A path P enters and exits from the ending point of an activity vi (i = 0, k) if ai is either FF or SF type and ai+1 is either FS or FF type. A path P enters into the ending point of the activity vk if ak is either FF or SF type. According to Wiest [10], the following are the possible effects of a critical activity on a critical path to which it belongs: (a) If a critical path passes through an activity from start to finish, then the activity’s effect on the critical path is normal, i.e., lengthening the activity will lengthen the critical path, and shortening it will have the opposite effect. (b) If a critical path passes through an activity from finish to start, then the activity’s effect on the critical path is anomalous, i.e., lengthening the activity will shorten the critical path, and shortening the activity will lengthen the path. Such an effect is called reverse. (c) If a critical path enters and/or exits from the starting (ending) point of an activity, then the length of the path is independent of the activity’s duration. Such an effect is called neutral. However, this agreement between the location of a critical activity on a critical path, and the effect of the activity on the path length does not always apply. To obtain a full classification it is necessary to consider further conditions and to introduce further effects – as we specify below. In the rest of the paper, an increase (decrease) will mean an increase (decrease) of 1 unit. (1) If a critical path P passes through an activity vi from start to finish, and if EFvr < T ∀r < i and ESvq > 0 ∀q > i, then the effect of vi on P is normal, as indicated by 24 VALLS AND LINO Wiest. However, if there is an r < i so that EF vr = T or there is a q > i so that ESvq = 0, then the length of P increases when Dvi increases, but it does not change if Dvi decreases. Such an effect will be called increasing normal. (2) If a critical path P passes through an activity vi from finish to start, then we can distinguish the following cases: (2.1) If ESvi = 0 and EFvi = T , then any variation of Dvi produces an increase in the length of P . This effect is named perverse by Wiest [10], and bicritical by Moder et al. [8] (see below). (2.2) If either ESvi = 0 and EFvi < T or ESvi > 0 and EFvi = T , then an increase of Dvi does not affect the length of P , but if Dvi decreases, its length increases. In this case, the effect is called decreasing reverse. (2.3) If ESvi > 0 and EF vi < T , then: (2.3.1) If there is an r < i so that EFvr = T or there is a q > i so that ESvq = 0, then the activity’s effect on P is decreasing reverse. (2.3.2) Otherwise, the activity has a reverse effect on P . (3) If either the critical path P enters and exits from the starting point of an activity vi , i = 0, k, – or, P exits from the starting point of the activity vi , i = 0, then: (3.1) If EFvi = T , then the effect is increasing normal. (3.2) If EF vi < T , then the length of P is not affected by an increase or decrease of Dvi . This effect is called neutral by Wiest. (4) If either the critical path P enters and exits from the ending point of an activity vi , i = 0, k, – or, P enters into the ending point of the activity vi , i = k, then: (4.1) If ESvi = 0, then the effect is increasing normal. (4.2) If ESvi > 0, then the effect is neutral. To show that the proposed conditions correspond to the described effects it is necessary to analyse the changes produced in the earliest finish time of the activities in P when Di varies. To illustrate this point, consider the case (2.2) where ESvi = 0 and EFvi < T . We indicate by EFvr (ESvr ) the value of early finish (start) time of the activity vr after varying the duration Di . Obviously, EFvr = EFvr , for all r < i. If Di increases, EFvi = EFvi +1 T and ESvi = ESvi = 0. Given that the arc ai+1 is either SS or SF type, EF vr = EFvr for all r > i, and in particular, EF vk = EF vk = T . If Di reduces, EFvi = EFvi and ESvi = ESvi + 1. If the arc ai+1 is SF type or SS type, EFvr = EFvr + 1 for all r > i. In particular, EFvk = EF vk + 1 = T + 1. A similar reasoning can be applied in the other cases. Therefore, a complete classification of critical activity effects should include six classes: normal, reverse, neutral, bicritical (perverse), increasing normal, and decreasing reverse. CRITICALITY ANALYSIS 25 Figure 5. Network G = (V , A). Figure 5 shows the two newly introduced categories. Activity 3 has a decreasing reverse effect on the critical path 1FF13 3SF 34 4FS46 6SS68 8SS89 9 (shortening activity 3 will lengthen the path; but lengthening it does not change the length of the path). Note that the situation of activity 3 in that path corresponds to the case (2.3.1) in the earlier classification. Activity 8 has an increasing normal effect on the same critical path, because lengthening the activity will lengthen the critical path but shortening the activity does not change its length (the situation of activity 8 inside the path is described in point (3.1)). This classification is a prior step for studying the effect on the minimum project duration T of a change in the duration of a critical activity. To this end, Wiest [10] proposes combining the individual effects of a critical activity on all the critical paths it belongs to; and suggests a classification into four categories: normal, reverse, neutral and perverse. The same classification but with a minor change in the nomenclature appears in the works of Moder et al. [8], and Hajdu [5]. However, this classification is not only incomplete, but also misleading. As an example, it is not always true, as is said in Wiest [10], that if a critical activity belongs to all critical paths, and has a normal effect on some of them and a neutral effect on the rest – then its effect on T is normal. For example, in figure 5, activity 6 belongs to the only two critical paths in the network: P 1 ≡ 1FF 13 3SF 34 4FS46 6FF 67 7 and P 2 ≡ 1FF 13 3SF 34 4FS46 6SS68 8SS89 9. It has a normal effect on P 1 and a neutral effect on P 2. If the duration of activity 6 increases, then T increases; however, if D6 decreases then T does not decrease. In the next section, we show that a complete classification of the effect on the minimum project duration T of a change in the duration of a critical activity also requires six categories: normal, reverse, neutral, bicritical, increasing normal, and decreasing reverse. We also present a procedure for classifying any critical task, depending on the type of critical arcs incident with it, and the forward pass computation outcomes. 4. Classification procedure To study the effect of a critical activity i on T , we analyse the different situations in which vertex i can be within the critical sub-graph. The critical sub-graph is the sub- 26 VALLS AND LINO graph defined by the critical activities and the critical precedence relationships. A diagram represents each situation where the starting (finishing) point of an arc refers to the types of precedence relationship represented. The situations are the following: (1) There are critical arcs (at least one) whose initial vertex is i; all of which are SS or SF arcs; and if critical arcs with final vertex i also exist, they all arrive at its starting point. Then, (1.1) If EFi < T , then i is a neutral critical activity. (1.2) If EFi = T , then i is an increasing normal critical activity. (2) There are critical arcs (at least one) whose final vertex is i; all of which are SF or FF arcs; and if critical arcs with initial vertex i exist, they all affect the ending point of i. Then, (2.1) If ESi > 0, then i is a neutral critical activity. (2.2) If ESi = 0, then i is an increasing normal critical activity. (3) Every critical arc arriving at i affects its starting point, and every critical arc exiting from i affects its ending point. Two cases can be distinguished: (3.1) All critical paths contain the activity i. (a) If EFj < T for every critical vertex j < i and ESu > 0 for every critical vertex u > i, then i is a normal critical activity. Figure 6. Diagram for situation 1. Figure 7. Diagram for situation 2. Figure 8. Diagram for situation 3. CRITICALITY ANALYSIS 27 (b) If there is a critical vertex j < i so that EFj = T or there is a critical vertex u > i so that ESu = 0, then i is an increasing normal critical activity. (3.2) There is at least one critical path which does not contain the activity i. In this case, i is an increasing normal critical activity. (4) There are critical arcs (at least one) whose final vertex is i; all of which affect its ending point; there are critical arcs (at least one) whose initial vertex is i and they all affect its starting point. Then, the following situations should be differentiated: (4.1) If ESi = 0 and EFi = T , then activity i will have a perverse effect upon all critical paths containing it. Therefore, i will be a bicritical activity. (4.2) If either ESi = 0 and EFi < T or ESi > 0 and EFi = T , then activity i will have a decreasing reverse effect upon all critical paths containing it. And if activity i does not belong to some critical path, then changes in Di will not alter their lengths. Therefore, i will be a decreasing reverse critical activity. (4.3) If ESi > 0 and EFi < T , then: (a) If i belongs to all critical paths and EFj < T for every critical vertex j < i and ESu > 0 for every critical vertex u > i, then activity i will have a reverse effect upon all critical paths. Therefore, i will be a reverse critical activity. (b) Otherwise, i will be a decreasing reverse critical activity. (5) There are critical arcs (at least one) exiting from the starting point of activity i, and other critical arcs (at least one) exiting from its ending point. Furthermore, if there are critical arcs with final vertex i, they all enter at its starting point. In this case, some critical paths enter and exit from the starting point of activity i (or only exit from its starting point) and others pass through i from start to finish. As the effect of i upon the latter can only be normal or increasing normal, an increase of Di will also increase the project duration. In addition, i has a neutral Figure 9. Diagram for situation 4. Figure 10. Diagram for situation 5. 28 VALLS AND LINO or increasing normal effect upon the former. So, a decrease of Di will not change project duration. Therefore, in this case, i is an increasing normal critical activity. (6) There are critical arcs (at least one) arriving at the starting point of activity i, and other critical arcs (at least one) arriving at its ending point. Furthermore, if there are critical arcs with initial vertex i, they all exit from its ending point. Some critical paths enter and exit from the ending point of activity i (or only enter at its ending point) and others pass through i from start to finish. As i has a neutral or increasing normal effect upon the former, and a normal or increasing normal effect upon the rest, i is an increasing normal critical activity. (7) At least one critical arc arrives at activity i and all the critical arcs arriving at activity i are FF or SF type, and at least one critical arc exits from its starting point, and another exits from its ending point. Some critical paths enter and exit from the ending point of activity i, and others pass through i from finish to start. Then: (7.1) If ESi = 0, lengthening activity i will lengthen the critical paths that enter and exit from its ending point (since i has an increasing normal effect upon them). And shortening activity i will lengthen the critical paths that pass through i from finish to start. Then, i is a bicritical activity. (7.2) If ESi > 0, activity i has a neutral effect upon all critical paths that enter and exit from its ending point, and a reverse or decreasing reverse effect upon all critical paths that pass through i from finish to start. Then, i is a decreasing reverse critical activity. (8) At least one critical arc enters at the starting point of activity i, at least one enters at its ending point, and all the critical arcs with initial vertex i (and there is at least one) exit from its starting point. Analogously to the case above: (8.1) If EFi = T , i is a bicritical activity. (8.2) If EFi < T , i is a decreasing reverse critical activity. Figure 11. Diagram for situation 6. Figure 12. Diagram for situation 7. CRITICALITY ANALYSIS 29 Figure 13. Diagram for situation 8. Figure 14. Diagram for situation 9. (9) Suppose that there are critical arcs entering at the starting point of activity i, critical arcs entering at its ending point, and critical arcs exiting from any of its extremes (at least one of each type). There is at least one critical path, which passes through i from start to finish. As i has a normal or increasing normal effect upon it, lengthening activity i will delay project completion. There is at least one critical path, which passes through i from finish to start. Then, activity i has an reverse, decreasing reverse, or bicritical effect upon it. That means that shortening activity i will lengthen this critical path; so it will also delay project completion. Therefore, i is a bicritical activity. (10) If no critical arc is incident with activity i then ESi = 0 and EFi = T . In this case, there exists a critical path consisting only of vertex i. Then: (10.1) If no more critical paths exist, i is a normal critical activity. (10.2) If other critical paths exist, i is an increasing normal critical activity. All possible situations of a critical activity within the critical sub-graph are grouped in these ten cases as shown in the binary tree in figure 15. This tree represents a partition of the set of possible situations. Each leaf of the tree represents an element of the partition defined by the juxtaposition of the conditions expressed in the vertices of the only path connecting the leaf to the root vertex of the tree. Each of the ten cases corresponds to a tree leaf; except for case (3) which corresponds to two leaves. Each condition is briefly expressed by symbols. The symbol “✸” is a wild card that can represent F or S. The symbol “∗” is another wild card that represents a j activity different from i. The identification of the conditions is direct. For example, ∃S✸i∗ means that at least one critical arc of the type SF or SS exits from activity i, while ∃✸F∗i means that no critical arc of the type SF or FF arrives at activity i. To complete this study it remains necessary to guarantee that in order to discover the effect on the minimum project duration of a unitary change in the duration of a critical activity, it is enough to know the effect of that change on the critical paths. Slight reflection reveals that it is sufficient to prove that if lengthening (shortening) a critical activity by 1 time-unit has the effect of shortening all critical paths (this only 30 VALLS AND LINO Figure 15. Possible situations of a critical activity within the critical sub-graph. happens in (3.1.a), (4.3.a) and (10.1)), then there is no path of length T −1 that lengthens. Proposition 2 eliminates such a possibility in cases (3.1.a), (4.3.a) and (10.1). Proposition 2. Let vi be a critical activity in case (4.3.a) ((3.1.a) and (10.1)). Then, if Dvi increases (decreases) one time-unit, the length of any path in the network will be less than T . It is worth noting that the only information required by the proposed classification procedure can be easily obtained from forward and backward pass computations. Finally, we illustrate the above procedure on the project in figure 3. The critical sub-graph Gc appears in figure 16. Activity 1 is incident with only a critical arc of the type FF; belongs to all critical paths and ESu > 0 for any other critical activity u. Its subsequent situation is described in (3.1) and it is a normal critical activity. The only critical arc with final vertex 2 is FF type and the two critical arcs exiting from this vertex affect its starting point; ES2 > 0 and EF2 < T . As activity 2 belongs to all critical paths, EF < T for the previous critical vertices and ES > 0 for all the subsequent ones, it is a reverse critical activity, as indicated in (4.3.a). Activities 3 and 4 are both increasing normal critical, since every arriving critical arc affects their starting point, every exiting critical arc affects their ending point and they are not in all critical paths. Note that both activities are in case (3.2). CRITICALITY ANALYSIS 31 Figure 16. Critical sub-graph Gc of network G shown in figure 3. Figure 17. An AON network with maximal time lags. One critical arc enters at the starting point of activity 6 and another one enters at its ending point. One critical arc exits from its starting point and another exits from its ending point. So, activity 6 is a bicritical activity, as indicated in case (9). There is only one critical arc entering at vertex 7 and it affects its ending point. There is only one critical arc exiting from vertex 7 and it affects its starting point. Activity 7 does not belong to all critical paths and also ES7 > 0 and EF7 < T . Therefore, it is a decreasing reverse critical activity (see (4.3.b)). The situation of activity 8 is described in case (6) (there is one critical arc arriving at its starting point, one critical arc arriving at its ending point and one critical arc exiting from its ending point). So it is an increasing normal critical activity. Finally, as said in (2.1), activity 9 is a neutral critical activity because the only critical arc incident with it enters at its ending point and ES9 > 0. It is worth noting that the analysis of criticality in the case of maximal time lags is not a simple extension of the analysis we have presented in this paper. Figure 17 shows a network in which all activities and arcs are critical. According to the classification proposed in the paper, activity 1 should be increasing normal. However, if D1 = 6, then T = 10, but if D1 = 4, then T = 8. Therefore, activity 1 is normal. Also, there is only one critical path: 1FF 12 2SS23 3 unless we admit non-elementary critical paths. Therefore, activities 4 and 5 and arcs (3,4), (4,5) and (5,1) do not belong to any critical path even though they belong to a critical circuit. 32 VALLS AND LINO In our opinion, the case of maximal time lags is so different that it requires a separate analysis. 5. Summary In this paper we have offered a systematic study of the critical nature of activities and relationships in AON networks with minimal time lags in the unlimited resource case; when activity splitting is not allowed. We have discussed the meaning of the usual concepts of total slack, critical activity, longest path and critical path, when applied to AON networks with minimal time lags. A systematic analysis of the effects on the minimum project duration of a change in the duration of a given activity has revealed the existence of two new, and previously unconsidered, effects. Another consequence of this systematic approach is that all possible situations are included in our proposal for classifying the criticality of activities into six classes. These classes are: normal, reverse, neutral, bicritical, increasing normal, and decreasing reverse. Finally, we have presented a procedure for classifying any critical task; depending on the early start/finish times, and on its position within the critical paths. This procedure can easily be included in forward/backward pass calculations. Appendix Lemma 3. Let w be a critical vertex and a = (v, w) an arc which determines ESw . Then, v is also a critical vertex. Proof. Let us suppose that a = (v, w) represents an FF relationship. For the other three cases, the proof is analogous. Since a determines ESw and w is a critical vertex, then LSw = ESw = EFv + FFvw − Dw . Hence, LFv LFw − FFvw = LSw + Dw − FFvw = EFv . Therefore, EFv = LFv , that is to say, v is a critical vertex. Proposition 4. All longest paths contain a critical path. Proof. Let q be a longest but non-critical path, q ≡ v0 a1 v1 . . . ak vk . The length of q is T and, therefore, there is some vertex vr in q so that EFqvr = T where EFqvj denotes the earliest finish time of vertex vj , considering only the arcs in q. As EFqvr EFvr then T = EFqvr EFvr LFvr T and hence EFvr = LFvr , i.e., vr is a critical vertex. If ESvr = 0, the path composed of just the vertex vr is a critical path contained in q. On the contrary, let us now suppose that ESvr > 0. In this case, ar = (vr−1 , vr ) determines ESvr since EFqvr = EFvr implies ESqvr = ESvr . Therefore, vr−1 is a critical vertex by lemma 3. Accordingly, ar is a critical arc. If ESvr−1 = 0, the path vr−1 ar vr is the one we are looking for. CRITICALITY ANALYSIS 33 If not, ESvr−1 > 0. Let us suppose in this case that ar = (vr−1 , vr ) is an FF arc. For the other three cases, the proof is analogous. ESvr = ESqvr = max 0, EF qvr−1 + FFvr−1 vr − Dvr = EFqvr−1 + FFvr−1 vr − Dvr and also ESvr = EFvr−1 + FF vr−1 vr − Dvr as ar determines ESvr . Therefore EF qvr−1 = EFvr−1 and hence, ESqvr−1 = ESvr−1 . Applying the previous reasoning it can be shown that vr−2 and ar−1 are critical, and so on. This process stops as soon as a critical vertex vz with ESvz = 0 is found. Then, the path vz az+1 . . . ar vr is the one we are looking for. Proposition 5. Let vi be a critical activity in case (4.3.a) ((3.1.a) and (10.1)). Then, if Dvi increases (decreases) one time-unit, the length of any path in the network will be less than T . Proof. (I) If vi is a critical activity in the case (4.3.a) of section 4 (the proof is analogous for the case (3.1.a)), then: (1) Any critical arc with final vertex vi represents an FF or SF relationship. (2) Any critical arc with initial vertex vi represents an SS or SF relationship. (3) ESvi > 0. (4) EF vi < T . (5) vi is in any critical path. (6) EF j < T for every critical vertex, j , previous to vi in the considered topological order. (7) ESu > 0 for every critical vertex, u, posterior to vi in the considered topological order. The length of any critical path is T and, using the above hypothesis, by lengthening activity vi by 1 time-unit, the resulting length of all critical paths will be T − 1. Let us consider a non-critical path q that contains vi , and let us see that if Dvi increases 1 timeunit, the resulting length of q will be less than T . If q is a non-critical path with length T , by proposition 4 it contains a critical path p. By the hypothesis, vi belongs to p and it has a reverse effect upon p, i.e., lengthening vi by 1 time-unit the resulting length of p will be T − 1. And, if this occurs, the length of q will also be reduced, since on the contrary, there would be some vertex vr in q with EF vr = T , so that it would be unaffected by the change in Dvi ; and this contradicts the hypothesis (6) and (7). Therefore, lengthening vi will shorten q. Let q be a non-critical path with a length less than T which contains vi , q ≡ v0 a1 v1 . . . ai vi ai+1 . . . ak vk . Let (q) be the length of q. Then, (q) = max EFqvj , 0j k 34 VALLS AND LINO where EFqvj means the same as in proposition 4. Obviously, ESqvj ESvj and EFqvj EFvj ∀j ∈ {0, . . . , k}. We will denote by (EFqvj ) and (EFqvj ) , the corresponding times when the only change in q is the duration of vi , the new duration being Dv i = Dvi + 1. And (q) = max EFqvj 0j k will represent the length of q after the change. It is clear that (ESqvj ) = ESqvj and (EFqvj ) = EFqvj ∀j ∈ {0, . . . , i − 1}. Let us see what happens with the rest of activities in q. We distinguish the following cases: (a) q passes through vi from finish to start. (a.1) If ESqvi > 0, as ai is an FF or SF arc, (ESqvi ) = ESqvi − 1 and (EF qvi ) = EFqvi . Since ai+1 represents an SS or SF relationship, the finish time of any vertex vj in q with j > i will not be delayed. Therefore, (q) < T . (a.2) If ESqvi = 0, then ESqvi =0 and EFqvi = ESqvi + 1. (A.1) As ai+1 is an SS or SF arc, the change in the duration of vi does not affect the rest of the activities in the path. Therefore: (a.2.1) If EFqvi < (q), by (A.1) it is deduced that (q) = (q) < T . (a.2.2) If EFqvi = (q), then (q) = EF qvi + 1. (A.2) By the hypothesis (3), ESqvi < ESvi , hence EFqvi < EFvi . (A.3) From (4), (A.2) and (A.3), (q) < T . (b) q enters and exits from the starting point of vi . (Analogously if i = 0 and q exits from the starting point of v0 .) In this case, (ESqvi ) = ESqvi and, as ai+1 is an SS or SF arc, (EFqvj ) = EFqvj , ∀j = i. Then, the only time that has changed is (EFqvi ) = EF qvi + 1. Since ai is an SS or FS arc, it is not a critical arc (hypothesis (1)). Given that vi is a critical vertex, as a consequence of lemma 3, ai does not determine ESvi . Bearing in mind the hypothesis (3), ESvi is determined by another arc with final vertex vi . Therefore, ESqvi < ESvi and EFqvi < EFvi . (A.4) (b.1) If EFqvi < (q), then (q) = (q) < T. (b.2) If EFqvi = (q), then (q) = EFqvi + 1. (A.5) CRITICALITY ANALYSIS 35 From (4), (A.4) and (A.5), (q) < T . (c) q enters and exits from the ending point of vi . (Analogously, if i = k and q enters the ending point of vk .) (c.1) If ESqvi > 0, analogously to case (a.1), (q) = (q) < T . (c.2) If ESqvi = 0, then (ESqvi ) = 0 and (EFqvi ) = EF qvi +1. Since ai+1 is an FS or FF arc, a single unit increase of Dvi could delay activities vi+1 , . . . , vk 1 time-unit at most. So, if (q) < T − 1 then it can be affirmed that (q) < T . Suppose that (q) = T − 1. By the hypothesis (3), ESqvi < ESvi , hence EFqvi < EFvi . Then, (4) and (A.6) indicate that EFqvi < (q). Thereby, q EFvi (q). (A.6) (A.7) Let us see that (A.7) is also true for vj with j > i. ai+1 is not a critical arc because it is an FS or FF arc and we are assuming (2). Suppose that ai+1 represents an FF relationship. (The reasoning is analogous for an FS relationship.) ESqvi+1 = max 0, EF qvi + FFvi vi+1 − Dvi+1 , q ESvi+1 = max 0, EFqvi + FFvi vi+1 − Dvi+1 . (c.2.1) If EFqvi + FFvi vi+1 − Dvi+1 < 0, then (EFqvi ) + FFvi vi+1 − Dvi+1 0, that is, (ESqvi+1 ) = 0 = ESqvi+1 . It means that vi+1 will not be delayed and neither vj with j > i: (EFqvj ) = EFqvj (q) ∀j = i. This together with (A.7) leads us to say that (q) = (q) = T − 1. (c.2.2) If EFqvi + FF vi vi+1 − Dvi+1 0, then (EFqvi ) + FF vi vi+1 − Dvi+1 > 0 and (ESqvi+1 ) = ESqvi+1 + 1. It means that vi+1 is delayed 1 time-unit. In this case, ESqvi+1 = EFqvi + FFvi vi+1 − Dvi+1 , and by (A.6): ESqvi+1 EFvi + FF vi vi+1 − Dvi+1 − 1. (A.8) • If ai+1 does not determine ESvi+1 , ESvi+1 > EF vi + FF vi vi+1 − Dvi+1 . (A.9) From (A.8) and (A.9), ESqvi+1 < ESvi+1 − 1 LSvi+1 − 1. • If ai+1 determines ESvi+1 , ESvi+1 = EF vi + FF vi vi+1 − Dvi+1 . (A.10) 36 VALLS AND LINO According to lemma 3, vi+1 is not a critical vertex because ai+1 determines ESvi+1 and ai+1 is not a critical arc (see hypothesis (2)). So: ESvi+1 < LSvi+1 . (A.11) From (A.8), (A.10) and (A.11) ESqvi+1 ESvi+1 − 1 < LSvi+1 − 1. Therefore, in both cases ESqvi+1 < LSvi+1 − 1. (A.12) According to backward pass computations, T − LSvi+1 is the minimum number of time-units between the start of activity vi+1 and the end of the project. In the same way, for the sub-project q (we are assuming that its minimum duration is T − 1) the amount T − 1 − LSqvi+1 is the minimum time necessary to carry out activities vi+1 , . . . , vk , considering only the relationships in q. Given that q is a sub-project of the global project, T − 1 − LSqvi+1 T −LSvi+1 and LSvi+1 LSqvi+1 +1. Then, from (A.12), ESqvi+1 < LSqvi+1 , and it means that, although vi+1 was delayed 1 time-unit, its start time would not be greater than LSqvi+1 , that is, the length of q remains the same: (q) = (q) = T − 1. (d) q passes through vi from start to finish. In this case, (ESqvi ) < ESqvi , (EFqvi ) = EF qvi + 1 and ai+1 is an FS or FF arc. It is concluded that (q) < T following a similar reasoning to case (c.2). The difference is that now (A.6) is obtained because vi is a critical vertex but ai is not a critical arc; then, ai does not determine ESvi . (II) If vi is a critical activity in the case (10.1) of section 4 and Dvi reduces, then the length of the only critical path diminishes. If q is a non-critical path with a length less than T , then q does not contain vi (Dvi = T ). Therefore, if Dvi reduces, the length of q will continue being less than T . Suppose q is a non-critical path containing vi , q ≡ v0 a1 v1 . . . ai vi ai+1 . . . ak vk . As the duration of vi is T , (q) = T . We can see that if Dvi reduces one unit, then the length of q will be less than T . For all vj of the path q, different from vi , EFqvj < T . (Note that if EFqvj = T , then vj will be a critical vertex and a critical path containing it will exist. This path will be different to that formed only by vi ; and this contradicts the supposition in case (10.1).) If ai+1 exits the end of vi , ai+1 will be a critical arc; but this is not possible under the previous reasoning. Therefore, ai+1 is an SS or SF arc. (a) If ai is an SS or FS arc, given that Dv i = Dvi − 1 then (ESqvi ) = ESqvi = 0 and (EFqvi ) = EFqvi − 1 = T − 1. As ai+1 exits the beginning of vi , then (EFqvj ) = EFqvj for all vj later than vi in q. So, (EFqvj ) < T ∀vj ∈ q and (q) < T . CRITICALITY ANALYSIS 37 (b) Suppose that ai is an FF or SF arc. According to the hypothesis of the case (10.1), ai cannot be a critical arc. According to lemma 3, as vi is critical, ai does not determine ESvi . So, (ESqvi ) = ESqvi = 0 and (EFqvi ) = EF qvi − 1 = T − 1; and, as in the previous case, (q) < T . Acknowledgement This research was partially supported by Generalitat Valenciana with code GV-3310/95. References [1] M. Bartusch, R.H. Möhring and F.J. Radermacher, Scheduling project networks with resource constraints and time windows, Annals of Operations Research 16 (1988) 201–240. [2] K.C. Crandall, Project planning with precedence lead/lag factors, Project Management Quarterly 4 (1973) 18–27. [3] B. De Reyck and W. Herroelen, A branch-and-bound procedure for the resource-constrained project scheduling problem with generalized precedence relations, European Journal of Operational Research 111 (1998) 152–174. [4] S.E. Elmaghraby and J. Kamburowski, The analysis of activity networks under generalized precedence relations (GPRs), Management Science 38(9) (1992) 1245–1263. [5] M. Hajdu, Network Scheduling Techniques for Construction Project Management (Kluwer Academic, 1997). [6] W. Herroelen, B. De Reyck and E. Demeulemeester, Resource-constrained project scheduling: A survey of recent developments, Comput. Oper. Res. 25(4) (1998) 279–302. [7] J.J. Moder and K.C. Crandall, Precedence diagramming: Time computations, anomalies and remedies, Project Management: Methods and Studies (1985) 95–110. [8] J.J. Moder, C.R. Phillips and E.W. Davis, Project Management with CPM, PERT and Precedence Diagramming (Van Nostrand–Reinhold, 1983). [9] K. Neumann and J. Zhan, Heuristics for the minimum project-duration problem with minimal and maximal time lags under fixed resource constraints, Journal of Intelligent Manufacturing 6 (1995) 145–154. [10] J.D. Wiest, Precedence diagramming method: Some unusual characteristics and their implications for project managers, Journal of Operations Management 1 (1981) 121–130. [11] J.D. Wiest and F.K. Levy, A Management Guide to PERT/CPM with GERT/PDM/DCPM and other Networks (Prentice-Hall, 1977).