Branch-and-Cut-and-Price algorithms for the preemptive RCPSP

In this article, we address the preemptive Resource-Constrained Precedence Scheduling Problem. We propose two mixed integer formulations containing an exponential number of variables and inequalities. An antichain is a set of pairwise incomparable elements with respect to the precedence constraints. In the first formulation, the integer variables are associated with the antichains. For the second, the integer variables are limited to a particular subset of antichains. We propose two Branch-and-Cut-and-Price algorithms for each of these formulations. We introduce some valid inequalities in order to reinforce the second formulation. Finally, we give some computational results on instances of the PSPLIB and compare the formulations.


Introduction
Let V = {1, . . . , n} be a set of n activities that are associated with processing times p i , i ∈ V . Let G = (V, <) be a partially ordered set (poset) where < is a precedence relation over the activities of V so that for every pair of activities i, j ∈ V with i < j, activity i must be completed before activity j starts. We consider κ resources such that each resource k ∈ {1, . . . , κ} corresponds to a total availability R k ∈ IR and let r ik ≤ R k be the constant amount of resource k required by activity i ∈ V at each time of its execution. We will refer at instance P = (V, <, p, κ, R, r) where p = (p 1 , . . . , p n ), R = (R 1 , . . . , R κ ) and r = (r ik , i ∈ V, k ∈ {1, . . . , κ}) as a project. Given an activity i ∈ V , an execution sequence for activity i ∈ V is a sequence of n i time intervals where e j i < s j+1 i , j ∈ {1, . . . , n i − 1}, such that ni j=1 (e j i − s j i ) = p i . A schedule of project P is a set S = {S 1 , . . . , S n } of execution sequences for the activities i ∈ {1, . . . , n} so that i) e ni i ≤ s 1 j for every pair i, j ∈ V with i < j and ii) at any time, the total amount of consumed resource k ∈ {1, . . . , κ} does not exceed R k . The makespan of a S is the total length of the schedule, i.e., max i∈V (e ni i ) − min i∈V (s 1 i ). A schedule is 2. An antichain model In this section, we show that the preemptive RCPSP reduces to finding a particular subset of antichains of a poset. Such subsets can be seen as a generalization of the feasible subsets introduced by Mingozzi et al. in [15] and of the candidate families introduced in [5].
Given a project P = (V, <, p, κ, R, r), a R-antichain a of P is an antichain of the poset G = (V, <) which satisfies the resource constraints, i.e., i∈a r ik ≤ R k for all k ∈ {1, . . . , κ}. Figure 1 illustrates a project P 1 of 8 activities and a single resource, called 1, with R 1 = 2. In the figure, project P 1 is fully given by the graph G 1 : each activity i ∈ V is represented by a circle containing its number; the pair (p i , r i1 ) of its processing time and its resource requirement; and the arcs represent the precedence relations between the activities. Note that in such a graph, for every two activities i, j ∈ V , we have i < j if and only if there is a path from i to j. Remark that sets {3, 4} and {2, 6} are R 1 -antichains, whereas {3, 5} is an antichain which is not an R 1 -antichain since r 31 + r 51 = 3 > R 1 .
Let us consider A as the set of all the R-antichains of P . We define a precedence relation ≺ on A such that for a, a ∈ A , a ≺ a if and only if there exists a pair of activities i ∈ a and j ∈ a with i < j. For instance, for the project P 1 of Figure 1 Remark that an antichain graph can contain a circuit. For instance, in project P 1 of Figure 1, the R 1antichains {2, 6} and {3, 7} induce a circuit. A subset of R-antichains A ⊆ A is said to be acyclic if the graph Γ (A) is acylic.
Given a subset A ⊆ A of R-antichains and an activity i of V , we define A i as the subset of A containing activity i. Let us consider the vector set S(A) introduced by Mingozzi et al. in [15]: The set S(A) is the solution set of a set of equalities containing an exponential number of variables: there is one variable z a associated with every R-antichain a of A . A subset of R-antichains A ⊆ A is said to be time-full if S(A) = ∅. Remark that, if S(A) = ∅, a component z a corresponds to an amount of time associated with the R-antichain a of A. Figure 2a shows a schedule associated with the instance of Figure 1. Remark that activity 4 has an execution sequence of 2 time intervals. Figure 2b presents the same schedule divided into the 9 corresponding R 1 -antichains. For instance, the R 1 -antichain a 1 (resp. a 2 ) corresponds to an amount of time z a1 = 3 (resp. z a2 = 2). The two R 1 -antichains containing activity 4 are a 2 and a 4 and their total amount of time is p 4 = 3. It can be seen that the set A 1 of all these R 1 -antichains is time-full and that graph Γ (A 1 ) = (A 1 , E(A 1 )) is acyclic.
We then can propose a reduction for the preemptive RCPSP. Theorem 2.1. Given a project P , determining an optimal preemptive schedule of P is equivalent to determining an acyclic time-full subset A of A such that S(A) = ∅ and min z∈S(A) a∈A z a is minimum.
Proof. First, let us consider a schedule S = {S 1 , . . . , S n } where each execution sequence S i is divided into n i time intervals, for each activity i ∈ V . Let us consider the set of the events on the schedule, that is to say the dates between the time 0 and the makespan T when a time interval of an execution sequence of an activity starts or ends. Let us denote (d 1 , . . . , d τ ) the sequence of the τ events of the schedule with d 1 = 0 and d τ = T . Given t = 1, . . . , τ − 1, let us consider the set a t of activities that are in execution within the interval [d t , d t+1 ].
Since the activities of an antichain a t , t ∈ {1, . . . , τ }, have been activated simultaneously, then i∈at r ik ≤ R k for every k ∈ {1, . . . , κ}, and thus a t is an R-antichain. Moreover, since in schedule S, an activity j ∈ V begins after the end of every activity i of V with i < j, by construction, the subset A = ∪ t∈{1,...,τ } a t is acyclic. Finally, we can see that A is time-full. Indeed, by setting z at = d t+1 − d t , for every t ∈ {1, . . . , τ }, z is a solution of S(A) where a∈A z a is the makespan of the schedule S. Conversely, let us consider an acyclic time-full subset A of p R-antichains with S(A) = ∅. Using a deep-first search on graph Γ (A) it can then be obtained a topological order σ = (a 1 , . . . , a p ) over the R-antichains of A. Let z * be an optimal solution of the linear program min z∈S(A) a∈A z a . Note that, since A is time-full, this program is feasible. Given l ∈ {1, . . . , p} and an activity i ∈ a l , we set s l i = l−1 λ=1 z * a λ and e l i = l λ=1 z * a λ . By construction, for a given i ∈ V , the sequence is an execution sequence of activity i. Indeed, since A is time-full, {l | a l ∈Ai} e l i − s l i = p i . Moreover, since σ is a topological order and A is composed of R-antichain, S = (S 1 , . . . , S n ) is a preemptive schedule. Finally, we can remark that the makespan of S is exactly a∈A z * a .

