simulated annealing for multi-mode resource-constrained project scheduling

19
Annals of Operations Research 102, 137–155, 2001 2001 Kluwer Academic Publishers. Manufactured in The Netherlands. Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling JOANNA JÓZEFOWSKA, MAREK MIKA, RAFAL RÓ ˙ ZYCKI, GRZEGORZ WALIGÓRA and JAN W¸ EGLARZ Pozna´ n University of Technology, Institute of Computing Science, Piotrowo 3A, 60-965 Pozna´ n, Poland Abstract. In this paper the resource-constrained project scheduling problem with multiple execution modes for each activity and the makespan as the minimization criterion is considered. A simulated annealing approach to solve this problem is presented. The feasible solution representation is based on a precedence feasible list of activities and a mode assignment. A comprehensive computational experiment is described, performed on a set of standard test problems constructed by the ProGen project generator. The results are analyzed and discussed and some final remarks are included. Keywords: multi-mode project scheduling, renewable resources, non-renewable resources, simulated an- nealing 1. Introduction This paper deals with the multi-mode resource-constrained project scheduling problem (MRCPSP). It is a generalized case of the classical resource-constrained project schedul- ing problem (RCPSP) where the activities are to be scheduled in such a way that the makespan of the project is minimized. In the MRCPSP each activity can be executed in one of several modes representing a relation between resource requirements of the ac- tivity and its duration. The schedule has to be precedence- and resource-feasible and no activity may be interrupted. The resources can be renewable, non-renewable and dou- bly constrained where the renewable resources are limited period-by-period, the non- renewable resources are limited for the entire project and the doubly constrained ones are limited both for each period and for the entire project. However, the doubly con- strained resources need not be taken into account explicitly since they can be incorpo- rated by properly enlarging the sets of the other two types of resources. The objective is to find an assignment of modes to activities as well as precedence- and resource-feasible starting times for all activities such that the makespan of the project is minimized. The problem is strongly NP-hard being a generalization of the resource-constrained project scheduling problem (RCPSP) which is also strongly NP-hard. The RCPSP is a strongly NP-hard problem as a generalization of the well-known job shop problem [4]. Moreover, for more than one non-renewable resource the problem of finding a feasible solution is already NP-complete [28]. The MRCPSP has been broadly studied in recent years. Several exact and heuristic approaches have been proposed. Talbot [46] was the first one who proposed an exact

Upload: joanna-jozefowska

Post on 05-Aug-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

Annals of Operations Research 102, 137–155, 2001 2001 Kluwer Academic Publishers. Manufactured in The Netherlands.

Simulated Annealing for Multi-ModeResource-Constrained Project Scheduling

JOANNA JÓZEFOWSKA, MAREK MIKA, RAFAŁ RÓZYCKI, GRZEGORZ WALIGÓRA and JAN WEGLARZPoznan University of Technology, Institute of Computing Science, Piotrowo 3A, 60-965 Poznan, Poland

Abstract. In this paper the resource-constrained project scheduling problem with multiple execution modesfor each activity and the makespan as the minimization criterion is considered. A simulated annealingapproach to solve this problem is presented. The feasible solution representation is based on a precedencefeasible list of activities and a mode assignment. A comprehensive computational experiment is described,performed on a set of standard test problems constructed by the ProGen project generator. The results areanalyzed and discussed and some final remarks are included.

Keywords: multi-mode project scheduling, renewable resources, non-renewable resources, simulated an-nealing

1. Introduction

This paper deals with the multi-mode resource-constrained project scheduling problem(MRCPSP). It is a generalized case of the classical resource-constrained project schedul-ing problem (RCPSP) where the activities are to be scheduled in such a way that themakespan of the project is minimized. In the MRCPSP each activity can be executed inone of several modes representing a relation between resource requirements of the ac-tivity and its duration. The schedule has to be precedence- and resource-feasible and noactivity may be interrupted. The resources can be renewable, non-renewable and dou-bly constrained where the renewable resources are limited period-by-period, the non-renewable resources are limited for the entire project and the doubly constrained onesare limited both for each period and for the entire project. However, the doubly con-strained resources need not be taken into account explicitly since they can be incorpo-rated by properly enlarging the sets of the other two types of resources. The objective isto find an assignment of modes to activities as well as precedence- and resource-feasiblestarting times for all activities such that the makespan of the project is minimized. Theproblem is strongly NP-hard being a generalization of the resource-constrained projectscheduling problem (RCPSP) which is also strongly NP-hard. The RCPSP is a stronglyNP-hard problem as a generalization of the well-known job shop problem [4]. Moreover,for more than one non-renewable resource the problem of finding a feasible solution isalready NP-complete [28].

The MRCPSP has been broadly studied in recent years. Several exact and heuristicapproaches have been proposed. Talbot [46] was the first one who proposed an exact

Page 2: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

138 JÓZEFOWSKA ET AL.

enumeration scheme, followed by Patterson et al. [37]. These early methods were ableto solve instances up to 15 activities. Speranza and Vercellis [41] proposed a depth-firstbranch and bound procedure which enumerates the set of active schedules. However,Hartmann and Sprecher [19] showed that the method might fail to find optimal or feasi-ble solutions. Then Sprecher et al. [44] extended the enumeration scheme of Demeule-meester and Herroelen [13] for the single-mode to the multi-mode case. Hartmann andDrexl [17] generalized the exact procedure of Stinson et al. [45] to the multi-mode con-text. Furthermore, they made an in-depth comparison of the three branch and boundstrategies of Sprecher [42], Demeulemeester and Herroelen [13] and Stinson et al. [45]to solve the MRCPSP. Finally, Sprecher and Drexl [43] proposed new dominance criteriamaking their branch and bound algorithm be able to solve problems up to 20 activities.According to the results presented by Hartmann and Drexl [17] this algorithm is re-cently the most effective one for exact solving the MRCPSP. Sprecher and Drexl [43]also showed that even the currently most powerful optimization procedures are unable tosolve optimally highly resource-constrained problems with more than 20 activities andmore than two modes per activity in reasonable computational times. In consequence,heuristic algorithms to find near-optimal solutions must be applied for larger projects.

