Generalized Resource-Constrained Critical Path Method to Improve Sustainability in Construction Project Scheduling

Delays by limited supply of resources are common in many construction projects and may cause serious monetary disputes between project participants. Since the dispute resolution may require unnecessary additional time and cost, preventing delays in advance is an important goal in sustainable construction project management. To prevent delays, a feasible plan must be implemented, which reflects limited resources and provides reliable activity information. For this purpose, this study proposes a generalized resource-constrained critical path method (eRCPM). It consists of three steps to identify resource-dependent activity relationships (resource links) based on the result of resource-constrained scheduling (RCS) under multiple resource constraints. Compared to the existing resource-constrained critical path methods, the eRCPM has the advantage of identifying resource links irrespective of the applied RCS technique because it is based on the result rather than the RCS process. Further, this study presents a Microsoft (MS) Excel-based half-automated prototype system that is linked using file export and import functions to both P6 and MS Project software packages. The detailed process of the eRCPM algorithm and the operation process of the prototype system are described using an example schedule. Through a case study, it was demonstrated that eRCPM appropriately identifies the necessary resource links and provides reliable total floats.


Introduction
The critical path method (CPM) is a representative scheduling technique used in construction project management. It provides important information necessary for managing construction projects and serves as a basis for analyzing the impact of delays in the construction process [1,2]. However, it has a limitation in that it assumes an infinite supply of resources available to perform an activity. Resources such as labor, equipment, and materials are highly limited in many projects, so that efficient resource allocation is essential for sustainable construction project management [3,4]. Delays are common in many construction projects and many delays are caused by limited supply of resources [5,6]. To make up for the delays, additional time and cost may be needed, which tends to cause disputes between project participants. Since the dispute resolution may require unnecessary additional time and cost, preventing delays in advance is an important goal in sustainable construction project management. To prevent delays, a feasible plan must be implemented, which requires reflection of limited resources. Many resource-constrained scheduling (RCS) techniques, such as the serial method, the parallel method, etc., have been developed to reflect limited resources to create more feasible schedules [7][8][9][10].
However, the RCS technique does not consider resource-dependent activity relationships (resource links) caused by resource constraints, resulting in loss of important information such as total floats and the critical path [10][11][12][13]. In addition, a regular schedule update to reflect changes during the construction progress can alter the work sequence after the data date, resulting in a plan that is different from the original [12]. The RCS technique itself alters the work sequence as it plans activities in the priority order set by the user when resource conflicts occur [7,9]. This work sequence change may make schedule control challenging after the data date. Analysis of the delay impact in RCS also becomes more problematic because of the unreliable total floats (also called phantom floats) and work sequence changes after schedule updates [14][15][16]. The same challenges occur in Primavera P6 and Microsoft (MS) Project, which are the two most frequently used scheduling software packages [17,18]. Consequently, several studies have been conducted to identify resource links considering limited resources [12,[19][20][21][22]. Woodworth and Shanahan (1988) presents a method of identifying resource links in the RCS process for the first time among related studies [19]. This method applies the parallel RCS method and finds resource links based on the resource sequence label stored in an activity and an activity sequence list stored in a resource type. The case study applies a simple schedule in which one resource unit is allocated to one activity, so it is not sure whether it is applicable to multiple types of resources. Bowers (1995) proposes a method of finding resource links based on the resource utilization history generated in the process of the parallel RCS method [20]. However, the process of finding resource links is explained too briefly and the applied case study is also simple, so it is not clear if this will work for multiple resource constraints as well. Lu and Li (2003) presents detailed procedures for finding resource links by applying the serial RCS method [21]. This method considers multiple resources by finding resource activity interactions for every resource unit. However, in this process, the CPM relationships may not be considered, and unnecessary resource links may be identified [23,24]. Kim and de la Garza (2003) presents a step-by-step process of identifying resource links while applying the serial method [12]. This method identifies resource links in two steps. The first is to identify resource links of activities postponed due to resource constraints in the RCS process, and the second is to determine the additional resource links within the total float range of each activity after RCS. In the case study, a relatively complex example in which multiple resources have been freely allocated is applied. Nisar et al. (2013) applies the rank position weight method [25] as an RCS technique [22]. In this method, after applying the RCS method normally, the existing network is reversed, and the same RCS method is performed once more to identify each activity's essential time data such as early times, late times, floats, etc. By comparing these time data of each activity, resource links are identified. This heuristic process is not only too complicated to apply [24], but also has a limitation that it is only valid for one resource type.
These previous studies identified resource links in the RCS process and implemented a resourceconstrained critical path method (RCPM) by applying a CPM process that considered the identified resource links and the existing technological activity relationships. The RCPM techniques used by these researches suggest methods to identify resource links using a specific technique or algorithm in the RCS process [23,24]. However, this approach has a limitation in that it is only valid in the currently applied RCS technique. That is, an RCPM system based on a certain RCS technique does not work for other RCS techniques. For example, a serial-method-based RCPM system that can be integrated with P6 is not valid for MS Project (MSP) that applies a parallel method [18]. Conversely, a parallel-method-based method that can be used in MSP is not effective in P6. Moreover, additional computer programming is required whenever different activity selection priorities are applied in RCS [26].
This study proposes a generalized RCPM (eRCPM) technique that can implement RCPM irrespective of the type of the RCS method applied under multiple resource constraints. In addition, it presents a half-automated prototype system that is linked using file export and import functions to both P6 and MSP to verify the validity and scalability of the proposed eRCPM. Since it does not depend on a specific RCS technique, eRCPM could be easily adopted in other scheduling software currently in use. This study can contribute not only to efficient project management but also to reduce unnecessary disputes by providing accurate time information, as eRCPM provides a more feasible schedule by reflecting resources and properly providing total floats, the critical path, and a stable work sequence.

Overview
This section reviews the process of identifying resource links by applying serial and parallel techniques [7,8] to the same example, based on the RCPM method proposed by Kim and de la Garza [12]. The method of identifying resource links is applied using the same concept in both RCS methods. In the RCS process, a resource link is generated when the start time of an activity is delayed owing to resource constraints or when the newly calculated total float after RCS does not fully exist owing to resource constraints. The detailed process is described with an example schedule in this section.
The example schedule is presented in Table 1; the maximum available units of resources A (R.A) and B (R.B) are 5 and 2, respectively. Early start time (EST), late start time (LST), and total float (TF) after performing CPM are also listed in this table. Figure 1 depicts a time-scaled network bar chart [27] reflecting this CPM result and indicates that R.A is exceeded in days 1 to 3 and R.B in days 1 to 2.  2  0  1  1  0  C  2  F  0  2  1  7  6  D  3  -3  0  1  8  7  E  3  F  0  1  6  6  0  F  2  -3  1  9  9  0  Maximum resource units  5  2 Sustainability 2020, 12, x FOR PEER REVIEW 3 of 19 schedule by reflecting resources and properly providing total floats, the critical path, and a stable work sequence.

Overview
This section reviews the process of identifying resource links by applying serial and parallel techniques [7,8] to the same example, based on the RCPM method proposed by Kim and de la Garza [12]. The method of identifying resource links is applied using the same concept in both RCS methods. In the RCS process, a resource link is generated when the start time of an activity is delayed owing to resource constraints or when the newly calculated total float after RCS does not fully exist owing to resource constraints. The detailed process is described with an example schedule in this section.
The example schedule is presented in Table 1; the maximum available units of resources A (R.A) and B (R.B) are 5 and 2, respectively. Early start time (EST), late start time (LST), and total float (TF) after performing CPM are also listed in this table. Figure 1 depicts a time-scaled network bar chart [27] reflecting this CPM result and indicates that R.A is exceeded in days 1 to 3 and R.B in days 1 to 2.  2  0  1  1  0  C  2  F  0  2  1  7  6  D  3  -3  0  1  8  7  E  3  F  0  1  6  6  0  F  2  -3  1  9  9 0 Maximum resource units 5 2 During RCS, when resource conflicts occur between activities, the activity with higher priority is planned first, and the activity with lower priority is delayed until the required resources become available. The priority can be set in many ways, but in this study, the priority is set in the order of late start time, total float, and ID of each activity to achieve consistent results. When this criterion is applied to the CPM result of Table 1, the priority order is B, A, E, C, D, and F, which is applied in the same manner to both serial and parallel methods.

Serial RCS
In the serial method, activities are planned sequentially according to the priority. If an activity cannot be planned because of resource shortage owing to resource usage by already planned activities, the start time of the activity is delayed until the resources become available. In the example schedule, activities B, A, and E can be planned as the original CPM schedule, but the start time of During RCS, when resource conflicts occur between activities, the activity with higher priority is planned first, and the activity with lower priority is delayed until the required resources become available. The priority can be set in many ways, but in this study, the priority is set in the order of late start time, total float, and ID of each activity to achieve consistent results. When this criterion is applied to the CPM result of Table 1, the priority order is B, A, E, C, D, and F, which is applied in the same manner to both serial and parallel methods.

Serial RCS
In the serial method, activities are planned sequentially according to the priority. If an activity cannot be planned because of resource shortage owing to resource usage by already planned activities, Sustainability 2020, 12, 8918 4 of 19 the start time of the activity is delayed until the resources become available. In the example schedule, activities B, A, and E can be planned as the original CPM schedule, but the start time of activity C is delayed to day 9 because it cannot be planned on the original day 1 owing to lack of resources. This delay of eight days is because planned activity A requires two R.Bs for days 1 to 5, and planned activity E requires one R.B for days 6 to 8. Activity C can start on day 9 using R.B released after the completion of activity E. In RCPM, resource links are created as illustrated in Figure 2a by reflecting this kind of resource-dependent activity relationship. In this study, the relationship by which the resources released at the end of an activity are immediately used for a subsequent activity without a time interval is defined as a direct resource link. activity C is delayed to day 9 because it cannot be planned on the original day 1 owing to lack of resources. This delay of eight days is because planned activity A requires two R.Bs for days 1 to 5, and planned activity E requires one R.B for days 6 to 8. Activity C can start on day 9 using R.B released after the completion of activity E. In RCPM, resource links are created as illustrated in Figure 2a by reflecting this kind of resource-dependent activity relationship. In this study, the relationship by which the resources released at the end of an activity are immediately used for a subsequent activity without a time interval is defined as a direct resource link. Activity D is also delayed to day 5 owing to the limitation of R.A, and it can start by receiving two R.As that are released at the end of activity A, creating a direct resource link between activities A and D. The last activity F can start after activity C without a delay, and the final serial RCS result is depicted in Figure 2b. Based on this result, if CPM is applied reflecting the existing technological relationship and resource links, the path through activities B, E, C, and F becomes the critical path, as illustrated in Figure 2b and activities A and D each have total float of five days. However, owing to resource constraints, activities A and D cannot have all five days of the total float. Activities D and F cannot proceed simultaneously for the total float range of activity D owing to the constraints of R.A., and activities A and E cannot proceed simultaneously for the total float range of activity A owing to the constraints of R.B. To reflect this situation, RCPM identifies additional resource links between them, as illustrated in Figure 2c. When the resource links identified in this manner are reflected in CPM, the total floats of activities A and D become one and three days, respectively. In this study, the relationship identified within the total float range of an activity is defined as an indirect resource link. Activity D is also delayed to day 5 owing to the limitation of R.A, and it can start by receiving two R.As that are released at the end of activity A, creating a direct resource link between activities A and D. The last activity F can start after activity C without a delay, and the final serial RCS result is depicted in Figure 2b. Based on this result, if CPM is applied reflecting the existing technological relationship and resource links, the path through activities B, E, C, and F becomes the critical path, as illustrated in Figure 2b and activities A and D each have total float of five days. However, owing to resource constraints, activities A and D cannot have all five days of the total float. Activities D and F cannot proceed simultaneously for the total float range of activity D owing to the constraints of R.A., and activities A and E cannot proceed simultaneously for the total float range of activity A owing to the constraints of R.B. To reflect this situation, RCPM identifies additional resource links between them, as illustrated in Figure 2c. When the resource links identified in this manner are reflected in CPM, the total floats of activities A and D become one and three days, respectively. In this study, the relationship identified within the total float range of an activity is defined as an indirect resource link.

Parallel RCS
The parallel method simultaneously or parallelly considers activities that can start in a time unit. If resource conflicts occur, activities are scheduled according to the activity priority order. Activities that cannot be scheduled owing to the lack of resources are delayed to the next time unit.
In the example schedule, the activity priority order is B, A, E, C, D, and F, as in the serial method. In the network conditions depicted in Figure 1, the activities that can be scheduled on the first day are A, B, C, and D, and they are considered in the order B, A, C, and D according to the priority. As displayed in Figure 3a, activities B and A can be scheduled to start on the first day. However, activities C and D cannot start on the first day because of resource constraints; hence, they are delayed to the next day.

Parallel RCS
The parallel method simultaneously or parallelly considers activities that can start in a time unit. If resource conflicts occur, activities are scheduled according to the activity priority order. Activities that cannot be scheduled owing to the lack of resources are delayed to the next time unit.
In the example schedule, the activity priority order is B, A, E, C, D, and F, as in the serial method. In the network conditions depicted in Figure 1, the activities that can be scheduled on the first day are A, B, C, and D, and they are considered in the order B, A, C, and D according to the priority. As displayed in Figure 3a, activities B and A can be scheduled to start on the first day. However, activities C and D cannot start on the first day because of resource constraints; hence, they are delayed to the next day. Activities that can start on days 2, 3, and 4 are C and D, but each day they are delayed to the next day owing to resource constraints. On day 5, activities that can start are still C and D, and as activity A ends on day 4, two R. As and R.Bs are released such that activities C and D can be scheduled to start. That is, activity A becomes the preceding activity of activities C and D, and direct resource links are created as illustrated in Figure 3b to reflect this condition. Because all activities that can start on day 5 are planned, the process moves to the next day. By the same process as for activities C and D, activity E is delayed by one day and can start on day 7, and a direct resource link is created between activities C and E. Finally, activity F is planned without a delay, as depicted in Figure 3c.
If CPM is performed by additionally reflecting all direct resource links identified in the parallel method, activities A, C, E, and F become critical, and the total floats of activities B and D are one and four days, respectively. Activity B can have a one day total float without resource conflict, but activity D cannot proceed in parallel with activity F owing to R.A restrictions. Reflecting this condition, an indirect resource link is created between activities D and F, as illustrated in Figure 3d, and the total float of activity D becomes two days. Activities that can start on days 2, 3, and 4 are C and D, but each day they are delayed to the next day owing to resource constraints. On day 5, activities that can start are still C and D, and as activity A ends on day 4, two R. As and R.Bs are released such that activities C and D can be scheduled to start. That is, activity A becomes the preceding activity of activities C and D, and direct resource links are created as illustrated in Figure 3b to reflect this condition. Because all activities that can start on day 5 are planned, the process moves to the next day. By the same process as for activities C and D, activity E is delayed by one day and can start on day 7, and a direct resource link is created between activities C and E. Finally, activity F is planned without a delay, as depicted in Figure 3c.
If CPM is performed by additionally reflecting all direct resource links identified in the parallel method, activities A, C, E, and F become critical, and the total floats of activities B and D are one and four days, respectively. Activity B can have a one day total float without resource conflict, but activity D cannot proceed in parallel with activity F owing to R.A restrictions. Reflecting this condition, an indirect resource link is created between activities D and F, as illustrated in Figure 3d, and the total float of activity D becomes two days.

Need for Improvement
When comparing the results of serial and parallel RCS methods, there may be differences in the activity sequence, project duration, and identified resource links. Because the processes are different, individual algorithms and coding processes are required to develop a computer program that executes RCPM. For example, P6 applying the serial method and MSP applying the parallel method require individual appropriate programs. Furthermore, there is a burden of executing additional programs suitable for each method for a new RCS technique that is different from the existing ones. Thus, this study proposes a generalized RCPM (eRCPM) that can be applied irrespective of the applied RCS techniques.

Overview
The process of identifying resource links in both serial and parallel RCS methods introduced in Sections 2.2 and 2.3 can be divided into three steps. The first step is to create a direct resource link. When a delayed activity can be started, a resource link is created with the activity that releases constrained resources with its completion immediately before the start time of the delayed activity. The second step is to perform CPM to identify the total float of each activity. At this time, CPM reflects the direct resource links identified in the first step besides the existing technological activity relationships. The third step is to create indirect resource links when the total float range of an activity is not fully available owing to resource conflicts with other activities. The second and third steps are applied in the same manner for serial and parallel methods and are the same as those applied in RCPM [12]. Therefore, this study proposes a method to identify direct resource links without depending on RCS techniques.

eRCPM Algorithm
Whereas RCPM identifies direct resource links in the process of RCS, eRCPM identifies direct resource links from the RCS result. For the example mentioned in the previous section, the result of serial RCS that does not reflect the resource links is depicted in Figure 4a. In this schedule, activities C and D are the activities whose start time is delayed out of CPM network logic owing to resource constraints. Activity F is also delayed, but this delay is because of a relationship with activity C, not because of resource constraints.

Need for Improvement
When comparing the results of serial and parallel RCS methods, there may be differences in the activity sequence, project duration, and identified resource links. Because the processes are different, individual algorithms and coding processes are required to develop a computer program that executes RCPM. For example, P6 applying the serial method and MSP applying the parallel method require individual appropriate programs. Furthermore, there is a burden of executing additional programs suitable for each method for a new RCS technique that is different from the existing ones. Thus, this study proposes a generalized RCPM (eRCPM) that can be applied irrespective of the applied RCS techniques.

Overview
The process of identifying resource links in both serial and parallel RCS methods introduced in Sections 2.2 and 2.3 can be divided into three steps. The first step is to create a direct resource link. When a delayed activity can be started, a resource link is created with the activity that releases constrained resources with its completion immediately before the start time of the delayed activity. The second step is to perform CPM to identify the total float of each activity. At this time, CPM reflects the direct resource links identified in the first step besides the existing technological activity relationships. The third step is to create indirect resource links when the total float range of an activity is not fully available owing to resource conflicts with other activities. The second and third steps are applied in the same manner for serial and parallel methods and are the same as those applied in RCPM [12]. Therefore, this study proposes a method to identify direct resource links without depending on RCS techniques.

eRCPM Algorithm
Whereas RCPM identifies direct resource links in the process of RCS, eRCPM identifies direct resource links from the RCS result. For the example mentioned in the previous section, the result of serial RCS that does not reflect the resource links is depicted in Figure 4a. In this schedule, activities C and D are the activities whose start time is delayed out of CPM network logic owing to resource constraints. Activity F is also delayed, but this delay is because of a relationship with activity C, not because of resource constraints.  Activity C deferred for lack of one R.B can start on day 9 because one required R.B is released when activity E ends on day 8. As one R.B is directly transferred from activities E to C, a direct resource link is required between them. In the same manner, deferred activity D requires a direct resource link with activity A because it can start on day 5 and activity A releases two R.As with its completion on day 4. Activity C deferred for lack of one R.B can start on day 9 because one required R.B is released when activity E ends on day 8. As one R.B is directly transferred from activities E to C, a direct resource link is required between them. In the same manner, deferred activity D requires a direct resource link with activity A because it can start on day 5 and activity A releases two R.As with its completion on day 4. Step 1 process is completed because no more activities are delayed owing to resource constraints. Subsequently, applying steps 2 and 3 yields the same result as displayed in Figure 2c.
The same eRCPM process can be applied to the RCS result of a parallel method. The result of parallel RCS of the given example schedule is illustrated in Figure 4b, in which activities delayed out of CPM logic are activities E, C, and D. Similar to the serial RCS result, it can be noted that direct resource transfers occur between activities C and E (one R.A), A and C (two R.Bs), and A and D (two R.As). All direct resource links identified in this manner are the same as those in Figure 3c. Subsequently, applying steps 2 and 3 yields the same result as depicted in Figure 3d.
As described here, eRCPM proposed in this study can identify the same resource links obtained by RCPM, based on the RCS result irrespective of the RCS techniques applied. System development based on this method also has the advantage that the eRCPM algorithm needs to be implemented only once.

Overview
This study implements the prototype eRCPM system based on MS Excel, which is widely used for basic data management in various industries, including construction. Figure 5 shows the system development environment. As described earlier, the eRCPM system uses the RCS schedule data exported from P6 or MSP in an Excel format. The eRCPM system, an add-in program implemented with Excel Visual Basic for Applications (VBA), applies the eRCPM algorithm based on the exported schedule data to identify resource links and inserts the link information to the relevant Excel sheet. If the user imports this updated Excel file and executes CPM in P6 or MSP, the CPM output becomes the eRCPM output, which can consider resource constraints and provide reliable total floats, since the system has reflected resource links as well as technological activity relationships. Step 1 process is completed because no more activities are delayed owing to resource constraints. Subsequently, applying steps 2 and 3 yields the same result as displayed in Figure 2c. The same eRCPM process can be applied to the RCS result of a parallel method. The result of parallel RCS of the given example schedule is illustrated in Figure 4b, in which activities delayed out of CPM logic are activities E, C, and D. Similar to the serial RCS result, it can be noted that direct resource transfers occur between activities C and E (one R.A), A and C (two R.Bs), and A and D (two R.As). All direct resource links identified in this manner are the same as those in Figure 3c. Subsequently, applying steps 2 and 3 yields the same result as depicted in Figure 3d.
As described here, eRCPM proposed in this study can identify the same resource links obtained by RCPM, based on the RCS result irrespective of the RCS techniques applied. System development based on this method also has the advantage that the eRCPM algorithm needs to be implemented only once.

Overview
This study implements the prototype eRCPM system based on MS Excel, which is widely used for basic data management in various industries, including construction. Figure 5 shows the system development environment. As described earlier, the eRCPM system uses the RCS schedule data exported from P6 or MSP in an Excel format. The eRCPM system, an add-in program implemented with Excel Visual Basic for Applications (VBA), applies the eRCPM algorithm based on the exported schedule data to identify resource links and inserts the link information to the relevant Excel sheet. If the user imports this updated Excel file and executes CPM in P6 or MSP, the CPM output becomes the eRCPM output, which can consider resource constraints and provide reliable total floats, since the system has reflected resource links as well as technological activity relationships. The main process of the eRCPM system is illustrated in Figure 6. Because the export and import characteristics of P6 and MSP are different, the eRCPM system requires functions to reflect the difference. The eRCPM system first checks whether the Excel data belong to P6 or MSP and reads the exported schedule data accordingly. Based on the data, the system executes the algorithm, step by step, to identify resource links and inserts resource links to the relevant Excel sheet. P6 or MSP will import this updated Excel file. The main process of the eRCPM system is illustrated in Figure 6. Because the export and import characteristics of P6 and MSP are different, the eRCPM system requires functions to reflect the difference. The eRCPM system first checks whether the Excel data belong to P6 or MSP and reads the exported schedule data accordingly. Based on the data, the system executes the algorithm, step by step, to identify resource links and inserts resource links to the relevant Excel sheet. P6 or MSP will import this updated Excel file.  Figure 6. eRCPM system process overview.

eRCPM Key Processes
Among various processes of the eRCPM system, the following three main steps are explained in this section: input data processing prior to applying eRCPM, identifying direct resource links, and identifying indirect resource links.

Input Data Processing
Based on the exported Excel file, after RCS in P6 or MSP, the data necessary for the eRCPM operation are processed as shown in Figure 7. A brief description of each input data process in the eRCPM system is as follows.
1. Read ID, original duration (OD), early start time (EST), and early finish time (EFT) of every activity and store them in an array of activities. 2. Identify the project start and end times. 3. Read the relationship information of each activity and add it to the saved activity in the array of activities to establish the relationship between activities. 4. Read the ID, name, and maximum supply of every resource type and store them in an array of resources. 5. Read the amount of resources required for each activity and add them to the saved activity in the array of activities. 6. Create a daily resource table in a two-dimensional array according to the type of resource and the project period and record the demand for each resource for each date based on the time data and resource demand for each activity.

eRCPM Key Processes
Among various processes of the eRCPM system, the following three main steps are explained in this section: input data processing prior to applying eRCPM, identifying direct resource links, and identifying indirect resource links.

Input Data Processing
Based on the exported Excel file, after RCS in P6 or MSP, the data necessary for the eRCPM operation are processed as shown in Figure 7. A brief description of each input data process in the eRCPM system is as follows.

1.
Read ID, original duration (OD), early start time (EST), and early finish time (EFT) of every activity and store them in an array of activities.

2.
Identify the project start and end times.

3.
Read the relationship information of each activity and add it to the saved activity in the array of activities to establish the relationship between activities.

4.
Read the ID, name, and maximum supply of every resource type and store them in an array of resources.

5.
Read the amount of resources required for each activity and add them to the saved activity in the array of activities. Identify start activities that have no predecessor and finish activities that have no successor and store their IDs in a separate array to apply forward and backward passes in steps 1 to 3.
Sustainability 2020, 12, x FOR PEER REVIEW 9 of 19 7. Identify start activities that have no predecessor and finish activities that have no successor and store their IDs in a separate array to apply forward and backward passes in steps 1 to 3.

Step 1: Direct Resource Link
In the eRCPM process, after data creation, the same process is applied irrespective of P6 and MSP, as depicted in Figure 6. The process of identifying a direct resource link in step 1 is demonstrated in Figure 8a. Initiating from a start activity, a direct resource link is created when a delay occurred owing to resource constraints while visiting each activity in a forward pass method. When the start time of an activity in the RCS result is greater than EST of CPM, the activity is considered as a delayed activity owing to resource constraints.
For example, when the EST of a start activity, which has no predecessor, is greater than 1, that is, when the start activity is delayed as a result of RCS, a resource link can be obtained by referring to the values in the daily resource table that contains the total daily resource requirements per resource type and a list of activity IDs that require these resources. When identifying the resource link, the system stores the current step, the name of the resource that has caused the constraint, and the predecessor and the successor IDs of the resource link as a text log of the delayed activity. The forward pass, as depicted in Figure 8b, is applied as a recursive function and the entire network is searched to identify the required direct resource links.
Subsequently, the CPM backward pass computes the LST and LFT of each activity, considering both the technological relationships and the resource links identified in step 1. Based on the updated LST and LFT, the system calculates the total float of each activity. Because the resource links have been additionally reflected in the existing CPM relationships, the early times do not change, but the late times decrease owing to the resource links and the total float of the activity decreases accordingly.

Step 1: Direct Resource Link
In the eRCPM process, after data creation, the same process is applied irrespective of P6 and MSP, as depicted in Figure 6. The process of identifying a direct resource link in step 1 is demonstrated in Figure 8a. Initiating from a start activity, a direct resource link is created when a delay occurred owing to resource constraints while visiting each activity in a forward pass method. When the start time of an activity in the RCS result is greater than EST of CPM, the activity is considered as a delayed activity owing to resource constraints.
For example, when the EST of a start activity, which has no predecessor, is greater than 1, that is, when the start activity is delayed as a result of RCS, a resource link can be obtained by referring to the values in the daily resource table that contains the total daily resource requirements per resource type and a list of activity IDs that require these resources. When identifying the resource link, the system stores the current step, the name of the resource that has caused the constraint, and the predecessor and the successor IDs of the resource link as a text log of the delayed activity. The forward pass, as depicted in Figure 8b, is applied as a recursive function and the entire network is searched to identify the required direct resource links.
Subsequently, the CPM backward pass computes the LST and LFT of each activity, considering both the technological relationships and the resource links identified in step 1. Based on the updated LST and LFT, the system calculates the total float of each activity. Because the resource links have been additionally reflected in the existing CPM relationships, the early times do not change, but the late times decrease owing to the resource links and the total float of the activity decreases accordingly.

Step 3: Indirect Resource Link
Step 3 of eRCPM identifies indirect resource links by applying the backward pass starting from finish activities, as illustrated in Figure 8c. Starting from a finished activity, when the total float of an activity is greater than zero, the daily resource table is checked to determine whether this entire total float range is available without resource restrictions. When total floats are not fully available owing to resource constraints from a specific date, an indirect resource link is created by searching the daily resource table for the activity that starts on that date and has triggering resources. LFT and LST

Step 3: Indirect Resource Link
Step 3 of eRCPM identifies indirect resource links by applying the backward pass starting from finish activities, as illustrated in Figure 8c. Starting from a finished activity, when the total float of an activity is greater than zero, the daily resource table is checked to determine whether this entire total float range is available without resource restrictions. When total floats are not fully available owing to resource constraints from a specific date, an indirect resource link is created by searching the daily resource table for the activity that starts on that date and has triggering resources. LFT and LST should be updated by reflecting the newly identified resource link, and as a result, these values become smaller, and the total float becomes smaller accordingly.
As illustrated in Figure 8d, the backward pass checks all the activities on the network sequentially using a recursive function to identify necessary resource links. When a resource link is identified, the current step, triggered resource name, and predecessor and successor IDs are also stored in the text log. In this way, all resource links and text logs are created, and these are added to the appropriate Excel cells according to the format of P6 or MSP using Excel VBA code. P6 or MSP imports this Excel file and executes CPM to obtain an eRCPM output.

Export from P6 and MSP
The data required for the eRCPM execution are exported from P6 or MSP in an Excel format. P6 and MSP have different export characteristics, and users can select the specific data they require during each export process. Table 2 presents the data required to execute eRCPM. The data name itself makes sense, and certain terms have different expressions but the same properties. The biggest difference between P6 and MSP is the activity relationship. P6 exports the activity ID as a pair for a relationship; however, MSP does not export the activity relationships separately. Thus, for MSP data, the eRCPM system should refer directly to the predecessors and successors among the data of each activity. The RCPM log of activities is a user-defined text; it is set separately by the user in P6 and MSP and displays which resource link has been created by which resource at which step, as described earlier. Task ID Resource ID Units 1 The terms in parentheses refer to the MSP's export data type. 2 Values that must be included forcibly when exporting in P6.

P6 Example
The CPM result of P6 for the schedule presented in Table 1 is depicted in Figure 9a, and the RCS result is displayed in Figure 9b. Because of the application of RCS, the project completion time is extended by two days, from day 10 to 12; the float of each activity is also changed. Figure 9c demonstrates the result of CPM after exporting this RCS result in Excel format, applying eRCPM, and importing the Excel file. In the RCPM log column of Figure 9c, the step of identifying the resource link and the name of the resource that caused the constraint are presented; these resource links have been added as a predecessor and successor of the activity.
Notably, the total floats of RCS and eRCPM are identical to each other, as depicted in Figure 9b,c. The RCS output of P6 neither displays any additional activity relationships nor explains how these calculations resulted. It is assumed that the existence of phantom floats is recognized, and certain efforts are reflected. However, as explained by Franco-Duran and de la Garza [18] as well as this study, the total float after RCS is no longer reliable when the scale of the schedule becomes larger.  Figure 10 demonstrates the process of implementing eRCPM in Excel. Each Excel sheet in Figure  10a-d presents activities, activity relationships, resources, and resource assignments exported from P6, as presented in Table 2. The schedule of each activity is the same as the RCS result in Figure 9b; the activity relationships, resource demand, and maximum supply per resource are the same as those in Table 1.
Based on these data, if the eRCPM add-on program implemented in Excel VBA is executed, the identified resource links are recorded in the RCPM log, as depicted in Figure 10e. These resource links have been added as a predecessor and successor pair, as depicted in Figure 10f. P6 imports this updated Excel file and performs CPM. Figure 9c displays the eRCPM results.
(a)   Figure 10a-d presents activities, activity relationships, resources, and resource assignments exported from P6, as presented in Table 2. The schedule of each activity is the same as the RCS result in Figure 9b; the activity relationships, resource demand, and maximum supply per resource are the same as those in Table 1.
Based on these data, if the eRCPM add-on program implemented in Excel VBA is executed, the identified resource links are recorded in the RCPM log, as depicted in Figure 10e. These resource links have been added as a predecessor and successor pair, as depicted in Figure 10f. P6 imports this updated Excel file and performs CPM. Figure 9c displays the eRCPM results.  Figure 10 demonstrates the process of implementing eRCPM in Excel. Each Excel sheet in Figure  10a-d presents activities, activity relationships, resources, and resource assignments exported from P6, as presented in Table 2. The schedule of each activity is the same as the RCS result in Figure 9b; the activity relationships, resource demand, and maximum supply per resource are the same as those in Table 1.
Based on these data, if the eRCPM add-on program implemented in Excel VBA is executed, the identified resource links are recorded in the RCPM log, as depicted in Figure 10e. These resource links have been added as a predecessor and successor pair, as depicted in Figure 10f. P6 imports this updated Excel file and performs CPM. Figure 9c

MSP Example
MSP also proceeds in the same processes as P6. The CPM result is displayed in Figure 11a, and the RCS result is displayed in Figure 11b. In the RCS result, the critical path is broken because there is no critical activity on day 6, and the total floats are unreliable because the schedule does not reflect the resource dependency between activities. Each Excel sheet in Figure 11c-e presents the activity, resource, and resource assignment exported from MSP, as presented in Table 2. The result of executing the Excel add-on eRCPM based on this data is illustrated in Figure 11f, where the successor

MSP Example
MSP also proceeds in the same processes as P6. The CPM result is displayed in Figure 11a, and the RCS result is displayed in Figure 11b. In the RCS result, the critical path is broken because there is no critical activity on day 6, and the total floats are unreliable because the schedule does not reflect the resource dependency between activities. Each Excel sheet in Figure 11c-e presents the activity, resource, and resource assignment exported from MSP, as presented in Table 2. The result of executing the Excel add-on eRCPM based on this data is illustrated in Figure 11f, where the successor column presents the identified resource links and the RCPM log column presents the property of each identified resource link. Figure 11g depicts the result of executing CPM after MSP imports this Excel file. The critical path is continuous, and the total floats are reliable. column presents the identified resource links and the RCPM log column presents the property of each identified resource link. Figure 11g depicts the result of executing CPM after MSP imports this Excel file. The critical path is continuous, and the total floats are reliable.  1  22  4  15  5  15  17  6  1  3  1  21  6  23, 30  16  0  16  16  −1  3  0  0  22  1  24  4  16  5  16  18  6  1  3  1  23  2  25, 26  4  22  0  22  22  −1  3  0  0  24  2  27  2  17  5  19  20  4  1  23  23  1  0  25  1  28  2  24  0  24  24  3  3  3  3  0  0  26  1  28  2  24  0  24  24  3  3  3  3  27  1  29  2  19  5  21  22  5  1  5  4  28  2  31  25  0  25  25  3  3  3  3  29  2  31  2  20  5  27  27  0  1  30  30  0  0  30  1  31  4  22  4  29  29  0  0  0  0  31  1  4  27  0  30  30  0  0  0  0  Maximum units  4  4  4 When the serial (P6) and parallel (MSP) techniques are applied to reflect the resource constraints, the start of several activities has been delayed, and the project durations of both methods are 30 days each, three days longer than CPM. However, owing to the difference in applied techniques, the start times of several activities are different, and both results provide unreliable total float values. Especially, if RCS is applied without selecting "preserve scheduled early and late dates" option in P6, an improbable result with negative total float values is obtained, as presented in Table 3 (P6's total float in RCS). In MSP, activities with a total float of zero are 1, 2, 3, 30, and 31, but as indicated by the start time in the table, the critical path is broken because it does not proceed continuously between activities 2 and 3 and between activities 3 and 30.
If the resource links identified by eRCPM are reflected, as depicted in Figure 12, the critical path becomes continuous from the project start to the end, and the total float values accurately reflect the resource constraints. Notably, as the RCPM log explains, most of the resource links were caused by the constraints of CARP (R1) in steps 1 and 3 of the eRCPM process. by the start time in the table, the critical path is broken because it does not proceed continuously between activities 2 and 3 and between activities 3 and 30.
If the resource links identified by eRCPM are reflected, as depicted in Figure 12, the critical path becomes continuous from the project start to the end, and the total float values accurately reflect the resource constraints. Notably, as the RCPM log explains, most of the resource links were caused by the constraints of CARP (R1) in steps 1 and 3 of the eRCPM process. When comparing the results of eRCPM with a recent previous study of Franco-Duran and de la Garza (2019) [18], P6's results were observed to be completely identical, but in MSP, there are slight differences in the identified resource links for activities 4, 17, 18, and 19. As presented in Table 3 and Figure 12b, activity 4 has been delayed from day 5 to day 15 owing to R1 resource constraints. To reflect this condition in step 1, the activities that released R1 with their completion on day 14 were identified as activities 17 and 18. These two activities released identical resources (two R1s and two R2s); hence, from the outlook of activity 4, these two activities were under equal conditions. In this case, eRCPM When comparing the results of eRCPM with a recent previous study of Franco-Duran and de la Garza (2019) [18], P6's results were observed to be completely identical, but in MSP, there are slight differences in the identified resource links for activities 4, 17, 18, and 19. As presented in Table 3 and Figure 12b, activity 4 has been delayed from day 5 to day 15 owing to R1 resource constraints. To reflect this condition in step 1, the activities that released R1 with their completion on day 14 were identified as activities 17 and 18. These two activities released identical resources (two R1s and two R2s); hence, from the outlook of activity 4, these two activities were under equal conditions. In this case, eRCPM selects an activity with a smaller activity ID as a predecessor, so that it created resource links between activities 17 and 4. However, the manual application of RCPM in the previous study selected activity 18 as its predecessor. This difference in predecessor selection causes resource link differences for the other activities. Thus, in terms of considering resource constraints and creating a resource-dependent activity relationship, there is no difference between eRCPM and the previous study.
Through this case study, it can be noted that eRCPM appropriately identifies the necessary resource links based on the RCS results under multiple resource constraints irrespective of the method used and provides reliable total floats.

Conclusions
Resources are limited in most construction projects. To consider these resource restrictions, RCS can be applied based on the CPM schedule. However, after applying the RCS technique, important project management information, such as total float and the critical path, are lost. In addition, the activity sequence may be altered after a regular schedule update which increases the difficulty in project control and delay impact analysis. Accordingly, several studies related to RCPM were conducted that additionally reflect the resource-dependent activity relationships on the existing CPM network. The results of these studies were partially reflected in P6 as demonstrated with an example. However, because the existing RCPM techniques recognize resource links in a specific RCS process such as serial and parallel, separate algorithm development and system implementation are required according to the applied technique. Consequently, this study proposes eRCPM to implement the RCPM concept irrespective of the applied RCS technique under multiple resource constraints and develops a prototype of the eRCPM system with Excel VBA. The main achievements, applications, and future research of this study are summarized as follows.

•
This study applied the serial method of P6 and the parallel method of MSP. However, it can be extended to other RCS results such as genetic algorithms or other optimization methods [26,28].

•
The role and meaning of the resource link were specified by dividing it into a direct resource link identified in step 1 and an indirect resource link identified in step 3.

•
This study developed an eRCPM prototype system with Excel VBA. The system automatically identifies resource links by linking it using the export and import functions of P6 and MSP. There are differences in input/output data types in the two systems, but the eRCPM process is executed in one process. Therefore, if required data input/output functions are added, it can be expanded to other types of systems or other RCS results. In addition, other activity-related project management functions not currently provided by P6 or MSP, such as schedule validation, procurement, quality, safety, etc., may be implemented in conjunction with their spreadsheet software through a similar procedure introduced in this study.

•
Because the step that identifies the resource link and the resource that has caused the constraint are managed as a log, the system can be used as an additional planning technique, such as adjusting the amount of supplying resources.

•
In the future, by adding functions for calendars, PDM (Precedence Diagramming Method) relationships, time constraints, progressed schedules, etc., the system will become a more practical tool for project schedule management.
In many construction projects, inaccurate information causes disputes between project participants, and these disputes are often resolved based on inaccurate data [11]. RCPM will provide more accurate information after RCS, and the eRCPM of this study will expand it to a wider area. These attempts will contribute to the implementation of sustainable construction project management by reducing unnecessary disputes as well as improving the efficiency of project management.
Funding: This paper was supported by Konkuk University in 2017.