efficient genetic algorithm for resource-constrained project scheduling problem

7

Click here to load reader

Upload: hong-wang

Post on 15-Jul-2016

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Efficient genetic algorithm for resource-constrained project scheduling problem

Trans. Tianjin Univ. 2010, 16: 376-382

DOI 10.1007/s12209-010-1495-y

Accepted date: 2010-01-13.

WANG Hong, born in 1973, female, Dr, associate Prof.

Correspondence to WANG Hong, E-mail: [email protected].

Efficient Genetic Algorithm for Resource-Constrained

Project Scheduling Problem

WANG Hong (王 宏),LI Tongling (李同玲),LIN Dan (林 丹)

(School of Sciences, Tianjin University, Tianjin 300072, China)

© Tianjin University and Springer-Verlag Berlin Heidelberg 2010

Abstract:This paper presents a new genetic algorithm for the resource-constrained project scheduling problem

(RCPSP). The algorithm employs a standardized random key (SRK) vector representation with an additional gene

that determines whether the serial or parallel schedule generation scheme (SGS) is to be used as the decoding proce-

dure. The iterative forward-backward improvement as the local search procedure is applied upon all generated solu-

tions to schedule the project three times and obtain an SRK vector, which is reserved into population. Several evolu-

tionary strategies are implemented including the elitist selection (the high quality solution set), and the selection of

parents used in crossover operator. The computational experiments on 1 560 standard instances show that the proposed

algorithm outperforms the current state-of-the-art heuristic algorithms for J30 and J60, and ranks the third for J120

with 50 000 schedules; it ranks the second for J30 and J60, and ranks the fifth for J120 with 5 000 schedules; it ranks

the third, second, and fifth for J30, J60 and J120 with 1 000 schedules, respectively. It is demonstrated that the pro-

posed algorithm is competitive for RCPSP, especially for larger number of schedules.

Keywords:project management; resource constrained; scheduling; genetic algorithm

The resource-constrained project scheduling prob-

lem (RCPSP) can be stated as follows. A single project

consists of a set of activities { }1,2, ,A N= � , where each

activity has to be processed in order to complete the pro-

ject. The activities are interrelated by two kinds of con-

straints. First, precedence constraints force activity j is

not to be started before all its immediate predecessors

have been finished. Second, performing the activities

requires resources with limited capacities. Altogether

there are K renewable resource types. While being proc-

essed, activity j requires jkr units of resource

( {1 2 , })k K∈ �,, during each period of its non-

preemptive duration j

d . The availability of each resource

type k in each time period is k

R units. For the start activ-

ity 1 and end activity N , we have 1

0N

d d= = and

1 0

k N kr r= = . The parameters

jd , jkr ,

kR are assumed to

be non-negative and deterministic. The objective of

RCPSP is to determine a schedule with minimal

makespan such that both the precedence and resource

constraints are fulfilled.

RCPSP is an important and challenging problem,

which has been widely studied over the past few decades.

There are some surveys given in Refs. [1—3]. The sug-

gested algorithms can be classified into two categories:

exact and heuristic algorithms. Blazewicz et al proved

that RCPSP as a generalization of the job shop schedul-

ing problem is strongly NP-hard [4]

such that the compu-

tation time for obtaining the optimal solution using exact

algorithms can be extremely long for more than 60 activi-

ties. This has motivated researchers to develop heuristic

algorithms for dealing with large and highly resource-

constrained projects. Hartmann and Kolisch[1,2]

presented

a classification and performance evaluation of different

heuristic algorithms. Most of the heuristic algorithms are

grouped into X-pass methods (single-pass methods,

multi-pass methods) and metaheuristics. Single-pass

methods were presented in Refs.[5, 6]. Multi-pass meth-

ods include multi-priority rule methods[7]

, forward-

backward scheduling methods[8]

and sampling methods[9]

.

Some metaheuristic algorithms were proposed, e.g., ge-

netic algorithms (GAs)[10-16]

, simulated annealing

(SA)[17]

, tabu search (TS)[18]

, ant systems (AS)[19]

, scat-

ter search (SS)[20]

, filter-and-fan approach[21]

, and other

