Hybrid Particle Swarm and Differential Evolution Algorithm for Solving Multimode Resource-Constrained Project Scheduling Problem

. In order to find a feasible solution for the multimode resource-constrained project scheduling problem (MRCPSP), a hybrid of particle swarm optimization (PSO) and differential evolution (DE) algorithm is proposed in this paper. The proposed algorithm uses a two-level coding structure. The upper-level structure is coded for scheduling sequence, which is optimized by PSO algorithm. The lower-level structure is coded for project execution mode, and DE algorithm is used to solve the optimal scheduling model. The effectiveness and advantages of the proposed algorithm are illustrated by using the test function of project scheduling problem library (PSPLIB) and comparing with other scheduling methods. The results show that the proposed algorithm can well solve MRCPSP.


Introduction
Resource-constrained project scheduling problem (RCPSP) is a project scheduling problem of how to arrange the task start-up time to minimize the total project time reasonably in the conditions of resource constraints and project timing constraints [1].Multimode resource-constrained project scheduling problem (MRCPSP) is an extension of RCPSP, which is a kind of Nondeterministic Polynomial (NP) problem.On the basis of traditional RCPSP, MRCPSP considers a variety of optional modes of the task and the dependent relationships of resources.It can select task model and attribute dynamically.Comparing with the RCPSP, MRCPSP is closer to the real problem and is of more theoretical as well as practical significance [2].The optimization solution methods of MRCPSP can be divided into precise algorithm, heuristic algorithm, and intelligent optimization algorithm [3].Precise algorithm adopts the branch-and-bound method as the main solving method, and it can get the optimal solution.But it is not suitable for solving large-scale scheduling problem.Heuristic algorithm has a strong ability to solve large-scale scheduling problem and the characteristic of the computing speed.But it cannot guarantee obtaining the optimal solution.Intelligent optimization algorithm can get the optimization solution or suboptimal solution by using the algorithm optimization mechanism and evaluation mechanism in a limited set of feasible solutions.Intelligent optimization algorithm is an effective solving method for MRCPSP.Jarboui et al. proposed a combinatorial particle swarm optimization (PSO) algorithm to solve MRCPSP [4].Van Peteghem and Vanhoucke proposed a scatter search algorithm for MRCPSP, which is executed with different improvement methods [5].Tseng and Chen presented a two-phase genetic local search algorithm that combines the genetic algorithm and the local search method to solve MRCPSP [6].Damak et al. proposed a differential evolution (DE) algorithm to solve MRCPSP with multiple execution modes for each activity and minimization of the makespan [7].Wang and Fang proposed an estimation of distribution algorithm to solve MRCPSP [8].Li [10].
The methods mentioned above have their different merits and shortcomings.But if we take the combination of several methods into account properly, a better balance between quality and efficiency of solving may be achieved.In this case, we can get the optimum solution and obtain the ultimate solution for different actual demands.Liu et al. proposed a novel hybrid algorithm named PSO-DE, which integrates PSO with DE algorithm to solve constrained numerical and engineering optimization problems [11].Zhang and Kang proposed a hybrid of ant colony and particle swarm optimization algorithms for solving MRCPSP, which can well solve MRCPSP [12].Chen and Sandnes proposed a two-PSO algorithm to solve MRCPSP, in which constriction PSO is proposed for the activity priority determination while discrete PSO is employed for mode assignment [13].
A hybrid of particle swarm and differential evolution algorithm is proposed for solving MRCPSP.In that algorithm, the scheduling orders are determined by the upper-level algorithm with PSO algorithm, and the task execution modes are determined by the lower-level algorithm with DE algorithm, which can get faster convergence of the algorithm and avoids falling into local optimum.Based on the verification of many MRCPSP's instances in PSPLIB, the simulation results show that the proposed algorithm can effectively solve the MRCPSP.

