Scheduling and (Integer)

Christian Artigues

LAAS - CNRS & Université de Toulouse, France [email protected]

Master Class CPAIOR 2012 - Nantes

Christian Artigues and (Integer) Linear Programming CPAIOR 2012, Nantes 1 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 2 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 3 / 78 A bit of history

Since the beginning, linear programming has been used to solve scheduling problems. “The military refer to their various plans or proposed of training, logistical supply and deployment of combat units as a program. When I first analyzed the Air Force planning problem and saw that it could be formulated as a system of linear inequalities, I called my paper Programming in a Linear Structure” (Georges Dantzig) This presentation is a (non-exhaustive) survey of (integer) linear programming formulations and valid inequalities for scheduling problems

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 4 / 78 A simple scheduling example

One machine scheduling with release dates and deadlines ˜ ˜ 2 jobs J1 and J2 (p1 = 3, p2 = 2, r1 = 0, r2 = 1, d1 = 9, d2 = 7). 1 machine. Objective function f (S) = C1 + C2 = S1 + S2 + p1 + p2.

min S1 + S2+p1 + p2

S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 ≥ S1 + p1 ∨ S1 ≥ S2 + p2

S1, S2 integer P J1 J2 Ci = 8 (optimal solution) 0 1 2 3 4 5 6

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 5 / 78 conv(S)

Find a complete description of conv(S) : hard in general

The scheduling polyhedron

Feasible set S The feasible set is S the set of points S ∈ Rn that satisfy the constraints

min S1 + S2+p1 + p2 S2 S

S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 ≥ S1 + p1 ∨ S1 ≥ S2 + p2 S S1, S2 integer 1

P J1 J2 Ci = 8 0 1 2 3 4 5 6

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78 Find a complete description of conv(S) : hard in general

The scheduling polyhedron

Convex hull conv(S) The convex hull of S, i.e. the smallest convex set containing S : n o n n+ P|S| i P|S| conv(S) = x ∈ R ∃λi ∈ R , x = i=1 λi S , i=1 λi = 1

min S1 + S2+p1 + p2 S2 S conv(S) S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 ≥ S1 + p1 ∨ S1 ≥ S2 + p2 S S1, S2 integer 1

P J1 J2 Ci = 8 0 1 2 3 4 5 6

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78 Find a complete description of conv(S) : hard in general

The scheduling polyhedron

Optimization on S and conv(S) Let f : Rn → R a linear function, min f (S) = min f (S) S∈S S∈conv(S)

min S1 + S2+p1 + p2 S2 S conv(S) S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 ≥ S1 + p1 ∨ S1 ≥ S2 + p2 S S1, S2 integer 1

P J1 J2 Ci = 8 0 1 2 3 4 5 6

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78 The scheduling polyhedron conv(S) is a polyhedron There exists A ∈ Rm×n and b ∈ Rn with m finite such that conv(S) = {x ∈ Rn|Ax ≥ b}. Hence min f (S) is a LP. S∈conv(S)

min S1 + S2+p1 + p2 S2 S conv(S) S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 ≥ S1 + p1 ∨ S1 ≥ S2 + p2 S S1, S2 integer 1

P J1 J2 Ci = 8 Find a complete description 0 1 2 3 4 5 6 of conv(S) : hard in general Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78 A polyhedron is fully described by the set of all facet-inducing valid inequalities P ∩ {S|S1 +P3∩S2 {S=|26S}1 :+ a3 0-dimensionalS2 = 9} : a facet face (3, 1)

Definitions : valid inequalities, faces and facets

Let P denote a polyhedron. A valid inequality αx ≥ β is such that ∀S ∈ P, S verifies the inequality (P is included in the halfspace induced by the inequality) A face is the intersection of P with the hyperplane {x ∈ Rn|αx = β} A vertex is a face of dimension 0 A facet is a face of dimension dim(P) − 1

S2

S1

3S1 + 5S2 ≥ 7 : a valid inequality

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78 A polyhedron is fully described by the set of all facet-inducing valid inequalities P ∩ {S|2S1 +3S31S+2 5=S92}≥:7 a :facet a valid inequality

Definitions : valid inequalities, faces and facets

Let P denote a polyhedron. A valid inequality αx ≥ β is such that ∀S ∈ P, S verifies the inequality (P is included in the halfspace induced by the inequality) A face is the intersection of P with the hyperplane {x ∈ Rn|αx = β} A vertex is a face of dimension 0 A facet is a face of dimension dim(P) − 1

S2

S1

P ∩ {S|S1 + 3S2 = 6} : a 0-dimensional face (3, 1)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78 A polyhedron is fully described by the set of all facet-inducing valid inequalities P ∩ {S|S1 + 3S2 = 6} :3S a1 0-dimensional+ 5S2 ≥ 7 : a face valid(3 inequality, 1)

Definitions : valid inequalities, faces and facets

Let P denote a polyhedron. A valid inequality αx ≥ β is such that ∀S ∈ P, S verifies the inequality (P is included in the halfspace induced by the inequality) A face is the intersection of P with the hyperplane {x ∈ Rn|αx = β} A vertex is a face of dimension 0 A facet is a face of dimension dim(P) − 1

S2

S1

P ∩ {S|2S1 + 3S2 = 9} : a facet

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78 P ∩ {S|S1 + 3S2 = 6} :3S a1 0-dimensional+ 5S2 ≥ 7 : a face valid(3 inequality, 1)

Definitions : valid inequalities, faces and facets

Let P denote a polyhedron. A valid inequality αx ≥ β is such that ∀S ∈ P, S verifies the inequality (P is included in the halfspace induced by the inequality) A face is the intersection of P with the hyperplane {x ∈ Rn|αx = β} A vertex is a face of dimension 0 A facet is a face of dimension dim(P) − 1

S2 A polyhedron is fully described by the set of all

S1 facet-inducing valid inequalities P ∩ {S|2S1 + 3S2 = 9} : a facet

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 (Integer) linear programming-based scheduling

Given a scheduling problem and the logical description of S

1 Perform a polyhedral study : Find a complete description of conv(S) with a polynomial number of linear inequalities ? → The problem can be solved by LP Find a complete description of conv(S) and show it has a supermodular structure ? → The problem can be solved by a greedy algorithm Find a partial description of conv(S) ? → This gives useful valid inequalities 2 Design a (mixed)-integer programming formulation More polyhedral studies, solve with branch-and-cut, branch-and-price, branch-and-cut-and-price, heuristics, ... (only partly addressed here)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 9 / 78 A scheduling problem that can be solved by LP

Project scheduling SPS 3 1 1 3 2 • Precedence constraints E. 0 0 5 • l : minimum distance between the start ij −1 0 1 of job i (Si ) and the start of job j (Sj ). 2 4 PS +n 2 S = {S ∈ R |Sj − Si ≥ lij , ∀(i, j) ∈ E} find the shortest minSn+1 X max lij xij S − S ≥ l ∀(i, j) ∈ E j i ij (i,j)∈E S0 = 0 X X xij = xji ∀j ∈ J \ {0} Sj ≥ 0 ∀j ∈ J i∈Γ−1(j) i∈Γ(j) X x0i = 1 i∈Γ(0)

x0i ≥ 0 (longest path model) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 10 / 78 Supermodular polyhedron : definitions [Sch96]

