Scheduling and (Integer) Linear Programming
Christian Artigues
LAAS - CNRS & Université de Toulouse, France artigues@laas.fr
Master Class CPAIOR 2012 - Nantes
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 1 / 78
Scheduling and (Integer) Linear Programming Christian Artigues LAAS - - PowerPoint PPT Presentation
Scheduling and (Integer) Linear Programming Christian Artigues LAAS - CNRS & Universit de Toulouse, France artigues@laas.fr Master Class CPAIOR 2012 - Nantes Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012,
LAAS - CNRS & Université de Toulouse, France artigues@laas.fr
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 1 / 78
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
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 3 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 4 / 78
1 2 3 4 5 6 J1 J2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 5 / 78
1 2 3 4 5 6 J1 J2
S1 S2 S
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78
i=1 λiSi, |S| i=1 λi = 1
1 2 3 4 5 6 J1 J2
S1 S2 S conv(S)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78
S∈S f (S) =
S∈conv(S) f (S)
1 2 3 4 5 6 J1 J2
S1 S2 S conv(S)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78
S∈conv(S) f (S) is a LP.
1 2 3 4 5 6 J1 J2
S1 S2 S conv(S)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 6 / 78
S1 S2 3S1 + 5S2 ≥ 7 : a valid inequality
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78
S1 S2 P ∩ {S|S1 + 3S2 = 6} : a 0-dimensional face (3, 1)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78
S1 S2 P ∩ {S|2S1 + 3S2 = 9} : a facet
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78
S1 S2 P ∩ {S|2S1 + 3S2 = 9} : a facet
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 7 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 8 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 9 / 78
1 2 3 4 5 1 3 2 2 1 −1
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 10 / 78
i∈A xi ≥ f (A), ∀A⊆N} supermodular polyhedron
1 = f ({1})
j = f ({1, . . . , j}) − f ({1, . . . , j − 1}),
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 11 / 78
i∈A xi ≥ f (A), ∀A⊆N} supermodular polyhedron
1 = f ({1})
j = f ({1, . . . , j}) − f ({1, . . . , j − 1}),
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 11 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈A pjCj ≥ g(A), ∀A ⊆ J } where
2
j∈A p2 j
i∈J wiCi is obtained by sorting jobs in non
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 12 / 78
j∈S pjCj ≥ g(S) defines a facet for conv(Q).
i∈J wiCi coincides with the Smith’s
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78
j∈S pjCj ≥ g(S) defines a facet for conv(Q).
i∈J wiCi coincides with the Smith’s
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78
j∈S pjCj ≥ g(S) defines a facet for conv(Q).
i∈J wiCi coincides with the Smith’s
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78
j∈S pjCj ≥ g(S) defines a facet for conv(Q).
i∈J wiCi coincides with the Smith’s
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78
j∈S pjCj ≥ g(S) defines a facet for conv(Q).
i∈J wiCi coincides with the Smith’s
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 13 / 78
S∈S wiSi is NP-hard =
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78
S∈S wiSi is NP-hard =
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78
S∈S wiSi is NP-hard =
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78
S∈S wiSi is NP-hard =
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 14 / 78
S1 S2
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78
S1 S2 3S1 + 5S2 ≥ 7
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78
S1 S2 S1 + 3S2 ≥ 6
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78
S1 S2 2S1 + 3S2 ≥ 9
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78
S1 S2 2S1 + 3S2 ≥ 9
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 15 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 16 / 78
S1 S2 S 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
S1 S2 S 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
S1 S2 S 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
S1 S2 S
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
S1 S2 S
0 1 2 3 4 5 6 J1 J2
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J |Si≤t≤Si+pi−1 bik ≤ Bk, ∀t ∈ T , ∀k ∈ R.
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
i∈J wj(Sj) models most standard objectives
i∈J (αi max(0, di − Ci) + βi max(0, Ci − di)
i∈J wiUi
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78
i∈J wj(Sj) models most standard objectives
i∈J (αi max(0, di − Ci) + βi max(0, Ci − di)
i∈J wiUi
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78
i∈J wj(Sj) models most standard objectives
i∈J (αi max(0, di − Ci) + βi max(0, Ci − di)
i∈J wiUi
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78
i∈J wj(Sj) models most standard objectives
i∈J (αi max(0, di − Ci) + βi max(0, Ci − di)
i∈J wiUi
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 19 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 20 / 78
t=0 txit
T
T
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78
t=0 txit
T
T
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78
t=0 txit
T
T
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78
t=0 txit
T
t+lij−1
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 21 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 22 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 23 / 78
j∈J wj(Sj).
t=0 xit)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 24 / 78
min
wj(t)xjt
xjt = 1 ∀j ∈ J
T
xis +
t+lij −1
xjs ≤ 1 ∀(i, j) ∈ E, ∀t ∈ T xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T Totally unimodular matrix, integer polyhedron min
wj(t)xjt
xjt = 1 ∀j ∈ J
T
txjs −
T
txis ≥ lij ∀(i, j) ∈ E xjt ∈ {0, 1} ∀j ∈ J , ∀t ∈ T Polyhedron is not integer !
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 25 / 78
t
t+∆−1
t
i=j pi}
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 26 / 78
T
t
t+∆−1
T
n
t
t+∆−1
t+∆−1
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 27 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 28 / 78
j1 j2 i ∈ J\{j1, j2} ≤ 2 u1 − pj1 + 1 u1 + ∆1 − 1 u2 − pj1 − v u1 + ∆1 + z u2 − pj1 + 1 u2 + ∆2 − 1 u1 − pj2 + ∆1 u1 max{u2 − v, u1 + ∆1} − pj2 min{u1 + ∆1 + z, u2} u2 − pj2 + ∆2 u2 u1 − pi + ∆1 + z + 1 u1 u2 − pi + 1u1 + ∆1 − 1 u2 − pi + ∆2u2 − v − 1 L M U
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 29 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq + t+v s=t−pj+1 xjs ≤ |F| − 1 is a valid
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq + t+v s=t−pj+1 xjs ≤ |F| − 1 is a valid
C\{i} bi ≤ B, ∀i ∈ C.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq + t+v s=t−pj+1 xjs ≤ |F| − 1 is a valid
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq +
s=t−pj+1 xjs ≤ |F| − 1 is a valid
C\{i} bi ≤ B, ∀i ∈ C.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq +
s=t−pj+1 xjs ≤ |F| − 1 is a valid
C\{i} bi ≤ B, ∀i ∈ C.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
s=t−pj+1 xjs ≤ |F| − 1 is a valid inequality ∀t ∈ T .
s=t−pj+1+v xiq +
s=t−pj+1 xjs ≤ |F| − 1 is a valid
C\{i} bi ≤ B, ∀i ∈ C.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 30 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 31 / 78
i∈D\{j} yijpi + pj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78
i∈D\{j} yijpi + pj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78
i∈D\{j} yijpi + pj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78
i∈D\{j} yijpi + pj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78
i∈D\{j} yijpi + pj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 32 / 78
i<j yijpi + i>j(1 − yji)pi + pj
1≤i<j≤n(wjpi − wipj)yij + 1≤i<j≤n wipj + j∈J wjpj
1≤i<j≤n(wjpi − wipj)yij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78
i<j yijpi + i>j(1 − yji)pi + pj
1≤i<j≤n(wjpi − wipj)yij + 1≤i<j≤n wipj + j∈J wjpj
1≤i<j≤n(wjpi − wipj)yij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78
i<j yijpi + i>j(1 − yji)pi + pj
1≤i<j≤n(wjpi − wipj)yij + 1≤i<j≤n wipj + j∈J wjpj
1≤i<j≤n(wjpi − wipj)yij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78
i<j yijpi + i>j(1 − yji)pi + pj
1≤i<j≤n(wjpi − wipj)yij + 1≤i<j≤n wipj + j∈J wjpj
1≤i<j≤n(wjpi − wipj)yij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 33 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 34 / 78
i,j∈J piwjyij + j∈J pjwj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 35 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78
j∈J wjSj
k<i,k=j pk(yik−yjk)+ k>i,k=j pkykj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 36 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 37 / 78
j∈F bjk > Bk. min j∈J wjSj
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 38 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 39 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 40 / 78
k∈Γ(i)∪Γ−1(j)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 41 / 78
k∈Γ(i)∪Γ−1(j)
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 41 / 78
ij denotes the value of
ij
ij
ij
ij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78
ij denotes the value of
ij
ij
ij
ij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78
ij denotes the value of
ij
ij
ij
ij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78
ij denotes the value of
ij
ij
ij
ij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78
ij denotes the value of
ij
ij
ij
ij
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 42 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 43 / 78
i∈J wiSi
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 44 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 45 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 46 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 47 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 48 / 78
e 1 2 3 x6e 1 y6e 1 z6e 1 x7e 1 y7e 1 z7e 1 1 t 2 3 4 5 6 7 8 x6t 1 x7t 1
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 49 / 78
min tn t0 = 0 tf ≥ te + pixie − pi(1 − yif ) ∀(e, f ) ∈ E2, f > e, ∀i ∈ J te+1 ≥ te ∀e ∈ E, e < n
xie = 1,
yie = 1 ∀i ∈ J
v=0
yiv +
v=e
xiv ≤ 1 ∀i ∈ J , ∀e ∈ E
e′=e
yie′ +
e′=0
xje′ ≤ 1 ∀(i, j) ∈ E, ∀e ∈ E r0k =
bikxi0 ∀k ∈ R rek = r(e−1)k +
bikxie −
bikyie ∀e ∈ E, e ≥ 1, k ∈ R 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
min Cmax Cmax ≥ te + (zie − zi(e−1))pi ∀e ∈ E, ∀i ∈ J t0 = 0, te+1 ≥ te ∀e = n − 1 ∈ E tf ≥ te + ((zi−e − zi(e−1)) − (zif − zi(f −1)) − 1)pi ∀(e, f , i) ∈ E2 × J , f > e = 0
e−1
zie′ ≥ e(1 − (zie − zi(e−1))),
n−1
zie′ ≥ e(1 + (zie − zi(e−1))) ∀e = 0 ∈ E
zie ≥ 1 ∀i ∈ J zie +
e
zje′ ≤ 1 + (1 − zie)e ∀e ∈ E, ∀(i, j) ∈ E
n−1
bikzie ≤ Bk ∀e ∈ E, ∀k ∈ R te ≥ 0 ∀e ∈ E zie ∈ {0, 1} ∀i ∈ J , ∀e ∈ E
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 51 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 52 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78
ij = 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
ij = 1 if job j starts immediately at the end of job i at time t.
ij
ij = 1
0i = m
ji −
ij
ij ∈ {0, 1}
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78
ij = 1 if job j starts immediately at the end of job i at time t.
ij
ij = 1
0i = m
ji −
ij
ij ∈ {0, 1}
ii
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 53 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 54 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78
t
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78
t
j∈J
s=t−pj+1 xjs ≤ 1, ∀t ∈ T }.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78
t
j∈J
s=t−pj+1 xjs ≤ 1, ∀t ∈ T }.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 55 / 78
q=1 λqaq, ∀x extreme point of conv({PS}) where
q=1 λq = 1, λ ≥ 0 and aq is the qst point of PS.
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78
q=1 λqaq, ∀x extreme point of conv({PS}) where
q=1 λq = 1, λ ≥ 0 and aq is the qst point of PS.
r
j∈J
jt
r
jt
r
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78
q=1 λqaq, ∀x extreme point of conv({PS}) where
q=1 λq = 1, λ ≥ 0 and aq is the qst point of PS.
r
j∈J
jt
r
jt
r
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 56 / 78
r
jt)λq r
jt
r
jt
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78
r
jt)λq r
jt
r
jt −
jt) − γ
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78
r
jt)λq r
jt
r
jt −
jt) − γ
jt − γ
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78
r
jt)λq r
jt
r
jt −
jt) − γ
jt − γ
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 57 / 78
t
T
T
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 58 / 78
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
s=0 yjs = pj, ∀j ∈ J
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
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
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
s=0 yjs = pj, ∀j ∈ J
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
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
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
s=0 yjs = pj, ∀j ∈ J
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
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
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
s=0 yjs = pj, ∀j ∈ J
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
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
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
s=0 yjs = pj, ∀j ∈ J
s=0 bjkyjs ≤ Bk, ∀t ∈ T , ∀k ∈ R
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
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 60 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 60 / 78
1
2
3
4
5
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 61 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 62 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 63 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 64 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 65 / 78
Instances n DSP hybrid/HD hybrid/GS CP ILP+ (P+
λ )
CG (DW+
λ )
λ0 λdsp λhyb CPUs λhyb CPUs λCP λILP+ CPUs λCG CPUs adpcm-st231.1 86 80
301 52 adpcm-st231.2 142 139
305 82 gsm-st231.1 30 30 29 2 28 2 28 28∗ 256 25 8 24 gsm-st231.2 101 93
301 59 gsm-st231.5 44 36 36 10 36 17
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
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
32 12786 33 19 23 gsm-st231.18 214 194
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
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
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
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
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 67 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 68 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 69 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 70 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 71 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 72 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 73 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 74 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 75 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 76 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 77 / 78
Christian Artigues Scheduling and (Integer) Linear Programming CPAIOR 2012, Nantes 78 / 78