Descriptions of MRCPSP
The MRCPSP can be described as follows.A project has a series of tasks, and there is a certain logic sequence between them as the technical process and many other reasons.Meanwhile, among several patterns, individual task can choose one of them to complete, and each pattern corresponds to a set of known time limits for project and resource requirements.Solution of the problem is to generate a scheduling scheme that enables one or some of the goals to achieve the optimization, which can meet the work of the precedence constraints relations and resource constraints condition.
In this paper, what we study is to minimize the time limit for a project in MRCPSP.The upper bound of the time limit for a project is defined as .The task  ( = 1, 2, . . ., ) must select one from execution models   .Furthermore, in the process of implementation, the execution model cannot be interrupted or changed.In  (1 ⩽  ⩽   ) kinds of mode to perform the work  requires  kinds of renewable resources, denoted by    , and  kinds of nonrenewable resources, denoted by  ]  , and the execution time is denoted by   .There is only one execution mode for virtual task 1 and , which does not consume resources, and the time limit for the project is zero.Among them, renewable resources are denoted by  and nonrenewable resources are denoted by ].In the whole time of the project and each stage of the project, the th kind of renewable resources can amount to a constant, denoted by    ( = 1, 2, . . ., ), and the th kind of nonrenewable total resources, denoted by  ]  ( = 1, 2, . . ., ).If the task  selects the th kind of modes to execute and complete in the stage of , then   = 1; otherwise,   = 0, wherein   is a decision variable.The mathematical model for MRCPSP can be described as follows [14]: s.t.
Among them,   ∈ {0,1}, and  = 1, 2, . . ., , and  = 1, 2 . . .,   , and  =   , . . .,   ,   ,   , respectively, corresponds to the earliest completion time and finish time at the latest of the task , and   is the direct predecessor task set of .Equation (1) is the objective function which means the shortest time limit for the total project.Equation ( 2) means that a task can only be completed once in an execution mode.Equation (3) represents the precedence constraints.According to the constructed network model and network planning methods, the end time of each task is equal to the sum of its start time and the time limit for a task, and the tight task must be carried out at the end of the work.Equation ( 4) ensures the amount of renewable resources in every stage will not be larger than the amount available.Equation ( 5) ensures that the amount of nonrenewable resources consumed in the entire project will not be larger than the amount available.

Algorithm Design
The upper-level individual coding of the designed algorithm controls the task scheduling orders, and the lower-level individual coding manages the task execution modes.After determining the task scheduling orders, it can find the optimal execution mode in the scheduling order.Due to the fact that the range of execution mode's values is just an integer in the range [1,3], it is a very small range and it will make the PSO algorithm easily fall into local optimum.Hence, the DE algorithm was introduced into the proposed algorithm to solve the optimal execution mode, which has stronger global convergence ability and robustness, and then optimize the task scheduling sequence with the PSO algorithm.

Coding Design.
The upper-level individual of algorithm uses the particle coding based on priority rules.The numbers of tasks are represented by the search space dimension of particle swarm, a total of .At the same time, all dimension values   of particle   are random real numbers in the range [0, 1].The value represents the priority order of particle  kinds of dimension.The higher the value, the greater the priority.While the virtual start task of the project's first task is the first task to be executed, the last task is the virtual end task of the project, which is the final project task.All the priority values that can set virtual start task are   = 1, the priority values of the virtual end task are   = 0, and the other priority values of task are in the range (0, 1).Moreover, the task priority values are different.
In order to let the priority rules satisfy the task's precedence constraints, we need to adjust the task priority value.Specific adjustment method is as follows.Compare the priority values of current task and preceding task; the value will not be adjusted if it is lower than the latter.Otherwise, exchange both of the priority values.And then, consider the preceding task as the current task and compare it with its preceding task.As long as they are exchanged, repeat this step until no values need to be exchanged or there is no preceding task.After this adjustment, we can get the priority rules that met the requirements of the task precedence constraints.The low level of algorithm controls the execution mode coding.Assuming that the execution modes of the task  are   kinds, the execution mode of  is in the range [1,   ]; note that the value of the execution mode is integer.