Consider a set N = {1,..., n} and its power set 2N (set of all N subsets of N) and a supermodular set function f : 2 → R, i.e. a set function that verifies : ( f (∅) = 0 f (A ∪ B) + f (A ∩ B) ≥ f (A) + f (B), ∀A, B ⊆ N

|N| P P(f )={x ∈ R | i∈A xi ≥ f (A), ∀A⊆N} supermodular polyhedron There is an O(n log n) greedy algorithm to find ∗ x = argminx∈P(f ) cx :

if ∃i ∈ N, ci < 0, the problem is unbounded. otherwise x ∗ ∈ B(f ). Solve the problem with the following greedy algorithm ( ∗ x1 = f ({1}) ∗ xj = f ({1,..., j}) − f ({1,..., j − 1}), j = 2,..., n.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 11 / 78 Supermodular polyhedron : definitions [Sch96]

Consider a set N = {1,..., n} and its power set 2N (set of all N subsets of N) and a supermodular set function f : 2 → R, i.e. a set function that verifies : ( f (∅) = 0 f (A ∪ B) + f (A ∩ B) ≥ f (A) + f (B), ∀A, B ⊆ N

|N| P P(f )={x ∈ R | i∈A xi ≥ f (A), ∀A⊆N} supermodular polyhedron There is an O(n log n) greedy algorithm to find ∗ x = argminx∈P(f ) cx :

if ∃i ∈ N, ci < 0, the problem is unbounded. otherwise x ∗ ∈ B(f ). Solve the problem with the following greedy algorithm ( ∗ x1 = f ({1}) ∗ xj = f ({1,..., j}) − f ({1,..., j − 1}), j = 2,..., n.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 11 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

Single-machine scheduling SSM Set of feasible schedules for a set of jobs J on a single machine : ( )

SM J Ci ≥ pi , ∀j ∈ J , S = C ∈ R Ci ≥ Cj + pi ∨ Cj ≥ Ci + pj , ∀i, j ∈ J , i 6= j

Queyranne [Que93] showed that SM J P conv(S ) = {C ∈ R | j∈A pj Cj ≥ g(A), ∀A ⊆ J } where  2  1 P  P 2 g(A) = 2 j∈A pj + j∈A pj .

These valid inequalities can be obtained by Smith’s rule (WSPT). P Optimum for i∈J wi Ci is obtained by sorting jobs in non decreasing wi /pi . For A = {i1,..., is } ⊆ J , set wi = pi for i ∈ A and wi = 0 for i ∈ J \ A

Opt = pi1 pi1 + pi2 (pi1 + pi2 ) +...+ pis (pi1 + pi2 +...+ pis ) = g(A) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78 A scheduling supermodular polyhedron [Que93]

P Each inequality j∈S pj Cj ≥ g(S) defines a facet for conv(Q). conv(SSM ) is a supermodular polyhedron and the greedy P algorithm for minimizing i∈J wi Ci coincides with the Smith’s rule WSPT This rediscovers the WSPT rule but also provides valid inequalities for other (NP-hard) scheduling problems. An O(n log n) separation algorithm is available to find an inequality violated by a given vector C. More scheduling supermodular polyhedra : the convex hull of the feasible start time for unit jobs on parallel machines with nonstationary speeds [QS95] the convex hull of mean busy time vectors of preemptive schedules for jobs with release dates on a single machine [GQS+02]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78 A scheduling supermodular polyhedron [Que93]

P Each inequality j∈S pj Cj ≥ g(S) defines a facet for conv(Q). conv(SSM ) is a supermodular polyhedron and the greedy P algorithm for minimizing i∈J wi Ci coincides with the Smith’s rule WSPT This rediscovers the WSPT rule but also provides valid inequalities for other (NP-hard) scheduling problems. An O(n log n) separation algorithm is available to find an inequality violated by a given vector C. More scheduling supermodular polyhedra : the convex hull of the feasible start time for unit jobs on parallel machines with nonstationary speeds [QS95] the convex hull of mean busy time vectors of preemptive schedules for jobs with release dates on a single machine [GQS+02]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78 A scheduling supermodular polyhedron [Que93]

P Each inequality j∈S pj Cj ≥ g(S) defines a facet for conv(Q). conv(SSM ) is a supermodular polyhedron and the greedy P algorithm for minimizing i∈J wi Ci coincides with the Smith’s rule WSPT This rediscovers the WSPT rule but also provides valid inequalities for other (NP-hard) scheduling problems. An O(n log n) separation algorithm is available to find an inequality violated by a given vector C. More scheduling supermodular polyhedra : the convex hull of the feasible start time for unit jobs on parallel machines with nonstationary speeds [QS95] the convex hull of mean busy time vectors of preemptive schedules for jobs with release dates on a single machine [GQS+02]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78 A scheduling supermodular polyhedron [Que93]

P Each inequality j∈S pj Cj ≥ g(S) defines a facet for conv(Q). conv(SSM ) is a supermodular polyhedron and the greedy P algorithm for minimizing i∈J wi Ci coincides with the Smith’s rule WSPT This rediscovers the WSPT rule but also provides valid inequalities for other (NP-hard) scheduling problems. An O(n log n) separation algorithm is available to find an inequality violated by a given vector C. More scheduling supermodular polyhedra : the convex hull of the feasible start time for unit jobs on parallel machines with nonstationary speeds [QS95] the convex hull of mean busy time vectors of preemptive schedules for jobs with release dates on a single machine [GQS+02]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78 A scheduling supermodular polyhedron [Que93]

P Each inequality j∈S pj Cj ≥ g(S) defines a facet for conv(Q). conv(SSM ) is a supermodular polyhedron and the greedy P algorithm for minimizing i∈J wi Ci coincides with the Smith’s rule WSPT This rediscovers the WSPT rule but also provides valid inequalities for other (NP-hard) scheduling problems. An O(n log n) separation algorithm is available to find an inequality violated by a given vector C. More scheduling supermodular polyhedra : the convex hull of the feasible start time for unit jobs on parallel machines with nonstationary speeds [QS95] the convex hull of mean busy time vectors of preemptive schedules for jobs with release dates on a single machine [GQS+02]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78 Valid inequalities for NP-hard scheduling problems

Single-machine scheduling with release dates SSMR Set of feasible schedules for a set of jobs J on a single machine with release dates : ( )

SMR J Si ≥ ri , ∀j ∈ J , S = S ∈ R Si ≥ Sj + lij ∨ Sj ≥ Si + lji , ∀i, j ∈ J , i 6= j

P The problem of minimizing S∈S wi Si is NP-hard =⇒ no chance to have a complete characterization of conv(SSMR ) However, Balas [Bal85] studied P = conv(S) and derived facet-defining inequalities. He showed that a facet-defining inequality for a subset of jobs K ⊆ J induces also a facet for J .

∀i ∈ J , Si ≥ ri induces a facet of P ∀i, j ∈ J , i 6= j, (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij induces a facet of P if and only if −dji < rj − ri < dij Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78 Valid inequalities for NP-hard scheduling problems

Single-machine scheduling with release dates SSMR Set of feasible schedules for a set of jobs J on a single machine with release dates : ( )

SMR J Si ≥ ri , ∀j ∈ J , S = S ∈ R Si ≥ Sj + lij ∨ Sj ≥ Si + lji , ∀i, j ∈ J , i 6= j

P The problem of minimizing S∈S wi Si is NP-hard =⇒ no chance to have a complete characterization of conv(SSMR ) However, Balas [Bal85] studied P = conv(S) and derived facet-defining inequalities. He showed that a facet-defining inequality for a subset of jobs K ⊆ J induces also a facet for J .

∀i ∈ J , Si ≥ ri induces a facet of P ∀i, j ∈ J , i 6= j, (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij induces a facet of P if and only if −dji < rj − ri < dij Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78 Valid inequalities for NP-hard scheduling problems

Single-machine scheduling with release dates SSMR Set of feasible schedules for a set of jobs J on a single machine with release dates : ( )

SMR J Si ≥ ri , ∀j ∈ J , S = S ∈ R Si ≥ Sj + lij ∨ Sj ≥ Si + lji , ∀i, j ∈ J , i 6= j

P The problem of minimizing S∈S wi Si is NP-hard =⇒ no chance to have a complete characterization of conv(SSMR ) However, Balas [Bal85] studied P = conv(S) and derived facet-defining inequalities. He showed that a facet-defining inequality for a subset of jobs K ⊆ J induces also a facet for J .

∀i ∈ J , Si ≥ ri induces a facet of P ∀i, j ∈ J , i 6= j, (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij induces a facet of P if and only if −dji < rj − ri < dij Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78 Valid inequalities for NP-hard scheduling problems

Single-machine scheduling with release dates SSMR Set of feasible schedules for a set of jobs J on a single machine with release dates : ( )

SMR J Si ≥ ri , ∀j ∈ J , S = S ∈ R Si ≥ Sj + lij ∨ Sj ≥ Si + lji , ∀i, j ∈ J , i 6= j

P The problem of minimizing S∈S wi Si is NP-hard =⇒ no chance to have a complete characterization of conv(SSMR ) However, Balas [Bal85] studied P = conv(S) and derived facet-defining inequalities. He showed that a facet-defining inequality for a subset of jobs K ⊆ J induces also a facet for J .

∀i ∈ J , Si ≥ ri induces a facet of P ∀i, j ∈ J , i 6= j, (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij induces a facet of P if and only if −dji < rj − ri < dij Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78 2S13+S13+SS215≥S+293≥S27≥ 6

Cutting plane generation for NP-hard scheduling problems

From a partial descrition of conv(S) (relaxation), iteratively solve the separation problem for families of valid inequalities.

S2

S1

Optimum has been found after adding Balas inequality (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij Separation is NP-hard in general =⇒ the optimum cannot be found quickly by pure cutting plane generation.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78 2S1 + 3SS21≥+93S2 ≥ 6

Cutting plane generation for NP-hard scheduling problems

From a partial descrition of conv(S) (relaxation), iteratively solve the separation problem for families of valid inequalities.

S2

S1

3S1 + 5S2 ≥ 7

Optimum has been found after adding Balas inequality (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij Separation is NP-hard in general =⇒ the optimum cannot be found quickly by pure cutting plane generation.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78 2S13+S13+S25≥S29≥ 7

Cutting plane generation for NP-hard scheduling problems

From a partial descrition of conv(S) (relaxation), iteratively solve the separation problem for families of valid inequalities.

S2

S1

S1 + 3S2 ≥ 6

Optimum has been found after adding Balas inequality (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij Separation is NP-hard in general =⇒ the optimum cannot be found quickly by pure cutting plane generation.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78 3S1 +S15S+23≥S27≥ 6

Cutting plane generation for NP-hard scheduling problems

From a partial descrition of conv(S) (relaxation), iteratively solve the separation problem for families of valid inequalities.

S2

S1

2S1 + 3S2 ≥ 9

Optimum has been found after adding Balas inequality (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij Separation is NP-hard in general =⇒ the optimum cannot be found quickly by pure cutting plane generation.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78 3S1 +S15S+23≥S27≥ 6

Cutting plane generation for NP-hard scheduling problems

From a partial descrition of conv(S) (relaxation), iteratively solve the separation problem for families of valid inequalities.

S2

S1

2S1 + 3S2 ≥ 9

Optimum has been found after adding Balas inequality (lij + ri − rj )Si + (lji + rj − ri )Sj ≥ dij dji + Li dji + Lj dij Separation is NP-hard in general =⇒ the optimum cannot be found quickly by pure cutting plane generation.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 16 / 78 min S1 + S2+p1 + p2

S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 − S1 + Mx ≥ p1

S1 − S2 + M(1 − x) ≥ p2

S1, S2 integer x ∈ {0, 1}

Principle of (mixed)-integer programming

Design a good MIP formulation for the scheduling problem Solve by branch-and-bound

S2 S

S1

Remark : once x is fixed, extreme points are integral =⇒ no need for integer constraints on S

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 17 / 78 Principle of (mixed)-integer programming

Design a good MIP formulation for the scheduling problem Solve by branch-and-bound

min S1 + S2+p1 + p2

S1 ≥ r1 S2 S S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 − S1 + Mx ≥ p1

S1 − S2 + M(1 − x) ≥ p2

S1, S2 integer S1 x ∈ {0, 1}

Remark : once x is fixed, extreme points are integral =⇒ no need for integer constraints on S

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 17 / 78 Principle of (mixed)-integer programming

Design a good MIP formulation for the scheduling problem Solve by branch-and-bound

min S1 + S2+p1 + p2

S1 ≥ r1 S2 S S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 − S1 + Mx ≥ p1

S1 − S2 + M(1 − x) ≥ p2

S1, S2 integer S1 x ∈ {0, 1}

Remark : once x is fixed, extreme points are integral =⇒ no need for integer constraints on S

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 17 / 78 Principle of (mixed)-integer programming

Design a good MIP formulation for the scheduling problem Solve by branch-and-bound

min S1 + S2+p1 + p2 S2 S S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 − S1 + Mx ≥ p1

S1 − S2 + M(1 − x) ≥ p2 S1 S1, S2 integer x ∈ {0, 1} Left node x = 1

Remark : once x is fixed, extreme points are integral =⇒ no need for integer constraints on S

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 17 / 78 Principle of (mixed)-integer programming

Design a good MIP formulation for the scheduling problem Solve by branch-and-bound

min S1 + S2+p1 + p2 S2 S

S1 ≥ r1

S2 ≥ r2

S1 + p1 ≤ d˜1

S2 + p2 ≤ d˜2

S2 − S1 + Mx ≥ p1 S1 S1 − S2 + M(1 − x) ≥ p2

S1, S2 integer Right node x = 0 P x ∈ {0, 1} J1 J2 Ci = 8 0 1 2 3 4 5 6

Remark : once x is fixed, extreme points are integral =⇒ no need for integer constraints on S

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 17 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Case study : the resource-constrained project scheduling problem

Resource-constrained project scheduling with irregular starting time costs

• n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. • Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . • m resources (set R). Constant availability Bk , k ∈ R. • For each job i ∈ J : duration pi and resource requirements bik , k ∈ R. P • Resource constraints i∈J |Si ≤t≤Si +pi −1 bik ≤ Bk , ∀t ∈ T , ∀k ∈ R. • Cost function wj : {1,..., T } → R. P • Find a schedule that minimizes i∈J wj (Sj ).

Remark 1 : |R| = 1, B1 = 1, and bi1 = 1, ∀i ∈ J =⇒ 1-machine problem.

Remark 2 : |R| = 1, B1 ≥ 2 and bi1 = 1, ∀i ∈ J =⇒ parallel machine problem.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 18 / 78 Scheduling objectives P Objective min i∈J wj (Sj ) models most standard objectives

Makespan min maxi∈J Ci Let J = {1,..., n + 1} with n + 1 dummy end jobs.

wi (t) = 0, ∀i ∈ J \ {n + 1}, wn+1(t) = t

Maximum lateness min maxi∈J Ci − di Same modeling by adding arc (i, n + 1) in E with li,n+1 = pi − di Earliness-tardiness costs P min i∈J (αi max(0, di − Ci ) + βi max(0, Ci − di )

wi (t) = αi max(0, di − t − pi ) + βi max(0, t + pi − di )

(weighted completion time if, in addition, di = 0 ∧ αi = 0, ∀i ∈ J ) P Weighted number of late jobs i∈J wi Ui ( 0 if t + pi ≤ di wi (t) = wi otherwise

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78 Scheduling objectives P Objective min i∈J wj (Sj ) models most standard objectives

Makespan min maxi∈J Ci Let J = {1,..., n + 1} with n + 1 dummy end jobs.

wi (t) = 0, ∀i ∈ J \ {n + 1}, wn+1(t) = t

Maximum lateness min maxi∈J Ci − di Same modeling by adding arc (i, n + 1) in E with li,n+1 = pi − di Earliness-tardiness costs P min i∈J (αi max(0, di − Ci ) + βi max(0, Ci − di )

wi (t) = αi max(0, di − t − pi ) + βi max(0, t + pi − di )

(weighted completion time if, in addition, di = 0 ∧ αi = 0, ∀i ∈ J ) P Weighted number of late jobs i∈J wi Ui ( 0 if t + pi ≤ di wi (t) = wi otherwise

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78 Scheduling objectives P Objective min i∈J wj (Sj ) models most standard objectives

Makespan min maxi∈J Ci Let J = {1,..., n + 1} with n + 1 dummy end jobs.

wi (t) = 0, ∀i ∈ J \ {n + 1}, wn+1(t) = t

Maximum lateness min maxi∈J Ci − di Same modeling by adding arc (i, n + 1) in E with li,n+1 = pi − di Earliness-tardiness costs P min i∈J (αi max(0, di − Ci ) + βi max(0, Ci − di )

wi (t) = αi max(0, di − t − pi ) + βi max(0, t + pi − di )

(weighted completion time if, in addition, di = 0 ∧ αi = 0, ∀i ∈ J ) P Weighted number of late jobs i∈J wi Ui ( 0 if t + pi ≤ di wi (t) = wi otherwise

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78 Scheduling objectives P Objective min i∈J wj (Sj ) models most standard objectives

Makespan min maxi∈J Ci Let J = {1,..., n + 1} with n + 1 dummy end jobs.

wi (t) = 0, ∀i ∈ J \ {n + 1}, wn+1(t) = t

Maximum lateness min maxi∈J Ci − di Same modeling by adding arc (i, n + 1) in E with li,n+1 = pi − di Earliness-tardiness costs P min i∈J (αi max(0, di − Ci ) + βi max(0, Ci − di )

wi (t) = αi max(0, di − t − pi ) + βi max(0, t + pi − di )

(weighted completion time if, in addition, di = 0 ∧ αi = 0, ∀i ∈ J ) P Weighted number of late jobs i∈J wi Ui ( 0 if t + pi ≤ di wi (t) = wi otherwise

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 20 / 78 MILP Formulations with time-indexed variables

PT time-indexed variables xit = 1 ⇔ Si = t ⇔ Si = t=0 txit Single machine X X min wj (t)xjt j∈J t∈T X xjt = 1 ∀j ∈ J t∈T T T X X txjt − txit ≥ lij ∀(i, j) ∈ E t=0 t=0 t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78 MILP Formulations with time-indexed variables

PT time-indexed variables xit = 1 ⇔ Si = t ⇔ Si = t=0 txit Parallel machines X X min wj (t)xjt j∈J t∈T X xjt = 1 ∀j ∈ J t∈T T T X X txjt − txit ≥ lij ∀(i, j) ∈ E t=0 t=0 t X X xjs ≤ B ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78 MILP Formulations with time-indexed variables

PT time-indexed variables xit = 1 ⇔ Si = t ⇔ Si = t=0 txit RCPSP

X X min wj (t)xjt j∈J t∈T X xjt = 1 ∀j ∈ J t∈T T T X X txjt − txit ≥ lij ∀(i, j) ∈ E t=0 t=0 t X X bjk xjs ≤ Bk ∀t ∈ T , ∀k ∈ R j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T nT variables, |E| precedence constraints, |R|T resource constraints.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78 MILP Formulations with time-indexed variables

PT time-indexed variables xit = 1 ⇔ Si = t ⇔ Si = t=0 txit RCPSP (disaggregated precedence constraints)

X X min wj (t)xjt j∈J t∈T X xjt = 1 ∀j ∈ J t∈T

T t+lij −1 X X xis + xjs ≤ 1 ∀(i, j) ∈ E, ∀t ∈ T s=t s=0 t X X bjk xjs ≤ Bk ∀t ∈ T , ∀k ∈ R j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T nT variables, |E|T precedence constraints, |R|T resource constraints.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 22 / 78 Total unimodularity

A matrix A is totally unimodular (TU) if and only if every square submatrix has determinant 0, 1 or -1.

if A is TU, minAx≥bcx has an integer optimal solution or there is no solution A is TU if (sufficient condition) rows can be partitionned into two disjoint sets B and C such that each column of A has at most two non-zero entries, each entry of A is 0, 1 or -1 if two non-zeros in a column have opposite signs, they are in the same subset of rows (both in B or both in C). if two non-zeros in a column have the same sign, there is one in B and the other one in C A is also TU if its transpose is TU.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 23 / 78 Total unimodularity and scheduling

Project scheduling with irregular starting time costs

n jobs (set J ) with integer start times Si ∈ T = {0, 1,..., T }. Precedence constraints E such that (i, j) ∈ E =⇒ Sj ≥ Si + lij . Cost function P wj : {1,..., T } → R. Find a schedule that minimizes j∈J wj (Sj ).

PT time-indexed variable zit = 1 ⇔ Si ≤ t (zit = t=0 xit ) X X min (wj (t) − wj (t + 1)) zjt j∈J t∈T

zjT = 1 ∀j ∈ J

zjt − zj,t+1 ≤ 0 ∀j ∈ J , ∀t ∈ T

zj,t+lij − zit ≤ 0 ∀(i, j) ∈ E, ∀t ∈ T

zjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

The matrix totally unimodular =⇒ no integer restriction needed ! Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 24 / 78 Comparison between formulations

Other IP with time-indexed variables xit = 1 ⇔ Si = t (nT variables)

X X X X min wj (t)xjt min wj (t)xjt j∈J t∈T j∈J t∈T X X xjt = 1 ∀j ∈ J xjt = 1 ∀j ∈ J t∈T t∈T

T t+lij −1 T T X X X X xis + xjs ≤ 1 ∀(i, j) ∈ E, ∀t ∈ T txjs − txis ≥ lij ∀(i, j) ∈ E s=t s=0 t=0 t=0

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

Totally unimodular matrix, integer polyhedron Polyhedron is not integer !

For the RCPSP, the LP relaxation of the time-indexed model with disagreggated precedence constraints is tighter.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 25 / 78 MILP Formulations with time-indexed variables : facets

Facet-inducing inequalities for the single-machine polyhedron (without precedence constraints) [SW92]

X xjt ≤ 1 ∀j ∈ J t∈T t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1 t+∆−1 t X X X xjs + xis ≤ 1 ∀j ∈ J , ∀t ∈ T , s=t−pj +1 i6=j s=t−pi +∆

∀∆ ∈ {2,..., max pi } i6=j

All facet-inducing inequalities with rhs = 1 [vHS99].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 26 / 78 Sousa and Wolsey valid inequalities [SW92]

T X xju 1 = 2 2 u=1 t X X xis 1 ≤ 2 2 i∈J s=t−pi +1 t+∆−1 X X xis 1 ≤ 2 2 i∈J s=t−pi +∆

T n t t+∆−1 X xju X X xis X X xis 3 b + + c ≤ b c 2 2 2 2 u=1 i=1 s=t−pi +1 i∈J s=t−pi +∆ t+∆−1 t X X X xjs + xis ≤ 1

s=t−pj +1 i6=j s=t−pi +∆

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 27 / 78 Sousa and Wolsey valid inequalities [SW92]

For each time period t ∈ T , for each task j ∈ T and for each ∆ ∈ {2,..., maxi6=j pi } t − pj + 1 t + ∆ − 1 j t − pi + ∆ t ≤ 1 i ∈ J \ {j}

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 28 / 78 van den Akker et al. valid ineqalities [vHS99]

u − p + 1 u − p − v u − p + 1 1 j1 u1 + ∆1 − 1 2 j1 u1 + ∆1 + z 2 j1 u2 + ∆2 − 1 j1

u − p + ∆ max{u − v, u + ∆ } − p u − p + ∆ 1 j2 1 u1 2 1 1 j2 min{u1 + ∆1 + z, u2} 2 j2 2 u2 j2 ≤ 2

u1 − pi + ∆1 + z + 1 u1 u2 − pi + 1u1 + ∆1 − 1 u2 − pi + ∆2u2 − v − 1

i ∈ J\{j1, j2}

L M U With the same principle all facet-inducing inequalities with rhs = 2 are derived.

In [WJNS02], relation with valid ineqalities for the node packing problem is established.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 29 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Valid inequalities for the time-indexed RCPSP ILP

Hardin et al. [HNS08] extend the Sousa and Wolsey 1-machine cuts to the RCPSP.

P Let F be a forbidden set (or cover), i.e. j∈F bi > B. P Pt j∈F s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T .

Consider now a “special” task j ∈ F and an interval v ≥ 0 P Pt Pt+v i∈F \{j} s=t−pj +1+v xiq + s=t−pj +1 xjs ≤ |F | − 1 is a valid inequality ∀t ∈ T . The inequality defines a facet for the polyhedron reduced to jobs P in C if C is a minimal forbidden set, i.e. C\{i} bi ≤ B, ∀i ∈ C. Hardin et al. propose lifting procedures and conditions for the resulting inequalities to be facet-inducing for the complete polyhedron.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 31 / 78 Sequencing variables

Time-indexed models yield good LP relaxation but the number of variables can be huge =⇒ need to consider more compact models.

Binary variable yij = 1 if and only if Sj ≥ Si + pi

Disjunctive case : yij = 1 − yji , ∀(i, j) ∈ D (half of the variables can be dropped) and yij is the incidence vector of linear orderings : If there are no release dates and in the 1-machine case P Cj = i∈D\{j} yij pi + pj Not possible to consider start dependent costs =⇒ objective P i∈J wi Ci

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78 Sequencing variables

Time-indexed models yield good LP relaxation but the number of variables can be huge =⇒ need to consider more compact models.

Binary variable yij = 1 if and only if Sj ≥ Si + pi

Disjunctive case : yij = 1 − yji , ∀(i, j) ∈ D (half of the variables can be dropped) and yij is the incidence vector of linear orderings : If there are no release dates and in the 1-machine case P Cj = i∈D\{j} yij pi + pj Not possible to consider start dependent costs =⇒ objective P i∈J wi Ci

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78 Sequencing variables

Time-indexed models yield good LP relaxation but the number of variables can be huge =⇒ need to consider more compact models.

Binary variable yij = 1 if and only if Sj ≥ Si + pi

Disjunctive case : yij = 1 − yji , ∀(i, j) ∈ D (half of the variables can be dropped) and yij is the incidence vector of linear orderings : If there are no release dates and in the 1-machine case P Cj = i∈D\{j} yij pi + pj Not possible to consider start dependent costs =⇒ objective P i∈J wi Ci

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78 Sequencing variables

Time-indexed models yield good LP relaxation but the number of variables can be huge =⇒ need to consider more compact models.

Binary variable yij = 1 if and only if Sj ≥ Si + pi

Disjunctive case : yij = 1 − yji , ∀(i, j) ∈ D (half of the variables can be dropped) and yij is the incidence vector of linear orderings : If there are no release dates and in the 1-machine case P Cj = i∈D\{j} yij pi + pj Not possible to consider start dependent costs =⇒ objective P i∈J wi Ci

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78 Sequencing variables

Time-indexed models yield good LP relaxation but the number of variables can be huge =⇒ need to consider more compact models.

Binary variable yij = 1 if and only if Sj ≥ Si + pi

Disjunctive case : yij = 1 − yji , ∀(i, j) ∈ D (half of the variables can be dropped) and yij is the incidence vector of linear orderings : If there are no release dates and in the 1-machine case P Cj = i∈D\{j} yij pi + pj Not possible to consider start dependent costs =⇒ objective P i∈J wi Ci

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78 Sequencing variables : simplest case

Simple case (one-machine, no release dates, no precedence constraints) P P Consider yij for i < j =⇒ Cj = ij (1 − yji )pi + pj P P P P j wj Cj = 1≤i i

It suffices to fix yij = 1 if wj pi − wi pj ≤ 0 and to 0 otherwise =⇒ WSPT rule [QS94].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78 Sequencing variables : simplest case

Simple case (one-machine, no release dates, no precedence constraints) P P Consider yij for i < j =⇒ Cj = ij (1 − yji )pi + pj P P P P j wj Cj = 1≤i i

It suffices to fix yij = 1 if wj pi − wi pj ≤ 0 and to 0 otherwise =⇒ WSPT rule [QS94].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78 Sequencing variables : simplest case

Simple case (one-machine, no release dates, no precedence constraints) P P Consider yij for i < j =⇒ Cj = ij (1 − yji )pi + pj P P P P j wj Cj = 1≤i i

It suffices to fix yij = 1 if wj pi − wi pj ≤ 0 and to 0 otherwise =⇒ WSPT rule [QS94].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78 Sequencing variables : simplest case

Simple case (one-machine, no release dates, no precedence constraints) P P Consider yij for i < j =⇒ Cj = ij (1 − yji )pi + pj P P P P j wj Cj = 1≤i i

It suffices to fix yij = 1 if wj pi − wi pj ≤ 0 and to 0 otherwise =⇒ WSPT rule [QS94].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78 Sequencing variables : one machine, precedence constraints (1)

Set E of precedence constraints (MILP due to [Pot80])

P P min i,j∈J pi wj yij + j∈J pj wj

yij + yji = 1 ∀i, j ∈ J , i 6= j

yij + yjk − yik ≤ 1 ∀i, j, k ∈ J , i 6= j 6= k

yij = 1 ∀(i, j) ∈ E

yij = 0 ∀(j, i) ∈ E

yij ∈ {0, 1} ∀i, j ∈ J , i 6= j

(NP-hard)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 34 / 78 Sequencing variables : one machine, precedence constraints (2)

A vertex cover LP-relaxation. Let i ↔j denote {(i, j), (j, i)} ∩ E = ∅

P P min i,j∈J pi wj yij + j∈J pj wj

yij + yji ≥ 1 ∀i, j ∈ J , i 6= j, i ↔ j

yik + ykj ≥ 1 ∀(i, j) ∈ E, ∀k ∈ J , i ↔ k, k ↔ j

yil + ykj ≥ 1 ∀(i, j), (k, l) ∈ E, i ↔ l, j ↔ k

yij ≥ 0 ∀i, j ∈ J , i 6= j, i ↔ j

For Series-Parallel precedence constraints, the polyhedron is integral and yields a feasible solution [CS04]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 35 / 78 MILP by [NS92] (improving [DW90] inequalities) linearizing : X Sj ≥ (ri + pi )yij + pk yik ykj ∀i, j ∈ J , i 6= j k6=i,j P min j∈J wj Sj P P Sj ≥ (ri +pi )yij + ki,k6=j pk ykj ∀i, j ∈J , i 6=j

Sj ≥ ri ∀i ∈ J

yij + yji = 1 ∀1 ≤ i < j ≤ n

yij + yjk − yik ≤ 1 ∀i, j, k ∈ J , i 6= j 6= k

δjk ∈ {0, 1} ∀i, j ∈ J , i 6= j

Sequencing and natural date variables : one machine, release dates

Jobs have release dates ri , assuming r1 ≤ r2 ≤ ... ≤ rn Idle times =⇒ need to consider natural date variables Si

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78 P min j∈J wj Sj P P Sj ≥ (ri +pi )yij + ki,k6=j pk ykj ∀i, j ∈J , i 6=j

Sj ≥ ri ∀i ∈ J

yij + yji = 1 ∀1 ≤ i < j ≤ n

yij + yjk − yik ≤ 1 ∀i, j, k ∈ J , i 6= j 6= k

δjk ∈ {0, 1} ∀i, j ∈ J , i 6= j

Sequencing and natural date variables : one machine, release dates

Jobs have release dates ri , assuming r1 ≤ r2 ≤ ... ≤ rn Idle times =⇒ need to consider natural date variables Si MILP by [NS92] (improving [DW90] inequalities) linearizing : X Sj ≥ (ri + pi )yij + pk yik ykj ∀i, j ∈ J , i 6= j k6=i,j

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78 Sequencing and natural date variables : one machine, release dates

Jobs have release dates ri , assuming r1 ≤ r2 ≤ ... ≤ rn Idle times =⇒ need to consider natural date variables Si MILP by [NS92] (improving [DW90] inequalities) linearizing : X Sj ≥ (ri + pi )yij + pk yik ykj ∀i, j ∈ J , i 6= j k6=i,j P min j∈J wj Sj P P Sj ≥ (ri +pi )yij + ki,k6=j pk ykj ∀i, j ∈J , i 6=j

Sj ≥ ri ∀i ∈ J

yij + yji = 1 ∀1 ≤ i < j ≤ n

yij + yjk − yik ≤ 1 ∀i, j, k ∈ J , i 6= j 6= k

δjk ∈ {0, 1} ∀i, j ∈ J , i 6= j

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78 Sequencing and natural date variables : the general disjunctive scheduling problem

P min j∈J wj Sj

Sj ≥ ri ∀i ∈ J

Sj − Si + Mij (1 − yij ) ≥ pi ∀(i, j) ∈ D

yij + yji = 1 ∀(i, j) ∈ D

yij + yjk − yik ≤ 1 ∀(i, j), (j, k), (k, i) ∈ D, i 6= j 6= k

Sj − Si ≥ lij ∀(i, j) ∈ E

yij ∈ {0, 1} ∀(i, j) ∈ D

˜ with Mij an upper bound on Si + pi − Sj , e.g. di − rj in case of deadlines. (n(n − 1)/2 integer variables, n continuous variables)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 37 / 78 Sequencing and natural date variables : RCPSP P P Forbidden set F ∈ F : ∃k ∈ R, j∈F bjk > Bk . min j∈J wj Sj MIP issued from [AVT93]

Sj ≥ ri ∀i ∈ J

Sj − Si + Mij (1 − yij ) ≥ pi ∀(i, j) ∈ D X yij ≥ 1 ∀F ∈ F i,j∈F ,i6=j

yij + yji ≤ 1 ∀i, j ∈ J

yij + yji = 1 ∀(i, j) ∈ D

yij + yjk − yik ≤ 1 ∀(i, j), (j, k), (ki) ∈ D, i 6= j 6= k

Sj − Si ≥ lij ∀(i, j) ∈ E

yij ∈ {0, 1} ∀(i, j) ∈ D Let SY the set of feasible (S, y) vectors. (n(n − 1) binary variables, n continuous variables, |F| ??) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 38 / 78 X X f0jk = fj,n+1,k = Bk ∀j ∈ J , ∀k ∈ R j∈J j∈J X X fijk = fjik = bik ∀i ∈ J , ∀k ∈ R j6=i j6=i

0 ≤ fijk ≤ min(bik , bjk )yij ∀i, j ∈ J , i 6= j, ∀k ∈ R

A compact model is obtained A. et al. [AMR00].

Sequencing and natural date variables : compact model for the RCPSP

Replace exponential number of constraints P i,j∈F ,i6=j yij ≥ 1 ∀F ∈ F by resource flow networks (0 dummy source job and n + 1 dummy sink job)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78 A compact model is obtained A. et al. [AMR00].

Sequencing and natural date variables : compact model for the RCPSP

Replace exponential number of constraints P i,j∈F ,i6=j yij ≥ 1 ∀F ∈ F by resource flow networks (0 dummy source job and n + 1 dummy sink job)

X X f0jk = fj,n+1,k = Bk ∀j ∈ J , ∀k ∈ R j∈J j∈J X X fijk = fjik = bik ∀i ∈ J , ∀k ∈ R j6=i j6=i

0 ≤ fijk ≤ min(bik , bjk )yij ∀i, j ∈ J , i 6= j, ∀k ∈ R

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78 Sequencing and natural date variables : compact model for the RCPSP

Replace exponential number of constraints P i,j∈F ,i6=j yij ≥ 1 ∀F ∈ F by resource flow networks (0 dummy source job and n + 1 dummy sink job)

X X f0jk = fj,n+1,k = Bk ∀j ∈ J , ∀k ∈ R j∈J j∈J X X fijk = fjik = bik ∀i ∈ J , ∀k ∈ R j6=i j6=i

0 ≤ fijk ≤ min(bik , bjk )yij ∀i, j ∈ J , i 6= j, ∀k ∈ R

A compact model is obtained A. et al. [AMR00].

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78 (Facet-inducing) valid inequalities for the RCPSP polyhedron

Polyhedral study for the forbidden set-based formulation, Alvarez-Valdés et al. [AVT93] 2 let Q = conv({(S, y) ∈ Rn |(S, y) ∈ SY}) (the RCPSP polyhedron) 2 ∗ The dimension of Q is dQ = n − |E | − |D|.

Example : yij + yji ≤ 1 (a) induces a facet of Q if (i, j) 6∈ |E ∗| ∪ D (a) is a face of Q as (i) we can find a solution (S˜, y˜) with y˜ij = 1, y˜ji = 0 and (S˜, y˜) ∈ Q ∩ {(S, y)|yij + yji = 1} (possible if the time horizon is sufficiently large) (ii) we can find solutions (S˜, y˜) with y˜ij =y ˜ji = 0 with (S˜, y˜) 6∈ {(S, y)|yij + yji = 1}. (a) is of dimension dQ − 1 as by setting yij + yji = 1 we increment |D|

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78 (Facet-inducing) valid inequalities for the RCPSP polyhedron

Polyhedral study for the forbidden set-based formulation, Alvarez-Valdés et al. [AVT93] 2 let Q = conv({(S, y) ∈ Rn |(S, y) ∈ SY}) (the RCPSP polyhedron) 2 ∗ The dimension of Q is dQ = n − |E | − |D|.

Example : yij + yji ≤ 1 (a) induces a facet of Q if (i, j) 6∈ |E ∗| ∪ D (a) is a face of Q as (i) we can find a solution (S˜, y˜) with y˜ij = 1, y˜ji = 0 and (S˜, y˜) ∈ Q ∩ {(S, y)|yij + yji = 1} (possible if the time horizon is sufficiently large) (ii) we can find solutions (S˜, y˜) with y˜ij =y ˜ji = 0 with (S˜, y˜) 6∈ {(S, y)|yij + yji = 1}. (a) is of dimension dQ − 1 as by setting yij + yji = 1 we increment |D|

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78 (Facet-inducing) valid inequalities for the RCPSP polyhedron

Polyhedral study for the forbidden set-based formulation, Alvarez-Valdés et al. [AVT93] 2 let Q = conv({(S, y) ∈ Rn |(S, y) ∈ SY}) (the RCPSP polyhedron) 2 ∗ The dimension of Q is dQ = n − |E | − |D|.

Example : yij + yji ≤ 1 (a) induces a facet of Q if (i, j) 6∈ |E ∗| ∪ D (a) is a face of Q as (i) we can find a solution (S˜, y˜) with y˜ij = 1, y˜ji = 0 and (S˜, y˜) ∈ Q ∩ {(S, y)|yij + yji = 1} (possible if the time horizon is sufficiently large) (ii) we can find solutions (S˜, y˜) with y˜ij =y ˜ji = 0 with (S˜, y˜) 6∈ {(S, y)|yij + yji = 1}. (a) is of dimension dQ − 1 as by setting yij + yji = 1 we increment |D|

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78 (Facet-inducing) valid inequalities for the RCPSP polyhedron

Polyhedral study for the forbidden set-based formulation, Alvarez-Valdés et al. [AVT93] 2 let Q = conv({(S, y) ∈ Rn |(S, y) ∈ SY}) (the RCPSP polyhedron) 2 ∗ The dimension of Q is dQ = n − |E | − |D|.

Example : yij + yji ≤ 1 (a) induces a facet of Q if (i, j) 6∈ |E ∗| ∪ D (a) is a face of Q as (i) we can find a solution (S˜, y˜) with y˜ij = 1, y˜ji = 0 and (S˜, y˜) ∈ Q ∩ {(S, y)|yij + yji = 1} (possible if the time horizon is sufficiently large) (ii) we can find solutions (S˜, y˜) with y˜ij =y ˜ji = 0 with (S˜, y˜) 6∈ {(S, y)|yij + yji = 1}. (a) is of dimension dQ − 1 as by setting yij + yji = 1 we increment |D|

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78 (Facet-inducing) valid inequalities for the RCPSP polyhedron

Polyhedral study for the forbidden set-based formulation, Alvarez-Valdés et al. [AVT93] 2 let Q = conv({(S, y) ∈ Rn |(S, y) ∈ SY}) (the RCPSP polyhedron) 2 ∗ The dimension of Q is dQ = n − |E | − |D|.

Example : yij + yji ≤ 1 (a) induces a facet of Q if (i, j) 6∈ |E ∗| ∪ D (a) is a face of Q as (i) we can find a solution (S˜, y˜) with y˜ij = 1, y˜ji = 0 and (S˜, y˜) ∈ Q ∩ {(S, y)|yij + yji = 1} (possible if the time horizon is sufficiently large) (ii) we can find solutions (S˜, y˜) with y˜ij =y ˜ji = 0 with (S˜, y˜) 6∈ {(S, y)|yij + yji = 1}. (a) is of dimension dQ − 1 as by setting yij + yji = 1 we increment |D|

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78 More valid inequalities for disjunctive scheduling and the RCPSP

Let C denote the set of cliques in D. Applegate and Cook [AC91] derived cuts for the job-shop problem from one-machine scheduling valid inequalities (especially [DW90] inequalities) such as X Sj ≥ rj + yij pi ∀C ∈ C, ∀j ∈ C i∈C X X Sj ≥ rk + yij pi − yik (rl − rj ) ∀C ∈ C, ∀j ∈ C, i∈C\{j} i∈C Alvarez-Valdés et al. [AVT93] also proposed such cuts for the RCPSP. Let Γ−1(i) (Γ(i)) be the set of ancestors (descendants) of i in E. X X X Sj ≥ Si +pi + pk ykj + pk yik + pk (yik +ykj −1) k∈Γ(i) k∈Γ−1(j) k∈D(i)∪D(j) k6∈Γ(i)∪Γ−1(j) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 41 / 78 More valid inequalities for disjunctive scheduling and the RCPSP

Let C denote the set of cliques in D. Applegate and Cook [AC91] derived cuts for the job-shop problem from one-machine scheduling valid inequalities (especially [DW90] inequalities) such as X Sj ≥ rj + yij pi ∀C ∈ C, ∀j ∈ C i∈C X X Sj ≥ rk + yij pi − yik (rl − rj ) ∀C ∈ C, ∀j ∈ C, i∈C\{j} i∈C Alvarez-Valdés et al. [AVT93] also proposed such cuts for the RCPSP. Let Γ−1(i) (Γ(i)) be the set of ancestors (descendants) of i in E. X X X Sj ≥ Si +pi + pk ykj + pk yik + pk (yik +ykj −1) k∈Γ(i) k∈Γ−1(j) k∈D(i)∪D(j) k6∈Γ(i)∪Γ−1(j) Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 41 / 78 Constraint-propagation-based cutting planes for the RCPSP

So far the studied valid inequalities ignore the existence of a tight upper bound. Compute UB with an efficient heuristic and update distance matrix dij through constraint propagation (where dij is a lower bound of Sj − Si ). c Cuts can be derived from such updates. dij denotes the value of dij if constraint c is satisfied. We consider constraints such as k||h, k ≺ h, k h. k||h k≺h k h Example 1 : Sj − Si ≥ dij + dij ykh + dij yhk , for any 4 jobs i, j, k, h. h≺k Example 2 : xij ≥ xhk , ∀i, j, h, i, dij ≥ pi Demassey, A. and Michelon [DAM05]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78 Constraint-propagation-based cutting planes for the RCPSP

So far the studied valid inequalities ignore the existence of a tight upper bound. Compute UB with an efficient heuristic and update distance matrix dij through constraint propagation (where dij is a lower bound of Sj − Si ). c Cuts can be derived from such updates. dij denotes the value of dij if constraint c is satisfied. We consider constraints such as k||h, k ≺ h, k h. k||h k≺h k h Example 1 : Sj − Si ≥ dij + dij ykh + dij yhk , for any 4 jobs i, j, k, h. h≺k Example 2 : xij ≥ xhk , ∀i, j, h, i, dij ≥ pi Demassey, A. and Michelon [DAM05]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78 Constraint-propagation-based cutting planes for the RCPSP

So far the studied valid inequalities ignore the existence of a tight upper bound. Compute UB with an efficient heuristic and update distance matrix dij through constraint propagation (where dij is a lower bound of Sj − Si ). c Cuts can be derived from such updates. dij denotes the value of dij if constraint c is satisfied. We consider constraints such as k||h, k ≺ h, k h. k||h k≺h k h Example 1 : Sj − Si ≥ dij + dij ykh + dij yhk , for any 4 jobs i, j, k, h. h≺k Example 2 : xij ≥ xhk , ∀i, j, h, i, dij ≥ pi Demassey, A. and Michelon [DAM05]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78 Constraint-propagation-based cutting planes for the RCPSP

So far the studied valid inequalities ignore the existence of a tight upper bound. Compute UB with an efficient heuristic and update distance matrix dij through constraint propagation (where dij is a lower bound of Sj − Si ). c Cuts can be derived from such updates. dij denotes the value of dij if constraint c is satisfied. We consider constraints such as k||h, k ≺ h, k h. k||h k≺h k h Example 1 : Sj − Si ≥ dij + dij ykh + dij yhk , for any 4 jobs i, j, k, h. h≺k Example 2 : xij ≥ xhk , ∀i, j, h, i, dij ≥ pi Demassey, A. and Michelon [DAM05]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78 Constraint-propagation-based cutting planes for the RCPSP

So far the studied valid inequalities ignore the existence of a tight upper bound. Compute UB with an efficient heuristic and update distance matrix dij through constraint propagation (where dij is a lower bound of Sj − Si ). c Cuts can be derived from such updates. dij denotes the value of dij if constraint c is satisfied. We consider constraints such as k||h, k ≺ h, k h. k||h k≺h k h Example 1 : Sj − Si ≥ dij + dij ykh + dij yhk , for any 4 jobs i, j, k, h. h≺k Example 2 : xij ≥ xhk , ∀i, j, h, i, dij ≥ pi Demassey, A. and Michelon [DAM05]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 43 / 78 Flow and natural date variables

For one-machine and parallel machine problem, sequencing variables yij may be replaced by flow variables fij ∈ {0, 1} stating that i is an immediate predecessor of j in the sequence. P min i∈J wi Si X X f0j = fj,n+1 = m j∈J j∈J X X fij = fji = 1 ∀i ∈ J j∈J \{i} j∈J \{i}

Si ≥ ri ∀i ∈ J

Sj − Si + Mij (1 − fij ) ≥ pi ∀i, j ∈ J , i 6= j

Sj − Si ≥ lij ∀(i, j) ∈ E

fij ∈ {0, 1} ∀i, j ∈ J , i 6= j When there are no relase dates, machine assignment and subtour elimitation constraints can be used to avoid big−M coefficients. Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 44 / 78 Flow and natural date variables (variant)

Big-M constraints can be removed, by considering continuous variable Sij ≥ 0 which equals 0 unless i is the immediate predecessor of j. X X min wi Sij i∈J j∈J \{i} X X f0j = fj,n+1 = m j∈J j∈J X X fij = fji = 1 ∀i ∈ J j∈J \{i} j∈J \{i}

ri fij ≤ Sij ≤ d˜i fij ∀i, j ∈ J , i 6= j X X Sij − (Ski + pk fki ) ≥ 0 ∀i ∈ J j∈J \{i} k∈J \{i} X X Sjk − Sik ≥ lij ∀(i, j) ∈ E j∈J \{j} k∈J \{i}

fij ∈ {0, 1}, Sij ≥ 0 ∀i, j ∈ J , i 6= j Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 45 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 46 / 78 • Positional dates te, fe ≥ 0, for each e ∈ E start, end of event e (n var.) 2 • Assignment variable aie ∈ {0, 1} of job j to event j (n var.) X min wi Ci e∈E X aje = 1 ∀j ∈ J e∈E X aje = 1 ∀e ∈ E j∈J X te + pi aie = fe ∀e ∈ E j∈J X te − rj aje ≥ 0 ∀e ∈ E j∈J

te ≥ te−1 ∀e ∈ E

Ci + M(1 − aie) ≥ fe ∀i ∈ J , ∈ ∀e ∈ E

te ≥ 0 ∀e ∈ E

aie ∈ {0, 1} ∀i ∈ J , ∈ ∀e ∈ E

Positional date and assignment variables (1 mach)

Compact formulation without big − M coefficients ? Lasserre and Queyranne [LQ92] • Time horizon is divided in a set E of n positions (or events).

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78 2 • Assignment variable aie ∈ {0, 1} of job j to event j (n var.) X min wi Ci e∈E X aje = 1 ∀j ∈ J e∈E X aje = 1 ∀e ∈ E j∈J X te + pi aie = fe ∀e ∈ E j∈J X te − rj aje ≥ 0 ∀e ∈ E j∈J

te ≥ te−1 ∀e ∈ E

Ci + M(1 − aie) ≥ fe ∀i ∈ J , ∈ ∀e ∈ E

te ≥ 0 ∀e ∈ E

aie ∈ {0, 1} ∀i ∈ J , ∈ ∀e ∈ E

Positional date and assignment variables (1 mach)

Compact formulation without big − M coefficients ? Lasserre and Queyranne [LQ92] • Time horizon is divided in a set E of n positions (or events). • Positional dates te, fe ≥ 0, for each e ∈ E start, end of event e (n var.)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78 X min wi Ci e∈E X aje = 1 ∀j ∈ J e∈E X aje = 1 ∀e ∈ E j∈J X te + pi aie = fe ∀e ∈ E j∈J X te − rj aje ≥ 0 ∀e ∈ E j∈J

te ≥ te−1 ∀e ∈ E

Ci + M(1 − aie) ≥ fe ∀i ∈ J , ∈ ∀e ∈ E

te ≥ 0 ∀e ∈ E

aie ∈ {0, 1} ∀i ∈ J , ∈ ∀e ∈ E

Positional date and assignment variables (1 mach)

Compact formulation without big − M coefficients ? Lasserre and Queyranne [LQ92] • Time horizon is divided in a set E of n positions (or events). • Positional dates te, fe ≥ 0, for each e ∈ E start, end of event e (n var.) 2 • Assignment variable aie ∈ {0, 1} of job j to event j (n var.)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78 Positional date and assignment variables (1 mach)

Compact formulation without big − M coefficients ? Lasserre and Queyranne [LQ92] • Time horizon is divided in a set E of n positions (or events). • Positional dates te, fe ≥ 0, for each e ∈ E start, end of event e (n var.) 2 • Assignment variable aie ∈ {0, 1} of job j to event j (n var.) X min wi Ci e∈E X aje = 1 ∀j ∈ J e∈E X aje = 1 ∀e ∈ E j∈J X te + pi aie = fe ∀e ∈ E j∈J X te − rj aje ≥ 0 ∀e ∈ E j∈J

te ≥ te−1 ∀e ∈ E

Ci + M(1 − aie) ≥ fe ∀i ∈ J , ∈ ∀e ∈ E

te ≥ 0 ∀e ∈ E Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78 aie ∈ {0, 1} ∀i ∈ J , ∈ ∀e ∈ E Positional date and assignment variables (RCPSP)

How many events needed ? ∀i ∈ J either Si = 0 or ∃j ∈ J , Si = Sj + pj =⇒ |E| ≤ n + 1 Start/End Event-based formulation (SEE) Koné, A., Lopez, Mongeau [KALM11]

Variable xie ∈ {0, 1} : job i starts at event e.

Variable yie ∈ {0, 1} : job i ends at event e.

te time of event e 2n2 + 2n binary variables, (n + 1) continuous variables On/Off Event-based formulation (OOE) Koné, A., Lopez, Mongeau [KALM11]

Variable zie ∈ {0, 1} : zie is set to 1 if job i starts at event e or if it still being processed immediately after event e n2 binary variables, (n + 1) continuous variables

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 48 / 78 Positional date and assignment variables (RCPSP)

Example

e 0 1 2 3 x6e 0 1 0 0 y6e 0 0 1 0 t 2 3 4 5 6 7 8 z6e 0 1 0 0 x6t 0 1 0 0 0 0 0 x7e 0 1 0 0 x7t 0 1 0 0 0 0 0 y7e 0 0 0 1 z7e 0 1 1 0

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 49 / 78 Start/End Event-based formulation (SEE)

min tn

t0 = 0 2 tf ≥ te + pi xie − pi (1 − yif ) ∀(e, f ) ∈ E , f > e, ∀i ∈ J

te+1 ≥ te ∀e ∈ E, e < n X X xie = 1, yie = 1 ∀i ∈ J e∈E e∈E Xe Xn yiv + xiv ≤ 1 ∀i ∈ J , ∀e ∈ E v=0 v=e Xn Xe−1 yie0 + xje0 ≤ 1 ∀(i, j) ∈ E, ∀e ∈ E e0=e e0=0 X r0k = bik xi0 ∀k ∈ R i∈A X X rek = r(e−1)k + bik xie − bik yie ∀e ∈ E, e ≥ 1, k ∈ R i∈J i∈J

rek ≤ Bk ∀e ∈ E, k ∈ R

xie ∈ {0, 1}, yie ∈ {0, 1} ∀i ∈ J ∪ {0, n + 1}, ∀e ∈ E

te ≥ 0, rek ≥ 0 ∀e ∈ E, k ∈ R.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 50 / 78 On/Off Event-based formulation (OOE)

min Cmax

Cmax ≥ te + (zie − zi(e−1))pi ∀e ∈ E, ∀i ∈ J

t0 = 0, te+1 ≥ te ∀e 6= n − 1 ∈ E 2 tf ≥ te + ((zi−e − zi(e−1)) − (zif − zi(f −1)) − 1)pi ∀(e, f , i) ∈ E × J , f > e 6= 0 e−1 n−1 X X zie0 ≥ e(1 − (zie − zi(e−1))), zie0 ≥ e(1 + (zie − zi(e−1))) ∀e 6= 0 ∈ E e0=0 e0=e X zie ≥ 1 ∀i ∈ J e∈E e X zie + zje0 ≤ 1 + (1 − zie )e ∀e ∈ E, ∀(i, j) ∈ E e0=0 n−1 X bik zie ≤ Bk ∀e ∈ E, ∀k ∈ R i=0

te ≥ 0 ∀e ∈ E

zie ∈ {0, 1} ∀i ∈ J , ∀e ∈ E

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 51 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 52 / 78 t xij = 1 if job j starts immediately at the end of job i at time t.

X X X t min wj (t)xij i∈J j∈J \{i} t∈T

X X t xij = 1 ∀i ∈ J j∈J \{i} t∈T X 0 x0i = m i∈J X t X t+pi xji − xij = 0 ∀i ∈ J , ∀t ∈ T j∈J \{i} j∈J \{i} t xij ∈ {0, 1} ∀i ∈ J , ∀j ∈ J \ {i}, ∀t ∈ T t At least as strong LP relaxation as time-indexed one if variables xii are omitted except for i = 0 (dummy “depot” job) [PUPR10]

Arc-time indexed formulations

Mixing flow-based and time-indexed formulations.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78 X X X t min wj (t)xij i∈J j∈J \{i} t∈T

X X t xij = 1 ∀i ∈ J j∈J \{i} t∈T X 0 x0i = m i∈J X t X t+pi xji − xij = 0 ∀i ∈ J , ∀t ∈ T j∈J \{i} j∈J \{i} t xij ∈ {0, 1} ∀i ∈ J , ∀j ∈ J \ {i}, ∀t ∈ T t At least as strong LP relaxation as time-indexed one if variables xii are omitted except for i = 0 (dummy “depot” job) [PUPR10]

Arc-time indexed formulations

Mixing flow-based and time-indexed formulations. t xij = 1 if job j starts immediately at the end of job i at time t.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78 t At least as strong LP relaxation as time-indexed one if variables xii are omitted except for i = 0 (dummy “depot” job) [PUPR10]

Arc-time indexed formulations

Mixing flow-based and time-indexed formulations. t xij = 1 if job j starts immediately at the end of job i at time t.

X X X t min wj (t)xij i∈J j∈J \{i} t∈T

X X t xij = 1 ∀i ∈ J j∈J \{i} t∈T X 0 x0i = m i∈J X t X t+pi xji − xij = 0 ∀i ∈ J , ∀t ∈ T j∈J \{i} j∈J \{i} t xij ∈ {0, 1} ∀i ∈ J , ∀j ∈ J \ {i}, ∀t ∈ T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78 Arc-time indexed formulations

Mixing flow-based and time-indexed formulations. t xij = 1 if job j starts immediately at the end of job i at time t.

X X X t min wj (t)xij i∈J j∈J \{i} t∈T

X X t xij = 1 ∀i ∈ J j∈J \{i} t∈T X 0 x0i = m i∈J X t X t+pi xji − xij = 0 ∀i ∈ J , ∀t ∈ T j∈J \{i} j∈J \{i} t xij ∈ {0, 1} ∀i ∈ J , ∀j ∈ J \ {i}, ∀t ∈ T t At least as strong LP relaxation as time-indexed one if variables xii are omitted except for i = 0 (dummy “depot” job) [PUPR10] Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 54 / 78 X X min wj (t)xjt (one-machine problem) j∈J t∈T X xjt = 1 ∀j ∈ J t∈T t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

n+T P Pt Let PS = {x ∈ [0, 1] | j∈J s=t−pj +1 xjs ≤ 1, ∀t ∈ T} . PS is integral as the matrix is totally unimodular [vHS00]. Set of pseudo-schedules

Column generation for time-indexed formulations

How to deal with large-horizons when using time-indexed formulations ? =⇒ Dantzig-Wolfe decomposition.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78 n+T P Pt Let PS = {x ∈ [0, 1] | j∈J s=t−pj +1 xjs ≤ 1, ∀t ∈ T} . PS is integral as the matrix is totally unimodular [vHS00]. Set of pseudo-schedules

Column generation for time-indexed formulations

How to deal with large-horizons when using time-indexed formulations ? =⇒ Dantzig-Wolfe decomposition.

X X min wj (t)xjt (one-machine problem) j∈J t∈T X xjt = 1 ∀j ∈ J t∈T t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78 PS is integral as the matrix is totally unimodular [vHS00]. Set of pseudo-schedules

Column generation for time-indexed formulations

How to deal with large-horizons when using time-indexed formulations ? =⇒ Dantzig-Wolfe decomposition.

X X min wj (t)xjt (one-machine problem) j∈J t∈T X xjt = 1 ∀j ∈ J t∈T t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

n+T P Pt Let PS = {x ∈ [0, 1] | j∈J s=t−pj +1 xjs ≤ 1, ∀t ∈ T} .

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78 Column generation for time-indexed formulations

How to deal with large-horizons when using time-indexed formulations ? =⇒ Dantzig-Wolfe decomposition.

X X min wj (t)xjt (one-machine problem) j∈J t∈T X xjt = 1 ∀j ∈ J t∈T t X X xjs ≤ 1 ∀t ∈ T j∈J s=t−pj +1

xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T

n+T P Pt Let PS = {x ∈ [0, 1] | j∈J s=t−pj +1 xjs ≤ 1, ∀t ∈ T} . PS is integral as the matrix is totally unimodular [vHS00]. Set of pseudo-schedules

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78 Equivalent LP (of equal LP relaxation value)

r   X X X q min  wj (t)ajt  λq q=1 j∈J t∈T r ! X X q ajt λq = 1 ∀j ∈ J q=1 t∈T r X λq = 1 q=1

0 ≤ λq ≤ 1 q = 1,..., |T |

Start with a restricted set of pseudo schedules and solve the LP relaxation by column generation.

Column generation for time-indexed formulations

Pr q We have x = q=1 λqa , ∀x extreme point of conv({PS}) where Pr q st q=1 λq = 1, λ ≥ 0 and a is the q point of PS.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78 Start with a restricted set of pseudo schedules and solve the LP relaxation by column generation.

Column generation for time-indexed formulations

Pr q We have x = q=1 λqa , ∀x extreme point of conv({PS}) where Pr q st q=1 λq = 1, λ ≥ 0 and a is the q point of PS. Equivalent LP (of equal LP relaxation value)

r   X X X q min  wj (t)ajt  λq q=1 j∈J t∈T r ! X X q ajt λq = 1 ∀j ∈ J q=1 t∈T r X λq = 1 q=1

0 ≤ λq ≤ 1 q = 1,..., |T |

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78 Column generation for time-indexed formulations

Pr q We have x = q=1 λqa , ∀x extreme point of conv({PS}) where Pr q st q=1 λq = 1, λ ≥ 0 and a is the q point of PS. Equivalent LP (of equal LP relaxation value)

r   X X X q min  wj (t)ajt  λq q=1 j∈J t∈T r ! X X q ajt λq = 1 ∀j ∈ J q=1 t∈T r X λq = 1 q=1

0 ≤ λq ≤ 1 q = 1,..., |T |

Start with a restricted set of pseudo schedules and solve the LP relaxation by column generation. Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78 (πj )

(γ)

X X q − πj ( ajt ) − γ j∈J t∈T X X q = (wj (t) − πj )ajt − γ j∈J t∈T Finding a negative reduced cost variable amounts to find a shortest path in an acyclic graph with O(nT ) arcs.

Column generation for time-indexed formulations

r X X X q min ( wj (t)ajt )λq r ! q=1 j∈J t∈T X X q ajt λq = 1 ∀j ∈ J q=1 t∈T r X λq = 1 q=1

0 ≤ λq ≤ 1 q = 1,..., |T | Reduced cost of a pseudo schedule q X X q c˜ = wj (t)ajt j∈J t∈T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78 X X q = (wj (t) − πj )ajt − γ j∈J t∈T Finding a negative reduced cost variable amounts to find a shortest path in an acyclic graph with O(nT ) arcs.

Column generation for time-indexed formulations

r X X X q min ( wj (t)ajt )λq r ! q=1 j∈J t∈T X X q ajt λq = 1 ∀j ∈ J (πj ) q=1 t∈T r X λq = 1 (γ) q=1

0 ≤ λq ≤ 1 q = 1,..., |T | Reduced cost of a pseudo schedule q X X q X X q c˜ = wj (t)ajt − πj ( ajt ) − γ j∈J t∈T j∈J t∈T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78 Finding a negative reduced cost variable amounts to find a shortest path in an acyclic graph with O(nT ) arcs.

Column generation for time-indexed formulations

r X X X q min ( wj (t)ajt )λq r ! q=1 j∈J t∈T X X q ajt λq = 1 ∀j ∈ J (πj ) q=1 t∈T r X λq = 1 (γ) q=1

0 ≤ λq ≤ 1 q = 1,..., |T | Reduced cost of a pseudo schedule q X X q X X q c˜ = wj (t)ajt − πj ( ajt ) − γ j∈J t∈T j∈J t∈T X X q = (wj (t) − πj )ajt − γ j∈J t∈T

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78 Column generation for time-indexed formulations

r X X X q min ( wj (t)ajt )λq r ! q=1 j∈J t∈T X X q ajt λq = 1 ∀j ∈ J (πj ) q=1 t∈T r X λq = 1 (γ) q=1

0 ≤ λq ≤ 1 q = 1,..., |T | Reduced cost of a pseudo schedule q X X q X X q c˜ = wj (t)ajt − πj ( ajt ) − γ j∈J t∈T j∈J t∈T X X q = (wj (t) − πj )ajt − γ j∈J t∈T Finding a negative reduced cost variable amounts to find a shortest path in an acyclic graph with O(nT ) arcs. Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78 Column generation for time-indexed RCPSP (1)

How to strengthen the time-indexed formulation ? Mingozzi et al. [MM98] X X min wj (t)xjt j∈J t∈T

X xjt = 1 ∀j ∈ J t∈T t X X bjk xjs ≤ Bk ∀t ∈ T , ∀k ∈ R j∈J s=t−pj +1 T T X X txjs − txis ≥ lij ∀(i, j) ∈ E t=0 t=0

xjt ∈ {0, 1}∀ j ∈ J , ∀t ∈ T

Integer Dantzig-Wolfe decomposition of resource constraints

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 58 / 78 Column generation for time-indexed RCPSP (2)

Introduce additional variables  P PT b y ≤ B , ∀t ∈ T , ∀k ∈ R  j∈J s=0 jk js k n+T PT y ∈ {0, 1} s=0 yjs = pj , ∀j ∈ J   xjt ≥ yjt − yj,t−1, ∀j ∈ J Perform an integer Danzig-Wolfe decomposition of n o n+T P PT PS = y ∈ {0, 1} j∈J s=0 bjk yjs ≤ Bk , ∀t ∈ T , ∀k ∈ R Subproblem is decomposable for each t ∈ T and each t ∈ Rn yielding mT multidimentional knapsack problems. Better LP relaxation than the time-indexed formulation, but practically intractable.

Best known lower bounds for the RCPSP (before “SAT” results [Hor10]) where obtained by computing relaxation of this formulation ( Brucker and Knust [BK00], Baptiste, A., Demassey Michelon [DABM04], Baptiste and Demassey[BD04]) integrating CP-based filtering and cuts.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 59 / 78 Column generation for time-indexed RCPSP (2)

Introduce additional variables  P PT b y ≤ B , ∀t ∈ T , ∀k ∈ R  j∈J s=0 jk js k n+T PT y ∈ {0, 1} s=0 yjs = pj , ∀j ∈ J   xjt ≥ yjt − yj,t−1, ∀j ∈ J Perform an integer Danzig-Wolfe decomposition of n o n+T P PT PS = y ∈ {0, 1} j∈J s=0 bjk yjs ≤ Bk , ∀t ∈ T , ∀k ∈ R Subproblem is decomposable for each t ∈ T and each t ∈ Rn yielding mT multidimentional knapsack problems. Better LP relaxation than the time-indexed formulation, but practically intractable.

Best known lower bounds for the RCPSP (before “SAT” results [Hor10]) where obtained by computing relaxation of this formulation ( Brucker and Knust [BK00], Baptiste, A., Demassey Michelon [DABM04], Baptiste and Demassey[BD04]) integrating CP-based filtering and cuts.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 59 / 78 Column generation for time-indexed RCPSP (2)

Introduce additional variables  P PT b y ≤ B , ∀t ∈ T , ∀k ∈ R  j∈J s=0 jk js k n+T PT y ∈ {0, 1} s=0 yjs = pj , ∀j ∈ J   xjt ≥ yjt − yj,t−1, ∀j ∈ J Perform an integer Danzig-Wolfe decomposition of n o n+T P PT PS = y ∈ {0, 1} j∈J s=0 bjk yjs ≤ Bk , ∀t ∈ T , ∀k ∈ R Subproblem is decomposable for each t ∈ T and each t ∈ Rn yielding mT multidimentional knapsack problems. Better LP relaxation than the time-indexed formulation, but practically intractable.

Best known lower bounds for the RCPSP (before “SAT” results [Hor10]) where obtained by computing relaxation of this formulation ( Brucker and Knust [BK00], Baptiste, A., Demassey Michelon [DABM04], Baptiste and Demassey[BD04]) integrating CP-based filtering and cuts.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 59 / 78 Column generation for time-indexed RCPSP (2)

Introduce additional variables  P PT b y ≤ B , ∀t ∈ T , ∀k ∈ R  j∈J s=0 jk js k n+T PT y ∈ {0, 1} s=0 yjs = pj , ∀j ∈ J   xjt ≥ yjt − yj,t−1, ∀j ∈ J Perform an integer Danzig-Wolfe decomposition of n o n+T P PT PS = y ∈ {0, 1} j∈J s=0 bjk yjs ≤ Bk , ∀t ∈ T , ∀k ∈ R Subproblem is decomposable for each t ∈ T and each t ∈ Rn yielding mT multidimentional knapsack problems. Better LP relaxation than the time-indexed formulation, but practically intractable.

Best known lower bounds for the RCPSP (before “SAT” results [Hor10]) where obtained by computing relaxation of this formulation ( Brucker and Knust [BK00], Baptiste, A., Demassey Michelon [DABM04], Baptiste and Demassey[BD04]) integrating CP-based filtering and cuts.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 59 / 78 Column generation for time-indexed RCPSP (2)

Introduce additional variables  P PT b y ≤ B , ∀t ∈ T , ∀k ∈ R  j∈J s=0 jk js k n+T PT y ∈ {0, 1} s=0 yjs = pj , ∀j ∈ J   xjt ≥ yjt − yj,t−1, ∀j ∈ J Perform an integer Danzig-Wolfe decomposition of n o n+T P PT PS = y ∈ {0, 1} j∈J s=0 bjk yjs ≤ Bk , ∀t ∈ T , ∀k ∈ R Subproblem is decomposable for each t ∈ T and each t ∈ Rn yielding mT multidimentional knapsack problems. Better LP relaxation than the time-indexed formulation, but practically intractable.

Best known lower bounds for the RCPSP (before “SAT” results [Hor10]) where obtained by computing relaxation of this formulation ( Brucker and Knust [BK00], Baptiste, A., Demassey Michelon [DABM04], Baptiste and Demassey[BD04]) integrating CP-based filtering and cuts.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 59 / 78 More on Column generation for time-indexed RCPSP

Can we combine strengthening the TI formulation and reduction of the number of variables ? (Cut and Column generation directly on the time-indexed formulation Sadykov and Vanderbeck [SV11] ?) Other decomposition schemes : partition the job in m subsets so that there is a feasible single machine schedule for each subset. van den Akker et al. [vHv99, vHv06, Mv07]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 60 / 78 More on Column generation for time-indexed RCPSP

Can we combine strengthening the TI formulation and reduction of the number of variables ? (Cut and Column generation directly on the time-indexed formulation Sadykov and Vanderbeck [SV11] ?) Other decomposition schemes : partition the job in m subsets so that there is a feasible single machine schedule for each subset. van den Akker et al. [vHv99, vHv06, Mv07]

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 60 / 78 Outline

1 Introduction

2 Polyhedral studies and cutting plane generation

3 (Mixed) integer programming for scheduling problems Time-indexed variables Total unimodularity Sequencing and natural date variables Flow (TSP) and natural date variables Positional date and assignment variables Hybrid formulations

4 Column generation

5 A few Computational results

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 61 / 78 Machine scheduling results (1)

Efficiency of Sousa and Wolsey/van den Akker et al. cuts for lower bound computation (from van den Akker et al. [vHS99])

Columns 1(2) : average or maximal gap for inequalities with rhs 1(2) Columns n1(n2) : number of integer solutions found by cutting plane generation with inequalities with rhs 1 (2)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 62 / 78 Machine scheduling results (2)

Column-and-cut generation (Sadykov and Vanderbeck 2011)

[R] Time-indexed formulation [M] Dantzig-Wolfe decomposition of [vHS00] Column cpu : time to solve the LP relaxation

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 63 / 78 Machine scheduling results results (3)

Positional and sequencing based formulations cannot be discarded but have to be combined with heuristics (Hoogeveen and van de Velde [Hv95], Danna et al. [DRL05]) Comparison of formulations for parallel machine scheduling Unlu and Mason [UM10] Recommendation is to use time-indexed models for small durations and flow-based model for other cases

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 64 / 78 RCPSP results : comparison of ILP formulations vs CP

(from Kone et al.[KALM11])

No formulation dominates the other, the accurate formulation has to be chosen depending on instance charactristics ILP formulations are not dominated by CP

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 65 / 78 RCPSP results : a cyclic example, MIP vs CP

Instances n DSP hybrid/HD hybrid/GS CP ILP+ (P+) CG (DW +) λ0 λ λ dsp hyb hyb CP ILP+ CG λ λ CPUs λ CPUs λ λ CPUs λ CPUs adpcm-st231.1 86 80 -- -- 80 -- 55 301 52 adpcm-st231.2 142 139 -- -- 139 -- 82 305 82 gsm-st231.1 30 30 29 2 28 2 28 28∗ 256 25 8 24 gsm-st231.2 101 93 -- -- 93 -- 61 301 59 gsm-st231.5 44 36 36 10 36 17 - 36∗ 3343 36 37 26 gsm-st231.6 30 27 27 3 27 4 27 27∗ 7 27 3 17 gsm-st231.7 44 41 41 13 41 17 41 41∗ 256 41 66 28 gsm-st231.8 14 12 12 0.3 12 0.3 - 12∗ 0.6 12 <0.1 9 gsm-st231.9 34 32 32 2 34 4 32 32∗ 62 31 12 28 gsm-st231.10 10 8 8 0.2 8 0.1 8∗ 8∗ 0.2 8 <0.1 6 gsm-st231.11 26 24 24 1 24 1 24 24∗ 5 24 1.5 20 gsm-st231.12 15 13 13 0.3 13 0.4 13 13∗ 0.7 13 <0.1 10 gsm-st231.13 46 43 43 168 42 440 43 41 11265 41 125 27 gsm-st231.14 39 34 34 6 34 10 34 33∗ 3766 33 17 20 gsm-st231.15 15 12 12 0.3 12 0.3 12 12∗ 0.9 12 <0.1 9 gsm-st231.16 65 59 59 145 59 144 60 58 8656 48 300 38 gsm-st231.17 38 33 33 202 -- 33 32 12786 33 19 23 gsm-st231.18 214 194 -- -- 193 -- -- 120 gsm-st231.19 19 15 15 0.4 15 0.6 15 15∗ 1.6 15 0.2 12 gsm-st231.20 23 20 20 1 20 1.4 20 20∗ 17 20 0.9 13 gsm-st231.21 33 30 30 6 30 6 31 30∗ 6105 29 7 20 gsm-st231.22 31 29 29 3 29 4 29 29∗ 51 28 7 18 gsm-st231.25 60 55 -- 55 75 57 55∗ 11589 48 300 37 gsm-st231.29 44 42 42 13 42 15 42 42∗ 63 42 68 28 gsm-st231.30 30 25 25 3 25 6 25 25∗ 14 25 6 16 gsm-st231.31 44 39 39 13 39 17 39 39∗ 833 39 59 26 gsm-st231.32 32 30 30 4 30 5 30 30∗ 11 30 5 21 gsm-st231.33 59 52 -- -- 46 45 9697 46 300 33 gsm-st231.34 10 8 7 <0.1 7 0.1 7∗ 7∗ 0.2 7 <0.1 6 gsm-st231.35 18 16 14 0.4 14 0.5 14 14∗ 4 14 0.2 11 gsm-st231.36 31 29 24 2 24 10 24 24∗ 321 24 4 18 gsm-st231.39 26 23 21 1.5 21 3 21 21∗ 376 20 2 15 gsm-st231.40 21 17 16 0.5 18 1.3 17 16∗ 28 16 0.6 12 gsm-st231.41 60 50 -- 47 286 49 46 10069 46 300 34 gsm-st231.42 23 19 18 0.7 19 4 18 18∗ 20 18 1 14 gsm-st231.43 26 23 21 2 22 2 20 20∗ 101 20 2 15 #best(opt) 23 25 25 27(2) 27(27)

From [AABH12], on a cyclic RCPSP with unit duration tasks, CP is able to find very good solutions but ILP is better at proving optimality. Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 66 / 78 Conclusion

Problems of increasing size are solved by MILP models with the help of Strong valid inequalities Efficient heuristics Benefits from hybrid-methods (CP/MILP/LS) LP Lower bounds are often still too slow : cut-and-column generation perspective. “In retrospect it is interesting to note that the original problem that started my research is still outstanding– namely the problem of planning or scheduling dynamically over time, particularly planning dynamically under uncertainty. If such a problem could be successfully solved it could (eventually through better planning) contribute to the well-being and stability of the world.” (George Dantzig)

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 67 / 78 ReferencesI

C. Artigues, M. A. Ayala, A. Benabid, and Claire Hanen, Lower and upper bounds for the resource-constrained modulo scheduling problem, 13th International Conference on and Scheduling, 2012, pp. 82–85. D. Applegate and W. Cook, A computational study of job-shop scheduling, ORSA Journal on Computing 3 (1991), no. 2, 149–156. C. Artigues, Ph. Michelon, and S. Reusser, Insertion techniques for static and dynamic resource-constrained project scheduling, European Journal of Operational Research 149 (2000), no. 2, 249–267.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 68 / 78 ReferencesII

R. Alvarez-Valdés and J. Tamarit, The project scheduling polyhedron : Dimension, facets and lifting theorems, European Journal of Operational Research 67 (1993), no. 2, 204–220. E. Balas, On the facial structure of scheduling polyhedra, Mathematical Programming Essays in Honor of George B. Dantzig Part I, Mathematical Programming Studies, vol. 24, Springer, 1985, pp. 179–218. P Baptiste and S Demassey, Tight LP bounds for resource constrained project scheduling, OR Spectrum 26 (2004), no. 2, 251–262. P. Brucker and S. Knust, A linear programming and constraint propagation-based lower bound for the rcpsp, European Journal of Operational Research 127 (2000), 355–362.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 69 / 78 ReferencesIII

J. R. Correa and A. S. Shulz, Single machine scheduling with precedence constraints, Integer Programming and Combinatoiral Optimization (D. Bienstock and G. Nemhauser, eds.), Lecture Notes in , vol. 3064, 2004, pp. 145–168. S. Demassey, C. Artigues, P. Baptiste, and P. Michelon, Lagrangean relaxation-based lower bounds for the RCPSP, 8th International Workshop on Project Management and Scheduling (Nancy,France), 2004, pp. 76–79. S. Demassey, C. Artigues, and P. Michelon, Constraint propagation-based cutting planes : an application to the rcpsp, INFORMS Journal on Computing 17 (2005), no. 1, 52–65.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 70 / 78 ReferencesIV

E. Danna, E. Rothberg, and C. Le Pape, Exploring relaxation induced neighborhoods to improve mip solutions, Mathematical Programming 102 (2005), no. 1, 71–90. M.E. Dyer and L.A. Wolsey, Formulating the single machine problem with release dates as a mixed integer program, Discrete Applied Mathematics 26 (1990), 255–270. M. X. Goemans, M. Queyranne, A. S. Shulz, M. Skutella, and Y. Wang, Single machine scheduling with release dates, SIAM Journal on Discrete Mathematics 15 (2002), 165–192. J. R. Hardin, G. L. Nemhauser, and M. W. P. Savelsbergh, Strong valid inequalities for the resource-constrained scheduling problem with uniform resource requirements, Discrete Optimization 5 (2008), 19–35.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 71 / 78 ReferencesV

A. Horbach, A boolean satisfiability approach to the resource-constrained project scheduling problem, Annals of 181 (2010), 89–107. H. Hoogeveen and S. L. van de Velde, Formulating a scheduling problem with almost identical jobs by using positional completion times, IPCO, 1995, pp. 292–306. O. Koné, C. Artigues, P. Lopez, and M. Mongeau, Event-based milp models for resource-constrained project scheduling problems, Computers and Operations Research 38 (2011), no. 1, 3–13. J.B. Lasserre and M. Queyranne, Generic scheduling polyhedral and a new mixed integer formulation for single-machine scheduling, Proceedings of the second IPCO conference (Carnegie-Mellon University Pittsburgh), 1992, pp. 136–149.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 72 / 78 ReferencesVI

A. Mingozzi and V. Maniezzo, An exact algorithm for the resource constrained project scheduling problem based on a new mathematical formulation, Management Science 44 (1998), 714–729. J. A. Hoogeveen M. van den Akker, Guido Diepen, A column generation based destructive lower bound for resource constrained project scheduling problems, CPAIOR, 2007, pp. 376–390. G. Nemhauser and M. Savelsbergh, A cutting plane algorithm for the single machine scheduling problem with release times, Combinatorial Optimization : New Frontiers in the Theory and Practice (M. Akgul, H. Hamacher, and S. Tufecki, eds.), NATO ASI Series F : Computer and Systems Sciences, vol. 82, Springer-Verlag, 1992, pp. 63–84.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 73 / 78 ReferencesVII

C.N. Potts, An algorithm for the single machine sequencing problem with precedence constraints, Mathematical Programming Study 13 (1980), 78–87. A. Pessoa, E. Uchoa, M. Poggi de Aragão, and R. Rodrigues, Exact algorithm over an arc-time-indexed formulation for parallel machine scheduling problems, Mathematical Programming Computation 2 (2010), 259–290. M. Queyranne and A. S. Schulz, Polyhedral approaches to machine scheduling, Tech. Report 408/1994, TechnischeUniversitätBerlin, 1994.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 74 / 78 ReferencesVIII

, Scheduling unit jobs with compatible release dates on parallel machines with nonstationary speeds, nteger Programming and Combinatorial Optimization (IPCO 1995) (E. Balas and J. Clausen, eds.), Lecture Notes in Computer Science, vol. 920, 1995, pp. 307–320. M. Queyranne, Structure of a simple scheduling polyhedron, Mathematical Programming 58 (1993), 263–285. A. S. Schulz, Polytopes and scheduling, Ph.D. thesis, Technischen Universität Berlin, 1996.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 75 / 78 ReferencesIX

R. Sadykov and F. Vanderbeck, Machine scheduling by column-and-row generation on the time-indexed formulation, 10th International Workshop on Models and Algorithms for Planning and Scheduling Problems (Nymburk, Czech Republic), 2011, pp. 55–57. J. P. Sousa and L. A. Wolsey, A time indexed formulation of non-preemptive single machine scheduling problems, Mathematical Programming 54 (1992), 353–367. Y. Unlu and S. J. Mason, Evaluation of mixed integer programming formulations for non-preemptive parallel machine scheduling problems, Computers & Industrial Engineering 58 (2010), no. 4, 785–800.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 76 / 78 ReferencesX

J. M. van den Akker, C.P.M. Van Hoesel, and M.W.P. Savelsbergh, A polyhedral approach to single-machine scheduling problems, Mathematical Programming 85 (1999), 541–572. M. van den Akker, C. A. J. Hurkens, and M. W. P. Savelsbergh, Time-indexed formulations for machine scheduling problems : Column generation, INFORMS Journal on Computing 12 (2000), no. 2, 111–124. M. van den Akker, J. A. Hoogeveen, and S. L. van de Velde, Parallel machine scheduling by column generation, Operations Research 47 (1999), no. 6, 862–872. M. van den Akker, J. A. Hoogeveen, and J. W. van Kempen, Parallel machine scheduling through column generation : Minimax objective functions, ESA, 2006, pp. 649–659.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 77 / 78 ReferencesXI

H. Waterer, E.L. Johnson, P. Nobili, and M.W.P. Savelsbergh, The relation of time indexed formulations of single machine scheduling problems to the node packing problem, Mathematical Programming (2002), no. 93, 477–494.

Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 78 / 78