hybrid algorithms[22-24]

.

In this paper, a GA is designed for RCPSP. The rep-

resentation of the problem is based on a standardized

Page 2: Efficient genetic algorithm for resource-constrained project scheduling problem

WANG Hong et al: Efficient Genetic Algorithm for Resource-Constrained Project Scheduling Problem

—377—

random key vector with an additional gene that deter-

mines whether the serial or parallel schedule generation

scheme (SGS)[1]

is to be used as the decoding procedure.

The iterative forward-backward improvement as the local

search procedure is applied upon all generated solutions

to schedule the project three times and obtain an stan-

dardized random key (SRK) vector, which is reserved

into population. New selection and crossover strategies

are proposed. This algorithm’s operation is simple, and

able to produce high quality schedules.

1 Genetic algorithm for RCPSP

GAs have been widely used in some optimization

problems[25]

. Currently, several GAs for RCPSP have

been proposed in Refs. [10—16]. Lee and Kim developed

three priority value-based metaheuristics (GA, TS, and

SA), and the best results are obtained by SA[10]

. Alcaraz

et al developed a GA based on the activity list representa-

tion with an additional gene which determines SGS, and

employed the forward-backward improvement[11]

. Hart-

mann[12]

proposed a GA with activity list representation

and compared different representations for the solutions

(activity list, priority value, and priority rule). The re-

sults show that the activity list representation performs

best to solve RCPSP. Hartmann[13]

also developed a GA-

based activity list representation with an additional gene,

which determines the decoding procedure. Valls et al

designed the activity list-based two-phase GA with justi-

fication, and developed a peak crossover operator[14]

.

Mendes et al designed a GA based on the random key

representation with delay time and a schedule generator

scheme that generates parameterized active schedules[15]

.

Debels and Vanhoucke proposed a GA with the decom-

position-based heuristic[16]

. Details about the components

of GA proposed in this paper are presented below.

1.1 Schedule representation

For RCPSP, GA does not operate directly on a

schedule, but on some representation of a schedule that is

convenient and effective for genetic operators. In our

genetic algorithm, an individual is represented by a pair:

an N-dimensional SRK vector and an additional gene

called serial/parallel SGS gene (S/P gene) I1 2

( , , ,x x= �

,S/P)Nx . The S/P gene is used to determine the SGS type

to be used in the decoding procedure for related SRK

vector. When S/P gene is “1”, the decoding procedure is

a serial SGS; otherwise, “0” means that the decoding

procedure is a parallel SGS. The SRK vector

X1 2

( , , , )N

x x x= � , containing N integer numbers be-

tween 1 and N , is generated from the activity start time

of feasible schedule S1 2

( , , , )N

s s s= � as follows: firstly, if

i js s< , then

i jx x< , and

i jx x≠ , for i j≠ ; secondly, if

i js s= and i j< , then

j ix x= . The i th vector element is

a priority value for activity i (assuming that lower vec-

tor values correspond to higher priorities). One advan-

tage of the employed representation can guarantee that

each schedule corresponds to a unique SRK vector, and

thus reduce the solution space; another advantage is that

this allows the genetic algorithm to adapt the selection of

decoding procedure to different projects. The mechanism

of self-adaptation is capable of exploiting the benefits of

both SGSs during the genetic search [13]

.

To illustrate the method to generate the SRK vector,

consider the example project shown in Fig. 1, in which

there are 13 activities with a single renewable resource

type with1

5R = . A feasible scheduling S for this project

is given in Fig. 2. In the first step, we can obtain a ran-

dom key vector X (1,2,3,4,5,8,11,7,9,6,10,12,13)= based

on the start time S (0,0,0,4,7,11,17,9,13,7,15,= 17,20) .

According to the second condition, activities 1, 2 and 3

start at the same time, and therefore 2 3 1

1x x x= = = . Simi-

larly,10 5

5x x= = , 12 7

11x x= = . Finally, we obtain an

SRK vector X (1,1,1,4,5,8,11,7,9,5,10,11,13)= . The ad-

vantage of this SRK representation is that each schedule

corresponds to a unique SRK vector.

Fig.1 Example project

