Resource-constrained project scheduling problem : review of past and recent developments

Article history: Received: July 5, 2017 Received in revised format: October 10, 2017 Accepted: January 4, 2018 Available online: January 4, 2018 The project scheduling problem is both practically and theoretically of paramount importance. From the practical perspective, improvement of project scheduling as a critical part of project management process can lead to successful project completion and significantly decrease of the relevant costs. From the theoretical perspective, project scheduling is regarded as one of the interesting optimization issues, which has attracted the attention of many researchers in the area of operations research. Therefore, the project scheduling issue has been significantly evaluated over time and has been developed from various aspects. In this research, the topics related to Resource-Constrained Project Scheduling Problem (RCPSP) are reviewed, recent developments in this field are evaluated, and the results are presented for future studies. In this regard, first, the standard problem of RCPSP is expressed and related developments are presented from four aspects of resources, characteristics of activities, type of objective functions, and availability level of information. Following that, details about 216 articles conducted on RCPSP during 1980-2017 are expressed. At the end, in line with the statistics obtained from the evaluation of previous articles, suggestions are made for the future studies in order to help the development of new issues in this area. © 2018 by the authors; licensee Growing Science, Canada.


Introduction
In developing countries, implementation of projects plays a fundamental and effective role in the national development and improvement of economy.In these countries, projects are regarded as the wheels of the vehicle of growth and development in economic dimensions.In general, projects carried out at the national level are often large projects with great budgets.Therefore, optimal and accurate management of these projects leads to successful implementation of the project, increased revenues, and decreased costs and lost profits.One of the important duties of project management is scheduling, which has been turned into a difficult task due to resource constraints along with precedence relationships.As a result, the problem of project scheduling is considered by researchers as one of the most commonly used and fundamental issues, and development of this standard issue has been addressed in various aspects.Therefore, despite the extended assessment of project scheduling, further studies must be carried out to review the previously conducted researches to provide the condition for future studies through presenting a categorization of this type of problem.In the present research, project scheduling problem and its categorization are evaluated from various aspects.

Resource-Constrained Project Scheduling Problem (RCPSP)
The project scheduling problem is identified as determining the time required to implement the activities of a project to achieve a certain objective.In primary researches on project scheduling, it was assumed that the activities of a project are described only by the implementation of time duration.Therefore, methods, such as critical path method (CPM) and program evaluation and review technique (PERT), are proposed by considering the precedence relationships between the activities of a project.However, since the considering of precedence relationships to be independent seems to be an unreasonable assumption, it is aimed to apply some constraints and evaluate their effects.One of the major limitations of project scheduling is resource constraints, which is considered as a standard problem for project scheduling and is recognized with the title of Resource-Constrained Project Scheduling Problem (RCPSP).In this problem, a project with J activities labeled j=1,…,J is considered.In addition, the processing time (i.e., duration) of an activity j is represented by dj, which once started, the activity must be completed without interruption.In general, there are precedence relationships between the activities with regards to technological requirements.These relationships are shown by sets of immediate predecessors Pj, indicating that an activity j cannot be started before the completion of each of its predecessors ( ∈ ).In addition, these relationships can be represented in the form of a network.A certain amount of resources is required for each activity to be performed.Owing to a full capacity available in every period, the resources are recognized as renewable.In total, we have K types of renewable resources labeled k=1,…,K.For each resource k, it is assumed that Rk constant amount of resource is available before the start of each period.In order to perform activity j in each period, where the processing is carried out, rjk unit of resource k is required.Two additional activities j=0 and j=J+1, which represent the start and end of the project, respectively, are also regarded.Since both are dummy activities, their processing time and resource consumption are zero.All information of the problem is assumed to be deterministic and definite, and the parameters are considered non-negative and integer valued.In this problem, the aim is to find the start time (Sj) for the activities j=0,1,…,J+1, in a way that the completion time of the project is minimized (Hartmann & Briskorn, 2010).
The basic form of resource-constrained project scheduling problem is as mentioned above.However, since the situation is completely different in practice, changes have been made to the basic assumptions by the researchers over time.In addition, Blazewicz et al. (1983) have shown that the RCPSP problem belongs to the class of the strongly NP-hard problems.As a result, various solutions are used according to the changes in the basic assumptions.In the following, changes which have occurred in the general form of the base problem over time are evaluated and categorized from the perspective of four main dimensions and their subcategories, according to Fig. 1.

Resource constraint
As mentioned earlier, each activity in the project requires resources to be implemented.The need to resources, only in the form of renewable resources and assuming that they have a full capacity in each period and a fixed amount of the resource is occupied during the implementation of the activity, has been assessed in the basic RCPSP.Since the type of the consumption resource(s) of an activity depends on the nature of that activity, various resources have been evaluated, among which renewable, nonrenewable and doubly constrained resources have attracted the most attention from the researchers.

Renewable resources
Most of the articles on scheduling problems have regarded renewable resources to perform their activities.It means that resource constraints have been periodic and when the activities are initiated, a specific amount of this type of resources is exploited and returned at the end of the process.In the basic RCPSP, consumption of this type of resources along with precedence constraints of activities are evaluated.In addition, it is assumed that the amount of resource consumption and available capacity of each of them are in the form of integers.In this regard, human resources and machinery are considered to be this type of resources (Carlier & Moukrim, 2015).
In some studies, renewable resources are divided into two categories:  Extremely expensive resources (type A), which must be provided for a short duration of the project.This type of resources must be prepared and obtained from the outside during the scheduled time. Renewable resources (type B), which are completely available for organizations (Golenko-Ginzburg et al., 2006).

