techniques de ordonnancement d'atelier

68
Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes Arnaud Malapert Le 9 septembre 2011 à l’École Nationale Supérieure des Techniques Industrielles et des Mines de Nantes Directeur de thèse : Narendra Jussien, Professeur, École des Mines de Nantes Co-encadrant : Louis-Martin Rousseau, Professeur, École Polytechnique de Montréal Responsables scientifiques : Christelle Guéret, Maître-assistante, École des Mines de Nantes André Langevin, Professeur, Polytechnique de Montréal

Upload: hamza-saffaj

Post on 14-Aug-2015

45 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: techniques de ordonnancement d'atelier

Techniques d’ordonnancement d’atelier et de fournées basées sur laprogrammation par contraintes

Arnaud Malapert

Le 9 septembre 2011

à l’École Nationale Supérieure des Techniques Industrielles et des Mines de Nantes

Directeur de thèse :Narendra Jussien, Professeur, École des Mines de Nantes

Co-encadrant :Louis-Martin Rousseau, Professeur, École Polytechnique de Montréal

Responsables scientifiques :Christelle Guéret, Maître-assistante, École des Mines de Nantes

André Langevin, Professeur, Polytechnique de Montréal

Page 2: techniques de ordonnancement d'atelier

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

2 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 3: techniques de ordonnancement d'atelier

Introduction

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

3 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 4: techniques de ordonnancement d'atelier

Introduction

Programmation par contraintes

Problème de satisfaction de contraintes (CSP)Un ensemble fini de variables ;Une fonction associe à chaque variable son domaine fini, l’ensemble discretde valeurs auxquelles elle peut être instanciée ;Un ensemble fini de contraintes.

I Une contrainte est une relation logique établie entre différentes variables.I Elle restreint les valeurs que ses variables peuvent prendre simultanément.

TerminologieUne instanciation assigne une valeur de son domaine à une variable.Une affectation est l’ensemble des domaines courants de toutes les variables.Une affectation est dite consistante si elle ne viole aucune contrainte.Une solution est une affectation totale et consistante.

Optimisation sous contraintes : COP = CSP + fonction objectif ff est souvent modélisée par une variable.

4 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 5: techniques de ordonnancement d'atelier

Introduction

Problèmes d’ordonnancement

DéfinitionOrganiser un ensemble de tâches soumises à certaines contraintes, et dontl’exécution nécessite des ressources :

déterminer leurs dates de démarrage et d’achèvement ;leur attribuer des ressources ;de telle sorte que les contraintes soient respectées.

Des problèmes très variésTâches interruptibles, durées fixes . . .Ressources renouvelables, consommables . . .Contraintes temporelles, fenêtres de temps . . .Critères d’optimalité liés au temps, aux ressources, à d’autres coûts . . .

Problèmes traitésOptimisation de critères réguliers pour des problèmes d’atelier et de fournées.

5 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 6: techniques de ordonnancement d'atelier

Introduction

Tâche ou activité

DéfinitionsUne tâche Ti est une entité élémentaire de travail localisée dans le temps parune date de début si et une date de fin ei .Sa réalisation est caractérisée par une durée positive pi .Une tâche Ti peut être :

I interruptible ⇒ si + pi ≤ ei ;I non interruptible ⇒ si + pi = ei .

Fenêtre de temps d’une tâche Ti : [esti , lcti ].Partie obligatoire d’une tâche non interruptible Ti : [lsti , ecti ].

piesti ecti

pilsti lcti

6 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 7: techniques de ordonnancement d'atelier

Introduction

Contraintes temporelles

Contrainte de précédenceUne contrainte de précédence entre deux tâches Ti et Tj est représentablepar une unique inégalité de potentiel.Définition : Ti Tj ⇔ sj − ei ≥ 0 (Ti précède Tj).

Contrainte de disjonctionUne contrainte de disjonction entre deux tâches Ti et Tj est satisfaite si lestâches s’exécutent dans des fenêtres de temps disjointes.Définition : Ti ' Tj ⇔ (Ti Tj) ∨ (Tj Ti).Arbitrage : déterminer l’ordre relatif entre les deux tâches.

Réification : une variable booléenne représente l’arbitrage.

7 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 8: techniques de ordonnancement d'atelier

Introduction

Contraintes de partage de ressource

Définitions

1. Une ressource est un moyen technique ou humain requis pour la réalisationd’une tâche et disponible en quantité limitée.

2. Une ressource disjonctive ne peut exécuter qu’une seule tâche à la fois.

Contrainte globaleUtiliser l’information sémantique issue de raisonnements sur des sous-pbs.Augmenter l’efficacité du filtrage ou réduire les temps de calcul.