Fig.2 Feasible schedule for example project

1.2 Forward-backward improvement operator

We will introduce a forward-backward improvement

operator that employs an SGS to iteratively schedule the

project three times by alternating between forward and

backward schedules. The forward schedule starts sched-

uling the first activity of the project at time zero. Accord-

Page 3: Efficient genetic algorithm for resource-constrained project scheduling problem

Transactions of Tianjin University Vol.16 No.5 2010

—378—

ing to the priority values of RK vector, each activity is

scheduled if all of its predecessors are completed and its

resource requirements are met. The backward schedule

starts scheduling the last activity of the project during the

project duration provided by the previous forward sched-

ule. According to the priority values of RK vector, each

activity is scheduled if all of its successors are completed

and its resource requirements are met.

A forward-backward improvement operator is de-

scribed as follows. For a given RK vector X n∈ℜ , we

first compute a forward schedule F

S (X) with the serial

or parallel SGS. Note that when applying a decoding pro-

cedure, at each stage one activity from the decision set is

selected with a priority value (in case of ties the activity

with the smallest activity number is selected). Then, we

can transform X into another 1 2

( , , , )N

x x x′ ′ ′ ′X = � accord-

ing to the following rule: if the activities’ finish time

i jf f< for any ,i j A∈ or

i jf f= for any i j< in

FS (X), then

jx′ is smaller than

ix′ . Note that the value of

ix′ ( 1,2, , )i N= � is an integer between 1 and N .

Next, the backward schedule B

S ( ′X ) is evaluated

according to ′X , i.e., the activities are rescheduled in a

decreasing order of their scheduled finish time inF

S (X).

Then, we can obtain another RK vector X′′

according to

the following rule: if the activities’ start time i js s< for

any ,i j A∈ or i js s= for any i j< , then

ix′′ is smaller

than j

x′′ . Finally, we evaluate the forward schedule

FS ( ′′X )

of the RK vector ′′X . In this case, the activities are re-

scheduled in an increasing order of the activity start time

in B

S ( ′X ). We then obtain an SRK vector based on the

activity’s start time in F

S ( ′′X ) and the SRK vector is

reserved.

An example will illustrate the forward-backward

improvement operator, which transforms an RK vector

into an SRK vector. Consider the project in Fig. 1 and

X (1,2,5,3,4,8,9,7,10,6,11,12,13)= , the serial SGS is em-

ployed as decoding procedure, the forward schedule

FS (X) of makespan 23 is shown in Fig. 3(a). According

to the decreasing order of activity’s finish time in F

S (X),

we obtain ′X (13,11,9,10,12,7,4,6,5,8,3,2,1)= . Then we

compute the backward schedule B

S ( ′X ) of ′X , and

obtain ′′X (1,2,4,3,5,8,11,7,9,6,10,12,13)= based on the

increasing order of activity’s start time in B

S ( ′X ). We

can see the backward schedule B

S ( ′X ) in Fig. 3(b).

Finally, the forward schedule F

S ( ′′X ) of ′′X is evalu-

ated. We then obtain an SRK vector (1,1,1,4,5,8,11,7,

9,5,10,11,13) , according to the start time in F

S ( ′′X ).

This forward-backward improvement operator for the

example can reduce the makespan by three time units, as

shown in Fig. 3.

(a)Forward schedule of X (1,2,5,3,4,8,9,7,10,6,11,12,13)=

(b)Backward schedule of X '

=(13,11,9,10,12,7,4,6,5,8,3,2,1)

(c)Forward schedule of X″

=(1,2,4,3,5,8,11,7,9,6,10,12,13)

Fig.3 Example of forward-backward improvement

This phenomenon occurs because the activities that

require fewer resources are easier to be shifted right/left

than other activities and they satisfy the precedence con-

straints when the backward/forward pass is applied to a

feasible schedule. It is easy to see that the solution qual-

ity of a schedule with forward-backward improvement

operator is at least as effective as the original one.

1.3 Initial population

The initial population containing popsize individu-

als is created as follows. Firstly, we randomly generate

popsize N -dimensional RK vectors of integer numbers

between 1 and N . Then, for each RK vector, we select