PSO Algorithm Based on Inertia Weight.
In an -dimensional search space, population  = { 1 , . . .,  2 , . . .,   } is composed of  particles, and the particle position is   = ( 1 ,  2 , . . .,   )  , and the particle velocity is   = (V 1 , V 2 , . . ., V  )  .The corresponding individual extreme value is   = ( 1 ,  2 , . . .,   )  , and the global extreme value of the entire population is   = ( 1 ,  2 , . . .,   )  .Taking into account the premature convergence and poor global convergence to the basic PSO algorithm in the practical application, we adopted the PSO algorithm based on inertia weight to promote the global searching ability and the local search ability [15].According to the principle of following the current optimal particle,   particle, which introduced the inertia weight , will change its speed and position according to where  = 1, 2, . . ., , which means the th dimension of the particle, and  = 1, 2, . . ., , which means the particle . is the population size. means the current evolution times. 1 and  2 are random numbers distributed in the range [0, 1]. 1 and  2 , respectively, correspond to accelerated constant of the individual particle and the group particle.V (+1)  , V ()  ,  (+1)  , and  ()   , respectively, represent the velocity and the position of the th particle in the ( + 1)th generation and the th generation.
The value of inertia weight  can affect the algorithm's global search ability and local search ability.Related research results show that when  decline linearly from 0.9 to 0.4, the algorithm can converge quickly to the optimal solution [16].Therefore, this paper adopts the dynamic inertia weight, and the value of  changes in line in the searching process of the particle swarm algorithm, as shown in where nc is the current number of cycles and ncmax is the maximum number of cycles.
In the equation where rand() is a uniform distribution probability in the range [0, 1], CR is the crossover probability predefined by the user, CR ∈ (0, 1), and () is a random number generated in the range [1, 𝐷].
In order to determine whether vector  ,+1 can be ( + 1)th generation of population individuals, compare  ,+1 with  , ; if the former fitness value is better than the latter, replace  , with  ,+1 in ( + 1)th generation; otherwise, reserve  , .

Scheduling Generation Strategy.
Scheduling generation strategy based on priority rules includes serial scheduling scheme and parallel scheduling scheme.In this paper, we use serial scheduling scheme to solve the problem.For an upper individual   , we can get    according to sorting the order of   from big to small.And the serial number of original individual   is stored in the order of    to   .For example, if the original individuals are [1, 0.3, 0.5, 0.2, 0.4, 0.7, 0], then the sorted individuals are [1, 0.7, 0.5, 0.4, 0.3, 0.2, 0], and the value of   is [1,6,3,5,2,4,7].Select an element   in order from   according to the value of   to determine the start time of scheduling task   and   .Choose a larger one from the current time and all the preceding task finish time of the current task as the current task start time, and the end time of the current task is determined by the lower layer determined time limit for project plus the current task start time.Update the current time in accordance with the use of resources.When the available resources run out, update the current time.And when the end time of a task is greater than the current time, release its consumed resources in turn.Meanwhile, make the current time equal to the end time of the task that releases resources, until available resources meet the requirements of the current task.The end time of virtual end of task is the project completion time, namely, the value of algorithm fitness function.

Algorithm Implementation Processes.
The major steps of the proposed algorithm can be outlined as follows.
Step 2. Adjust the priority rules to meet the task precedence constraints represented in (3).
Step 3. Initialize the lower-level populations to generate  individuals (the task execution modes).
Step 5.The lower-level populations execute selection operation and optimize the execution mode.
Step 6.If the lower-level populations reached the maximum numbers of iterations, then go to Step 7, or go to Step 4 to continue to optimize the execution mode.
Step 7. Respectively, update the velocity and position of the upper populations according to (6) and (7).
Step 8.If the upper-level populations reached the maximum numbers of iterations, the algorithm ends, or go to Step 2.