8 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 9: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Déclaration d’un CSP

disjunctive (T1, T2, T3)T1 ∈ [2, 9] T2 ∈ [3, 9] T3 ∈ [0, 10]

Processus de résolution

T1

T2

T3

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 10: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Not first/not lastDéterminer si une tâche Ti peut être ordonnancée avant/après un sous-ensemble de tâches Ω :1. estimer la date de fin au plus tôt ou de début au plus tard des tâches de Ω ;2. ajuster la fenêtre de temps de la tâche Ti en fonction.

Processus de résolution

T1

T2

T3

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 11: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Not first/not lastDéterminer si une tâche Ti peut être ordonnancée avant/après un sous-ensemble de tâches Ω :1. estimer la date de fin au plus tôt ou de début au plus tard des tâches de Ω ;2. ajuster la fenêtre de temps de la tâche Ti en fonction.

Processus de résolution

T1

T2

T3

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 12: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Propagation de contraintesLa consistance locale ne peut plus réaliser aucune inférence.Le point fixe est atteint.

Processus de résolution

T1

T2

T3

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 13: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Algorithme backtrack avec standard labelling

Sélection de variable : déterminer l’ordre suivant lequel on va les instancier.Sélection de valeur : déterminer la prochaine valeur du domaine à tester.

Backtrack : Remettre en cause la dernière décision.

Processus de résolution

T1

T2

T3

s2 = 4

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 14: techniques de ordonnancement d'atelier

Introduction

Résolution d’un CSP

Algorithme backtrack avec standard labelling

Sélection de variable : déterminer l’ordre suivant lequel on va les instancier.Sélection de valeur : déterminer la prochaine valeur du domaine à tester.

Backtrack : Remettre en cause la dernière décision.

Processus de résolution

T1

T2

T3

s2 = 4 s2 6= 4

9 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 15: techniques de ordonnancement d'atelier

Introduction

Résolution d’un COP

Procédures d’optimisation : résolution d’une série de CSPs.

bottom-up incrémente la borne inférieure lb lorsque le CSP où obj = lb estinsatisfiable jusqu’à ce qu’une solution optimale soit trouvée.

top-down résout le CSP où obj < ub jusqu’à ce que le sous-problèmedevienne insatisfiable.

variantes dichotomiques, incomplètes . . .

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 2 3 4 5 6 7 8 910

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

134

2

10 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 16: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

11 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 17: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Définition des problèmes de base

Structure d’un atelierUne pièce doit être usinée ou assemblée sur différentes machines.Les tâches sont regroupées en n lots constitués chacun de m tâches àexécuter sur m machines distinctes.Chaque machine ne peut exécuter qu’une tâche à la fois.

Séquencement des lots

flow-shop : l’ordre est fixé et commun à tous les lots.job-shop : l’ordre est fixé, mais propre à chaque lot.

open-shop : le séquencement des tâches des lots n’est pas imposé.

Minimisation du délai total (Cmax).O//Cmax , J//Cmax et F//Cmax sont NP-difficiles pour m ≥ 3.

Sous-ensembles dominants pour d’autres critères réguliers.Calcul des chemins critiques et des goulots d’étranglement.

12 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 18: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Ordonnancement optimal d’un open-shop

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

13 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 19: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Modèle disjonctif [Roy and Sussman, 1964]

graphe disjonctif G = (T ,P,D)T est l’ensemble des noeuds, représentant les tâches, Tstart et Tend.P est l’ensemble des arcs représentant les contraintes de précédence.D est l’ensemble des arêtes représentant les disjonctions.

Arbitrage d’une disjonctionTransformation d’une arête Ti ' Tj en un arc Ti Tj ou Tj Ti .

Propriétés

1. L’existence d’un cycle entraîne une inconsistance triviale du problème.2. Tout ordonnancement réalisable correspond à un arbitrage complet de G.3. En l’absence d’autres contraintes, il existe un ordonnancement réalisable

dont le délai total correspond à la longueur d’un plus long chemin de G,appelé chemin critique.

4. Ici, le calcul des chemins critiques peut être réalisé en temps polynomial.

14 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 20: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Construction d’un graphe disjonctif

0 638 638

T_0_0

959 959 1597

0 7 7

T_1_0

1590 1590 1597

0 4 4

T_2_0

1593 1593 1597

0 351 351

T_3_0

1246 1246 1597

0 3 3

T_0_1

1594 1594 1597

0 42 42

T_0_2

1555 1555 1597

0 317 317

T_0_3

1280 1280 1597

0 638 638

T_1_1

959 959 1597

0 69 69

T_1_2

1528 1528 1597

0 286 286

T_1_3

1311 1311 1597

0 1 1

T_2_1

