7
Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute of Automation and Computer Science Brno University of Technology Technická 2, 616 69 Brno CZECH REPUBLIC Abstract: - This paper describes a new technique for solving the duration minimization in a resource- constrained network. It is based on a transformation of the resource-constrained project scheduling problem (RCPSP) to a sequence of (multi)knapsack problem (MKP) solutions. In the first part, three deterministic approaches are summarized and their time complexity is discussed. Due to the combinatorial nature of the problem for large projects with many constraints, heuristic techniques are applied. A genetic algorithm approach is proposed and compared with simulated annealing. Key-Words: - multi-knapsack problem, resource-constrained scheduling, genetic algorithm, simulated annealing 1 Introduction The scheduling problem is a frequent task in the control of various systems such as manufacturing processes [3], project management [7], and service system control (reservation systems, timetabling). A classical task of project management is to create the network graph of a project and, on the basis of knowledge or an estimation of time of activities, to determine critical activities that would have influenced a project delay. Each activity draws on certain resources, e.g. financial resources, natural resources (energy, water, material, etc.), labour, managerial skills. The solution of this task is well known in the case when we do not take limited resources into consideration. There are many professional programmes for the design of network graphs. Microsoft Project is one of the most user friendly ones. However, in real situations, available capacities of resources are constrained to certain limits. Project planning under limited resources [3,7] is difficult because of interdependence among activities due to sharing the same resources, dependence of resource consumption on the manner in which the activity is subdivided and dependence on the limits of availability of the various resources The character of all the three dependencies is basically non-linear. In general, scheduling problems are NP-hard, consequently no polynomial- time algorithms are known to guarantee an optimal solution. Classical methods of network analysis offer some approaches which depend on whether activities that have a lack of resource(s) may be suspended or not and whether activities will be put off until the moment when it is possible to perform them. A question is: Which concurrent activities should be suspended or put off because of a lack of resource(s)? 1.1 Related Work An excellent survey [5] with 203 references presents classification, models and methods for solving the resource-constrained project scheduling problem (RCPSP) and, in [10], it is critically reviewed and completed. There are single-mode and multi-mode variants of the problem, resources can be non- renewable or renewable, activities of project can be interrupted or not and so on. With respect to NP-hardness of the RCPSP, mainly heuristic methods are used for its solving. Papers frequently present applications of stochastic heuristics such as simulated annealing [4,16], genetic algorithms [2,11,12], tabu-search [1, 16, 19], ant systems [18] and swarm optimization method [22]. Most of these heuristics, applied to the classical single-mode RCPSP minimising the Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

Embed Size (px)

Citation preview

Page 1: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems

MILOŠ ŠEDA

Institute of Automation and Computer Science Brno University of Technology

Technická 2, 616 69 Brno CZECH REPUBLIC

Abstract: - This paper describes a new technique for solving the duration minimization in a resource-constrained network. It is based on a transformation of the resource-constrained project scheduling problem (RCPSP) to a sequence of (multi)knapsack problem (MKP) solutions. In the first part, three deterministic approaches are summarized and their time complexity is discussed. Due to the combinatorial nature of the problem for large projects with many constraints, heuristic techniques are applied. A genetic algorithm approach is proposed and compared with simulated annealing. Key-Words: - multi-knapsack problem, resource-constrained scheduling, genetic algorithm, simulated annealing 1 Introduction The scheduling problem is a frequent task in the control of various systems such as manufacturing processes [3], project management [7], and service system control (reservation systems, timetabling).

A classical task of project management is to create the network graph of a project and, on the basis of knowledge or an estimation of time of activities, to determine critical activities that would have influenced a project delay. Each activity draws on certain resources, e.g. financial resources, natural resources (energy, water, material, etc.), labour, managerial skills. The solution of this task is well known in the case when we do not take limited resources into consideration. There are many professional programmes for the design of network graphs. Microsoft Project is one of the most user friendly ones.

However, in real situations, available capacities of resources are constrained to certain limits. Project planning under limited resources [3,7] is difficult because of • interdependence among activities due to sharing

the same resources, • dependence of resource consumption on the

manner in which the activity is subdivided and • dependence on the limits of availability of the

various resources The character of all the three dependencies is

basically non-linear. In general, scheduling

problems are NP-hard, consequently no polynomial- time algorithms are known to guarantee an optimal solution.