Non-renewable resources
Another resource used by activities, which is categorized by Słowiński (1980), is known as non-renewable resources.While the renewable resources are periodically renewed and their limited amount can vary from one period to another, the non-renewable resources are limited within the project horizons.
In other words, this type of resources has limited access to total consumption over the entire period of the project and not in each periodic course.The required raw material is one of the most significant examples of non-renewable resources since they are available for a project at a specific and determined amount (Kyriakidis et al., 2012).Moreover, the total cost of the project is regarded as non-renewable resource (Wang et al., 1993).

Doubly constrained resources
Another categorization of resources stated in Słowiński (1980) is doubly constrained resources.This category of resources has the properties of both renewable and non-renewable resources.In other words, the access to these resources is limited both in each period and the total duration of the project (Kyriakidis et al., 2012).Other examples of this type of resources are money and energy.Meanwhile, they are regarded as doubly constrained resources due to constraints caused by accessibility and use during the project implementation (Kogan & Khmelnitsky, 1998).Given the fact that a doubly constrained resource can be regarded in a problem by a renewable and a non-renewable resource, this category of resources requires no separate consideration (Hartmann & Briskorn, 2010).

Characteristics of activities
With regards to the development of RCPSP in all dimensions over time, developments have been made in the concepts and assumptions related to the activities of the project.Without a doubt, these assumptions are not limited to theoretical research and are significantly applicable in the real world.In this section, some of these concepts are described:

Preemptive scheduling
One of the main assumptions related to the basic RCPSP is that the activities of the project cannot be interrupted or discontinued.In other words, an activity must continue to the end without any interruptions.However, in practice, some activities must be stopped during the processing, which can be due to destructions or disabilities of resources, equipment repair, and etc (Chen & Zhang, 2016).The Preemption Resource-Constrained Project Scheduling Problem (PRCPSP) was first introduced by Kaplan (1988).Given the fact that in PRCPSP problem, activities are allowed to be stopped at any time of the process and be continued at another time without any additional costs, this type of problem can better simulate the actual scheduling process.Similar to PRCPSP problems, Van Peteghem and Vanhoucke (2010) assumed that preemption of activities was allowed at any time of performing the activities.In addition, it was observed in Moukrim et al. (2015) that no fee was regarded as penalty for preemption of activities.Shadrokh (2010), Afshar-Nadjafi and Majlesi (2014), Afshar-Nadjafi (2014b), Ballestín et al. (2009), andDemeulemeester andHerroelen (1996) allowed the interruption of activities in discrete points of time.In other words, the activity can be stopped at each integer time unit of the processing period.In their scheduling problem, Chen and Zhang (2016) assumed that an activity can be interrupted one or more times during the processing period; However, Zhu et al. (2011) assumed that an activity can be interrupted at most m times.In addition, Li et al. (2011) and Shou et al. (2015) allowed the activities to be interrupted with a maximum of one time.In Fallah et al. (2010), it was assumed that access to resources was associated with uncertainty and activities could be interrupted in case of destructed resources.Zhang et al. (2006) evaluated Preemptive Scheduling under Break and Resource-Constraints (PSBRC), where the activities were stopped during the break and the stopped activity could not be immediately started in the next period due to resource constraints, which must be reallocated during the break.Buddhakulsomsiri and Kim (2006) and Buddhakulsomsiri and Kim (2007) used a similar approach by allowing the activities to be interrupted due to the rest of resources.Tavana et al. (2014) regarded preemption project scheduling problem with three specific features.First, there was a limitation as the minimum duration of processing activity before the first interruption.In addition, a high limit for the number of preemptions in one activity and a maximum duration as limitation for duration between the interruption and restart of the activity were defined.Vanhoucke and Debels (2008) regarded another type of preemption of activities in the project scheduling problem, called fast tracking option.Their assumption was that the parts of an activity that were separated due to interruption would require no processing in sequence and could be performed in a parallel manner.

Activities execution mode
In the basic RCPSP, it is assumed that the activities are performed by one method and within a determined processing time and with specific (renewable) resource consumption.Elmaghraby (1977) was proposed as a start for the assumption of multi-mode activities, in which several techniques or alternatives exist to implement the activities, each having its own specific processing duration and resource consumption amount (Hartmann & Briskorn, 2010).Assumptions of multi-mode RCPSP are, as follows: an activity j must be performed by one of the methods determined by 1,…,Mj, where Mj indicates the number of implementation methods of activity j.Moreover, when performing of an activity is initiated by one of the possible methods, the activity must be processed in the same way until completion.
In other words, no interruption is allowed during the activity.Duration of activity j, which is processed by method m, is shown by djm, and the demand for activity j, which is processed by method m, is mentioned by rjmk for resource k, which demonstrates that the implementation duration of activity j and the amount of consumption of resource k by activity j will be different for each processing method.In multi-mode RCPSP, non-renewable resources are often considered along with renewable resources, so that the start time of the activities (Sj) along with the method of activities (mj) are determined in a way that the minimum duration required for the completion of the project (which is the most common type of objective in the literature) is obtained.Generally, multi-mode RCPSP problem is recognized as Multi-mode Resource-Constrained Project Scheduling Problem (MRCPSP), which is more general, compared to RCPSP.
In their scheduling problem, Santos and Tereso (2011) involved multi-skilled human resources and assumed that the activities can be performed by various methods, each using their own specific skill level, which resulted in different costs and processing durations.Since the main scheduling timetable might be infeasible in some cases due to disturbances in resources and the duration of activities, modifications must be made in the scheduling timetable.Therefore, Deblaere et al. (2011) presented a number of methods for scheduling, which repaired the disruption in main scheduling timetable that included RCPSP with multi-mode activities.Beşikci et al. (2015) introduced a multi-mode scheduling problem in the multi-project environment, where there was a specific deadline for each project.Each activity had selective methods for consumption of resources and a policy was regarded for allocation of resources to prevent the sharing of resources among the projects during the planning horizon along with a budget level that must be distributed between various resources to determine the total capacity of the resources.Delgoshaei et al. (2016) presented a new method to modify the excessive allocation of resources for RCPSP, in which it was assumed that activities could be interrupted.Despite the possibility of performing the activity in several methods, if one method is initiated to perform the activity, it must be the same method used during the implementation of activity.