1596 1596 1597

0 605 605

T_2_2

992 992 1597

0 390 390

T_2_3

1207 1207 1597

0 358 358

T_3_1

1239 1239 1597

0 284 284

T_3_2

1313 1313 1597

0 7 7

T_3_3

1590 1590 1597

15 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 21: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Arbitrage complet d’un graphe disjonctif

358 638 996

T_0_0

1248 4 1252

T_2_0

996 42 1038

T_0_2

0 7 7

T_1_0

7 351 358

T_3_0

7 638 645

T_1_1

605 284 889

T_3_2

1248 3 1251

T_0_1

889 358 1247

T_3_1

889 69 958

T_1_2

1247 1 1248

T_2_1

995 286 1281

T_1_3

0 605 605

T_2_2

605 390 995

T_2_3

7 317 324

T_0_3

0 7 7

T_3_3

16 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 22: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

État de l’art sur le problème d’open-shop

Méthodes exactes[Brucker et al., 1997] : rech. arborescente complexe (arbitrages multiples).[Guéret et al., 2000] : rech. de Brucker avec retour arrière intelligent.[Dorndorf et al., 2001] : rech. de Brucker avec tests de consistance.[Laborie, 2005] : rech. arborescente pour l’ordonnancement cumulatif.[Tamura et al., 2006] : encodage du COP en un problème SAT.

Méthodes approchées[Prins, 2000] : algorithme génétique.[Blum, 2005] : optimisation par colonies de fourmis.[Sha and Hsu, 2008] : optimisation par essaim de particules.

MotivationsL’absence de séquencement des lots augmente la combinatoire (open-shop).Proposer une approche top-down simple et compétitive.

17 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 23: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Algorithme de résolution

Composantes clés1. Calcul d’une solution initiale.

I La qualité de la première solution découverte a une importance cruciale.

2. Modèles Light et Heavy.3. Redémarrages avec enregistrement de nogoods.

Un algorithme simpleNombre restreint de composantes.Composantes disponibles dans plusieurs solveurs.

18 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintesN

Page 24: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Modèles Light et Heavy

Modèle LightContraintes de précédence.Contraintes de disjonction « réifiées ».Stratégie de branchement slack/wdeg : arbitrage déterministe d’unedisjonction choisie par apprentissage.

Modèle HeavyContraintes de précédence.Contraintes de disjonction « réifiées ».Contraintes globales disjonctives sur les jobs et les machines.Stratégie de branchement profile : arbitrage randomisée d’une disjonctionentre deux tâches participant majoritairement à un pic de demandeprobabiliste (ressource – instant ).

19 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 25: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Modèles Light et Heavy

Modèle LightContraintes de précédence.Contraintes de disjonction « réifiées ».Stratégie de branchement slack/wdeg : arbitrage déterministe d’unedisjonction choisie par apprentissage.

Modèle HeavyContraintes de précédence.Contraintes de disjonction « réifiées ».Contraintes globales disjonctives sur les jobs et les machines.Stratégie de branchement profile : arbitrage randomisée d’une disjonctionentre deux tâches participant majoritairement à un pic de demandeprobabiliste (ressource – instant ).

19 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 26: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Nouvelle heuristique d’arbitrage : slack/wdeg

slackSélectionner une variable bijkl dont la somme des tailles des fenêtres detemps est minimale :

(lstij − estij + 1) + (lstkl − estkl + 1)

wdegSélectionner la variable dont le poids pondéré des contraintes est maximal.

Le poids d’une contrainte est initialisé à la valeur de son degré.Il est incrémenté à chaque fois qu’elle déclenche une contradiction.Le degré des variables bijkl est unitaire.

slack/wdegSélectionner une variable bijkl dont le quotient du « domaine » sur le degrépondéré est minimal.

20 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 27: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Techniques de redémarrages

Politiques de redémarrage

Luby(1,2) : 1, 1, 2, 1, 1, 2, 4, 1, 1, 2, 1, 1, 2, 4, 8, . . . [Luby et al., 1993]Walsh(1, 2) : 1, 2, 4, 8, 16, 32, 64, . . . [Walsh, 1999]

Enregistrement de nogoods [Lecoutre et al., 2007]L’exploration accomplie durant une étape est totalement mémorisée.Cette partie de l’arbre de recherche ne sera plus visitée lors des étapessuivantes.

Diversification de la rechercheRequiert un élément de randomisation ou d’apprentissage.

21 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 28: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Expérimentations sur l’open-shop

Jeux d’instances (≥ 6× 6)Taillard : 40 instances entre 7× 7 et 20× 20.

I Preuve d’optimalité : OPT = LB.I Les métaheuristiques ferment le jeu d’instances.