each of the two SGS types with a probability of 0.5p = .

Finally, each RK vector with S/P gene is transformed into

SRK format by applying the forward-backward im-

provement operator and the SRK vector with S/P gene is

reserved in the population.

1.4 Selection

A high quality solution set HQS is constructed from

the current generation. HQS contains h solutions with

the best makespan, while a threshold t on the minimal

distance between solutions in HQS is imposed in pursuit

of diversity. The distance d (X1, X

2) between two solu-

tion vectors X1 1 1 1

1 2( , , , )

Nx x x= � and X

2 2 2 2

1 2( , , , )

Nx x x= � is

calculated as

Page 4: Efficient genetic algorithm for resource-constrained project scheduling problem

WANG Hong et al: Efficient Genetic Algorithm for Resource-Constrained Project Scheduling Problem

—379—

d (X1, X

2)

1 2

1

N

k k

k

x x

N

=

−=∑

HQS is copied from the current generation into the next.

If there are not h solutions with a threshold t on the

minimal distance in the population, we randomly gener-

ate some solutions in order to ensure that there are h

solutions in HQS.

1.5 Crossover

Two individuals are chosen to act as parents for

crossover. One of the parents (mother M1 2, ,

M Mx x=(

, ,S/PM M

Nx� )) is orderly chosen in HQS, while another

(father F1 2, , , ,S/P

F F F F

Nx x x= �( )) is randomly chosen

from the whole current population (including HQS). In

this way, we make sure that in each crossover operator

the best individuals are used once as a parent. For each

pair of parents, the two-point crossover operator is em-

ployed to genera te two of fspr ings (daughter

D1 2, , ,

D D D

Nx x x= �( S/P

D)and son S

1 2, , , ,S/P

S S S S

Nx x x= �( )).

The two-point crossover is implemented as follows.

Firstly, we draw two random integers 1

[1, 1]p N∈ −

and 2

[2, ]p N∈ with1 2p p< . If M

jx ( the SRK value of

activity j in mother) is smaller than 1p , the priority of

activity j in daughter is equal to M

jx N− , i.e., D

jx =

1, { }M M

j jx N j j x p− ∈ < ; if M

jx is larger than

2p , D

jx is

equal to M

jx N+ , i.e., , {D M M

j j jx x N j j x= + ∈ >

2}p ; for

activities with SRK value between 1p and

2p in mother,

their priority in daughter is taken from their SRK value

in father, i.e. { }1 2, D F M

j j jx x j j p x p= ∈ ≤ ≤ . The last

gene of daughter will inherit from mother’s S/P gene.

The son is generated analogously.

Tab. 1 lists an example of the two-point crossover

for two solutions (mother and father) of the project

shown in Fig.1. For M (1,1,1,4,5,8,11,7,9,5,10,11,13,1)=

and F (1,1,5,4,1,9,5,8,10,7,11,12,13,0)= , we set1

5p = ,

28p = . The two-point crossover leads to D ( 12, 12,= − −

12, 9,1,9,24,8,22,7,23,24,26,1)− − and S =(-12,-12,1,-9,

12,22,11,7,23,5,24,25,26,0)− . Note that the two off-

springs are not necessarily in SRK form. They can be

transformed into SRK format by applying the forward-

backward improvement operator after the mutation op-

erators are applied.

Tab.1 Execution of two-point crossover

Activity 1 2 3 4 5 6 7 8 9 10 11 12 13 S/P

M 1 1 1 4 5 8 11 7 9 5 10 11 13 1

F 1 1 5 4 1 9 5 8 10 7 11 12 13 0

D -12 -12 -12 -9 1 9 24 8 22 7 23 24 26 1

S -12 -12 1 -9 -12 22 11 7 23 5 24 25 26 0

1.6 Mutation

There are two mutation operators in our GA proce-

dure. The first one is called mutation_1 operator. In mu-

tation_1, for an individual generated by the crossover

operators with a probability ofm

p , the random key of

each activity is exchanged with one of the activities that

is randomly selected. The second one, mutation_2 opera-

tor, is to generate some new individuals into the next

generation. These new individuals are randomly gener-

