Solving the resource-constraint project scheduling problem by

Being strongly NP-hard, the RCPSP has been widely studied over the last 20 years. We refer to [2] for a recent survey on this problem. Only instances with up to ...
48KB taille 0 téléchargements 305 vues
Solving the resource-constraint project scheduling problem by integrating exact resolution and local search Mireille Palpant, Christian Artigues, Philippe Michelon Laboratoire d’Informatique d’Avignon, Universit´e d’Avignon, France [email protected], [email protected], [email protected]

Abstract We present a new heuristic for solving the resource-constrained project scheduling problem. The method is based on the iterative generation of subproblems, each one being solved by an exact method of a standard commercial tool. The good computational results on standard benchmark instances enlighten the practical interest of the approach.

1 Introduction In combinatorial optimization, some local search methods aim at exploring large neighborhoods by implicit enumeration methods. For the quadratic assignment problem, the Mimausa method designed by Mautor and Michelon [7], build at each iteration a reduced problem and solves it by branch and bound. For the vehicle routing problem, Shaw [?] considers the removal of several customer visits and re-insert them by using Limited Discrepancy Search (LDS). For the job-shop scheduling problem, the Shifting Bottleneck Procedure of Adams et al. [1] solves at each iteration a one machine sub-problem by branch and bound. More recently Caseau et al. [3] have successfully applied the so-called Forget and Extend heuristic on the job-shop problem, freezing a set of tasks at each iteration (not necessarily on the same machine) and solving the remaining sub-problem by LDS associated with constraint propagation techniques. In this paper, we propose a method to solve the resource-constrained project scheduling problem (RCPSP) by integrating exact resolution and local search. A subproblem is derived from the current solution and solved exactly at each iteration. Unlike all the approaches cited above, we emphasize only the local search scheme and the selection of the subproblem, leaving its resolution to a commercial tool, without any particular tuning.

2 Problem description A project made of a set of activities V = {1, . . . , n} has to be scheduled on a set of renewable resources R = {1, . . . , m}. Each resource k ∈ R has a limited availability Rk constant over the project horizon. Precedence constraints of activities within the project are given by a set of project arcs E such that (i, j) ∈ E means that activity j has to start after the completion of activity i. Each activity i ∈ V requires a non-negative amount rik of each resource k ∈ R and has a duration pi . The scheduling problem lies in finding a n-tuple S = {S1 , . . . , Sn } where Si is the starting time of activity i such that the makespan Cmax = maxi∈V Si + pi of the project is minimized. Being strongly NP-hard, the RCPSP has been widely studied over the last 20 years. We refer to [2] for a recent survey on this problem. Only instances with up to 30 activities and 4 resources can be solved to optimality. In [5], an experimental evaluation of state-of-the-art heuristics, including local search, is reported on a set of test instances from 30 to 120 activities presented in [6]. 1

2

3 Overview of the method 3.1 The main algorithm The main algorithm, which is directly adapted from the Mimausa method [7], runs as follows. 0. Generate an initial solution S 0 with a given heuristic; set S ∗ = S 0 ; set s = 0; Repeat 1. Select p ≤ n activities in As . 2. Build a subproblem SP s using As and S s . 3. Compute a new solution S s+1 by solving exactly SP s . 4. If S s+1 is better than S ∗ then S ∗ = S s+1 . 5. Adjust p. 6. Increment s and eventually perturb S s . Until s = M AXIT ER

In the next sections, we describe how each of the steps 0, 1, . . . , 6 is performed.

3.2 Generation of an initial solution For the generation of an initial solution, we use a simple forward/backward application of the serial schedule generation scheme (SGS), with the MINLFT priority rule for the first forward pass. MINLFT selects the activity which has the smallest latest start time, the latest start time of the activities being computed by the Bellman’s algorithm from a given upper bound of the makespan without considering the resource constraint. For the remaining passes, we set as the priority rule for the backward pass, the maximal completion time computed by the previous forward pass. We set as the priority rule for the forward pass, the minimal start time computed by the previous backward pass. We stop the process when the makespan computed by two consecutive forward and backward passes does not change. This heuristic converges very quickly and allows us to compute a set of critical activities made of all activities for which the starting times are the same for the last forward and backward pass.

