Discrete Optimization
An effective branch-and-price algorithm for the Preemptive Resource Constrained Project Scheduling Problem based on minimal Interval Order Enumeration

https://doi.org/10.1016/j.ejor.2014.12.037Get rights and content

Highlights

  • An effective branch-and-price algorithm (IOE) for the Preemptive Resource Constrained Project Scheduling Problem.

  • A new branching mechanism based on interval orders.

  • IOE is able to solve to optimality the entire set of J30, BL and Pack instances.

  • We provide improved best-known lower bounds for 33 non-preemptive instances.

Abstract

In this paper we address the Preemptive Resource Constrained Project Scheduling Problem (PRCPSP). PRCPSP requires a partially ordered set of activities to be scheduled using limited renewable resources such that any activity can be interrupted and later resumed without penalty. The objective is to minimize the project duration. This paper proposes an effective branch-and-price algorithm for solving PRCPSP based upon minimal Interval Order Enumeration involving column generation as well as constraint propagation. Experiments conducted on various types of instances have given very satisfactory results. Our algorithm is able to solve to optimality the entire set of J30, BL and Pack instances while satisfying the preemptive requirement. Furthermore, this algorithm provides improved best-known lower bounds for some of the J60, J90 and J120 instances in the non-preemptive case (RCPSP).

Introduction

This paper deals with the Resource Constrained Project Scheduling Problem (RCPSP). RCPSP aims at scheduling a set of activities subject to precedence and resource constraints, while minimizing the induced makespan (total duration of the project) value. The precedence constraints mean that some activities must be completed before others can start. The resource constraints specify that each activity requires constant amounts of renewable resources (with limited capacities) throughout the scheduling process. RCPSP has been extensively studied in its non-preemptive version where every activity has to be run as a whole without any kind of interruption. The Preemptive Resource Constrained Project Scheduling Problem (PRCPSP), on the other hand, corresponds to the case where each activity can be interrupted and later resumed without penalty. Preemption is beneficial in many real world areas. Such situations happen in textile industry, large software development projects, multiprocessor task scheduling in multistage hybrid flowshop environment, etc. Modelling and solving in these cases using Non-Preemptive RCPSP may lead to poor performances. It is well known that the PRCPSP is NP-hard (Ullman, 1976). Various extensions have been also investigated such as multi-criteria and multi-mode project scheduling (see Slowinski, 1981, Slowinski, Soniewicki, Weglarz, 1994). Many other models are provided in Hartmann and Briskorn (2010).

There are not many works on PRCPSP. Demeulemeester and Herroelen (1996) have developed a branch-and-bound algorithm; Ballestín, Valls, and Quintanilla (2008) have looked at preemption from a heuristic perspective; and Peteghem and Vanhoucke (2010) have designed a genetic algorithm for multi-mode Preemptive RCPSP. For the sake of simplicity, authors often assume that all processing times are integral and that preemption only occurs at integer valued dates. It is, however, easily established that such a hypothesis can produce only an approximation of the optimal value. We refer to the surveys published by Kolisch and Padman (2001), Brucker, Drexl, Möhring, Neumann, and Pesch (1999), Herroelen and Leus (2005), Hartmann and Briskorn (2010). The very recent work of Haouari, Kooli, Néron, and Carlier (2014) uses an LP model based on PRCPSP to compute lower bound for the RCPSP. Also, Schutt, Feydy, Stuckey, and Wallace (2011) propose an effective algorithm for RCPSP based on Constraint Programming that allows many open instances to be closed and the lower bounds for RCPSP to be improved.

In this paper we consider the problem in its most general form and suppose that preemption is allowed for all activities and may occur at arbitrary rational dates, and that no penalties are related to preemption. Ours is a branch-and-price approach which involves constraint propagation, as well as the management of a specific rational Antichain linear program whose variables are associated with subsets of activities that may be simultaneously processed during the schedule. This Antichain linear program, first introduced by Mingozzi, Maniezzo, Ricciardelli, and Bianco (1998), provides us with a lower bound of both Preemptive and Non-Preemptive RCPSP. Mingozzi et al. (1998) have proposed a time-indexed linear formulation for RCPSP involving antichains. This linear program approach requires the implementation of a pricing or column generation scheme. Baar, Brucker, and Knust (1998) use this technique to deal with the large number of columns. Then Brucker and Knust (2000) combine constraint propagation by taking into account time windows and this linear programming formulation under a destructive approach. It was proved in Damay, Quilliot, and Sanlaville (2007) that if the input RCPSP instance satisfies certain ad hoc properties, then any optimal solution of the Antichain linear program may be turned into a feasible optimal preemptive schedule without any increase in the makespan value. To the best of our knowledge, only the work of Damay et al. (2007) deals with optimal solutions of PRCPSP without any restriction. Damay et al. propose a branch-and-bound method for PRCPSP based on the linear programming formulation of Mingozzi et al. (1998) and introducing additional disjunctions.

