efficient genetic algorithm for resource-constrained project scheduling problem
TRANSCRIPT
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
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-
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
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.
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 —
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-
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.