Several heuristic approaches for solving the MRCPSP have been already proposedin the literature. Talbot [46] and Sprecher and Drexl [43] suggest to use their branch andbound algorithms as heuristic procedures by imposing a time limit. Drexl and Grünewald[14] propose biased random sampling approach. Słowinski et al. [40] present a single-pass and a multi-pass approach as well as a simulated annealing algorithm. They alsodevelop a decision support system helping the user to identify strategies for choosing theactivities to put in progress in case of resource conflicts and multiple criteria. Kolischand Drexl [24] apply a local search strategy and Özdamar and Ulusoy [36] a constrained-based approach. Özdamar [35] proposes a genetic algorithm based on a priority rule en-coding whereas Hartmann [16] a genetic algorithm with encoding based on a precedencefeasible list of activities and a mode assignment. Bouleimen and Lecocq [8] describe anew simulatd annealing algorithm. Maniezzo and Mingozzi [31] propose a new math-ematical formulation for the MRCPSP and use it to derive two new lower bounds anda new heuristic algorithm based on Benders’ decomposition. Finally, Boctor ([5,6] –simulated annealing, [7]) as well as Mori and Tseng ([33] – genetic algorithm) presentheuristics for instances with renewable resources only.

In this paper a new simulated annealing algorithm for solving the MRCPSP ispresented. The paper is organized as follows. In section 2 the multi-mode resource-constrained project scheduling problem is formulated. In section 3 our implementationof simulated annealing for the considered problem is described. Section 4 is devoted tothe computational experiment and the analysis of the results. Finally, some conclusionsare given in section 5.

Page 3: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 139

2. Problem formulation

We consider the multi-mode resource-constrained project scheduling problem(MRCPSP) which can be given as follows. A project consists of n activities. The prece-dence relations between activities are defined by a directed acyclic graph G. No activitymay be started before all its predecessors are finished. Graph G is numerically num-bered, i.e., an activity has always a higher number than all its predecessors.

Each activity j , j = 1, . . . , n, has to be executed in one of Mj modes. The ac-tivities are nonpreemtable and a mode chosen for an activity may not be changed (i.e.,an activity j , j = 1, . . . , n, started in mode m,m ∈ {1, . . . ,Mj }, must be completed inmode m without preemption). The duration of activity j executed in mode m is djm.

We assume that there are R renewable and N non-renewable resources. The num-ber of available units of renewable resource k, k = 1, . . . , R, is Rk and the number ofavailable units of non-renewable resource l, l = 1, . . . , N , is Nl . Each activity j ex-ecuted in mode m requires for its processing rjmk units of renewable resource k, k =1, . . . , R, and consumes njml units of non-renewable resource l, l = 1, . . . , N . Weassume that all activities and resources are available at the start of the process. Theobjective of the MRCPSP is to find an assignment of modes to activities as well asprecedence- and resource-feasible starting times for all activities such that the makespanof the project is minimized.

All the MRCPSP parameters are summarized below and, excluding graph G, theyare assumed to be integers.

n number of activities;G directed acyclic graph of precedence constraints between activities;Mj number of modes of activity j, j = 1, . . . , n;djm duration of activity j executed in mode m, m = 1, . . . ,Mj ;R number of renewable resources;N number of non-renewable resources;Rk number of available units of renewable resource k, k = 1, . . . , R;Nl number of available units of non-renewable resource l, l = 1, . . . , N;rjmk number of units of renewable resource k required by activity j executed in

mode m;njml number of units of non-renewable resource l consumed by activity j executed in

mode m.

In the following section our implementation of the simulated annealing algorithmfor solving the above problem is presented.

3. Simulated annealing

In this section we present two versions of the simulated annealing (SA) algorithm forsolving the MRCPSP. SA is one of the three well-known metaheuristics, together withtabu search (TS) and genetic algorithms (GA). Metaheuristics are efficient computa-tional methods designed to solve hard combinatorial optimization problems. In recent

Page 4: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

140 JÓZEFOWSKA ET AL.

years a few adaptations of these algorithms for some versions of project scheduling prob-lems have been implemented. The presented results show that metaheuristics are ableto outperform all good heuristics and usually give high quality solutions in a reasonablecomputational time, even for large size problems.

3.1. Applications of metaheuristics for RCPSP and MRCPSP

Kolisch and Hartmann [25] present a survey of heuristics for the single-mode RCPSP. Intheir paper a special section is devoted to the metaheuristic approaches, where descrip-tion of the main features of the implementations of these methods is presented as well asthe performance analysis based on the results of a computational experiment. Hartmannand Kolisch [18] consider an experimental evaluation of 6 different implementations ofmetaheuristics and 10 other heuristics for the single-mode RCPSP. Kolisch and Padman[26] present a survey of recent works in this area concerning different versions of projectscheduling problems with different optimization criteria. That paper includes sectionsconcerning metaheuristic approaches.

Further on, some papers concerning adaptations of metaheuristics for projectscheduling will be briefly described using the notation and the classification presentedby Kolisch and Hartmann [25]. Sampson and Weiss [39] develop a local search proce-dure based on the shift vector representation. This procedure can be treated as a specialcase of the SA algorithm. Pinson et al. [38] propose a few variants of TS which differin the neighbourhood generation mechanism. The shift, the pairwise interchange andthe adjacent pairwise interchange are used as neighbourhood operators. All the versionsuse the activity list representation, the serial SGS (Schedule Generation Scheme) and apriority rule based starting solution. Leon and Ramamoorthy [30] use GA with problem-space based versions of the random key representation, a modified version of the parallelSGS and a one-point crossover operator. Boctor [6] suggests an adaptation of SA to thesingle-mode RCPSP where a solution is represented by the activity list, neighbours aregenerated using the shift operator and a schedule is constructed from the activity listusing the serial SGS. Lee and Kim [29] present all the three metaheuristics based on therandom key representation with the parallel SGS and the pairwise interchange neigh-bourhood for both TS and SA, and a one-point crossover operator for GA.