MIP formulations
In this section, we present two MIP formulations for the preemptive RCPSP based on the reduction introduced in the previous section.

Antichain formulation
We first introduce a MIP formulation directly inspired from Theorem 2.1. Given a project P , we associate a 0-1 variable x a and a continuous variable z a to every R-antichain a of A . Vector x will be an incidence vector of a subset A of A and z a an amount of time associated with a ∈ A. Let P a = min{p i | i ∈ a} for every a ∈ A . Let us consider the following mixed linear program P 1 .

M in
3) Given a solution (z, x) of P 1 , let us consider the set A = {a ∈ A | x a = 1}. Constraints (3.1), called time-full inequalities, ensure that A is time-full and constraints (3.3), called circuit antichain inequalities, ensure that A is acyclic. Constraints (3.2) force z a to be equal to 0 whenever the R-antichain a ∈ A is not considered in the solution, i.e., x a = 0. Consequently, A is an acyclic time-full subset of A so that A = ∅. Since, on the other hand, every incidence vector of an acyclic time-full subset of A corresponds to a solution of P 1 , then by Theorem 2.1, P 1 is equivalent to the preemptive RCPSP.

Two-indices formulation
In this section, we will give another reduction for the preemptive RCPSP. Given a project P , let us consider the set F of R-antichains containing exactly two activities. Given a subset A ⊆ A , we then consider the set f (A) = {{i, j} ∈ F | ∃ a ∈ A with {i, j} ⊆ a} and the graph Γ 2 (A) = (f (A), E(f (A))) which is a subgraph of Γ (A ). We then can give the following result. Proof. Let us first consider a set A ⊆ A such that Γ (A) is acyclic and assume that Γ 2 (A) contains a circuit ({i 1 , j 1 }, . . . , {i k , j k }) with k ≥ 2, such that i l < j l+1 for l = 1, . . . , k − 1 and i k < j 1 . By construction of f (A), there exists a k ∈ A such that {i k , j k } ⊆ a k for every k ∈ {1, . . . , k}. Then (a 1 , . . . , a k ) is such that a l ≺ a l+1 for l = 1, . . . , k − 1 and a k ≺ a 1 . Consequently (a 1 , . . . , a k ) forms a circuit of Γ (A), a contradiction.
From Theorem 3.1, we can propose a second MIP formulation, called Two-indices formulation, for the preemptive RCPSP. With every element {i, j} of F, we associate a 0-1 variable x ij . We also still consider continuous variables z a associated with every R-antichain a of A . Let P ij = min(p i , p j ) for every {i, j} ∈ F. Let us consider the following MIP formulation P 2 .