Brucker et al. : 26 instances entre 6× 6 et 8× 8.Guéret-Prins : 40 instances entre 6× 6 et 10× 10.

MotivationsÉvaluation des différentes composantes de l’algorithme.Comparaison des modèles Light et Heavy.Comparaison avec les approches de l’état de l’art.

Protocole20 exécutions de l’algorithme.Solveur PPC : choco et mistral.Deux grilles de calcul avec des machines Linux.

22 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 29: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Redémarrages

0.01

0.1

1

10

100

1000

0.01 0.1 1 10 100 1000

Nodes

Time

no-restart/restart

LubyWalsh

23 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 30: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Enregistrement des nogoods

0.1

1

10

100

0.1 1 10 100

Nodes

Time

restart/nogood

LubyWalsh

24 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 31: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Redémarrages avec enregistrement des nogoods

0.1

1

10

100

1000

0.1 1 10 100 1000

Nodes

Time

no-restart/nogood

LubyWalsh

25 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 32: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Comparaison des modèles Light et Heavy

Modèles robustesIls résolvent toutes les instances pour toutes les exécutions.

Différences pendant la résolutionLe modèle Light est plus rapide.Le modèle Heavy visite moins de nœuds.

Complémentarité des contraintes et du branchementLight + profile : la qualité de la courbe de demande probabiliste estdégradée, car les fenêtres de temps sont plus larges.Heavy + slack/wdeg : les contradictions relevées par les contraintes globalesperturbent l’apprentissage des poids des disjonctions.

Light Heavy Light-profile Heavy-slack/wdeg

t n t n t n t n

hard11 286.1s 1.3M 428.9s 0.4M 1774.3 2.5M 806.6 0.6M

26 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 33: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Comparaison avec les approches de l’état de l’art

MétaheuristiquesCertains optimums ne sont découverts par aucune métaheuristique.

Name Heavy ACO PSO

tai20-* t 103.6s 52.0s 35.1sgp10-* t 13.1s 567.1s 367.3s

Méthodes exactesPar rapport aux nôtres, les résultats de [Laborie, 2005] semblent :

I Instances de Taillard : pas de résultats ;I Instances de Brucker : comparables ;I Instances de Guéret-Prins : légèrement moins bons.

[Tamura et al., 2006]

hard11 Light Heavy SAT

t 286.1s 428.9s t 2843.5s

27 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 34: techniques de ordonnancement d'atelier

GP04-01 - Cmax=1281

0 100 200 300 400 500 600 700 800 900 1 000 1 100 1 200 1 300

T ime

M_0

M_1

M_2

M_3

Re

so

urc

es

T_3_0 T_3_1T_3_2

T_2_2 T_2_3

T_1_1 T_1_2 T_1_3

T_0_0T_0_3

Ordonnancement d’atelier

Conclusion sur les problèmes d’atelier

ContributionsAlgorithme simple, flexible, robuste et générique.

I Identification des composantes clés de l’algorithme.I Modèles Light et Heavy.I Problèmes d’open-shop et de job-shop.

Nouvelles heuristiques d’arbitrage basées sur les domaines et degrés.Réflexion sur l’implémentation du modèle disjonctif dans un solveur

28 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 35: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

29 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 36: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Définition du problème de base

TâchesChaque tâche j est caractérisée par sa durée d’exécution pj , sa date échuedj , et sa taille sj (les tailles des tâches ne sont pas identiques).

Machine à traitement par fournéesElle peut exécuter simultanément plusieurs tâches dans une fournée :

aucune tâche n’est ajoutée ou retirée d’une fournée pendant son exécution ;la somme des tailles des jobs d’une fournée ne dépasse pas sa capacité b ;la durée d’exécution d’une fournée est égale à celle de sa plus longue tâche ;la date de fin Cj d’une tâche j est la date de fin de sa fournée.

HypothèseLes tâches et la machine sont disponibles depuis l’instant 0.

Minimiser le retard algébrique maximal Lmax = max1≤j≤n(Cj − dj)

1|p-batch; b < n; non-identical |Lmax est NP-difficile.

30 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 37: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Ordonnancement optimal de fournéesbp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

31 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 38: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

État de l’art

Problèmes de fournées [Potts and Kovalyov, 2000]Premiers travaux : complexité et algorithmes d’approximation.Critères d’optimalité dépendant des dates d’achèvement (Cmax ,

∑Cj ,∑

wjCj ) : les tâches ont quelquefois des tailles différentes.Critères d’optimalité dépendant des dates échues : les tâches ontgénéralement des tailles identiques (sj = 1).[Vilím, 2007] : algorithmes de filtrage pour un problème de fournées s-batchavec des familles de tâches et des temps d’attente dépendant de la séquence.