Cho and Kim [12] modify the previous version of SA proposed by Lee and Kim[29] by some extensions of the random key representation and the parallel SGS in orderto delay some activities that may result in a search space extension. Naphade et al. [34]suggest the best fit strategy. Baar et al. [3] develop two versions of TS. The first one isbased on the activity list representation and the serial SGS as the decoding procedure.The neighbourhood is generated using one of three kinds of critical path based moves.The second one is based on the so-called schedule scheme representation and the re-lated neighbourhood generation mechanism as well as the decoding rule introduced byBrucker et al. [10]. Kohlmorgen et al. [21] construct a GA algorithm with the randomkey representation and a two-point crossover neighbourhood operator. Hartmann [15]presents three versions of the GA approach. All of them employ the serial SGS as the

Page 5: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 141

decoding mechanism and a two-point crossover as the main neighbourhood operator,but they differ in the solution representation. The solutions in these GA adaptations arerepresented by an activity list, a random key and a priority list, respectively. Bouleimenand Lecocq [9] develop an SA algorithm based on the activity list representation and theshift neighbourhood. Hartmann and Kolisch [18] show on the basis of computationalexperiment results that the two most powerful adaptations of metaheuristic approachesfor the single-mode RCPSP are those presented by Hartmann [15] and Bouleimen andLecocq [9].

A few metaheuristic approaches for the multi-mode version of the RCPSP havebeen reported in recent years. Słowinski et al. [40] use an SA algorithm to solve theMRCPSP in DSS for multi-objective project scheduling. Boctor [6,7] also suggests anextension of his SA approach to the MRCPSP but without non-renewable resources.Özdamar [35] proposes GA based on the priority rule encoding, the parallel SGS decod-ing rule and a two-point crossover. Mori and Tseng [33] present a GA adaptation forproblems without non-renewable resources. The idea of their application of GA is verysimilar to that presented by Hartmann [16]. Bouleimen and Lecocq [8] also extend theirSA approach to the multi-mode case of the RCPSP by implementing a two-phase algo-rithm. In the first phase a mode neighbourhood operator is used to find a feasible modeassignment and in the second phase a shift neighbourhood operator is used to generate anew precedence feasible list of activities for this assignment.

3.2. Simulated annealing application for MRCPSP

In this section we present a new simulated annealing algorithm for the MRCPSP.Simulated annealing is a metaheuristic belonging to the class of local search algo-

rithms, which are known as threshold algorithms as presented by Aarts et al. [2]. In itsoriginal form this algorithm is based on the Monte Carlo method developed by Metropo-lis et al. [32] which is used to simulate a physical annealing process. This method wasapplied to combinatorial optimization problems for the first time in the 1980’s by Kirk-patrick et al. [20] and by Cerny [11]. Later, this algorithm was popularized by the worksof van Laarhoven and Aarts [47] as well as Aarts and Korst [1]. Unlike the other meta-heuristics, in SA there are exactly one current and exactly one neighbour solution. SAcan be viewed as a special case of local search algorithms with the first fit strategy,where all solutions that improve the objective function value are accepted immediately,but other solutions are either rejected or accepted with certain probability. The accep-tance probability for a neighbour solution decreases with the time spent on computationsas well as with the value of the difference in costs of these two solutions.

In order to apply the SA algorithm to a particular combinatorial problem one mustspecify a set of parameters, which can be divided into two categories. The first cate-gory of parameters is a general one, usually called a cooling scheme, and the second onecontains problem specific parameters. Below we will describe how these parameters areused in our implementation of SA to the presented problem. We have examined twoslightly different adaptations of the simulated annealing algorithm. The first one con-

Page 6: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

142 JÓZEFOWSKA ET AL.

cerns precedence and resource feasible solutions only, whereas the second one concernsalso resource infeasible solutions. These two approaches will be called “SA withoutpenalty function” and “SA with penalty function”, respectively. The presentation ofthe parameters will start with the cooling scheme, since it is common for both the ap-proaches. Next, the problem specific parameters will be discussed separately for eachversion of the SA algorithm.

3.2.1. Cooling schemeThe cooling scheme described by Aarts and Korst [1] is used except for the stop criterion,which is defined as a fixed number of visited solutions. In its original version the coolingscheme by Aarts and Korst leads to polynomial-time execution of an SA algorithm, butit cannot give any guarantee for the deviation in cost between the final solution obtainedby the algorithm and the optimal cost. However, we suggest using this adaptive coolingscheme instead of that simple one used by Boctor [6,7] and Bouleimen and Lecocq [8,9].The main reason for such an approach is, in our opinion, that if we deal with problemsfor which the test instances may differ significantly, it is better to change the value ofthe control parameter in a variable way than in a fixed way. Both Boctor and Bouleimenand Lecocq in their implementations use a fixed factor α (α < 1) to change the controlparameter according to the formula: Tk+1 = αTk. For some instances this could lead tobeing prematurely trapped in a local minimum and therefore they have to use a so-called“re-heating” phase, in which the initial value of the control parameter is restored in orderto continue the search process. Using the adaptive cooling scheme we do not need “re-heating” since the next value of the control parameter depends on the search path and isalways high enough to proceed. More precisely, this value depends on the differencesin the objective function values for consecutively generated neighbour solutions. Thispreserves the algorithm from being prematurely trapped in a local minimum.

The initial value T0 of the control parameter is calculated at the start of the algo-rithm from the following equation:

T0 = �f (+)

ln(

m2m2·χ−m1(1−χ0)

) ,where χ0 is the initial acceptance ratio (the proportion between transitions accepted andall transitions generated for T0); m1 is the number of cost-decreasing transitions and m2

is the number of cost-increasing transitions from among m0 trial transitions generated to

determine the initial value of the control parameter. Of course, m1 + m2 = m0. �f(+)

is the average difference in cost over the m2 cost-increasing transitions. We assume thatχ0 = 0.95 and m0 = 50.

A Markov chain is a sequence of trials where the probability of the outcome of agiven trial depends only on the outcome of the previous trial.

The length of the Markov chains determines the number of transitions performedfor a fixed value of the control parameter. We assume that the length of Markov chains

Page 7: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 143

is fixed and depends on the size of the problem according to the following equation:Lk = L = 5n, k = 0, 1, . . . , where n is the number of activities.