The strategy described here is to use the linear programming formulation of Mingozzi et al. (1998) in order to perform a tree search which may be viewed as being embedded into the process of enumerating all the minimal extensions of the precedence relation that define interval orders. The resulting process, capable of solving exactly all 30 activity instances in a preemptive way in the PSPLIB library and improving the best existing lower bounds for several 60/90/120 activity instances (without allowing preemption) in the same library, is seen to be particularly effective, with a powerful separation scheme based on a forbidden structure of interval orders.

The paper is organized as follows. We first recall the definition of Preemptive RCPSP in Section 2, and then introduce in Section 3 the theoretical tools related to the Antichain LP and to interval orders, which will be the basis of our new approach. Section 4 describes our IOE algorithm and its implementation, and Section 5 is devoted to the presentation of experimental results.

Section snippets

Problem description

An instance I = (X, K, ≺) of the Resource Constrained Project Scheduling Problem is defined by:

  • A set X = {1, …, n} of n activities: ∀iX, di denotes the duration of activity i.

  • A set K = {1, …, m} of m resources: ∀kK, Rk denotes the global resource amount for resource k and ∀iX, ∀kK, rik denotes the requirement for resource k by activity i. These resources are given back to the system once the activity is over or interrupted.

  • i, jX, ij means that i precedes j: activity j cannot

Basic tools

Let I = (X, K, ≺) be some Preemptive RCPSP instance, defined according to the notation given in Section 2. We suppose (as we are clearly entitled to do) that the precedence relation ≺ is transitive. Then we define an antichain as being any subset a of X such that there does not exist i, ja such that ij. We say that such an antichain is valid if: ∀kK, ∑iarikRk. It follows that a subset aX of activities is a valid antichain if and only if the activities belonging to a may be

Interval Order Enumeration Algorithm

2 Problem description, 3 Basic tools lead us to reformulate PRCPSP for any instance I = (X, K, ≺) as follows. It is a matter of computing an extension ≺io of the precedence relation ≺ that is an interval order and where the value of the optimal solution zio of the related linear program PAio corresponding to antichains Aio of ≺io is the smallest possible.

Our algorithm IOE based on Interval Order Enumerations is a branch-and-bound algorithm which performs some enumeration of the extensions ≺io

Numerical results

IOE is coded in C + + on linux CentOS, with an Intel(R) Xeon(R) 2.40 gigahertz processor. ILP formulation of the related pricing problem is handled by CPLEX 12 linear solver, and the global IOE process is embedded into the SCIP framework for branch-and-cut-and-price algorithms SCIP (n.d.). This framework consists of a template library which implements breadth first search generic branch-and-bound schemes involving linear programming together with pricing scheme.

Different benchmarks were used to

Conclusions

An effective branch-and-price algorithm for the Preemptive RCPSP scheduling problem based on minimal Interval Order Enumeration has been developed incorporating a number of constraint propagation techniques. As well as solving exactly small Preemptive RCPSP instances for three classes (J30, BL and Pack), it is also able to improve the lower bounds for 33 Non-Preemptive RCPSP instances. We are currently seeking to adapt this method to the Non-Preemptive RCPSP.

Acknowledgements

The authors would like to thank the anonymous reviewers for their helpful comments and suggestions that improved the quality of this paper.

This work was carried out within the framework of the Labex IMOBS3 and Labex MS2T: (Reference ANR-11-IDEX-0004-02), which were funded by the French Government, through the program Investments for the future managed by the National Agency for Research. It is also partially supported by the National Agency for Research, under ATHENA project: (Reference

References (26)

Cited by (0)

A preliminary version of this work was communicated in the 6th Workshop on Computational Optimization 2013 (Moukrim, Quilliot, and Toussaint, 2013).

View full text