3.3 Selection of the subproblem Let p denote the current number of activities (arbitrarily initialized to 15) to be included in the subproblem at the current iteration s. We compute As as a block by the following procedure: a first activity x is randomly selected and any activity i verifying Sxs ≤ Sis + pi and Sis ≤ Sxs + px is included in As . We repeat the process recursively until p activities are included in As . Then, the subproblem SP s is generated by fixing to its current value the start time of any activities not belonging to As . Each fixed activity j is removed from the problem and replaced by an unavailability period of rjk units between Sjs and Sjs + pj on each of its required resource k. Each activity i ∈ As is associated with a time window [ESi , LFi ] where ESi is the greatest completion time of the project predecessors of i belonging to V − As , if any, and LFi is the smallest start time of the project successors of i belonging V − As , if any. Then the subproblem lies in minimizing the makespan in a RCPSP made of activities of As and their project precedence relations with time-varying resource availability and activity time windows.

3.4 Building the next current solution Any ad-hoc or commercial exact method can be used to solve the subproblem P s since we make no assumption on it. The only parameter is a maximal time topt allotted to the exact method which returns the best solution found during topt seconds, or no solution. If a solution has been found, the solution S s+1 is derived from S s by setting all start times of activities in As to the optimal value found for the subproblem, and by keeping the values in S s for the other activities. By construction S s+1 is feasible. However, it is post-optimized by applying to S s+1

3

the forward/backward scheduling technique used for the initial solution (see 3.2), except that for the first pass, the priority rule is set to the minimum start time in S s+1 . This forward/backward procedure essentially keeps the current schedule active.

3.5 Adjustment of the the subproblem size and perturbation of the current solution The adjustment of the subproblem size p ≤ n at a given iteration s depends on on-line statistics performed on the time t ≤ topt spent by the exact method to solve the sub-problem during the previous iterations. If t is increasing or if no solution has been found, the subproblem size is decreased. If t is decreasing or remains constant, the problem size is increased. The good tuning of topt and the adjustment rules for p are primordial for the efficiency of the heuristic since they constitute our only way to control the exact method and the intensification of the search. Last, if no improvement on S ∗ has been done for a given number M AXN OIM P of iterations the current solution is perturbed by preinitializing the method with a new starting point. In order to achieve some diversification phase in the whole process, we built a new solution using the post-optimization forward/backward procedure choosing randomly the activity to schedule for the first pass of the SGS. We have set empirically M AXN OIM P = n.

4 Computational results We have tested the propose method to solve the instances with 30, 60, 90 and 120 activities presented in [6]. The selected exact method is one of the default search goal of the ILOG SCHEDULER library. We have coded the heuristics in C++ and the tests have been performed on a HP 9000 workstation with 4 processors, 440 mhz and 2GB RAM. The parameter M AXIT ER has been set to 10 ∗ n. The results are displayed on table 1. For each set of instances, the number of problems, the average and maximal deviation (from the optimum for the 30 activity instances and from the critical path lower bound and best know solution to date for the other instances) and the mean cpu time obtained by the proposed heuristic are given. For comparison, the exact method used to solve each subproblem (ILOG SCHEDULER) has been used with the same parameters to solve the entire problem. We have truncated the search when the maximal time spent by the heuristic is reached. The results of the exact method are also given in table 1.

#Activities 30 60 90 120 (1) 120 (2)

#Instances 480 480 480 600 600

Proposed Heuristic av ∆CPM av(max) ∆UB CPU (s) 0.02(2.06) 22.23 10.93 0.25(4.10) 58.03 10.54 0.44(6.45) 93.91 33.16 1.73(8.33) 318.32 32.55 1.34(7.53) 1159