Resource request varying with time
In the basic RCPSP, it is assumed that the amount of demand of an activity for renewable resources during processing is constant.In other words, the demand of activities for resources during the implementation process does not change from a period to another.This assumption can be turned into a more general mode by considering the variable demand in the time unit.Regarding the basic RCPSP, rjk is indicative of the consumption amount of recourse k by activity j in each period.If it is aimed to regard the variable demand, rjk must be replaced by rjkt, which is indicative of the amount of demand of activity j for renewable resource k at the t th period of its processing time (Hartmann & Briskorn, 2010).
In their scheduling problem, Cavalcante et al. (2001) presented a work profile for each activity to use the human resources, demonstrating that a different number of workers was used during the implementation of each activity.Meanwhile, the number of available workers in each day was a constant amount.
A mode of project scheduling problem in software companies was considered by Drezet and Billaut (2008), where the resources related to the execution of activities were employees, and the need of activities for these resources depended on time.Need of each activity to employees in each period varies in a range with a maximum and minimum value.In the Hartmann (2013), scheduling of experiments related to a medical research project was evaluated, where two types of resources were required to perform the experiments.The first resource was the researcher, who must be present during the test process.However, the second resource was laboratory equipment, which was only required on the final day of the experiments, and therefore, was regarded as the resource with variable demand per time unit.

Other characteristics of activities
One of the essential pillars of projects is when all of the activities are performed and the project is completed.Therefore, reducing the execution time of the project can be significantly interesting to project owners.Reduction of the duration can be carried out in various forms, including the use of additional shifts or working overtime and/or allocation of a greater amount of resources, which is associated with increased costs and investments (Ahn & Erenguc, 1998).Activity crashing is a technique used to reduce the implementation time of the project through the decrease of duration of critical activities by allocating higher costs (Nonobe & Ibaraki, 2006).This technique is used in many studies related to project scheduling, such as Ahn and Erenguc (1998), Göçken (2013) and Kang and Choi (2015) as well as especially the researches in which there is a tradeoff between time and cost.In addition, Drexl et al. (2000) presented a new concept with the title of forbidden periods, in which a set of time periods exist for each activity when the activities cannot be performed.These forbidden periods are due to the nature of the activities and are not related to the work calendar or any other limitation.In some problems, transferring from one activity to another is in a way that requires the implementation of some operations.In other words, there is a considerable workload in performing operations between activities, which cannot be neglected.Some of these operations include the transferring of resources or installing and setting up some resources, such as machinery.Therefore, Čapek et al. (2012) considered a mode of project scheduling problem, in which one resource along with positive and negative time lags and sequence-dependent setup times was involved.Sequence-dependent setup times are responsible for covering the time required to change equipment or launch a machine between two different activities.

Objective function type
Generally, mathematical optimization models have defined objective function, which is determined in proportion to the objective of the decision maker.In project scheduling problems, the start time of activities must be determined with regards to a specific objective.Since project owners follow their goals to determine optimal scheduling, various objective functions are evaluated during the time of theoretical development of RCPSP, which are categorized in this section:

Time-based objective functions
Minimization of the project completion time (Cmax) is the most popular type of objective function in the RCPSP literature.In this type of objective functions, which is also regarded as the objective function of the basic RCPSP, activities of the project are scheduled in a way that completion time of the project reaches the minimum amount.Taking into account the uncertainty about the duration of activities in the scheduling problem, Creemers (2015) presented a model, which minimized the expected completion time of the project.In addition to the objective function of minimizing Cmax, minimizing lateness, tardiness and earliness are regarded as other time-based objective functions.The lateness for activity j, which is shown by Lj, indicates the amount of difference in the completion time Cj from a specific delivery time dj, which is equal to Lj=Cj-dj.Tardiness Tj is similar to Lj, except for the fact that it cannot allocate negative values to itself and is defined as Tj= max{0,Cj-dj}.Earliness, shown by Ej, expresses the time that the activity is finished earlier than the determined time of dj, estimated in the form of Ej= max{0, dj-Cj}.Viana and de Sousa (2000) presented the multi-objective scheduling problem, in which minimization of the weighted lateness was used as one of the objective functions of the problem.It is worth noting that this type of objective function generalizes the objective of reducing the project completion time.In another research, Neumann et al. (2002) described the method to minimize the maximum lateness and minimize the total weighted tardiness in scheduling problem.Drezet and Billaut (2008) developed the project scheduling problem with the involvement of multi-skilled human resources and aim of minimizing the maximum lateness.The objective function of minimizing the maximum lateness is one of the most widely used time-based functions, which was also applied in Słowinski (1981).Given the facing of managers with the problem of decision making about the allocation of resources for minimizing the mean tardiness per each project or completion time of all projects in multiproject scheduling problems, Browning and Yassine (2010) considered the resource-constrained multiproject scheduling problem with two objectives of minimization of project lateness and portfolio lateness.Xiao et al. ( 2014) also followed a bi-objective project scheduling problem, which minimized not only the project completion time but also the total tardiness.These objective functions were considered by Xiao et al. (2016).In some conditions, it is necessary to minimize the duration between the completion time and deadline of activities.This type of scheduling is recognized as earliness-tardiness project scheduling problem.