M in
Given a solution (z, x) of P 2 , let us consider the set A = {a ∈ A | z(a) > 0}. Clearly, time-full inequalities (3.1) ensure that A is time-full. By inequalities (3.4), for every pair {i, j} of F that are contained in an R-antichain of A, we have x ij = 1. Note that, for a given pair {i, j} ∈ F , the corresponding inequality (3.4) is valid from the two inequalities (3.1) for i and j. Moreover, constraints (3.5), called circuit inequalities, ensure that A is acyclic. From Theorem 3.1, since every acyclic time-full subset A of R-antichains correspond to a solution of P 2 , then program P 2 is equivalent to the preemptive RCPSP. We can remark that since inequalities (3.4) are associated with pairs of activities, they will be easier to handle within a column generation process than inequalities (3.2) of the previous antichain formulation.

Branch-and-Cut-and-Price algorithms
In this section we devise two BCP algorithms for the two MIP introduced in the previous section.

Branching rules and pricing phase for the antichain formulation
In this section, we describe the branching rules and the pricing phase for the antichain formulation. For this, we first present the branching rules of the algorithm.

Branching rules
Classical branching on variables x a , a ∈ A , will not be efficient in the framework of this BCP algorithm. Indeed, a better strategy would be to determine a partition of the solution set into two subproblems of similar size. We then use an idea close to the well-known Ryan and Foster rule: either two activities are never activated simultaneously or they are (partially) activated simultaneously. This can be done as follows: for two given activities i, j ∈ V such that neither i < j nor j < i, we construct two subproblems so that: -Rule 0: either there is no R-antichain containing both activities i and j, i.e., x a = 0 for all a ∈ A such that i, j ∈ a, -Rule 1: there exists at least one R-antichain containing both i and j. This is equivalent to adding the following inequality For a given node of the branching tree, we will denote by L 0 (resp. L 1 ) the set of pairs i, j for which rule 0 (resp. rule 1) has been applied. Given a subset A ⊆ A of R-antichains, let us then consider the set Therefore each node of the branching tree is characterized by a program P L0,L1 1 obtained from P 1 by removing variables x a , z a with a ∈ A \ A L0 and adding the inequalities (4.1) for every i, j ∈ L 1 .
The choice of a pair of activities for these branching rules can be performed by determining a pair i, j so that a∈A | {i,j}⊆a x a is close to 0.5.

