Journal of Control Science and Engineering

Volume 2015 (2015), Article ID 923791, 6 pages

http://dx.doi.org/10.1155/2015/923791

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

^{1}Guangxi Key Laboratory of New Energy and Building Energy Saving, Guilin University of Technology, Guilin 541004, China^{2}College of Mechanical and Control Engineering, Guilin University of Technology, Guilin 541004, China^{3}College of Information Science and Engineering, Guilin University of Technology, Guilin 541004, China

Received 14 July 2015; Revised 11 September 2015; Accepted 14 September 2015

Academic Editor: Petko Petkov

Copyright © 2015 Lieping Zhang et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

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.

#### 1. 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 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 algorithm to solve MRCPSP, in which a new fitness function and two very effective local search procedures are used in the proposed algorithm [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.

#### 2. 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 must select one from execution models . Furthermore, in the process of implementation, the execution model cannot be interrupted or changed. In 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 , and the th kind of nonrenewable total resources, denoted by . If the task selects the th kind of modes to execute and complete in the stage of , then ; otherwise, , wherein is a decision variable. The mathematical model for MRCPSP can be described as follows [14]:

Among them, , and , and , 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.

#### 3. 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 [], 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.

##### 3.1. 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 . 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 , the priority values of the virtual end task are , and the other priority values of task are in the range . 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 ; note that the value of the execution mode is integer.

##### 3.2. A Hybrid of PSO and DE Algorithm

###### 3.2.1. PSO Algorithm Based on Inertia Weight

In an -dimensional search space, population is composed of particles, and the particle position is , and the particle velocity is . The corresponding individual extreme value is , and the global extreme value of the entire population is . 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 towhere , which means the th dimension of the particle, and , which means the particle . is the population size. means the current evolution times. and are random numbers distributed in the range . and , respectively, correspond to accelerated constant of the individual particle and the group particle. , , , and , respectively, represent the velocity and the position of the th particle in the 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 inwhere nc is the current number of cycles and is the maximum number of cycles.

###### 3.2.2. DE 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 , a new individual can be obtained bywhere . and as well as are different random integers in the range , and they are different from the subscript index . The variation factor is a real constant in the range , the main function of which is to control the degree of amplification of differential vector .

The interlace operation is as shown below:

In the equation where is a uniform distribution probability in the range , CR is the crossover probability predefined by the user, , and is a random number generated in the range .

In order to determine whether vector can be th generation of population individuals, compare with ; if the former fitness value is better than the latter, replace with in th generation; otherwise, reserve .

##### 3.3. 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 , then the sorted individuals are , and the value of is . 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.

##### 3.4. Algorithm Implementation Processes

The major steps of the proposed algorithm can be outlined as follows.

*Step 1. *Initialize the upper-level populations to generate individuals position (priority rules) and velocity ().

*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 4. *The lower-level populations, respectively, execute mutation and interlace operation according to (9) and (10).

*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.

#### 4. 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 , , and the nonrenewable resources are , . We compare the proposed algorithm with different iterations. The upper-level PSO algorithm parameters of the proposed algorithm are described as follows: the individual particle acceleration constant is selected as and the group of particle acceleration constants is selected as , 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 , and both of the numbers of populations and iterations are selected as 10. A Gantt chart of optimal solution is shown in Figure 1.