Economic objective functions
Cost-based objective functions: Another objective function proposed in RCPSP is the cost-based objective, including the costs of implementation and completion of project.In most of the project scheduling problems, there is a tradeoff between cost and time.For instance, in multi-mode project scheduling problems, a definite processing duration and cost exist for each method to perform the activity.Since completion of an activity in a shorter duration is often associated with increased costs, a problem with the title of "time-cost tradeoff problem" is formed.Berthaut et al. (2014) followed the time-cost tradeoff problem by considering the acceleration of performing the project through overlapping of sequential activities and costs caused by parallel performing of these activities.Choi and Park (2015) defined several stages in project such a way that the tardiness in each stage was associated with penalty cost.Moreover, since the processing time of activities can be reduced by consuming more resources, an objective function is presented, which minimizes the total penalty cost in addition to the total cost of activity crashing.Considering the uncertainty in activities processing time, Kang and Choi (2015) considered a stochastic time-cost tradeoff problem, which determined how much duration of activities could be reduced to minimize the expected total costs of reducing the execution time of activities and tardiness.In some other studies, activities are scheduled in a way that the total cost of the project implementation is minimized.Depending on various conditions, these costs are formed of various costs.
Given the importance of activities implementation cost for the contractor in a multi-project environment, Liu and Zheng (2008) minimized the fixed cost of implementing the project activities and holding costs of completed activities of projects in their model.This type of objective function was also assessed in Zhenyuan and Hongwei (2006) and Montoya-Torres et al. ( 2012) and also, the solution method was provided.In addition, Karshenas and Haber (1990) considered only the cost of all consumed resources of a project, which must be minimized.Maniezzo and Mingozzi (1999), Möhring et al. (2001), and Möhring et al. (2003) regarded cost Cjt for activity j, value of which depended on the initiation time t.
The objective function of this type of research is minimization of all of these costs.Rajeev et al. (2015) tried to schedule activities in a way that the total weighted penalty cost of earliness-tardiness of the project was minimized according to the constraints of precedence relationships and resource constraints.

Net Present Value (NPV):
One of the objective functions assessed in RCPSP is the objective of Net Present Value (NVP) maximization.Since costs and revenues of activities are occurred during time, considering the NVP instead of total costs or revenues can be significantly effective.Cash outflows or costs are occurred due to performing activities and consuming resources and On the other hand, cash inflows or revenues are earned as a result of completion of specific sections of the project.Cash flows caused by activity j can occur at several points of the implementation time of activity j.However, they can be combined in a single cash flow occurred in the beginning or at the end of activity j.Considering these issues can lead to problems with the objective of maximizing the NVP with the constraints of the basic RCPSP.Optimization of the NVP for project scheduling problems was first introduced by Russell (1970), and greatly developed over time.Shavandi et al. (2012) regarded the duration of activities as triangular fuzzy numbers, and evaluated the maximization of NVP in a fuzzy environment.In addition, Wiesemann et al. (2010) maximized the expected project NVP, when the processing time of activities and cash flows were described by a discrete set of scenarios with the definite probability of occurrence.Moreover, Sobel et al. (2009) considered the maximization of the expected NVP in the uncertainty environment.In the MRCPSP, Ulusoy et al. (2001) expressed four payment models, which were practically used to discount cash flows.In the lump-sum payment model, all payments are made by customer to contractor immediately and all at once after the successful completion of the project.In the second model of payments entitled payments at event occurrences, payments are made in a set of previously determined event nodes.In the third model, known as equal time intervals, the customer makes H payments in H-1 equal periods during the project duration with the final payment being immediately after the completion of the project.In the final model with the name of progress payment, the contractor receives the payments from the customer at determined time intervals until the completion of the project.For instance, payments might be at the end of each month for the work done in that month and according to an agreed profit rate between the customer and the contractor.It should be noted that MRSPSP with considering the discounted cash flows is known as the Multi-mode Resource-Constrained Project Scheduling Problem with Discounted Cash Flows (MRCPSPDCF).One of the specific problems in project scheduling is resource investment problem, in which the accessibility level to resources is regarded as decision variable, and a scheduling timetable for activities along with an accessibility level to resources are obtained according to the optimization of a specific objective.Therefore, Najafi and Niaki (2005) considered a resource investment problem, aiming to maximize the project NVP.In addition, they proposed a solution method for this type of problems, which are recognized as resource investment problem with discounted cash flows.Leyman and Vanhoucke (2015) and Leyman and Vanhoucke (2016) used the payments at activities completion times model to maximize the NVP, where it was assumed that cash inflows and outflows for each activity occur at its completion time.
Presenting their model, Khoshjahan et al. (2013) tried to minimize the present value of earliness-tardiness penalty costs through defining a deadline for each activity.In their research, the mathematical programming model was proposed first, followed by the application of two solution algorithms (i.e., genetics and simulated annealing) to solve this NP-Hard problem.