ated as the initial population. This operation guarantees

the population diversity and prevents the premature con-

vergence of population.

After crossover and mutation operator, new indi-

viduals are transformed into SRK form by applying the

forward-backward improvement operator, while at the

same time the associated objective values (the

makespan) are evaluated.

1.7 Procedure of genetic algorithm

The proposed GA procedure consists of the follow-

ing steps. Let cp denotes the crossover probability.

Step 1 Generate popsize RK vectors with S/P gene.

Then apply the forward-backward improvement operator

to transform RK vectors into SRK format and obtain their

makespan. Finally, SRK vectors with S/P gene are re-

served as the initial population.

Step 2 Select h solutions with the best makespan as

high quality solutions set HQS, where the minimal dis-

tance between solutions is t , and these solutions are cop-

ied into the next generation.

Step 3 Generate cp popsize× offsprings by applying

crossover operator.

Step 4 Perform mutation_1 to the generated off-

spring.

Step 5 Apply the forward-backward improvement

operator to transform these offsprings into SRK format,

which are reserved into the next generation.

Step 6 Generate some new individuals into the next

generation.

Page 5: Efficient genetic algorithm for resource-constrained project scheduling problem

Transactions of Tianjin University Vol.16 No.5 2010

—380—

Step 7 If the termination condition is met, stop;

else, go to Step 2.

2 Computational experiments

In this section we present the results of computa-

tional experiments. The proposed algorithm was imple-

mented in Matlab7.0 and the experiments were per-

formed on a computer (Intel (R) Core (TM) 2 Duo CPU

E4500 2.2 GHz, 2 GB RAM) with Windows XP operat-

ing system.

In order to compare with the best results from the

literature, we employ three test sets J30, J60, J120 con-

structed by the instance generator ProGen[26]

. The project

in these test sets consist of 30, 60, and 120 activities, re-

spectively. These instances are generated under a full

factorial experimental design with the following three

independent problem parameters: network complexity

(NC), resource factor (RF), and resource strength (RS).

In total, J30 and J60 consist of 480 instances and J120

consists of 600 instances.

In this paper, the parameters are determined empiri-

cally as follows: 80popsize = , 12h = , t =1, crossover

probabilityc

0.7p = , mutation probability in mutation_1

mp is 0.05, and the number of newly generated individu-

als in mutation_2 is 12. The number of maximal genera-

tions is limited to 244.

In order to have a fair base of comparison with the

other heuristics, we report the average percentage devia-

tions from the optimal solution for J30 and the critical

path lower bound for J60 and J120 (for J60 and J120,

some of the optimal solutions are unknown) correspond-

ing to 1 000, 5 000 and 50 000 evaluated schedules, re-

spectively. 1 000, 5 000 and 50 000 schedules correspond

to the number of schedules generated by the algorithm,

which runs 5, 24, 244 generations (calculated by

( of 1 (popsize number generation popsize+ − ×( ) )) 3h− × ) .

Tabs. 2—4 list the performances of our procedure

and the state-of-the-art heuristics for J30, J60, J120, re-

spectively.

Tab. 2 summarizes the average percentage devia-

tions from the optimal makespan DOPT for J30. Our pro-

cedure and Ref.[23] obtain all the optimal solutions for

instances with 50 000 evaluated schedules. Our proce-

dure ranks the second among algorithms with DOPT=

0.04% for 5 000 schedules and ranks the third with DOPT =

0.14% for 1 000 schedules, respectively.

Tab. 3 summarizes the average percentage devia-

tions from the critical path lower bound DCP for J60. Our

algorithm obtains DCP=10.57, and outperforms all the

other heuristics for 50 000 schedules. Our algorithm

ranks the second with DCP=10.96 and DCP=11.55 for 5

000 and 1 000 schedules, respectively.

Tab. 4 summarizes the average percentage devia-

tions from the critical path lower bound DCP for J120.

Our algorithm ranks the third with DCP=31.28 for 50 000

schedules, and ranks the fifth with DCP=33.11 and

DCP=35.18 for 5 000 and 1 000 schedules, respectively.

It can be seen that the quality of our algorithm in-

creases with the number of schedules, and our algorithm