1|p-batch; b < n; non-identical |LmaxPLNE basée sur le placement et le séquencement [Daste et al., 2008b].Branch-and-price (problème maître de séquencement) [Daste et al., 2008a].

MotivationsProposer un modèle PPC exploitant la décomposition naturelle du problème.Appliquer des techniques de filtrage basé sur les coûts.

32 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 39: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Principe de la décomposition

Placement des jobs dans les fournéesLe problème de placement (bin packing) à une dimension est NP-Complet :soit n articles (tâches) caractérisés chacun par une taille positive sj ≥ 0et m conteneurs (fournées) caractérisés par une capacité b, existe-t’il unplacement des n articles dans les m conteneurs tel que la somme des taillesdes articles dans chaque conteneur reste inférieure à la capacité b ?

Minimisation du retard algébrique maximal des fournées sur une machineLe problème 1||Lmax , peut être résolu en temps polynomial :un ordonnancement optimal est obtenu en appliquant la règle de Jackson(earliest due date (EDD-)rule) qui séquence les tâches en ordre non décrois-sant de leur date échue.

33 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 40: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Modélisation des fournées

ConstraintesContraintes ensemblistes sur les durées et les dates échues des fournées.Contrainte globale de placement à une dimension : pack [Shaw, 2004].Contrainte globale d’optimisation de la séquence : sequenceEDD.Contraintes basiques d’élimination de symétries sur le placement des tâches.

34 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 41: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Algorithme de résolution

Structure d’une solutionUn placement réalisable des tâches dans les fournées.Le retard algébrique maximal des fournées sur une machine.

Algorithme de rechercheProcédure d’optimisation : top-down.Algorithme backtrack sans redémarrages.Méthode de séparation : standard labelling n-aire.

I Sélection de variables : complete decreasing.I Sélection de valeurs : first fit, best fit, batch fit.

Élimination dynamique de symétries sur le placement des tâches.

35 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 42: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Description de la contrainte globale sequenceEDD

Définitionla contrainte globale sequenceEDD assure que la valeur de la variable Lmaxsoit le plus grand retard algébrique de la séquence de fournées ordonnancéesen suivant la règle EDD.

Raisonnements liés à la satisfiabilitéAucun, toutes les séquences de fournées sont réalisables dès lors que le pla-cement des tâches est consistant.

Raisonnements liés à l’optimalitéL’idée principale est de déduire des contraintes primitives à partir desinformations sur les coûts des affectations.sequenceEDD utilise une relaxation vers un problème à une machine.

36 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 43: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Règles de filtrage

RelaxationUne instance I(A) du problème 1||Lmax est construite à partir d’uneaffectation A, puis ordonnancée en suivant la règle EDD.Le retard de la relaxation ne décroît jamais après une décision et convergevers la valeur de l’objectif au cours de la recherche.

Règles de filtrage simples (O(n))

FF : appliquer la relaxation après le placement des tâches.LF : appliquer la relaxation à chaque nœud de l’arbre de recherche.

Règles de filtrage basé sur les coûts (O(n2))

AF : Restrictions sur le placement des tâches.PF : Restrictions sur le nombre de fournées non vides.

1. Augmenter le retard en fonction des nouvelles fournées nécessaires.2. Réduire le nombre de nouvelles fournées pour satisfaire les coûts.

37 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 44: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Placement d’une tâche (AF)

Règle de filtrage basé sur les coûts

1. Calculer le coût marginal du placement de la tâche j dans la fournée k.2. Additionner le coût marginal et le retard algébrique de la relaxation.3. En cas de dépassement du coût, interdire le placement.

Calcul du coût marginal (pj ≥ pk)

pk

Contribution algorithmiqueUn algorithme réduit la complexité de O(n3) à O(n2).

38 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 45: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Placement d’une tâche (AF)

Règle de filtrage basé sur les coûts

1. Calculer le coût marginal du placement de la tâche j dans la fournée k.2. Additionner le coût marginal et le retard algébrique de la relaxation.3. En cas de dépassement du coût, interdire le placement.

Calcul du coût marginal (pj ≥ pk)

pk

pj

∆p ∆pdj ≥ dk

Contribution algorithmiqueUn algorithme réduit la complexité de O(n3) à O(n2).

38 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 46: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Placement d’une tâche (AF)

Règle de filtrage basé sur les coûts

1. Calculer le coût marginal du placement de la tâche j dans la fournée k.2. Additionner le coût marginal et le retard algébrique de la relaxation.3. En cas de dépassement du coût, interdire le placement.

Calcul du coût marginal (pj ≥ pk)

pk

dj < dk