Resource-based objective functions
Renewable resource objective functions: In the basic RCPSP, the project completion time must be minimized with regard to the renewable resources constraint.The dual of this problem is Resource Investment Problem (RIP), which was first introduced by Möhring (1984).In RIP, the costs related to the provision of a specific level of capacity must be minimized according to the deadline set for the project.The objective function of this type of problems is minimizing the sum of costs of access to all resources or ∑ , where Ck is a non-decreasing discrete cost function of resource k, and capacity levels k R are obtained as decision variables through solving the model (Hartmann & Briskorn, 2010).In some studies, such as Shadrokh and Kianfar (2005), Shadrokh and Kianfar (2007), Liu et al. (2015), and Yuan et al. (2015), resource investment problem has been considered by allowing the tardiness.In this regard, if the completion time of the project is extended more than the defined deadline, penalty cost must be paid, which is added to the objective function of the problem.Najafi and Niaki (2006) considered resource investment problem with discounted cash flows, objective function of which encompassed of the fixed cost of performing activities, cash receipts and the costs due to the required level of resources.In addition to considering the discounted cash flow in their objective function for resource investment problem, Najafi and Azimi (2009) also regarded the tardiness cost in the objective.Xiong et al. (2011) evaluated the Stochastic Resource Investment Project Scheduling Problem (SRIPSP), in which three objectives of project completion time, cost and robustness were simultaneously considered.Another mode of RIPSP problem is known with the title of Extended Resource Investment Project Scheduling Problem (ERIPSP), in which the duration of activities depends on the amount of allocated resources.Xiong et al. (2014) assessed a mode of ERIPSP entitled Stochastic Extended Resource Investment Project Scheduling Problem (SERIPSP), in which three objectives of minimizing the project completion time and cost, as well as maximizing the robustness were followed.One of the most important objectives in project management is achieving a stable level of required resources in each period, known as resource leveling problem.The main objective of this type of problems is minimizing the changes in the level of consumed resources from a period to another with a deadline constraint.Neumann and Zimmermann (1999) and Neumann and Zimmermann (2000) pointed out three common objective functions in this type of problems:  In the first objective function, maximum changes in the resources is minimized, which was also used in Wang et al. (2008). In the second objective function, it is aimed for the amount of consumed resources not to exceed a certain level.In other words, the total amount of resources that exceed the permitted level is minimized.This type of objective function was recently applied in studies, such as Bianco et al. (2016) and Tran et al. (2016). In the third objective function, the total changes in the consumed resource level in each period is minimized compared to that of in the previous period, which was exploited in Li et al. (2010) and Nikoofal Sahl Abadi et al. ( 2016).
Nübel ( 2001) expressed a generalized mode of resource investment problem with the title of resource renting problem.In this type of problems, it is assumed that each unit of resource k is rented in each period with the fixed cost and the variable cost .Therefore, cost of renting a unit of resource k for t periods is equal to .Costs of delivering resources to the project site can be regarded as fixed cost, whereas variable cost is indicative of the actual cost for rent.While 0 is observed in this type of problems, resource renting problem will be turned into resource investment problem.
Non-renewable resource objective functions: Similar to the dual concept for resource investment problem, the amount of consumed non-renewable resources can be minimized here through imposing a deadline on the project.One of the project scheduling problems with objectives based on non-renewable resources is the discrete time/cost tradeoff problem.Similar to Vanhoucke et al. (2002) and Akkan et al. (2005), in this type of problems, it is assumed that the processing duration of the project activities is discrete and a non-decreasing function of the amount of non-renewable resources.Najafi et al. (2011) evaluated a type of Project Scheduling and Material Ordering Problem (PSMOP), where the total holding and ordering costs during the project implementation were minimized.Khalilzadeh et al. (2012) also regarded a type of resource investment problem, in which tardiness was allowed for renewable resources and the total costs of consuming non-renewable resources and penalty cost caused by tardiness of renewable resources were minimized in the objective function.Damak et al. (2013) analyzed a type of MRCPSP, which helped the minimization of the project completion time and cost of non-renewable resources.

Other objective functions
In some cases, the decision maker might have specific objectives and make optimal scheduling to achieve them.In addition to time and cost, the factor of quality can also be regarded as an important objective of a project.Quality is generally considered along with cost or time or both.The Discrete Time-Cost-Quality Tradeoff Problem (DTCQTP) is one of the most applicable project scheduling problems, in which it is aimed to obtain the optimal scheduling timetable from the combination of objectives of minimizing the completion time and cost and maximizing the quality.In this type of problems, each activity has several implementation modes with each having its own required resources.This property is associated with the effectiveness of selecting the implementation mode of activities on time, cost and quality.Maghsoudlou et al. (2016) also evaluated a resource-constrained project scheduling problem with multiple modes and multi-skill resources as well as considering three objective functions.In the first objective function, the project completion time was minimized.In the second objective function, the total cost of assigning workers to skills was minimized, and the quality of processing activities was maximized with the third objective function.During the implementation of the project, some interruptions may occur, which disrupts project scheduling.This type of interruptions cannot be predicted when the scheduling timetable is obtained.Therefore, a project manager might be willing to determine a stable scheduling timetable, in which interruptions could have little impact.As a result, the related objective functions must be used to prepare a stable and robust scheduling timetable.In this regard, Abbasi et al. (2006) presented a RCPSP model with two objectives, where the project implementation time was minimized in the first objective function and maximization of floating time for increase of scheduling robustness were considered as the second objective function.Similar to Abbasi et al. (2006), Hao et al. (2014) presented a project scheduling problem with two objectives of minimizing the project completion time and maximizing the scheduling robustness, with the difference that Hao et al. (2014) considered the scheduling robustness criteria as a weighted equation with regard to the number of successor activities.Khemakhem and Chtourou (2013) reviewed some criteria for scheduling robustness presented in the literature and also proposed some new criteria.In some cases, unexpected events, such as disruption of project time and consumed resources, might occur during the implementation of the project, leading to problems in the primary determined scheduling.In such conditions, scheduling must be carried out again, which could result in some changes in the properties of the problem.For instance, some of the completed activities might be neglected and some ongoing activities must be assumed fix.In addition, the accessibility level to resources might be changed or be converted from stable amount to the time-depending amount.In this mode and with regard to the objectives of the decision maker, various objective functions can be used for re-scheduling.Considering MRCPSP, Deblaere et al. (2011) used an objective function for re-scheduling that minimized the difference between the start time of activities in the primary scheduling and start time of activities in rescheduling along with the costs caused by change of method in non-completed activities in rescheduling timetable.Chen and Zhang (2014) also attempted to minimize the total weighted absolute difference between the start time and deadline of activities.Chakrabortty et al. (2016) proposed a methodology for rescheduling problem, where in addition to the minimization of the project completion time, the weighted difference of the activities completion time in the rescheduling timetable was minimized, compared to that of in the nominal scheduling.In this regard, positive or negative difference has its own relevant penalty.

Multi-objective problems
In some cases, the decision maker might consider several performance criteria or objective functions to determine the optimal scheduling timetable.In this case, combination of two or several objective functions can be applied.Since the considered objectives are often in conflict with each other, a multiobjective scheduling model can be applied to create the necessary tradeoff between the objectives.