Pricing problem
At each node of the branching tree induced by the branching rules, we need to solve problem P L0,L1 1 . This will be performed by a Price-and-Cut algorithm. The pricing phase of this Price-and-Cut algorithm consists in solving P L0,L1 1 where only a subset K of circuits of Γ (A L0 ) is considered. In order to initialize a pricing algorithm to solve P L0,L1 1 , we consider a subset A ⊆ A of R-antichains such that K ∈ Γ (A L0 ). Moreover, we will suppose that A contains all the R-antichains limited to only one activity {i}, i ∈ V , this implies that every linear program involved in the pricing phase will always contain a solution. Let us then consider the following linear program P L0,L1 Let (z * , x * ) be an optimal solution of P L0,L1 We now can address the pricing subproblem associated with P L0,L1 1 (A).
Proof. Let us consider the linear problem P L0,L1 1 (A) obtained from P L0,L1 1 (A) by adding inequalities x a ≥ 0 and x a ≤ 1, for all a ∈ A L0 \ A L0 ; and replacing inequalities (4.1) by inequalities Note that inequalities (4.1) and (4.3) differ by the fact that the sum in (4.1) is restricted to A L0 . Let us then define vector is an optimal solution of P L0,L1 1 (A ), then (z 0 , x 0 ) will be also optimal since they correspond to the same objective value. We will now show that (z 0 , x 1 ) is an optimal solution of P L0,L1 Let (µ * , σ * , ρ * , ν * ) be an optimal solution of the dual of P L0,L1 1 (A). Let us consider the vector µ 1 given by We will first show that (λ * , µ 1 , σ * , ρ * , ν * ) is a solution of the dual of P L0,L1 1 (A ). By construction, inequalities (4.4) and (4.5) are satisfied for every a ∈ A L0 . Let us now consider a ∈ A L0 \ A L0 . Since, by hypothesis, i∈a λ * i ≤ 1, the inequality (4.4) corresponding to a is then satisfied. Note that the inequality (4.5) of the dual of P L0,L1 Moreover, since µ a ≥ 0 and since any circuit C ∈ K does not contain the R-antichain a, then the inequality (4.5) of the dual of P L0,L1 1 (A ) is satisfied. Since the objective values of P L0,L1 1 (A ) and its dual are the same for (z 0 , x 1 ) and for (λ * , µ 1 , σ * , ρ * , ν * ), by weak duality, (z 0 , x 1 ) is an optimal solution of P L0,L1 1 (A ).

Pricing phase for P 1
From Theorem 4.1, the pricing problem for formulation P L0,L1 1 (A) is, given the dual optimal value λ * of inequalities (3.1), to test whether every R-antichain a ∈ A L0 \ A L0 satisfies i∈a λ * i ≤ 1, and, if not, to find an R-antichain a ∈ A L0 \ A L0 with i∈a λ * i > 1. This pricing problem then reduces to find a set of activities inducing an R-antichain A L0 \ A L0 so that i∈a λ * i is minimum. This problem is clearly equivalent to the following program where y i is a 0-1 variable associated with activity i, for every i ∈ V . Max i∈V λ i y i i∈V r ik y i ≤ R k for all k ∈ {1, . . . , κ}, Given an optimal solution y * of this program, constraint (4.6) forces the R-antichain a = {i ∈ V | y * i = 1} to be in A L0 \ A L0 . Indeed, the reduced cost of a variable z a corresponding to an R-antichain a ∈ A L0 is different from the one of z a if a ∈ A L0 \ A L0 due to the dual cost of inequalities (3.2).
Since constraint (4.6) can easily be taken into account during a Branch-and-Bound method, this program can be solved using a MIP solver. Moreover, the linear inequalities of this program arise as valid inequalities in the knapsack and stable set problems. This may explain the fact that MIP solvers efficiently solve this program.

Branching rules and pricing phase for the two-index formulation
We now present the branching rules and the pricing algorithm for the two-index formulation P 2 .

Branching rules
For formulation P 2 , the chosen branching rule is to fix a variable use x ij to 0 or 1. In the particular case of P 2 , this classical branching rule exactly corresponds to the more complicated rule we used for P 1 in the previous section.
A subproblem of P 2 , using the classical branching rule, is then defined by a set L 0 of pairs (i, j) of activities such that x ij = 0 and a set L 1 such that x ij = 1. A MIP program P L0,L1 2 equivalent to this subproblem is then obtained from P 2 by removing variables x ij with (i, j) ∈ L 0 together with the corresponding inequalities (3.4) as well as every variable z a such that {i, j} ∈ a; and to set to 1 every variable x ij with (i, j) ∈ L 1 .

Pricing problem
As for the Antichain formulation, program P L0,L1 2 will be solved by a Price-and-Cut algorithm. The pricing phase of this algorithm phase consists in solving P L0,L1 2 where only a subset K of circuits of Γ (A ) is considered. This pricing phase starts with a given R-antichain subset A ⊆ A such that K ∈ Γ (A L0 ) and containing an acyclic time-full subset. Let us then consider the following linear problem P L0,L1