Classical methods of network analysis offer some approaches which depend on whether activities that have a lack of resource(s) may be suspended or not and whether activities will be put off until the moment when it is possible to perform them. A question is: Which concurrent activities should be suspended or put off because of a lack of resource(s)? 1.1 Related Work An excellent survey [5] with 203 references presents classification, models and methods for solving the resource-constrained project scheduling problem (RCPSP) and, in [10], it is critically reviewed and completed. There are single-mode and multi-mode variants of the problem, resources can be non-renewable or renewable, activities of project can be interrupted or not and so on.

With respect to NP-hardness of the RCPSP, mainly heuristic methods are used for its solving. Papers frequently present applications of stochastic heuristics such as simulated annealing [4,16], genetic algorithms [2,11,12], tabu-search [1, 16, 19], ant systems [18] and swarm optimization method [22]. Most of these heuristics, applied to the classical single-mode RCPSP minimising the

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 2: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

makespan of the project, are evaluated in a computational study [14]. Multiobjective versions of simulated annealing and tabu search to the RCPSP to minimise the makespan, the weighted lateness of activities and violation of resource constraints are described in [20]. Some authors combine more of these heuristics in hybrid procedures to improve their behaviour [12,18]. In [8], a special neighbour-hood search method is presented where solutions are coded by using activity sequences that are valid in terms of precedence constraints.

In spite of the fact that exhaustive search is out of the question for large instances of the problem, in some cases (and for smaller instances) exact methods as backtracking and branch and bound method [9,21] may be used because they are able to reduce the search space substantially. In [6], an algorithm based on dynamic programming is proposed.

2 Scheduling Via Knapsack Problems If we consider a schedule as a sequence of time intervals where neighbouring intervals based on the time an activity starts or finishes, the scheduling problem may be reduced to a set of the optimal choices of activities in intervals. Using defined priorities as prices, the task investigated in one interval corresponds to the well-known knapsack problem. In the next paragraphs, we compare exact and heuristic approaches to solving this problem. 3 Solving the 0-1 Knapsack Problem Assuming only one resource with a limited capacity, we can deal with the 0-1 knapsack problem (0-1 KP), which is defined as follows: A set of n items is available to be packed into a knapsack with capacity of C units. Item i has value vi and uses up to wi of capacity. We try to maximise the total value of packed items subject to capacity constraint.

(1) 1 1

max | , {0,1}, 1, ,n n

i i i i ii i

v x w x C x i n= =

⎧ ⎫⎪ ⎪≤ ∈ =⎨ ⎬⎪ ⎪⎩ ⎭∑ ∑ K

Binary decision variables xi specify whether or not item i is included in the knapsack.

3.1 Combinatorial Approach The simplest way is to generate all possible choices of items and to determine the optimal solution

among them. This strategy is of course not effective because its time complexity is O(2n).

3.2 Branch and Bound Method Finding the solution may be faster using the branch and bound method [13], which restricts the growth of the search tree. Avoiding much enumeration depends on the precise upper bounds (the lower the upper bounds, the faster the finding of the solution is). Let items be numbered so that

1 2

1 2

n

n

vv vw w w

≥ ≥ ≥L (2)

We place items in the knapsack by this non-increasing sequence. Let x1, x2, … , xp be fixed values of 0 or 1 and

{ }| , , {0,1}, 1, ,k j j jM M x j pξ ξ= ∈ = ∈ =x x K (3)

where M is a set of feasible solutions. If 1

1 1( )( ) :

q p q

j j jj p j j p

q p q n w C w wξ−

= + = = +∃ < ≤ ≤ − <

1j∑ ∑ ∑ (4)

then the upper bound for Mk can be determined as follows:

1

1 1

1

1 1

( )p q

B k j j jj j p

p qq

j j jq j j p

U M v v

vC w w

w

ξ

ξ

= = +

= = +

= + +

⎛ ⎞⎜ ⎟+ − −⎜ ⎟⎝ ⎠

∑ ∑

∑ ∑ (5)

3.3 Dynamic Programming Let us denote Fk(y) as maximal possible value using only first k items when capacity limit is y. Evidently the maximal value of a knapsack with capacity 0 is 0, and maximal value of any knapsack is 0 if we have no objects to put in it. That means:

(0) 0, 0kF k n= ≤ ≤ (6) 0 ( ) 0, 0F y y C= ≤ ≤ (7)

It may be shown that in general we get the following recursive formulas:

1 1

1

max{ ( ), ( ) },( ) if 0;