Availability level of information
The aim of project scheduling is providing a baseline schedule for more accurate control of the project and more easy planning for project success.However, it is noteworthy that this scheduling timetable must be obtained before the start of the project and its accuracy depends on the information used to provide the scheduling timetable.Availability level of required information can be full or limited.If the required information is complete, the obtained scheduling timetable will be optimal and valid.But in the case of having limited information, project scheduling must be analyzed in an uncertainty environment.

Deterministic
Similar to the basic RCPSP, which assumed all information to be complete and certain, many studies in the field of project scheduling have considered that complete information about parameters exists and a basic scheduling timetable is prepared in a deterministic environment for applying in the future.However, since the basic scheduling timetable is obtained before the project implementation and is regarded as a form of prediction, the assumption of data certainty in the real world is not completely correct.Therefore, some approaches have been recently used for preparing project scheduling timetable in uncertainty environment, which will be explained in the following.

Non-deterministic
Resource-constrained project scheduling problems are often faced with significant uncertainties, negligence of which might cause several problems in the implementation phase.These uncertainties can be related to at least one of the following sources:  Activities might be performed in a shorter duration or longer than the estimated amount.
 The resources and materials might not be available at the time of need. It might be inevitable to change the start time and determined deadlines of activities for any reason. In another mode, new activities might be added or some activities might be eliminated due to changes in the project scope. In addition, unpredictable natural disasters, such as weather and climate, might cause significant delays. And similar issues.Disrupted scheduling leads to more costs due to the loss of the determined deadlines, useless of resources, more work in process and tense system environment (Goldratt, 1997).Therefore, solutions must be presented to deal with these uncertainties.As a result, various strategies have been evaluated in studies for project scheduling in the uncertainty environment.In this regard, five important approaches are introduced in the following.
Reactive scheduling: This approach is applied during the project implementation and is based on timely information.In this approach, uncertainty is not involved in preparing of scheduling timetable.Nevertheless, basic schedule is reviewed and reoptimized in case of occurring an unexpected event.In terms of reactive scheduling, two questions might be raised:  First, when do we need a new scheduling?A new scheduling can be prepared at any time of occurring of unexpected event (see, Wu et al., 1993;Bierwirth & Mattfeld, 1999), or, similar to Church and Uzsoy (1992), be created in predetermined intervals, or, similar to Vieira et al. (2000), be formed when a certain threshold of deflection is reached.while reactive scheduling requires a significant processing time along with various successive calculations, one of the most important benefits of this method is immediate reaction to unexpected events. The second question is that how is a new scheduling timetable created?Various strategies can be applied to form a new scheduling, one of the most common and simple of which is the right shift rule (Sadeh et al., 1993;Smith, 1995).In this approach, activities affected by scheduling failure are transferred forward in time.Another applicable approach is complete scheduling of that section of the project, which is not been implemented at time of occurrence of unexpected event.This rescheduling can have various objectives.In studies, such as Lambrechts et al. (2008), rescheduling was carried out with the objective of minimizing the total weighted difference between the start time of activities in rescheduling and start time of activities in the basic schedule.Similar to this objective, Suwa and Morita (2016) tried to minimize tardiness at the start time of activities in rescheduling, compared to the start time of tasks in the basic schedule.
In Chakrabortty et al. (2016), rescheduling was performed to minimize the project completion time and weighted penalty of deflection in project complete time in rescheduling timetable, compared to that of in basic schedule.

Stochastic scheduling:
In this approach, it is assumed that parameters of project scheduling problem are probabilistic.The literature related to stochastic project scheduling can be categorized into four problems of Stochastic Resource-Constrained Project Scheduling Problem (SRCPSP), project scheduling problems with stochastic activity interruptions, stochastic discrete time/cost trade-off problem and stochastic project scheduling problems with economic objective functions.
Stochastic resource-constrained project scheduling problem has the same assumptions as the basic RCPSP, with the difference that the processing duration of activities is assumed to be probabilistic.In other words, the aim of SRCPSPs is scheduling the project activities with a probabilistic duration, in a way that the expected project completion time is minimized according to the precedence relationships and renewable resources constraints.Valls et al. (1999) regarded a type of uncertainty for RCPSP, in which activities had both deterministic and non-deterministic duration.In other words, the first part of processing time of activity j is considered deterministic and equal to dj1.After that, it is assumed that a disruption with duration of wj occurred and the remaining processing time of activity after the disruption occurrence is assumed non-deterministic and equal to dj2.For instance, obtaining necessary licenses before the completion of this activities can be pointed out for such disruptions, implementation of which requires a specific duration.This type of problems is recognized as project scheduling problems with stochastic activity interruptions.
Another category of stochastic problems is related to stochastic discrete time/cost trade-off problems.Wollmer (1985) regarded a stochastic mode for linear time/cost tradeoff problem, in which activities had duration.In this respect, is the duration of processing activity j, for which crash duration lj and normal duration uj are considered as its upper and lower bounds, respectively.In addition, is a discrete random variable for time and independent of value .Given the implementation of each activity j with cost Cj, which depends on the duration of activity j (known as ), it is aimed to determine and start time of activities in a way that the expected completion time of the project is minimized according to budget consideration or in contrast, minimum cost is obtained according to determined expected time for project completion.
Another category of stochastic project scheduling problems is related to stochastic project scheduling problems with economic objectives.In this regard, Ke and Liu (2005) evaluated project scheduling problem with stochastic durations for activities and with the objective of minimizing the total cost under completion time constraints.They presented three different stochastic models with the titles of expected cost model, alpha-cost model and probability maximization model.On the other hand, Sobel et al. (2009) and Wiesemann et al. (2010) aimed to maximize expected NVP of the project in a condition that the duration of activities and cash flows were defined in the form of a discrete set of scenarios, which occur with specific probabilities.In addition, Chen et al. (2010) and Chen and Zhang (2012) assessed Stochastic Multi-mode Resource-Constrained Project Scheduling Problem with Discounted Cash Flows (SMRCPSPDCF), in which the duration of activities and costs were defined with random variables, aiming to determine an optimal scheduling in a way that the expected NPV of cash flows was maximized.