4)
{i,j}∈C x ij ≤ |C| − 1 for all circuit C ∈ K, (3.5) Let (z * , x * ) be the optimal solution of P L0,L1 2 (A). Let us consider the vector z 0 obtained as z 0 , be the dual optimal values of constraints (3.1) (resp. (3.4)) of P L0,L1 2 (A). It can be easily seen that the reduced cost of variable z a , a ∈ A L0 , is Consequently (z 0 , x * ) is optimal for the linear program P L0,L1 2 (A ) if ρ a > 0 for every R-antichain a of A L0 .

Pricing phase for P 2
The pricing problem for this formulation reduces to find an R-antichain with minimum reduced cost. Let y i be a 0-1 variable associated with activity i ∈ V and t ij a 0-1 variable associated with every (i, j) ∈ F \ L 0 . Then the pricing subproblem is equivalent to the following program that can be easily solved using a MIP solver.

Price-and-Cut for the antichain and the two-index formulation
In this section, we precise how the whole Price-and-Cut algorithms are organized.

Circuit inequalities separation algorithm
We first present a separation algorithm for the circuit inequalities be a weight associated with arc (u, v) for every (u, v) ∈ B. For every node u ∈ N , we compute a shortest path arborescence rooted in u. For every node v such that (v, u) ∈ B, we then consider the circuit C obtained by concatenating the path from u to v in the arborescence plus arc (v, u). Note that if w(C) < 1, then u∈C x * u > |C| − 1. Moreover if for every node u, v the corresponding circuit C is so that w(C) ≥ 1, then x * satisfies all the circuit inequalities.

Price-and-Cut algorithm
Given a subproblem created by the branching rules L 0 and L 1 , the linear relaxation of the subproblem is then solved using a Price-and-Cut algorithm as follows. The sets A and K are initialized so that A contains a time-full acyclic subset and K is a set of circuits involving R-antichains of A.
(1) Consider linear program P L0,L1 i (A) (i = 1, 2) (2) Using iteratively the pricing phase, find a set A of new columns so that there is no column with nonnegative reduced cost to add in P L0,L1 i (A ∪ A ) (3) Using iteratively the separation phase, find a set K of circuits so that there is no violated circuit inequalities to add in P L0,L1 i (A ∪ A )) (4) If A = ∅ and K = ∅, then STOP (5) A ← A ∪ A and K ← K ∪ K (6) Go to (1) Since this Price-and-Cut algorithm solves the linear relaxation of the subproblem, the branching tree induced by the branching rules will give an optimal solution of P 1 or P 2 .

Valid inequalities for the two-index formulation
In formulation P 2 , a preemptive schedule of a project corresponds to several solutions of P 2 . For instance, given a solution (z, x) of P 2 , for a given {i, j} ∈ F, if a∈A | {i,j}⊆a z a = 0, then x ij can sometimes be indifferently set to 0 or to 1. This implies that the linear relaxation P 2 of P 2 may produce unnecessary nodes in the branching tree. In particular, an extreme point (z, x) of P 2 may satisfy one or several inequalities (3.4) with equality, this implies that some components of x may not be integer. However, another solution (z,x) corresponding to the same R-antichain subset and the same variable z can be obtained by increasing as much as possible the value of x ij , for every {i, j} ∈ F. Hence either x ij ≤ 1 or a circuit inequality (3.5) will be tight forx. Consequently, the resulting pointx will satisfy more (resp. less) circuit inequalities (resp. inequalities (3.4)) with equality than x.
In order to construct a 1-to-1 correspondence between a subset of R-antichains and a solution (x, z) of P 2 , we can restrict the solutions to the incidence vectors x of inclusion-wise maximal acyclic subgraphs of Γ 2 (A ). Let us consider the polytope Q max defined as the convex hull of all the incidence vectors of inclusion-wise maximal acyclic subgraphs of Γ 2 (A ).
Given a subset W of F, let us consider the set AC(W ) of all subsets of pairs of F inducing an acyclic subgraph of Γ 2 (W ). Given an R-antichain {i, j} ∈ F, let C ij the set of all subsets of pairs of F inducing a circuit containing the R-antichain {i, j}. We then consider the set C ij obtained as the union of the pairs of every subsets of C ij . Note that C ij contains pair {i, j}. Consider the inequalities and for all W ∈ AC(C ij ) with {i, j} ∈ W. Moreover we have the following property.
Theorem 5.2. Let (z, x) be a solution of the formulation obtained by adding inequalities (5.1) to formulation P 2 . Then x is the incidence vector of an inclusion-wise maximal acyclic subgraph of Γ 2 (A ).
Proof. Let M = {{i, j} ∈ F | x ij = 1}. Clearly, M induces an acyclic subgraph of Γ 2 (A ) due to inequalities (3.5). Let us suppose that M is not an inclusion-wise maximal subset of AC, i.e., there exists a pair {i, j} ∈ F such that x ij = 0 and W = M ∪ {{i, j}} still induces an acyclic graph. Let W = W ∩ C ij . Since x(C ij \ W ) = 0, the inequality (5.1) associated with {i, j} and W is then violated by x, a contradiction.
Unfortunately, inequalities (5.1) are in exponential number and their associated separation problem appears to be hard to solve. In fact, we do not know its complexity. In this article, we will only consider particular inequalities of this class. Let us consider the following connected component inequalities where π(i, j) (resp. σ(i, j)) is the set of pairs {i , j } such that {i , j } belongs to the strongly component of F containing {i, j} and such that ({i , j }, {i, j}) (resp. ({i, j}, {i , j })) is an arc of Γ 2 (A ). Clearly, given {i, j} ∈ F, inequality (5.2) (resp. (5.3)) is a particular case of inequalities (5.1) when W = C ij \ π(i, j) (resp. W = C ij \ σ(i, j)). Note that it can be produced an incidence vector of AC(F) which satisfies inequalities (5.2) and (5.3)) and which is not the incidence vector of a subset inducing an inclusion-wise maximal acyclic subgraph.
In what follows we present our experimental results. For these experiments, we will also consider a further formulation, denoted by P 3 , obtained from P 2 by adding inequalities (5.2) and (5.3). Note that P 3 is also equivalent to the preemptive RCPSP.