can lead to better results than heuristics from the litera-

ture.

Tab.2 Average deviations (%) from optimal makespan—ProGen set J =30

Maximum number of schedules Algorithm

1 000 5 000 50 000

GA,TS—path relinking [23] 0.10 0.04 0

Our procedure 0.14 0.04 0

GA-random key [15] 0.06 0.02 0.01

Scatter search—FBI [20] 0.27 0.11 0.01

GA—DBH [16] 0.15 0.04 0.02

GA—hybrid, FBI [14] 0.27 0.06 0.02

GA—forward-backward, FBI [11] 0.25 0.06 0.03

Sampling—LTF, FBI [22] 0.30 0.16 0.07

TS—activity list [18] 0.46 0.16 0.05

GA—self-adapting [13] 0.38 0.22 0.08

SA—activity list [17] 0.38 0.23 —

Page 6: Efficient genetic algorithm for resource-constrained project scheduling problem

WANG Hong et al: Efficient Genetic Algorithm for Resource-Constrained Project Scheduling Problem

—381—

Tab.3 Average deviations (%) from critical path lower bound—ProGen set J =60

Maximum number of schedules Algorithm

1 000 5 000 50 000

Our procedure 11.55 10.96 10.57

GA-random key [15] 11.72 11.04 10.67

GA—DBH [16] 11.45 10.95 10.68

Scatter search—FBI [20] 11.73 11.1 10.71

GA—hybrid, FBI [14] 11.56 11.1 10.73

GA,TS—path relinking [23] 11.71 11.17 10.74

GA—forward-backward, FBI [11] 11.89 11.19 10.84

GA—self-adapting [13] 12.21 11.7 11.21

Sampling—LTF, FBI [22] 12.18 11.87 11.54

SA—activity list [17] 12.75 11.9 —

TS—activity list [18] 12.97 12.18 11.58

Tab.4 Average deviations (%) from critical path lower bound—ProGen set J =120

Maximum number of schedules Algorithm

1 000 5 000 50 000

GA—DBH [16] 34.19 32.34 30.82

GA—hybrid, FBI [14] 34.07 32.54 31.24

Our procedure 35.18 33.11 31.28

GA—random key [15] 35.87 33.03 31.44

GA—forward-backward, FBI [11] 36.53 33.91 31.49

Scatter search—FBI [20] 35.22 33.1 31.57

GA,TS—path relinking [23] 34.74 33.36 32.06

GA—self-adapting [13] 37.19 35.39 33.21

Sampling—LTF, FBI [22] 36.49 35.81 35.01

SA—activity list [17] 42.81 37.68 —

TS—activity list [18] 40.86 37.88 35.85

3 Conclusions

In this paper, we present a new genetic algorithm for

the resource-constrained project scheduling problem. The

computational experiments on 1 560 standard instances

show that the proposed algorithm leads to better results

than heuristics from the literature, especially for larger

number of schedules.

References

[1] Hartmann S, Kolisch R. Experimental evaluation of state-

of-the-art heuristics for the resource-constrained project

scheduling problem[J]. European Journal of Operational

Research, 2000, 127(2): 394-407.

[2] Kolisch R, Hartmann S. Experimental investigation of

heuristics for resource-constrained project scheduling: An

update[J]. European Journal of Operational Research,

2006, 174(1): 23-37.

[3] Brucker P, Drexl A, Möhring R et al. Resource-

constrained project scheduling: Notation, classification,

models, and methods[J]. European Journal of Operational

Research, 1999,112(1): 3-41.

[4] Blazewicz J, Lenstra J, Rinnooy Kan A. Scheduling sub-

ject to resource constraints: Classification and complex-

ity[J]. Discrete Applied Mathematics, 1983, 5(1): 11-24.

[5] Davis E W, Patterson J H. A comparison of heuristic and

optimum solutions in resource-constrained project schedul-

ing[J]. Management Science, 1975, 21(8): 944-955.

[6] Kolisch R. Efficient priority rules for the resource-

constrained project scheduling problem[J]. Journal of Op-

erations Management, 1996, 14(3): 179-192.

[7] Boctor F F. Some efficient multi-heuristic procedures for