Fuzzy scheduling:
In some cases, lack of historical data might lead to inability to determine the probability distribution for duration of activities.In addition, duration of activities is estimated by experts often under unique conditions of the project and its non-repeatability.In fact, managers of the project are faced with ambiguous judgmental statements.In such conditions, where we deal more with ambiguity than uncertainty, the literature about fuzzy set scheduling indicates that use of fuzzy numbers is more preferred for modeling, compared to random variables.In other words, these values use membership functions based on possibility theory as a replacement for probability distributions (Herroelen & Leus, 2005).Fuzzy theory was first introduced by Zadeh (1965), and first studies on application of fuzzy condition in project scheduling problem was conducted by Prade (1979) and Chanas and Kamburowski (1981), where fuzzy numbers were used with triangular membership functions based on optimistic, probable and pessimistic estimates for duration of activities.Xu and Feng (2014) developed the MRCPSP for a large-scale construction project in a way that scheduling was performed through the optimization of cost/weighted completion time/quality tradeoff in a random fuzzy environment.In a complicated environment, where there are more than one type of uncertainty, Ke and Ma (2014) presented three time-cost tradeoff models with the titles of expected cost minimization model, ( , )  cost minimization model and chance maximization model, in which the project environment was described by introducing the random fuzzy theory.Moreover, Xu et al. (2015) presented a bi-level model with several decision makers for a project scheduling problem in a random fuzzy environment, where both interests of the project owner (maximization of benefit and minimization of project completion time) and contractor (minimization of costs) were considered.Cheng et al. (2016) introduced a new optimization model with the title of Fuzzy Clustering Chaotic-based Differential Evolution (FCDE) for solving Resource Leveling (FCDE-RL), where FCDE was developed by integration of differential evolution with c-mean fuzzy clustering and chaos techniques for solving complex optimization problems.Furthermore, Tran et al. (2016) used the same technique (FCDE) for Multiple Resources Leveling in Multiple Projects Scheduling Problem (FCDE-MRLMPSP).

Proactive (robust) scheduling:
In contrast to concept of reaction scheduling, active scheduling aims to predict the events that cause project tardiness through the creation of a stable schedule.This type of scheduling helps minimizing the effects of unexpected events on the main performance criteria, such as project completion time.Application of this method enables project managers to design stable scheduling so that some of the activities could be delayed while the completion time of the project could remain fixed (Palacio & Larrea, 2016).Creation of a robust scheduling is possible through various methods.In general, there are three approaches to create robust scheduling timetable in the literature, which are shown in Fig. 2 (Lambrechts et al., 2011).(Lambrechts et al., 2011) In contrast to buffer-based approaches, floating-based approach aims to produce a stable scheduling without adding additional time in order to maximize the floating of activities.Al-Fawzan and Haouari (2005) presented a bi-objective model, which not only minimizes the project completion time, but also maximizes the scheduling robustness to achieve a high-quality scheduling.Similarly, Abbasi et al. (2006) proposed a bi-objective model for RCPSP, with the difference that in the latter, robustness was evaluated in the form of the floating time of the project.In line with creating stability in RCPSP, Chtourou and Haouari (2008) presented a two-stage-priority-rule based algorithm and reviewed various robustness criteria based on free activity slack.

Time buffering
Float time Resource buffering

Buffer size
Buffer Allocation Another method to create robust project scheduling is the time buffer insertion, which means adding a percentage of activity implementation time to the activity duration.Here, the aim is to use buffer times to protect the scheduling timetable from the failures and attract them to prevent distribution over the total project.In this approach, two important decisions must be made; the first decision is about determining the total buffer times allocated to activities, value of which determines total robustness cost.
The second decision is about the fact that how much buffer time is allocated to each activity and which activities are actually involved.Van De Vonder et al. (2005), Van De Vonder et al. (2006a), Van De Vonder et al. (2006b) and Van De Vonder et al. (2007b) developed several exact and near optimal methods to insert the time buffers in an initial scheduling according to the objective of minimizing robustness cost.Among these methods, the Starting Time Criticality (STC) heuristic method has yielded positive results, despite its simple assumptions and structure.
Use of resource buffering, which is regarded to ensure the access to resources, is interpreted as the allocation of additional resources to each activity.In other words, in this method, a percentage of resource capacity is considered as reserved, and planning is performed for the remaining capacity.For strengthening of project scheduling timetable in the presence of disruptions, such as failure or lack of accessibility to resources, Lambrechts et al. (2011) applied resource buffering method to control the uncertainty related to lack of supply of resources during the project.
In various studies, different robustness objective functions have been used along with the minimizing completion time objective function in order to obtain a stable scheduling.Therefore, Khemakhem and Chtourou (2013) reviewed the main robustness criteria exploited in the literature and introduced several new criteria.Moreover, Lamas and Demeulemeester (2015) first defined a new robustness criterion with the title of confidence level and in form of probabilistic, followed by introducing a branch and cut method to solve the problem.Afshar-Nadjafi (2016) regarded the robust project scheduling problem with the existing reworks during the implementation of the project, and presented a recursive method to solve the problems with time buffer between activities (as an improving method) to enhance the robustness of a basic scheduling timetable.On the other hand, Palacio and Larrea (2016) proposed an exact method using lexicographic approach to solve two Mixed-Integer Programming (MIP) models of RCPSP problem, where the first model tried to minimize the project completion time, whereas the second model aimed to maximize the scheduling robustness.
There is another category of problems with the title of proactive-reactive project scheduling, which includes both proactive and reactive scheduling phases.In other words, at first, in the active scheduling phase, it is aimed to create a scheduling which is preferably resistant to unexpected events and disruptions.After the implementation of the project according to the prepared scheduling, when an event occurs, the reactive scheduling phase is implemented, if necessary, to modify the basic scheduling timetable.This type of problems is categorized by Van De Vonder et al. (2007b).
Sensitivity analysis: Another applicable approach in uncertainty condition is sensitivity analysis, which answers the questions starting with "What if…?" in conditions where parameters are changed.In this method, researchers mainly attempt to answer some basic questions, such as:  When does a basic scheduling remain optimal? When does the value of objective function remain optimal? What are the changing intervals of the parameters, in which the solution remains optimal? What is the new optimal cost in case of occurrence of a specific change in a parameter? What is the new optimal solution in case of occurrence of a specific change in a parameter? What type of sensitivity analysis should be utilized to evaluate the stability of optimal solution? And etc.
The majority of available studies in context of sensitivity analysis of scheduling problem, have been conducted on sensitivity analysis of machinery and workshop scheduling and in environment of production systems.Therefore, raising and answering similar questions about scheduling in project environment can be one of the interesting research fields for future studies.In addition, some topics can be discussed in this field that while have never been investigated, and seem to be extremely important.
One of these topics is determining the permitted changing intervals of parameters, in a way that the optimality of full rescheduling is guaranteed by using simple modification techniques, such as right shift method (Herroelen & Leus, 2005).