Contribution algorithmiqueUn algorithme réduit la complexité de O(n3) à O(n2).

38 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 47: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Placement d’une tâche (AF)

Règle de filtrage basé sur les coûts

1. Calculer le coût marginal du placement de la tâche j dans la fournée k.2. Additionner le coût marginal et le retard algébrique de la relaxation.3. En cas de dépassement du coût, interdire le placement.

Calcul du coût marginal (pj ≥ pk)

pk

∆p

pj

dj < dkpj

Contribution algorithmiqueUn algorithme réduit la complexité de O(n3) à O(n2).

38 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 48: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Expérimentations

Jeu d’instances200 instances générées aléatoirement (n ∈ 10, 20, 50, 75, 100).

MotivationsÉvaluation des règles de filtrage.Évaluation des heuristiques de selection de valeur.Comparaison avec :

I un modèle PLNE [Daste et al., 2008b] ;I un branch-and-price [Daste et al., 2008a].

ProtocoleSolveur PPC : choco.Solveur PLNE : Ilog Cplex 11.2.1.Grille de calcul avec machines Linux (Proc 2.4 GHz, RAM 48 GB).

39 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 49: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Évaluation des règles de filtrage

0

10

20

30

40

50

60

70

80

90

100

36000.01 0.1 1 10 100 1000

% R

éso

luti

on

Temps (s)

Comparaison des temps de résolution (n <= 50)

PF+AF+LFAF+LF

LFFF

40 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 50: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Comparaison avec un modèle PLNE

0

10

20

30

40

50

60

70

80

90

100

36000.01 0.1 1 10 100 1000

% R

éso

luti

on

Temps (s)

Comparaison des temps de résolution (n <= 50)

PPCPLNE

41 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 51: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Comparaison avec un modèle PLNE

1

1.1

1.2

1.3

1.4

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8

PPC

PLNE

Comparaison des écarts à la borne inf. (n > 50)

42 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 52: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Comparaison avec un branch-and-price

n = 20

B&P 55 % des instances résolues avec une limite de temps d’une heure.PPC 100 % des instances résolues en moins d’une seconde.

n = 50

B&P 8 % des instances résolues avec une limite de temps d’une heure.PPC 95 % des instances résolues avec une limite de temps d’une heure

avec un temps moyen de résolution t ≤ 100s.

43 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 53: techniques de ordonnancement d'atelier

bp10-07 - Lmax=-90

0 2 5 5 0 7 5 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500

T ime

0

1

2

3

4

5

Ba

cth

es

-123

-111

-114

-124

-130

-90

d 2d 5d 9 d 7 d 1 d10 d 6d 3 d 4 d 8

0

1

2

3

4

5

6

7

8

9

1 0

Lo

ad

J9

J5

J6J4

J2 J7

J1

J10J3 J8

Capacity

Ordonnancement d’une machine à traitement par fournées

Conclusion sur les problèmes de fournées

ContributionsExploitation de la décomposition naturelle du problème.Contrainte globale pour l’optimisation exploitant une relaxation polynomialebasée sur un problème d’ordonnancement à une machine.Stratégie de recherche et heuristique de sélection batch fit.

44 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 54: techniques de ordonnancement d'atelier

Implémentation dans le solveur de contraintes choco

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

45 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 55: techniques de ordonnancement d'atelier

Implémentation dans le solveur de contraintes choco

Solveur choco

Un solveur de contraintes sous licence libre

http://choco.mines-nantes.fr/

Motivations

Scientifique : diffuser le travail réalisé et susciter des collaborations.Technique : participer au développement d’un projet open source.

46 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 56: techniques de ordonnancement d'atelier

Implémentation dans le solveur de contraintes choco

Module d’ordonnancement sous contraintes

TaskVariablemakeTaskVar(...); makeTaskVarArray(...);

Constraint//Temporellesprecedence(task1, task2, delta);precedenceDisjoint(task1, task2, dir, fwd, bwd);//Partage de ressourcedisjunctive(tasks[], usages[], uppBound);cumulative(tasks[],heights[],usages[],consumption,capacity,uppBound)//Allocation de ressource (en développement)useResources(task, k, resources[]);useResourcesGeq(task, k, resources[]);//Placementpack(itemSets[], loads[], bins[], sizes[], nbNonEmpty);

Prétraitement d’un modèle (reformulation)Construction automatique et modulaire du modèle disjonctif à partir desfenêtres de temps, des contraintes temporelles et de partage de ressource.

47 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 57: techniques de ordonnancement d'atelier

Implémentation dans le solveur de contraintes choco

Éléments du solveur

Stratégies de recherche (BranchingFactory)Ordonnancement : profile, setTimes.Domaines sur degrés : (dom | slack | preserved)/(deg | ddeg | wdeg)