( ), if 0

k k k

k

k k

k

k

F y F y w vF y y w

F y y w

− −

− +⎧⎪= − ≥⎨⎪ − <⎩

(8)

If we increase the capacity of the knapsack and the set of objects that can be used to fill the sack,

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 3: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

and when y=C and k=n, then Fn (C) corresponds to the maximum value of a knapsack with the full capacity, using all of the objects.

A sequential evaluating of this formula uses two nested cycles:

for k := 1 to n do for y := 0 to C do evaluate Fk(y) and ik(y);

The time complexity of this progression step is O(nC). It evidently depends considerably on the value of C.

We have to trace choosing items during the calculations. Denoting ik(y) as maximal index j item used in Fk(y), we may show that

0 ( ) 0, 0i y y C= ≤ ≤ (9)

1

1 1

1 1

1

( ), if 0( ) ( ) ;

( ) if 0( ) ( ) ;

( ), if 0

k k

k k k

k k

k k k

k k

i y y w

k

k

F y F y w vi y k y w

F y F y w vi y y w

− −

− −

− ≥⎧⎪ ∧ > − +⎪⎪= − ≥⎨⎪ ∧ ≤ − +⎪⎪ − <⎩

(10)

Referring to the table of ik(y) values we have the answer of which items to pack into a knapsack, in other words which activities will be performed in an investigated time interval and which activities will be put off to the next interval.

for i :=1 to n do xi := 0; { Trace Back } i := in(C); k := n; y(i)

:= C; while i <> 0 do begin if xi = 0 then begin xi := 1; y(i)

:= y(i) − wi ;

end else k := k−1 i := ik(y(i)) end;

Time complexity of the trace-back step is O(n). 3.4 Heuristic Methods The three methods discussed above were exact (deterministic) methods. Now we will pay attention to heuristic (stochastic) methods. These methods are used in situations where the exact methods would fail or calculations would require a great amount of time.

Heuristic [17] is a technique which seeks goal (i.e. near optimal) solutions at a reasonable computational cost without being able to guarantee either feasibility or optimality, or even in many cases, to state how close to optimality a particular feasible solution is. The most popular heuristics – genetic algorithms, simulated annealing, tabu search and neural networks are reviewed in [17]. Examples of their possible use are described in [15].

Let us briefly deal with the genetic algorithms now. The skeleton for GA is shown as follows:

generate an initial population; evaluate fitness of individuals in the population; repeat select parents from the population; recombine parents to produce children; evaluate fitness of the children; replace some or all of the population by the children until a satisfactory solution has been found;

In the following paragraphs, we briefly summarize GA settings to our scheduling problem.

Individuals in the population (chromosomes) are represented as binary strings of length n, where a value of 0 or 1 at the i-th bit (gene) implies that xi=0 or 1 in the solution respectively.

The population size N is usually chosen between n and 2n.

An initial population consists of N feasible solutions and it is obtained by generating random strings of 0s and 1s in the following way: First, all bits in all strings are set to 0, and then, for each of the strings, randomly selected bits are set to 1 until the solutions (represented by strings) are feasible.

The fitness function corresponds to the objective function to be maximised:

1

( )n

i ii

f v x=

=∑x (11)

Pairs of chromosomes (parents) are selected for recombination by the binary tournament selection method, which selects a parent by randomly choosing 2 individuals from the population and selecting the most fit one.

The recombination is provided by the uniform crossover operator. That means each gene in the child solution is created by copying the corresponding gene from one or the other parent, chosen according to a binary random number generator. If a random number is 0, the gene is copied from the first parent; if it is a 1, the gene is copied from the second parent. After crossover, the

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 4: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

mutation operation is applied to each child. It works by inverting each bit in the solution with a small probability. We use a mutation rate of 5/n as a lower bound on the optimal mutation rate. It is equivalent to mutating five randomly chosen bits per string.

If we perform crossover or mutation operations as described above, then the generated children can violate certain capacity constraints. We can assign penalties to these children that prevent infeasible individuals from entering the population. A more constructive approach uses a repair operator that modifies the structure of an infeasible individual, so that the solution becomes feasible. Its pseudo-Pascal code is shown below for a more general case of multiple constraints. Once a new feasible child solution has been generated, the child will replace a randomly chosen solution. We use a steady-state replacement technique based on eliminating the individual with the lowest fitness value. Since the optimal solution values for most problems are not known, the termination of a GA is usually controlled by specifying a maximum number of generations tmax. Usually we choose tmax ≤ 5000.