Summary of RCPSP researches
Concepts and definitions related to RCPSP along with some developments were introduced in the previous section.In addition to extended development of this topic, it was attempted to fully cover the literature in this field.Therefore, all the relevant researches were categorized from four main dimensions of resources, characteristics of activities, type of objective function and availability level of information.With regard to this categorization, it could be stated that despite serious developments in project scheduling problem, investment can be made in some areas and assumptions of RCPSP and new studies can be conducted.Some researches on RCPSP are summarized in Table 1 to conclude and present research gaps for future studies in this area.In addition, the frequency percentage of each of the mentioned items are presented in Table 2.According to the diagram of Fig. 3 and Table 2, it could be concluded that: 1.In terms of resources, it is observed that renewable resources have been used in most of the studies (about 69%).Meanwhile, non-renewable and doubly constrained resources have been used in 19% and 3% of the studies, respectively.Therefore, they can be invested in future studies.Moreover, there are other resources in addition to the mentioned resources, which can be considered in RCPSP studies.Some of these resources include energies (which are continuous inherently), specific human resources, including experts (where excessive use can lead to high costs), deteriorating resources, holding of which at project site can lead to corruption or reduction of their volume or turning obsolete, recycling resources, renting resources and even workplace and other new resources.
2. According to Fig. 3 and Table 2, characteristics such as multi-mode, preemption, resource variation, and crashing have played a role in 33, 12, 6 and 5 percent of the evaluated RCPSP studies, respectively and they were neglected in 40% of these cases.Therefore, use of such characteristics, which are applicable and important both in practice and theory, increases the attractiveness of the problem and can enrich the implemented studies in the field of RCPSPs.In addition, other features, such as generalized precedence relationships, time-switch constraints and time-varying tasks can be applied in this category of problems.
3. Furthermore, while the parameters of RCPSPs are often changed under uncertainty condition and cause inefficiency of the basic scheduling timetable, the majority of evaluated problems in this field are presented under deterministic condition.In this regard, 66% of the evaluated articles investigated project scheduling problem under deterministic conditions and in 11, 10, 9 and 5 percent of studies, stochastic, proactive, fuzzy and reactive approaches were used, respectively.Hence, application of uncertainty approaches can be regarded in future studies on RCPSPs due to adherence to real-world conditions.
4. Moreover, time-based, cost-based, multi-objective and resource-based objectives were considered in 40, 26, 21 and 9 percent of the evaluated articles, where the objective of project completion time minimization was alone regarded in about one-third of the studies.Meanwhile, some objective functions, such as time-based objectives except Cmax minimization and objectives based on non-renewable resources are regarded as objectives that are less observed and can be used in future studies.As we know, today, multi-objective optimization is extremely taken into account due to responsiveness toward several objectives, simultaneously and meeting the needs of decision makers and, project scheduling problems are no exception.Therefore, the details of some studies related to multi-objective optimization of project scheduling problem are presented in Table 3.As can be seen, according to the Table 3, in most of the multi-objective project scheduling problems, cost-based objectives are considered along with time-based objectives and some objectives, such as NVP and objectives based on non-renewable resources are less used.Therefore, it is recommended that the newer objectives are used along with the main objectives (e.g., time and cost) to respond to the utility of project managers.Some of these objectives are quality, reliability and sustainable objectives (economic, environmental and social).

Conclusion
As mentioned earlier, today, Resource-Constrained Project Scheduling Problem (RCPSP) is significantly taken into account from two practical and theoretical aspects.Therefore, with regard to the huge volume of studies conducted in this area, it is necessary to summarize these articles.As a result, this paper was proposed to review the topics related to RCPSPs and evaluate the recent developments in this area and present the results for future studies.In this respect, first, the standard RCPSP was stated and then, the related developments were presented from four aspects of resources, characteristics of activities, type of objective function and availability level of information.Following that, details about 216 articles in the field of RCPSP during 1980-2017 have been summarized, and recommendations were made for future studies according to statistics obtained from the assessment of studies.Therefore, with regard to the mentioned notes about the research gaps and use of applicable assumptions in project scheduling researches, efficient and new studies can be obtained in this field.

Table 1
Resource constrained project scheduling models

Table 2
Frequency of each category

Table 3
Comparison of the multi-objective project scheduling problems