Experimental results
We can now present some computational results obtained using our BCP algorithms for the three formulation P 1 , P 2 and P 3 . The algorithm has been implemented in C++ using the SCIP 3.0.1 framework. It was tested on a PC with 2.40GHz, 1 TB Ram for 80 processors, running under linux. For these experiments, we have focused on the PSPLIB instances of 30 activities. Indeed, these are the only instances for which the preemptive RCPSP have been solved to optimality in the literature. In [16], an optimal solution has been produced within a few seconds using a Branch-and-Bound algorithm combined with a column generation procedures based on Mingozzi formulation.
Each line of the three following tables corresponds to the average values obtained over the 480 instances of the PSPLIB containing 30 activities. The first column of the table gives the formulation name. Table 1 presents the linear relaxation P 1 , P 2 and P 3 of the three formulations. The entries of Table 1 are as follows.

Ropt
: the average optimal linear relaxation value, Ming. Gap : the average relative error between the optimal linear relaxation value and the optimal value of the Mingozzi linear formulation, NBbest : the number of instances for which the optimal linear relaxation value is strictly greater than the value of the Mingozzi linear relaxation [15] over the 480 instances, TT : the average total CPU time in seconds to obtain the relaxation value.
From Table 1, we can first remark that the relaxations of the three formulations can be obtained within a few seconds and often give better lower bounds than the optimal values of the Mingozzi linear formulation. In particular, formulation P 3 gives a strictly greater lower bound for 144 instances of the 480 ones, with 0.54% improvement in average.
Since every solution of the antichain formulation P 1 corresponds to a solution of the two-index formulation P 2 , the relaxation of formulation P 2 is better than the one of formulation P 1 , and we can notice from Table 1 that this latter value is often strictly greater. Recall that formulation P 3 is obtained from P 2 by adding valid inequalities (5.2) and (5.3). We can remark that these inequalities give rise to a small improvement of the linear relaxation. gives the experimental results for the BCP algorithms for the three formulation within a CPU time limit of 3 h (resp. 5 min). Their entries are as follows.