3.5 Solving 0-1 KP Evidently the branch and bound method gives better results than the combinatorial approach, whose time complexity is O(2n), and it can be successfully used for n≤100. Ratios vi/wi are sorted by Hoare's QuickSort procedure. Its time complexity is O(n log2n).

Since the dynamic programming procedure runs in O(nC) time, it seems to be quite good for solving problem instances when the capacity parameter C and n are not too high. However, the use of the dynamic programming procedure approach is based on the assumption that the capacity parameter C and weights wi are non-negative integers. Fractional values may be converted to integers via multiplying by the common denominator. On the other hand, if all weights are integers, we may increment the parameter y in the progression step by the greatest common divisor. The drawback of the dynamic programming procedure is that, with growing n and C, memory requirements grow as well and for values higher than 1000, arrays for Fk(y) and ik(y) have more than millions of items, which causes problems with memory managements or even, in static representation of these arrays, the corresponding programme cannot be compiled.

4 Scheduling with Multiple Constraints In more complex and more frequent situations when we have more than one limited resource, we transform the resource-constrained scheduling into a sequence of multi-knapsack problem (MKP) solutions. MKP is defined as follows:

(12)

1

1

maximise

subject to , 1, , ,

{0,1}, 1, ,

n

i iin

ri i ri

i

v x

w x C r m

x i n

=

=≤ =

∈ =

∑ K

K

For the solution of the task with multiple constraints, we must generalise the approaches mentioned above.

The combinatorial approach can be applied without any changes, but using the branch and bound method, we must redefine the upper bound. For its evaluation we use the following formula

{ }1( ) min ( ), , ( )mB k B k B kU M U M U M= K (13)

where auxiliary bounds correspond to the given constraints and are determined as in the 0-1 knapsack problem. Before evaluation of these auxiliary bounds, the other variables must be sorted again by decreasing values v

( ), 1, ,iB kU M i m= K

j/wi j. Evidently, the run time will increase substantially.

A generalisation of the dynamic programming approach is straightforward, but this approach is impractical for its great number of enumerations and memory requirements, e.g. we must evaluate

1 1 1( , , ), 0 , , 0 ,1, ,

k m mF y y y C y Ck n

m≤ ≤ ≤ ≤=

K K

K(14)

As noted above, in the GA approach, we use a repair operator to avoid infeasible solutions. Its pseudo-Pascal code shows the following algorithm. We assume that variables are sorted and renumbered according to the decreasing order of their pseudo-utility ratios ui = vi/wj i.

1

: {1, , }

: ,n

j ji ii

J m

W w x j=

;J

=

= ∀ ∈∑

K

for i := n downto 1 do if (xi = 1) and (Wj > Cj ; for any j ∈ J) then begin xi := 0;

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 5: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

Wj : = Wj − wji , ∀j∈J end;

5 Final Schedule To decide which of the concurrent activities are to be suspended or put off because of a lack of resource(s), we must define activity priorities. In the network analysis literature, we may find many strategies describing how the ranking of competing activities is accomplished, for instance: • greatest remaining resource demand, which

schedules as first those activities with the greatest amount of work remaining to be completed,

• least total float, which schedules as first those activities possessing the least total float,

• shortest imminent activity, which schedules as first those activities requiring the least time to complete,

• greatest resource demand, which schedules as first those activities requiring the greatest quantity of resources from the outset.

Our heuristic scheduling algorithm proposes the following strategy. The time shifting of activities (when their total requirements are higher than the resource limit) is provided by prolonging their duration. We distinguish for each activity a its starting duration ts(a) and current duration tc(a). Then δ(a) = tc(a) − ts(a) is a subinterval corresponding to the shift activity during which it has no requirements for resources. The greatest advantage of this approach is that whenever we need to compute the new earliest and latest terms for activities after shifts or updating the actual time duration of certain activities, we may compute the whole project by a simple CPM method. Precedence relationships are kept and parameters of previous activities do not change (in other words, any change in the present has no effect on the results in the past).

Let SV(a) denote the starting vertex of an activity a in the activity-on-arc representation of a network graph, a = (i, j), Ti

(0) denotes the earliest possible time of realization of vertex i, TF(a) is the total float of a and R(a) is the quantity of resources required by a. Investigating an interval [τ1, τ2], activities ak , al from this interval are ordered by the following relation:

(0)1( ) ( )

else if ( ) ( )else if ( ) ( )

then if ( ) ( )

V kk l kS a

F k F l

F k F l

k l

a a T a

T a T aT a T a

R a R a

δ τ⇔ + <

<

=>

f

(15)

With this multilevel heuristic, we first try to continue activities that were begun in the previous interval in order not to suspend the running activities. Then we review the least total float, and finally look at the greatest resource demand. Priority values are set proportionally to these criteria.

5.1 Experimentation The approach discussed in the previous paragraphs has been implemented in Borland Delphi. Its interface is similar to Microsoft Project. Although Microsoft Project often is not able to solve a constrained scheduling problem even for very simple projects (it reports some over-allocation and underallocation may be unavoidable), we have never come across this situation when using our programme. Besides the GA approach, the programme implements another popular heuristic method - simulated annealing - for a comparison, and a user may choose between these two possibilities. It enables a verification of the quality of computational results, as the exact results for large projects are not known.

We have tested the proposed approach in many situations. Table 1 shows results for one real project with 183 activities, 54 vertices in the network graph and 12 limited resources. This project deals with the innovation action of a Benson boiler in a local power station in the surroundings of Brno. This table contains durations of schedule for this project designed in 30 tests by the genetic algorithm (GA) and by the simulated annealing (SA). Parameters for both methods were set in a way such that the computational time for design of the project schedule should be approximately 2.4 sec. The branch and bound (BB) method found a schedule with a duration of 291 days in a several times longer CPU time. Favourable The results of BB achieved are favourable because the parallelism of activities was low. The dynamic programming approach could not be used because of insufficient memory.

While the results appear comparable, statistically, the results gained by GA are better than the SA results. The well-known Kruskal-Wallis test for balanced one-way design was used to show that

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 6: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

samples were taken from the same population. It has yielded the following results: Average rank for SA=39.75, for GA=21.25, the value of test statistic=17.5472 and computed significance level = 2.8×10−5. Thus the hypothesis of sampling from the same population is rejected at all traditionally used significance levels (0.05; 0.01; 0.001).

GA GA GA SA SA SA 291 294 293 294 293 295 292 292 291 292 294 296 293 291 292 293 296 292 293 293 293 294 292 297 292 292 291 297 294 294 294 291 293 292 291 294 292 291 292 293 298 295 292 292 292 294 294 291 291 293 291 294 292 295 293 291 293 295 293 293

Table 1. Durations for schedule (days) designed by GA and SA.

6 Conclusions In the previous paragraphs, several approaches to constrained scheduling were discussed. The central idea is to transform a resource constrained scheduling problem to a sequence of MKP solutions. It has been shown that, in projects with a single constraint where the number of concurrent activities is up to 50, deterministic methods such as the branch and bound method and, in a special case, the dynamic programming approach also may be used to achieve results better that those by heuristic methods (GA and SA). On the contrary, the deterministic approaches are not effective or may not be used in complex projects with multiple constraints because of the exponentially growing time in branch and bound method calculations and large memory requirements for the declaration Fk(y) and ik(y) arrays in the dynamic programming approach. In these cases, we choose heuristic techniques. The GA has been found to work effectively. It yields good results in a reasonable amount of time for hundreds of activities and tens of constraints. In the future, it is necessary to do more experimentation to determine the (dynamic) priorities (and values) of activities, which seems to be the most complex problem in scheduling.

Acknowledgments The results presented have been achieved using a subsidy of the Ministry of Education, Youth and

Sports of the Czech Republic, research plan MSM 0021630518 "Simulation modelling of mechatronic systems". References: [1] C. Artigues, P. Michelon and S. Reusser,

Insertion Techniques for Static and Dynamic Resource-Constrained Project Scheduling, European Journal of Operational Research, Vol. 149, 2003, pp. 249-267.

[2] A. Azaron, C. Perkgoz and M. Sakawa, A Genetic Algorithm for the Time-Cost Trade-off in PERT Networks, Applied Mathematics and Computation, Vol. 168, 2005, pp. 1317-1339.

[3] J. Blazewicz, K.H. Ecker, G. Schmidt and J. Weglarz, Scheduling Computer and Manufacturing Processes, Springer-Verlag, Berlin, 1996.

[4] K. Bouleimen and H. Lecocq, A new Efficient Simulated Annealing Algorithm for the Resource-Constrained Project Scheduling Problem and Its Multiple Mode Version, European Journal of Operational Research, Vol. 149, 2003, pp. 268-281.