I Standard labelling binaire ou n-aire.I Calcul incrémental des poids ou non.

Placement : complete decreasing (first | best | worst) fit + symétries.

Algorithme de recherche (Solver)//Politiques de redémarragesetRestart(boolean restart);setGeometricRestart(int base, double grow, int restartLimit);setLubyRestart(int base, int grow, int restartLimit);//Enregistrement de nogoodssetRecordNogoodFromRestart(boolean record);//Procédures d’optimisation (en développement)Configuration.BOTTOM_UP;Configuration.INIT_DESTRUCTIVE_LOWER_BOUND;Configuration.INIT_SHAVING;

48 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 58: techniques de ordonnancement d'atelier

Conclusion et perspectives

Plan

1 Introduction

2 Ordonnancement d’atelier

3 Ordonnancement d’une machine à traitement par fournées

4 Implémentation dans le solveur de contraintes choco

5 Conclusion et perspectives

49 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 59: techniques de ordonnancement d'atelier

Conclusion et perspectives

Conclusion

Problèmes d’atelier : JOPT09, CP09, JoC11Algorithme simple, flexible, robuste et générique.Modèles Light et Heavy.Heuristique d’arbitrage basées sur les domaines et degrés : slack/wdeg.

Problèmes de fournées : JOPT10, CPAIOR11, EJORModèle basée sur une décomposition naturelle du problème.Contrainte globale pour l’optimisation exploitant une relaxation polynomiale.

Solveur choco : CP10Module d’ordonnancement et de placement à une dimension.Allocation de ressources.

50 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 60: techniques de ordonnancement d'atelier

Conclusion et perspectives

Perspectives

Court termeApplication à d’autres problèmes d’atelier.

I [Grimes and Hebrard, 2010, Grimes and Hebrard, 2011].I Application à d’autres problèmes de fournées.I Heuristiques de sélection basées sur les coûts.

Moyen termeContraintes de partage de ressource :

1. Adapter dynamiquement les propagateurs ;2. Améliorer l’apprentissage des poids pondérés des variables.

I Relaxations basées sur les problèmes à machines parallèles.

Long termeStructure disjonctive.Allocation de ressources.Contraintes souples.

51 / 51Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 61: techniques de ordonnancement d'atelier

Merci pour votre attention

Page 62: techniques de ordonnancement d'atelier

Une dernière fournée pour la route . . .

Nombre de fournées (PF)

Règles de filtrage basé sur les coûtsMettre à jour le coût associé au nombre minimal de fournées.Réduction du nombre maximal de fournées en cas de dépassement des coûts.

Exemple avec 3 tâches et 2 nouvelles fournéesInsertion de nouvelles fournées consistuées d’une unique tâche.Tris : p1 ≤ p2 ≤ p3 et d1 ≤ d2 ≤ d3

d1 d2 d3

53 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 63: techniques de ordonnancement d'atelier

Une dernière fournée pour la route . . .

Nombre de fournées (PF)

Règles de filtrage basé sur les coûtsMettre à jour le coût associé au nombre minimal de fournées.Réduction du nombre maximal de fournées en cas de dépassement des coûts.

Exemple avec 3 tâches et 2 nouvelles fournéesInsertion de nouvelles fournées consistuées d’une unique tâche.Tris : p1 ≤ p2 ≤ p3 et d1 ≤ d2 ≤ d3

d1 d2 d3

p1 p2

p1 p1 + p2

53 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 64: techniques de ordonnancement d'atelier

Une dernière fournée pour la route . . .

Nombre de fournées (PF)

Règles de filtrage basé sur les coûtsMettre à jour le coût associé au nombre minimal de fournées.Réduction du nombre maximal de fournées en cas de dépassement des coûts.

Exemple avec 3 tâches et 2 nouvelles fournéesInsertion de nouvelles fournées consistuées d’une unique tâche.Tris : p1 ≤ p2 ≤ p3 et d1 ≤ d2 ≤ d3

d1 d2 d3

p1 p2

p1 p1 + p2

Lmax ↑

53 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 65: techniques de ordonnancement d'atelier

Une dernière fournée pour la route . . .

Nombre de fournées (PF)

Règles de filtrage basé sur les coûtsMettre à jour le coût associé au nombre minimal de fournées.Réduction du nombre maximal de fournées en cas de dépassement des coûts.

Exemple avec 3 tâches et 2 nouvelles fournéesInsertion de nouvelles fournées consistuées d’une unique tâche.Tris : p1 ≤ p2 ≤ p3 et d1 ≤ d2 ≤ d3

d1 d2 d3

p1 p2

p1 p1 + p2