resource-constrained project scheduling[J]. European

Journal of Operational Research, 1990, 49(1): 3-13.

[8] Özdamar L, Ulusoy G. A note on an iterative for-

ward/backward scheduling technique with reference to a

procedure by Li and Wills[J]. European Journal of Op-

erational Research, 1996, 89(2): 400-407.

[9] Kolisch R, Drexl A. Adaptive search for solving hard pro-

Page 7: Efficient genetic algorithm for resource-constrained project scheduling problem

Transactions of Tianjin University Vol.16 No.5 2010

—382—

ject scheduling problem[J]. Naval Research Logistics,

1996, 43(1): 23-40.

[10] Lee J K, Kim Y D. Search heuristics for resource con-

strained project scheduling[J]. Journal of Operational Re-

search Society, 1996, 47(5): 678-689.

[11] Alcaraz J, Maroto C, Ruiz R. Improving the performance

of genetic algorithm for the RCPS problem[C]. In: Pro-

ceedings of the Ninth International Workshop on Project

Management and Scheduling. Nancy, France, 2004. 40-43.

[12] Hartmann S. A competitive genetic algorithm for resource-

constrained project scheduling[J]. Naval Research Logis-

tics, 1998, 45(7): 733-750.

[13] Hartmann S. A self-adapting genetic algorithm for re-

source-constrained under project scheduling[J]. Naval Re-

search Logistics, 2002, 49(5): 433-448.

[14] Valls V, Ballestin F, Quintanilla S. A hybrid genetic algo-

rithm for the resource-constrained project scheduling prob-

lem[J]. European Journal of Operational Research, 2008,

185(2): 495-508.

[15] Mendes J J, Goncalves J F, Resende M G C. A random key

based genetic algorithm for the resource constrained pro-

ject scheduling problem[J]. Computers & Operations Re-

search, 2009, 36(1): 92-109.

[16] Debels D, Vanhoucke M. A decomposition-based genetic

algorithm for the resource-constrained project scheduling

problem[J]. Operations Research, 2007, 55(3): 457-469.

[17] Bouleimen K, Lecocq H. A new efficient simulated anneal-

ing algorithm for solving resource constrained project

scheduling problem and its multiple modes version[J].

European Journal of Operational Research, 2003, 149(2):

268-281.

[18] Nonobe K, Ibaraki T. Formulation and tabu search algo-

rithm for the resource constrained project scheduling prob-

lem[C]. In: Essays and Surveys in Metaheuristics. Kluwer

Academic Publishers, 2002. 557-588.

[19] Merkle D, Middendorf M, Schemeck H. Ant colony opti-

mization for resource-constrained project scheduling[J].

IEEE Transactions on Evolutionary Computation, 2002,

6(4): 333-346.

[20] Debels D, de Reyck B, Leus R et al. A hybrid scatter

search/electromagnetism meta-heuristic for project sched-

uling[J]. European Journal of Operational Research,

2006, 169(2): 638-653.

[21] Ranjbar M. Solving the resource-constrained project

scheduling problem using filter-and-fan approach[J]. Ap-

plied Mathematics and Computation, 2008, 201(1/2): 313-

318.

[22] Tormos P, Lova A. A competitive heuristic solution tech-

nique for resource-constrained project scheduling[J]. An-

nals of Operations Research, 2001, 102(1-4): 65-81.

[23] Kochetov Y, Stolyar A. Evolutionary local search with

variable neighborhood for the resource constrained project

scheduling problem[C]. In: Proceedings of the 3rd Inter-

national Workshop of Computer Science and Information

Technologies. Russia, 2003.

[24] Palpant M, Artigues C, Michelon P. LSSPER: Solving the

resource-constrained project scheduling problem with large

neighborhood search[J]. Annals of Operations Research,

2004, 131(1-4): 237-257.

[25] Chambers L D. Practical Handbook of Genetic Algo-

rithms: Applications[M]. CRC Press, Floride, 1995.

[26] Kolisch R, Sprecher A. PSPLIB—A project scheduling

problem library[J]. European Journal of Operational Re-

search, 1996, 96(1): 205-216.