Copt
: the average best obtained value, LB : the average best obtained lower bound, IntG : the average relative error between the best obtained value and the best obtained lower bound, OptG : the average relative error between the best obtained value and the optimal solution obtained in [16], NBcol : the average number of generated columns, NBcut : the average number of generated circuit inequalities, NBnode : the average number of nodes in the branching tree, TT : the average total CPU time in seconds, TTprice : the average total CPU time to solve the pricing subproblems in seconds, TTsep : the average total CPU time to solve the separation problems in seconds, NBopt : the number of instances solved to optimality over the 480 instances.
Within a time limit of 3 h, the two BCP algorithms presented in this article succeed in solving to optimality more than the half of the instances and propose good solutions with a small gap from the optimal solutions.
The antichain formulation P 1 generates few columns during the pricing phase and then consumes less time in the pricing phase than the other formulation. However, the separation phase for P 1 is much more time consuming since the graph on which the separation problem is solved have to be dynamically constructed at every iteration. We can notice than the branching tree is quite smaller for P 1 than for the other formulation. Consequently, the antichain formulation P 1 is able to solve more instances than the two-index formulation P 2 , but unfortunately propose a lower average gap from the optimal solution.
Finally, formulation P 3 is clearly better with an average gap of 1.27% from the optimal solutions and 306 instances over 480 solved to optimality. Indeed, adding inequalities (5.2) and (5.3) to formulation P 2 permits to generate less nodes in the branching tree, less columns and less cuts.
Since Table 3 presents the same statistics than Table 2 for the same algorithm within 5 min instead of 3 h, the number of solved instances is of course lower in Table 3 than in Table 2. However, it can be noticed that half of the instances have been solved to optimality and that the optimality gap of P 3 is still small. Then our BCP algorithms can be used efficiently to produced good solutions within 5 min.  We can notice that most of the columns and cuts are produced during the first minutes. This implies that the branching phase is really time consuming: it will then be very interesting to study how to reinforce the master problem of formulation P 3 in order to reduce the time spent in the branching phase.
In order to give more insights concerning our BCP algorithm performance, Table 4 gives some statistical details over the instances. Indeed, the PSPLIB instances, containing 30 activities and 4 resources, proposed in [12] are divided within 48 groups of 10 instances, where each group is characterized by the three parameters NC, RF and RS. Parameter NC (network complexity) is the average number of non-redundant arcs per node in the graph corresponding to poset G: three values are considered for NC: NC∈ {1.50, 1.80, 2.10}. Parameter RS (Resource Strength) is a scaling parameter expressing the resource availability of a resource and parameter RF (Resource Factor) reflects the average portion of one resource used by an activity. Four values are considered for RS and RF: RS∈ {0.20, 0, 50, 0.70, 1.00} and RF∈ {0.25, 0.50, 0.75, 1.00}. Indeed, each of the instance groups corresponds to a distinct triplet over the 48 possible ones. Table 4 only presents the experimental results obtained by the BCP algorithm for formulation P 3 as this formulation is clearly the better one. Each line gives the average values over the 10 instances of the group whose name and parameters are given in the four first columns. Groups are sorted by values of the triplet NC, RS and RF. It appears that this order almost corresponds to the case where the groups are sorted by their difficulties to be solved. We can first notice that instances having a denser poset are easier to solve by our BCP. This can be explained by the fact that the poset density directly impacts the number of R-antichains in the problem and then the number of potential columns. Indeed the number of generated columns decrease with NC. We can also remark that instances having a high amount of resources (i.e, when RS is high) are easier to solve. This can be explained by the fact that, in this case, more activities can be set in parallel in the schedule leading our BCP algorithm to directly generate R-antichains that will be in the optimal solution. For instance, when RS equals to 1, the problem is directly solved without using the branching phase.

Conclusion
In this paper, we have studied two MIP formulations for the preemptive Resource-Constrained Precedence Scheduling Problem, respectively called antichain and two-indices formulation. We have developed two different Branch-and-Cut-and-Price algorithms for solving the two formulations. From our experiments, it appears that the antichain formulation needs less variables than the two-indices formulation to solve the same instances. However, the latter has performed better. Moreover, using additional valid inequalities, the two-indices formulation could solve most of the 30 activities instances of the PSPLIB within 3 h time limit and give a solution with a gap lower than 1.27% gap for each of these instances.
In [16], these instances have been solved to optimality within a few seconds using a Branch-and-Bound approach. Since this approach consists in enumerating every acyclic subgraph of graph Γ 2 , this method cannot be used for larger instances. However our BCP approach can be improved in order to solve bigger instances. In particular, it will be interesting to devise a polyhedral approach for the master problem of the two-indices formulation to produce additional valid inequalities. Another improvement for this BCP approach is to study further strategies to speed up the convergence of the pricing phase.