Lmax ↑

53 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 66: techniques de ordonnancement d'atelier

Bibliographie

References I

Blum, C. (2005).Beam-ACO : hybridizing ant colony optimization with beam search : an application to open shop scheduling.Comput. Oper. Res., 32(6) :1565–1591.

Brucker, P., Hurink, J., Jurisch, B., and Wöstmann, B. (1997).A branch & bound algorithm for the open-shop problem.In GO-II Meeting : Proceedings of the second international colloquium on Graphs and optimization, pages 43–59, Amsterdam,The Netherlands. Elsevier Science Publishers B. V.

Daste, D., Gueret, C., and Lahlou, C. (2008a).A Branch-and-Price algorithm to minimize the maximum lateness on a batch processing machine.In Proceedings of the 11th international workshop on Project Management and Scheduling PMS’08, pages 64–69, IStanbulTurquie.

Daste, D., Gueret, C., and Lahlou, C. (2008b).Génération de colonnes pour l’ordonnancement d’une machine à traitement par fournées.In 7ième conférence internationale de modélisation et simulation MOSIM’08, volume 3, pages 1783–1790, Paris France.

Dorndorf, U., Pesch, E., and Huy, T. P. (2001).Solving the open shop scheduling problem.Journal of Scheduling, 4 :157–174.

Grimes, D. and Hebrard, E. (2010).Job shop scheduling with setup times and maximal time-lags : A simple constraint programming approach.In Lodi, A., Milano, M., and Toth, P., editors, CPAIOR, volume 6140 of Lecture Notes in Computer Science, pages 147–161.Springer.

Grimes, D. and Hebrard, E. (2011).Models and strategies for variants of the job shop scheduling problem.In Lee, J. H.-M., editor, CP, volume 6876 of Lecture Notes in Computer Science, pages 356–372. Springer.

54 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 67: techniques de ordonnancement d'atelier

Bibliographie

References II

Guéret, C., Jussien, N., and Prins, C. (2000).Using intelligent backtracking to improve branch-and-bound methods : An application to open-shop problems.European Journal of Operational Research, 127 :344–354.

Laborie, P. (2005).Complete MCS-based search : Application to resource constrained project scheduling.In Kaelbling, L. P. and Saffiotti, A., editors, IJCAI, pages 181–186. Professional Book Center.

Lecoutre, C., Sais, L., Tabary, S., and Vidal, V. (2007).Nogood recording from restarts.In Veloso, M. M., editor, IJCAI 2007, Proceedings of the 20th International Joint Conference on Artificial Intelligence, pages131–136, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc.

Luby, Sinclair, and Zuckerman (1993).Optimal speedup of las vegas algorithms.IPL : Information Processing Letters, 47 :173–180.

Potts, C. N. and Kovalyov, M. Y. (2000).Scheduling with batching : A review.European Journal of Operational Research, 120(2) :228–249.

Prins, C. (2000).Competitive genetic algorithms for the open-shop scheduling problem.Mathematical methods of operations research, 52(3) :389–411.

Roy, B. and Sussman, B. (1964).Les problèmes d’ordonnancement avec contraintes disjonctives.Technical report, Technical Report Note DS no 9bis, SEMA, Paris.

55 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N

Page 68: techniques de ordonnancement d'atelier

Bibliographie

References III

Sha, D. Y. and Hsu, C.-Y. (2008).A new particle swarm optimization for the open shop scheduling problem.Comput. Oper. Res., 35(10) :3243–3261.

Shaw, P. (2004).A constraint for bin packing.In Wallace, M., editor, Principles and Practice of Constraint Programming - CP 2004, 10th International Conference, CP 2004,Toronto, Canada, September 27 - October 1, 2004, Proceedings, volume 3258 of Lecture Notes in Computer Science, pages648–662. Springer.

Tamura, N., Taga, A., Kitagawa, S., and Banbara, M. (2006).Compiling finite linear CSP into SAT.In Principles and Practice of Constraint Programming - CP 2006, volume 4204 of Lecture Notes in Computer Science, pages590–603. Springer Berlin / Heidelberg.

Vilím, P. (2007).Global Constraints in Scheduling.PhD thesis, Charles University in Prague, Faculty of Mathematics and Physics, Department of Theoretical Computer Science andMathematical Logic, KTIML MFF, Universita Karlova, Malostranské náměstí 2/25, 118 00 Praha 1, Czech Republic.

Walsh, T. (1999).Search in a small world.In IJCAI ’99 : Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence, pages 1172–1177, SanFrancisco, CA, USA. Morgan Kaufmann Publishers Inc.

56 / 56Techniques d’ordonnancement d’atelier et de fournées basées sur la programmation par contraintes

N