Truncated Exact Method av ∆CPM av(max) ∆UB CPU (s) 0.22(10.87) 25.32 12.53 1.30(20.00) 99.98 12.00 1.40(16.37) 158.24 NA NA NA NA NA NA

Table 1: Computational results on the KSD instances At first sight, the results are excellent since the method outperforms all of the heuristics evaluated in [6] [4] [8] [9]. For the 120 activity instance set, we have performed 2 experiments, one (1) with topt = 0.5 s (as for the other instance sets) and one (2) with topt = 2 s. The latter requires much more computational times but gives better results. As expected, the heuristic greatly improves the results of the truncated exact search method for both makespan minimization and CPU time requirements. We have found some new best solutions for the 60, 90 and 120 activity instance sets. However our computational times are rather high and the results presented recently by Valls et al. in [10] with a population-based heuristic mixed with a local search method are better, and require smaller reported CPU times for the 120 activity instance set. Nevertheless, the method proposed here is really easy to implement and may be a good illustration to show how to solve a large problem with a commercial solver. To know more about the impact of the reduced problem resolution method on the quality of our solutions, we have used the ILP CPLEX solver instead of the specialized CP solver, with the time-indexed ILP formulation of the RCPSP (see e.g. [8]). We set the maximum time alloted to the solver to topt = 5 s. The results we obtain on the KSD30 and KSD60 set are displayed in table 2.

4 #Activities 30 60

#Instances 480 480

av ∆CPM 11.47

av(max) ∆UB 0.08(3.17) 0.63(7.07)

CPU (s) 165 397

Table 2: Computational results on the KSD instances using an ILP solver for the subproblem resolution The table shows that even if the CPU times increase considerably, the average deviation from the best solution is nearly the same as for our best results displayed in table 1. It seems that the quality of the solutions is independent of the used exact method. It would be interesting to know how much the cpu times could be improved by refining the exact method with more powerful constraint propagation techniques, implementation of LDS, etc. Other ways of generating the subproblems, possibly inspired by techniques used for the job-shop problem [1] [3], are also promising.

References [1] J. Adams, E. Balas, and D. Zawack. The shifting bottleneck procedure for job shop scheduling. Management Science, 34:391–401, 1988. [2] P. Brucker, A. Drexl, R. Mring, K. Neumann, and E. Pesch. Resource-constrained project scheduling: notation, classification, models, and methods. European Journal of Operational Research, 112:3–41, 1999. [3] Y. Caseau, F. Laburthe, C. Le Pape, and B. Rottembourg. Combining local and global search in a constraint programming environment. Knowledge Engineering Review, 16:41–68, 2001. [4] S. Hartmann. A self-adapting genetic algorithm for project scheduling under resource constraints. Naval Research Logistics, (to appear), 2001. [5] S. Hartmann and R. Kolish. Experimental evaluation of state-of-the-art heuristics for the resource-constrained project scheduling problem. European Journal of Operational Research, 127:394–407, 2000. [6] R. Kolisch, C. Schwindt, and A. Sprecher. Benchmark instances for project scheduling problems. Handbook on recent Advances in Project Scheduling, pages 197–212, 1998. [7] T. Mautor and P. Michelon. Mimausa : A new hybrid method combining exact solution and local search. In MIC’97, 2nd Metaheuristics International Conference, Sophia Antipolis, France, 1997. [8] R. H. M¨ohring, A. S. Schulz, F. Stork, and M. Uetz. Solving project scheduling problems by minimum cut computations. Technical report, Technische Universit¨at Berlin, 2000. [9] A. Sprecher. Scheduling resource-constrained projects competitively at modest memory requirements. Management Science, 46:710–723, 2000. [10] V. Valls, F. Ballestin, and M. S. Quintanilla. A resource utilization-based algorithm for the resourceconstrained project scheduling problem. In European Operational Research Conference, EURO 2001, Rotterdam, The Netherlands, 2001.