[5] P. Brucker, A. Drexl, R. Möhring, K. Neumann and E. Pesch, Resource-Constrained Project Scheduling: Notation, Classification, Models, and Methods, European Journal of Operational Research, Vol. 112, 1999, pp. 3-41.

[6] J. Choi, M.J. Realff and J.H. Lee, Dynamic Programming in a Heuristically Confined State Space: A Stochastic Resource-Constrained Project Scheduling Application, Computers and Chemical Engineering, Vol. 28, 2004, pp. 1039-1058.

[7] S.E. Elmaghraby, Activity Networks: Project Planning and Control by Network Models, John Wiley & Sons, New York, 1977.

[8] K. Fleszar and K. S. Hindi, Solving the Resource-Constrained Project Scheduling Problem by a Variable Neighbourhood Search, European Journal of Operational Research, Vol. 155, 2004, pp. 402-413.

[9] R. Heilmann, A Branch-and-Bound Procedure for the Multi-Mode Resource-Constrained Project Scheduling Problem with Minimum and Maximum Time Lags, European Journal of Operational Research, Vol. 144, 2003, pp. 348-365.

[10] W. Herroelen, E. Demeulemeester and B.D. Reyck, A Note on the Paper “Resource-Constrained Project Scheduling: Notation, Classification, Models, and Methods” by Brucker et al., European Journal of

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)

Page 7: Solving Resource-Constrained Project Scheduling Problem As ... · Solving Resource-Constrained Project Scheduling Problem As a Sequence of Multi-Knapsack Problems MILOŠ ŠEDA Institute

Operational Research, Vol. 128, 2001, pp. 679-688.

[11] K.W. Kim, M. Gen and G. Yamazaki, Hybrid Genetic Algorithm with Fuzzy Logic for Resource-Constrained Project Scheduling, Applied Soft Computing, Vol. 2/3F, 2003, pp. 174-188.

[12] K.W. Kim, Y.S. Yun, J.M. Yoon, M. Gen and G. Yamazaki, Hybrid Genetic Algorithm with Adaptive Abilities for Resource-Constrained Multiple Project Scheduling Computers in Industry, Vol. 56, 2005, pp. 143-160.

[13] J. Klapka, J. Dvořák and P. Popela, Methods of Operational Research (in Czech), VUTIUM, Brno, 2001.

[14] R. Kolish and S. Hartmann, Experimental Investigation of Heuristics for Resource-Constrained Project Scheduling: An Update, European Journal of Operational Research, 2005, article in press.

[15] Z. Michalewicz and D.B. Fogel, How to Solve It: Modern Heuristics, Springer-Verlag, Berlin, 2002.

[16] M. Mika, G. Waligóra and J. Weglarz, Simulated Annealing and Tabu Search for Multi-Mode Resource-Constrained Project Scheduling with Positive Discounted Cash Flows and Different Payment Models, European Journal of Operational Research, Vol. 164, 2005, pp. 639-668.

[17] C.R. Reeves, Modern Heuristic Techniques for Combinatorial Problems, Blackwell Scientific Publications, Oxford, 1993.

[18] L.-Y. Tseng and S.-C. Chen, A Hybrid Metaheuristic for the Resource-Constrained Project Scheduling Problem, European Journal of Operational Research, 2005, article in press.

[19] V. Valls, S. Quintanilla and F. Ballestin, Resource-Constrained Project Scheduling: A Critical Activity Reordering Heuristic, European Journal of Operational Research, Vol. 149, 2003, pp. 282-301.

[20] A. Viana and J.P. de Sousa, Using Metaheuristics in Multiobjective Resource Constrained Project Scheduling, European Journal of Operational Research, Vol. 120, 2000, pp. 359-374.

[21] M.R. Zamani, A High-Performance Exact Method for the Resource-Constrained Project Scheduling Problem, Computers & Operations Research, Vol. 28, 2001, pp. 1387-1401.

[22] H. Zhang, X. Li, H. Li and F. Huang, Particle Swarm Optimization-Based Schemes for Resource-Constrained Project Scheduling,

Automation in Construction, Vol. 14, 2005, pp. 393-404.

Proceedings of the 10th WSEAS International Conference on COMPUTERS, Vouliagmeni, Athens, Greece, July 13-15, 2006 (pp80-86)