The decrement of the control parameter Tk depends on the average value of thecontrol parameter and the standard deviation σTk

for the kth Markov chain. The nextvalue Tk+1 is calculated according to the following formula:

Tk+1 = Tk

1 + (Tk ln(1 + δ))/(3σTk), k = 0, 1, . . . .

The amount by which the value of Tk is decreased by the above decrement function isdetermined by the value of the distance parameter δ. Small values of δ lead to smalldecrements, large values of δ lead to large decrements in Tk. We assume that δ = 0.5.

The stop criterion is fulfilled when either the primary or the secondary stop condi-tion occurs. The primary stop condition occurs when the makespan reaches the value ofMPM (the length of the critical path for the multi-mode case calculated using the modesof the shortest durations). The secondary stop condition is defined as a fixed number ofvisited solutions. This number varies for different problem sizes. For the version with-out penalty function an additional stop condition has been developed in order to avoidan infinite program execution. This additional condition is used in two cases. The firstone concerns instances where no feasible solution exists. The second one refers to in-stances where exactly one feasible solution exists and therefore there is no possibility togenerate any feasible neighbour of this solution.

The values of all the cooling scheme parameters have been set on a basis of afew preliminary computational experiments, but some of them were suggested by theliterature.

3.2.2. PreprocessingIn order to reduce the search space and to adapt the project data to the presented imple-mentations of SA the preprocessing procedure, which was introduced by Sprecher et al.[44], is used. After an execution of this procedure all non-executable modes, inefficientmodes as well as redundant non-renewable resources are deleted.

3.2.3. Solution representationA feasible solution for both the approaches is represented by two n-element lists. Thefirst one is a precedence feasible permutation of activities, in which each activity j mustoccur after all its predecessors and before all its successors. This structure is called theactivity list. The second one is a list of execution modes for all activities and is called themode assignment. The kth element of this list defines the execution mode of job k. Thisrepresentation has been used in many previous algorithms for the MRCPSP. Notice thatfor the version without penalty function the list of modes must correspond to a resourcefeasible schedule.

Page 8: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

144 JÓZEFOWSKA ET AL.

3.2.4. The solution feasibility testA schedule in the MRCPSP may be infeasible for one of the following three reasons. Thefirst one is infeasibility with respect to the precedence relation constraints. The secondone occurs when the renewable resource constraints are violated and the last one whenthe non-renewable resource constraints are violated. We can avoid the first two reasonsfor infeasibility using the preprocessing procedure, a suitable representation of the so-lution, the serial SGS decoding rule and a smart neighbourhood generation mechanism.The assertion of solution feasibility with respect to the non-renewable resource con-straints is more complicated. Therefore we implement a solution feasibility test whichis also used as a penalty function. For a given solution i = (λ, µ), which consists ofactivity list λ and mode assignment µ, the discussed test can be given by the followingequation:

SFT(i) =N∑l=1

max

{0,

J∑j=1

njml − Nl

},

where m is the execution mode of job j in mode assignment µ. Solution i correspondsto a feasible schedule if and only if SFT(i) = 0.

3.2.5. The objective functionThe objective is to minimize the makespan. Thus, for the SA without penalty functionthe value of the objective function can be calculated during the execution of the serialSGS decoding rule, but for the second version of the SA algorithm we use the penaltyfunction proposed by Hartmann [16]. For a given solution i = (λ, µ) the consideredfunction can be defined as follows:

f (i) ={

Cmax if SFT(i) = 0,T + SFT(i) otherwise,

where T is the upper bound on the project’s makespan which is given by the sum ofmaximal durations of activities. Cmax is the makespan for the schedule represented bysolution i. Its value is calculated during the execution of the serial SGS decoding rule.

3.2.6. Starting solutionAn initial solution for the SA version with penalty function is easy to generate without adanger of a non-renewable resource violation. In this case the initial solution can be ob-tained by setting all activities on the activity list in an ascending order that follows fromthe ordering of nodes in the precedence relation graph, and executing all jobs in their firstmodes. This procedure has been commonly used in local search algorithms before. Forthe SA version without penalty function the construction of a starting solution is moredifficult, since it has been proved that for the MRCPSP the problem of finding a feasiblesolution is NP-complete. We propose the following rule for generating a feasible start-ing solution. First of all, the activity list is constructed in the same way as describedabove. Next, all execution modes are set at 1. If this solution is feasible, the procedurestops. Otherwise the modes for all activities are changed one by one until either the SFT

Page 9: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 145

is equal to 0 or all modes for all activities are tested. If the second case occurs modesare changed randomly until the feasibility test is fulfilled (i.e., SFT(i) = 0) or a certainnumber of trials is exceeded (i.e., the additional stop criterion occurs).

3.2.7. Neighbourhood generation mechanismA neighbour of a current solution is generated using one of the following three operators:

• A neighbourhood shift which operates only on the list of activities in the followingway:

1. One job j is randomly chosen from the list of activities.

2. The nearest predecessor p of job j and the nearest successor s of job j are foundin the activity list.

3. A position x between jobs p and s is randomly chosen.

4. Job j is moved to position x and all jobs between job j and job in position x + 1(x − 1) are shifted to the left (to the right).

• A mode change which operates only on the mode assignment in the following way:

1. A position j from the mode assignment list is randomly chosen.

2. The mode in position j is changed to another one randomly chosen, if possible.

• A combined move which operates simultaneously on both the structures and is a com-position of the neighbourhood shift and the mode change.

In the algorithm without penalty function neighbour solutions in are generated until ei-ther SFT(in) = 0 or a certain number of consecutive unsuccessful trials is exceeded (i.e.,the additional stop criterion occurs).

We use only one phase of the neighbourhood generation, unlike Boctor [6] orBouleimen and Lecocq [8] who distinguish two phases: the first one – a generationof a feasible mode assignment and the second one – a generation of a feasible list ofactivities for this mode assignment. In our adaptation of SA the presented operators arechosen randomly with a certain probability, which depends on the instance of the con-sidered problem. The probability of the combined move PCM is always set at the fixedvalue of 1/2. The probability of the neighbourhood shift depends on the density of theprecedence relation graph and is calculated from the following equation:

PNS =(

1

2− NrOfArcs

n · (n − 1)

),

where NrOfArcs denotes the number of all arcs (also transitive ones) in the directedprecedence relation graph and n is a number of project’s activities. The probability ofthe mode change PMCh is equal to 1/2 − PNS. Of course, PCM + PNS + PMCh = 1. Theselection of the neighbourhood operator applied in the procedure depends on the numbergenerated randomly from the interval [0, 1).

Page 10: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

146 JÓZEFOWSKA ET AL.

4. Computational experiment

In this section we present the results of a computational experiment concerning the twoimplementations of SA for the MRCPSP described earlier. Both the applications werecoded and compiled in the MS Visual C++ 5.0. Because SA is a random algorithm, itis worth mentioning that in our implementations we used the standard pseudo-randomnumber generator for which its seed value was set at 1 at the start of each programexecution. The obtained results might slightly differ for other settings.

All tests were carried out on an IBM-compatible PC with 133 MHz Pentiumprocessor and 32 MB RAM under MS Windows NT operating system.

We used a set of benchmark problem instances generated using the project gen-erator ProGen developed by Kolisch et al. [28]. The files with mentioned instancesas well as the code of ProGen itself are available in the project scheduling prob-lem library PSPLIB from the ftp service of the University of Kiel (ftp://ftp.bwl.uni-kiel.de/pub/operations-research/psplib). For more details concerning ProGen one shouldsee Kolisch and Sprecher [27].

We have used benchmark sets for problems with 10, 12, 14, 16, 18 and 20 non-dummy activities for which sets of optimal solutions are available as well as benchmarksfor problems with 30 non-dummy activities for which only a set of the best knownheuristic solutions is available. All non-dummy activities may be executed in one ofthree modes. There are two renewable and two non-renewable resources. The durationof job j in mode m varies from 1 to 10. For each problem size a set of 640 instanceswas generated, but for some instances no feasible solution exists and therefore theseinstances will be excluded from further consideration.

In table 1 we present the number of instances for which at least one feasible solu-tion exists.

Table 2 shows the number of instances for which the optimal (or the best known)makespan is equal to the value of MPM.

In table 3 we present the number of visited solutions used as the secondarystop condition. Notice that for SA without penalty function only feasible solutions arecounted as visited ones.

Table 4 shows the maximum and the average time spent on the execution of ouralgorithms.

In table 5 we present the maximum and the average number of the last iteration inwhich a change of the objective function value occurred.

Table 6 concerns the results of the computational experiment obtained for SA with-out penalty function and contains the following data:

Table 1PSPLIB instances.

Number of activities

10 12 14 16 18 20 30

Number of instances 536 547 551 550 552 554 550

Page 11: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 147

Table 2PSPLIB instances (contd.).

Instances for which Number of activities

C∗max = MPM 10 12 14 16 18 20 30∗

Total number 190 182 201 228 238 243 307Percentage 35.5 33.3 36.5 41.5 43.1 43.9 55.8

* Results related to the best known solutions.

Table 3The secondary stop criterion.

Version of SA Number of activities

10 12 14 16 18 20 30

Without penalty function 60 000 72 000 84 000 96 000 108 000 120 000 180 000With penalty function 120 000 144 000 168 000 192 000 216 000 240 000 360 000

Table 4CPU time.

SA version CPU-time Number of activities

10 12 14 16 18 20 30

−penalty f. Max. 10.4 15.0 27.7 26.2 140.5 98.6 107.1Avg. 5.1 7.1 10.2 12.0 15.6 19.7 41.8

+penalty f. Max. 14.5 22.0 30.3 41.4 55.3 75.0 200.2Avg. 7.0 10.8 14.6 18.3 24.0 30.6 72.2

Table 5Number of iterations.

SA version Number of Number of activitiesiterations

10 12 14 16 18 20 30

−penalty f. Max. 10 359 56 021 80 509 85 114 106 814 119 626 179 678Avg. 914 1 661 3 139 4 050 5 369 7 171 20 990

+penalty f. Max. 111 851 67 567 84 810 165 832 163 178 226 059 358 572Avg. 2 556 3 030 6 195 10 152 16 764 23 117 81 497

• the average relative deviation from the optimal (or the best known) solution;

• the maximum relative deviation from the optimal (or the best known) solution;

• the maximum absolute deviation from the optimal (or the best known) solution;

• percentage of optimal (or the best known) solutions found.

The results obtained for SA with penalty function are presented in tables 7–13which contain one additional data, namely the percentage of feasible solution found. Allthe results in tables 7–13 are presented for the initial solution and a solution after 10,

Page 12: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

148 JÓZEFOWSKA ET AL.

Table 6Results for SA without penalty function.

Number of Number of Average Maximum Maximum Optimalactivities iterations relative relative absolute solutions

deviation (%) deviation (%) deviation (%) found (%)

10 60 000 0.93 110.0 11 92.412 72 000 0.60 50.0 8 92.114 84 000 0.68 23.5 8 88.016 96 000 0.64 14.3 4 86.718 108 000 0.67 15.8 6 85.920 120 000 0.54 11.8 4 87.530 180 000 0.44 11.4 5 87.5

Table 7Results for SA with penalty function for n = 10.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 258.36 850.0 108 16.6 39.010 150.52 700.0 91 20.1 59.5

100 18.48 283.3 57 25.2 99.3500 8.17 50.0 9 41.6 100.0

1 000 5.17 50.0 7 54.9 100.05 000 1.16 31.3 5 85.6 100.0

10 000 0.47 22.2 4 93.7 100.020 000 0.27 22.2 4 96.6 100.050 000 0.23 22.2 4 97.2 100.0

100 000 0.23 22.2 4 97.2 100.0120 000 0.20 22.2 4 97.6 100.0

100, 500, 1 000, 5 000, 10 000, 20 000, 50 000, 100 000 iterations, if possible, as wellas for the final solution.

Tables 6–13 contain results concerning problems with 10, 12, 14, 16, 18, 20 and30 activities, respectively.

Table 14 shows relations between the best known results and the results obtained byour adaptations of SA for problems with 30 activities. No optimal solutions are knownfor this problem size.

Table 15 shows the results presented by Bouleimen and Lecocq [8] for their SAapproach. They used time based stop criterion – in seconds, the limit execution time wasfixed to 5 times the number of activities.

Table 16 shows the results presented by Hartmann [16] for his GA approach witha time limit of one second.

The results show that the SA with penalty function performs better than the SAwithout penalty function. First of all, although the CPU times are in most cases smallerfor the SA without penalty function than for the SA with penalty function, there exist

Page 13: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 149

Table 8Results for SA with penalty function for n = 12.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 271.31 900.0 127 18.1 40.010 175.82 808.3 111 18.8 56.7

100 21.72 279.3 81 20.5 98.7500 10.72 241.4 70 31.4 99.3

1 000 7.55 241.4 70 42.6 99.55 000 1.73 134.7 66 80.3 99.8

10 000 0.74 134.7 66 91.6 99.820 000 0.42 134.7 66 96.7 99.850 000 0.37 134.7 66 97.6 99.8

100 000 0.36 134.7 66 97.8 99.8144 000 0.36 134.7 66 97.8 99.8

Table 9Results for SA with penalty function for n = 14.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 282.38 969.2 154 18.3 42.110 184.20 853.8 131 20.0 58.1

100 26.65 530.0 106 20.0 97.6500 14.05 281.3 90 25.2 98.9

1 000 10.75 268.8 86 30.9 99.15 000 2.60 53.8 8 66.4 100.0

10 000 1.43 46.2 8 79.7 100.020 000 0.59 23.5 8 89.1 100.050 000 0.24 23.5 8 95.1 100.0

100 000 0.21 23.5 8 96.0 100.0168 000 0.21 23.5 8 96.0 100.0

instances where the CPU time spent by the former version is much larger than by thelatter version. It follows from the difficulty of finding a feasible solution by the SA with-out penalty function. Moreover, the performance of the SA without penalty functiondeteriorates with the growth of the problem size. However, the SA without penalty func-tion was able to find a feasible solution for each problem instance whereas the SA withpenalty function failed to find a feasible solution in one case. Nevertheless, the overallperformance of the SA with penalty function is better (a greater number of optimal so-lutions found and a smaller average relative deviation from optimum) and the analysispresented below will concern this version.

In contrast to the existing metaheuristic implementations (SA and GA) our SAalgorithm does not perform very well for small problem instances but it performs really

Page 14: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

150 JÓZEFOWSKA ET AL.

Table 10Results for SA with penalty function for n = 16.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 309.17 1000.0 167 17.3 41.110 195.72 853.3 141 18.4 58.5

100 29.45 605.9 118 18.9 98.0500 15.48 300.0 105 21.8 99.3

1 000 12.05 285.7 100 24.2 99.65 000 4.07 43.8 15 54.7 100.0

10 000 2.30 40.5 15 68.5 100.020 000 1.06 40.5 15 81.8 100.050 000 0.28 40.5 15 95.5 100.0

100 000 0.19 21.6 8 96.7 100.0192 000 0.16 21.6 8 97.3 100.0

Table 11Results for SA with penalty function for n = 18.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 323.59 973.3 188 19.0 41.310 262.61 906.7 179 19.9 48.6

100 34.69 776.5 132 20.3 97.3500 16.52 278.4 103 21.9 99.5

1 000 12.63 183.0 97 23.9 99.65 000 5.52 46.7 10 43.5 100.0

10 000 3.31 40.0 7 60.1 100.020 000 1.79 29.4 6 71.9 100.050 000 0.56 11.1 3 87.7 100.0

100 000 0.26 11.1 3 94.2 100.0216 000 0.15 11.1 3 96.6 100.0

well for larger ones. The percentage of optimal solutions found does not drop with theincrease of the problem size, which is the case for algorithms of Hartmann [16] andBouleimen and Lecocq [8] (see tables 15 and 16). The same concerns the average andthe maximum relative deviation from optimum. In fact, the maximum relative deviationdecreases with the problem size suggesting that the algorithm behaves better when thenumber of activities grows.

In comparison to the algorithms by Hartmann and Bouleimen and Lecocq, we canstate that our algorithm finds a larger number of optimal solutions than Bouleimen andLecocq’s and a comparable number as Hartmann’s within a similar computational time.The same can be said about the average relative deviation from optimum (better thanBouleimen and Lecocq’s, comparable to Hartmann’s). However, the maximum relative

Page 15: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 151

Table 12Results for SA with penalty function for n = 20.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 339.20 1043.8 214 18.8 43.110 281.70 962.5 197 20.0 48.9

100 39.78 794.7 151 20.0 96.0500 19.32 441.9 137 21.5 99.1

1 000 16.00 384.8 130 22.2 99.35 000 6.74 50.0 13 35.7 100.0

10 000 4.33 40.0 11 51.1 100.020 000 2.54 22.7 7 62.6 100.050 000 0.80 11.5 3 81.0 100.0

100 000 0.27 6.9 2 92.4 100.0240 000 0.15 6.9 2 95.8 100.0

Table 13Results for SA with penalty function for n = 30.

Number of Average Maximum Maximum Optimal Feasibleiterations relative relative absolute solutions solutions

deviation (%) deviation (%) deviation (%) found (%) found (%)

0 432.50 1247.4 328 21.5 43.110 388.14 1083.3 324 22.2 45.8

100 67.44 857.7 234 22.2 92.5500 22.49 500.0 210 22.5 99.3

1 000 17.10 88.9 24 22.7 100.05 000 11.76 66.7 22 25.6 100.0

10 000 8.47 55.6 18 34.2 100.020 000 6.22 52.6 12 43.3 100.050 000 3.81 31.6 8 53.1 100.0

100 000 2.06 23.1 6 63.1 100.0200 000 0.86 11.5 4 77.1 100.0360 000 0.34 6.7 3 88.9 100.0

Table 14Results for n = 30 (contd.).

Version of SA Equa Better Worse

Without penalty function 476 5 69With penalty function 482 7 61

deviation from optimum is unfortunately worse for our algorithm than for both the men-tioned algorithms.

According to table 14, our SA algorithm was able to improve the best solutionsknown in 7 cases from among the test instances available in the project scheduling prob-

Page 16: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

152 JÓZEFOWSKA ET AL.

Table 15Results presented by Bouleimen and Lecocq for SA.

Number of activities Average deviation (%) Max. deviation (%) Optimal (%)

10 0.21 7.8 96.312 0.19 6.3 91.214 0.92 10.6 82.616 1.43 12.9 72.818 1.85 11.7 69.420 2.10 13.2 66.9

Table 16Results presented by Hartmann for GA.

Number of activities Average deviation (%) Max. deviation (%) Feasible (%) Optimal (%)

10 0.15 10.5 100.0 97.612 0.17 7.1 100.0 96.314 0.68 15.0 100.0 86.616 1.00 12.9 100.0 78.618 1.47 13.0 100.0 71.420 1.91 11.9 100.0 64.8

lem library PSPLIB. However, it is worth mentioning that previous versions of the al-gorithm (constructed during the phase of tuning the algorithm) found 10 more bettersolutions. It, of course, concerns instances with 30 activities where no optimal solutionsare known.

Summarizing, it can be stated that our SA algorithm for the MRCPSP is a verystable algorithm being able to find optimal solutions in over 95% of instances for prob-lems with from 10 to 20 activities and best known solutions in about 90% of instancesfor problems with 30 activities. Moreover, its performance does not deteriorate with theincrease of the problem size with respect to the number of optimal solutions found, aswell as the average and maximum deviation from optimum. In fact, the two latter factorsrather decrease with the growth of the problem size.

5. Conclusions

In this paper a simulated annealing approach to the multi-mode resource-constrainedproject scheduling problem (MRCPSP) is presented. An implementation based on aprecedence feasible list of activities and a mode assignment is described. Two versionsof the simulated annealing approach are discussed: SA without penalty function and SAwith penalty function. In both cases three neighbourhood generation mechanisms areapplied: neighbourhood shift, mode change and combined move being a composition ofthe other two. A comprehensive computational experiment is described performed on aset of standard test problems constructed by the ProGen project generator. On the basisof the results it can be stated that the “with penalty function” version performs better.

Page 17: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 153

The results obtained by the algorithm are better than the Bouleimen and Lecocq’s imple-mentation of SA and are comparable to Hartmann’s implementation of GA. Moreover,the performance of our SA algorithm improves with the growth of the problem size.Finally, our SA approach improved best solutions known in 17 standard instances fromamong instances with 30 activities.

In the future the application of the considered algorithm to the other criteria as wellas to the other models of project scheduling problem are planned.

Acknowledgment

We are grateful to Sönke Hartmann from the Institut für Betriebswirtschaftslehre of theChristian-Albrechts-Universität zu Kiel, Germany, for his helpful discussion. GrzegorzWaligóra has been awarded a domestic grant for young scholars ’99 of the Foundation forPolish Science (FNP). The research has been supported by the Polish State Committeefor Scientific Research (KBN) grant No. KBN 8T11A02016. We are grateful to twoanonymous referees for their valuable comments.

References

[1] E.H.L. Aarts and J.H.M. Korst, Simulated Annealing and Boltzmann Machines: A Stochastic Ap-proach to Combinatorial Optimization and Neural Computing (Wiley, Chichester, 1989).

[2] E.H.L. Aarts, J.H.M. Korst and P.J.M. van Laarhoven, Simulated annealing, in: Local Search inCombinatorial Optimization, eds. E.H.L. Aarts and J.K. Lenstra (Wiley, Chichester, 1997) pp. 91–120.

[3] T. Baar, P. Brucker and S. Knust, Tabu-search algorithms for the resource-constrained project schedul-ing problem, Technichal Report, University of Osnabrück, Germany (1997).

[4] J. Błazewicz, J.K. Lenstra and A.H.G. Rinnooy Kan, Scheduling subject to resource constraints, Dis-crete Applied Mathematics 5 (1983) 11–24.

[5] F.F. Boctor, Heuristics for scheduling projects with resource restrictions and several resource–durationmodes, International Journal of Production Research 31 (1993) 2547–2558.

[6] F.F. Boctor, Resource-constrained project scheduling by simulated annealing, International Journal ofProduction Research 34 (1996) 2335–2351.

[7] F.F. Boctor, A new and efficient heuristic for scheduling projects with resource restrictions and multi-ple execution modes, European Journal of Operational Research 90 (1996) 349–361.

[8] K. Bouleimen and H. Lecocq, A new efficient simulated annealing algorithm for the RCPSP and itsmultiple mode version, in: Proceedings of the 6th International Workshop on Project Managementand Scheduling, Istanbul (July 7–9 1998).

[9] K. Bouleimen and H. Lecocq, A new efficient simulated annealing algorithm for the resource-constrained project scheduling problem, in: Proceedings of the Sixth International Workshop onProject Management and Scheduling, eds. G. Barbarosoglu, S. Karabatı, L. Özdamar and G. Ulu-soy (Bogaziçi University Printing Office, Istanbul, 1998) pp. 19–22.

[10] P. Brucker, S. Knust, A. Schoo and O. Thiele, A branch and bound algorithm for the resource-constrained project scheduling problem, European Journal of Operational Research 107(2) (1998)272–288.

[11] V. Cerny, Thermodynamical approach to the traveling salesman problem: an efficient simulation al-gorithm, Journal of Optimization Theory and Applications 45 (1985) 41–51.

Page 18: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

154 JÓZEFOWSKA ET AL.

[12] J.-H. Cho and Y.-D. Kim, A simulated annealing algorithm for the resource-constrained projectscheduling problems, Journal of the Operational Research Society 48 (1997) 736–744.

[13] E. Demeulemeester and W. Herrolen, A branch-and-bound procedure for the multiple resource-constrained project scheduling problem, Management Science 38(12) (1992) 1803–1818.

[14] A. Drexl and J. Grünewald, Nonpreemptive multi-mode resource-constrained project scheduling, IIETransactions 25 (1993) 74–81.

[15] S. Hartmann, A competitive genetic algorithm for resource-constrained project scheduling, NavalResearch Logistics 45 (1998) 733–750.

[16] S. Hartmann, Project scheduling with multiple modes: A genetic algorithm, Manuskripte aus denInstituten für Betriebswirtschaftslehre, No. 435, University of Kiel, Germany (1997).

[17] S. Hartmann and A. Drexl, Project scheduling with multiple modes: A comparison of exact algo-rithms, Networks 32 (1998) 283–297.

[18] S. Hartmann and R. Kolisch, Experimental evaluation of state-of-the-art heuristics for the resource-constrained project scheduling problem, European Journal of Operational Research (1999) (to ap-pear).

[19] S. Hartmann and A. Sprecher, A note on “Hierarchical models for multi-project planning and schedul-ing”, European Journal of Operational Research 94 (1996) 377–383.

[20] S. Kirkpatrick, C.D. Gelatt Jr. and M.P. Vecchi, Optimization by simulated annealing, Science 220(1983) 671–680.

[21] U. Kohlmorgen, H. Schmeck and K. Haase, Experiences with fine-grained parallel genetic algorithms,Annals of Operations Research (1999) (to appear).

[22] R. Kolisch, Project scheduling under resource constraints – efficient heuristics for several problemclasses, Physica (1995).

[23] R. Kolisch, Serial and parallel resource-constrained project scheduling methods revisited: Theory andcomputation, European Journal of Operational Research 90 (1996) 320–333.

[24] R. Kolisch and A. Drexl, Local search for nonpreemptive multi-mode resource-constrained projectscheduling, IIE Transactions 29 (1997) 987–999.

[25] R. Kolisch and S. Hartmann, Heuristic algorithms for solving the resource-constrained projectscheduling problem: Classification and computational analysis, in: Project Scheduling: Recent Mod-els, Algorithms and Applications, ed. J. Weglarz (Kluwer Academic, Dordrecht, 1999) pp. 147–178.

[26] R. Kolisch and R. Padman, An Integrated survey of project scheduling, Manuskripte aus den Institutenfür Betriebswirtschaftslehre, No. 463, University of Kiel, Germany (1997).

[27] R. Kolisch and A. Sprecher, PSPLIB – a project scheduling problem library, European Journal ofOperational Research 96 (1996) 205–216.

[28] R. Kolisch, A. Sprecher and A. Drexl, Characterization and generation of a general class of resource-constrained project scheduling problems, Management Science 41 (1995) 1693–1703.

[29] J.-K. Lee and Y.-D. Kim, Search heuristics for resource constrained project scheduling, Journal of theOperational Research Society 47 (1996) 678–689.

[30] V. Leon and B. Ramamoorthy, Strength and adaptability of problem-space based neighbourhoods forresource-constrained problem scheduling, OR Spectrum 17(2/3) (1995) 173–182.

[31] V. Maniezzo and A. Mingozzi, A heuristic procedure for the multi-mode project scheduling problembased on Bender’s decomposition, in: Project Scheduling: Recent Models, Algorithms and Applica-tions, ed. J. Weglarz (Kluwer Academic, Dordrecht, 1999) pp. 179–196.

[32] N. Metropolis, A. Rosenbluth, M. Rosenbluth, A. Teller and E. Teller, Equation of state calculationsby fast computing machines, Journal of Chemical Physics 21 (1953) 1087–1092.

[33] M. Mori and C.C. Tseng, A genetic algorithm for the multi-mode resource-constrained projectscheduling problem, European Journal of Operational Research 100 (1997) 134–141.

[34] K. Naphade, S. Wu and R. Storer, Problem space search algorithms for resource-constrained projectscheduling, Annals of Operations Research 70 (1997) 307–326.

Page 19: Simulated Annealing for Multi-Mode Resource-Constrained Project Scheduling

SIMULATED ANNEALING 155

[35] L. Özdamar, A genetic algorithm approach to a general category project scheduling problem, IEEETransactions on Systems, Man, and Cybernetics 29 (1999) 44–59.

[36] L. Özdamar and G. Ulusoy, A local constraint based analysis approach to project scheduling undergeneral resource constraints, European Journal of Operational Research 79 (1994) 287–298.

[37] J.H. Patterson, R. Słowinski, F.B. Talbot and J. Weglarz, An algorithm for a general class of prece-dence and resource-constrained scheduling problems, in: Advances in Project Scheduling, eds.R. Słowinski and J. Weglarz (Elsevier, Amsterdam, 1989) pp. 3–28.

[38] E. Pinson, C. Prins and F. Rullier, Using tabu search for solving the resource-constrained projectscheduling problem, in: Proceedings of the 4th International Workshop on Project Management andScheduling, Leuven (1994) pp. 102–106.

[39] S. Sampson and E. Weiss, Local search techniques for the generalized resource-constrained projectscheduling problem, Naval Research Logistics 40 (1993) 665–675.

[40] R. Słowinski, B. Soniewiecki and J. Weglarz, DSS for multiobjective project scheduling subject tomultiple-category resource constraints, European Journal of Operational Research 79 (1994) 220–229.

[41] M.G. Speranza and C. Vercellis, Hierarchical models for multi-project planning and scheduling,European Journal of Operational Research 64 (1993) 312–325.

[42] A. Sprecher, Resource-Constrained Project Scheduling: Exact Methods for the Multi-Mode Case,Lecture Notes in Economics and Mathematical Systems 409 (Springer, Berlin, 1994).

[43] A. Sprecher and A. Drexl, Multi-mode resource-constrained project scheduling by a simple, generaland powerful sequencing algorithm, European Journal of Operational Research 107 (1998) 431–450.

[44] A. Sprecher, S. Hartmann and A. Drexl, An exact algorithm for project scheduling with multiplemodes, OR Spektrum 19 (1997) 195–203.

[45] J.P. Stinson, E.W. Davis and B.M. Khumawala, Multiple resource-constrained scheduling usingbranch and bound, AIIE Transactions 10 (1978) 252–259.

[46] F.B. Talbot, Resource-constrained project scheduling with time-resource tradeoffs: The nonpreemp-tive case, Management Science 28 (1982) 1197–1210.

[47] P.J.M. van Laarhoven and E.H.L. Aarts, Simulated Annealing: Theory and Applications (Reidel, Dor-drecht, 1987).