Simulation Analyses
In order to test the effectiveness of the algorithm, the standard MRCPSP instances of PSLIB are used to validate the effectiveness of the algorithm.The selected task is J18.The task contains 2 kinds of renewable resources and 2 kinds of nonrenewable resources, in which the renewable resources are  1 = 26,  2 = 27, and the nonrenewable resources are  1 = 48,  2 = 51.We compare the proposed algorithm with different iterations.The upperlevel PSO algorithm parameters of the proposed algorithm are described as follows: the individual particle acceleration constant is selected as  1 = 2 and the group of particle acceleration constants is selected as  2 = 2, the number of populations is selected as 10, and the number of iterations is taken as 10.The parameters of lower-level DE algorithm are described as follows [17]: the interlace probability is selected as CR = 0.4, the variation factor is selected as  = 0.7, and both of the numbers of populations and iterations are selected as 10.A Gantt chart of optimal solution is shown in Figure 1.
When the upper-level iteration numbers are, respectively, 10 and 15, the solved results of the proposed algorithm are shown in Table 1.In accordance with Table 1, we can know that the proposed algorithm is effective for MRCPSP, and, with the increase of the number of iterations, the probability of obtaining the optimal solution increased.
In order to test the feasibility of the proposed algorithm, we compare the proposed algorithm with two layers' PSO algorithm based on inertia weight.The parameters of two layers' PSO algorithm based on inertia weight are described as follows: the individual particle acceleration constants  1 and  2 are selected as 2, the numbers of populations are selected as 10, and the numbers of iterations are selected as 10.The parameters of the proposed algorithm are described as before, in which the number of iterations of PSO algorithm is selected as 10.The corresponding results are shown in Table 2.
In accordance with Table 2, we can know that the average deviation and optimum ratio of PSODE algorithm are higher than those of PSO algorithm.
In order to further test the feasibility and the effectiveness of the proposed algorithm, we compare it with the solving results of [12].Projects J10 and J20 have 536 and 554 optimal solutions, respectively, and projects J10 and J20 have two kinds of renewable resources and two kinds of nonrenewable resources, respectively, and every instance has three modes.Project J10 has a total of 12 tasks, and project J20 has a total of 22 tasks, and both the first task and the last task are virtual tasks, which do not consume the time and the resources.The parameters of the proposed algorithm are described as before.The results comparison of the proposed algorithm and the method of [12] is shown in Table 3.According to the results in Table 3, the proposed algorithm is better than the method of [12] in average deviation and optimal solution rate.

Conclusions
A new algorithm for MRCPSP combined PSO algorithm and DE algorithm is proposed in this paper.The optimal project execution modes are obtained by DE algorithm after the determination of the task scheduling sequence; then the task scheduling sequences are optimized by PSO algorithm.In order to confirm the validity of the algorithm, we take an experiment based on the standard MRCPSP instances of PSLIB and other scheduling methods.The experimental and comparison results show that the proposed algorithm has a better performance in average deviation and optimal solution rate.
and Zhang presented an ant colony optimization-based methodology for solving the MRCPSP considering both renewable and nonrenewable resources [9].Liu et al. presented a memetic 2 Journal of Control Science and Engineering algorithm to solve MRCPSP, in which a new fitness function and two very effective local search procedures are used in the proposed algorithm Algorithm.DE algorithm is a simple and efficient parallel search algorithm, which has better robustness and faster convergence capability than other evolution algorithms.And it can be used to solve the MRCPSP.The low-level individual of the designed algorithm uses the DE algorithm to find the optimal execution mode in the scheduling sequence given.For the individual   1 , , a new individual  ,+1 can be obtained by

Table 1 :
Computing results vary from different number of iterations in the upper level.

Table 2 :
Results comparison of PSODE algorithm and PSO algorithm.

Table 3 :
Results comparison of the proposed algorithm and other methods.