Académique Documents
Professionnel Documents
Culture Documents
29/05/2019
Partie 1
29/05/2019
Objectif
• Ordonnancement de projet
• Ordonnancement d’ateliers
• Contexte
• Méthodes de résolution
Définition et formulation du problème
d’ordonnancement
• Contraintes de potentiel
• Contraintes disjonctives
• Contraintes cumulatives
Terminologie : Flux de production
de l’entreprise.
dans la planification.
Définition de l’ordonnancement
Définition 1
ressources requises.
Définition de l’ordonnancement
Définition 2
Consiste à programmer les tâches d’un projet et leur exécution et s’assurer
de la disponibilité des ressources nécessaires à leur réalisation en respectant
les contraintes de délai, de performance et de coût ainsi que les objectifs
préalablement établis.
L’ordonnancement cherche à optimiser plusieurs critères, on peut distinguer
deux familles de critères, d’abord le délai de réalisation du projet, en le
réduisant le plus possible, la seconde famille est l’utilisation de la ressources
et la réduisant et en évitant le conflit sur ressources pouvant se produire en
assurant un lissage des ressources tout au long du projet
Définition de l’ordonnancement
Définition 3
questions suivantes:
Administration Production
L’Ordonnancement
Gestion de ressources
humaines ordonnancement des
« emploi du temps » Ateliers de production
Informatique
14
Contraintes en ordonnancement
fois
des tâches devant être achevées avant une date précise b, dans ce
cas Tib.
Contrainte de ressources
Une ressource disjonctive ne peut être utilisée que par une seule
A 80
80 200
80 200 50
80 200 50 30
80 200 50 30 150 / 5
(5 80 4 200 3 50 2 30 1150) / 5
En général, il s’écrit donc comme :
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)
Règle:
Rechercher la tâche i de temps d’exécution tij (avec j= A ou B)
minimum.
Si j = A, placer cette tâche à la première place disponible ;
Si j = B, placer cette tâche à la dernière place disponible.
Supprimer la tâche i des tâches encore à programmer, retour en 1.
L'algorithme de Johnson: Exemple
manière suivante:
• Pour la machine A : la séquence optimale pour le sous-ensemble
AB, puis les tâches de A, puis la séquence optimale du sous-
ensemble BA.
T1 T2 T3 T4 T5 T6
C1 4 3 5 2 2 2
C2 7 3 5 5 3 4
C3 9 3 2 7 4 3
Exercice 2
Exercice 3
29/05/2019
Exercice 3
Travail demandé
29/05/2019
Exercice 4
Un fabricant de nougat doit produire 7 lots de variétés de nougats différentes : N1, N2,
N3, N4, N5, N6, N7. La fabrication de chaque lot nécessite la gamme de fabrication
suivante :
• Préparation du mélange dans un premier atelier (miel, amande, pistache, …..) ;
• Découpage de nougat par une machine automatique ;
• Conditionnement selon la variété demandée.
Opérations N1 N2 N3 N4 N5 N6 N7
Préparation des 22 13 20 15 12 11 16
mélanges (A)
Découpage du nougat (B) 4 3 10 10 5 8 9
Conditionnement (C ) 6 12 4 14 15 5 8
Travail demandé
Déterminer l’ordonnancement optimal pour réaliser cette production
29/05/2019
Partie 2
29/05/2019
Données principales :
Jobs j
J {1,…,n} est l’indice d’un job
Opérations Oij
Les opérations du job j sont notées Oij , i {1,…,nj}
Processing times pij ou pj
La durée d’exécution « processing time » de l’opération Oij est pij.
nj
On notera pj son temps total d’exécution : pj pij
i 1
Ready date rj
rj est la date de disponibilité du job j
Due date dj
dj est la date souhaité de fin d’exécution du job j
29/05/2019
Variables :
29/05/2019
Critères de performance :
29/05/2019
Critères de performance :
Critères « maximum »
Maximal completion time : C max max C j
j 1,...,n
terminer le plus rapidement possible l’ensemble des jobs
noté aussi « makespan »
Autres Critères
Nombre de jobs en retard
n
NT Uj
j 1
29/05/2019
Nomenclature des modèles d’ordonnancement
29/05/2019
le premier champ α
Il est former de 2 termes α = α1 α2
Le paramètre α1 { , P, Q, R, O, F, PF, J}
α1 = indique qu’il y a une seule machine
α1 {P, Q, R} indique qu’il y a plusieurs machines en parallèle
α1 = F indique un flowshop; atelier à cheminement unique
α1 = PF indique une permutation flowshop; ordre de passage des n
jobs est identique pour chaque machine
α1 = J indique un job-shop; atelier à cheminement multiples
α1 = O indique un open-shop; atelier à cheminement libres
Le paramètre α2 { , I}
α2 = I indique le nombre fixe de machines
α2 = si ce nombre est une variable
29/05/2019
le premier champ β
Il est constitué de plusieurs termes indiquant chacun un type de contraintes
β est vide, il n’y pas de contraintes particulières
prec existence de contraintes de précédence entre certains jobs
rj existence de ready dates non nulles
dj = d due date commune à tous les jobs
pj = p tous les jobs ont un temps d’exécution identique
set-up existence de temps d’adaptation des machines entre
l’exécution successive entre 2 jobs
time-lag min (max) existence de délai minimal (maximal) à respecter
entre l’exécution de deux opérations successives du même jobs
29/05/2019
Les modèles à une machine
29/05/2019
Les modèles simples 1 // γ
Définition :
Les modèles simples 1//γ sont ceux qui justifient les hypothèses suivantes :
une machine et chacun des n jobs ne possèdent qu’une seule opération
rj = 0 j; tous les jobs sont disponibles à l’instant 0
les n jobs sont indépendants entre eux
temps de réglage de la machine indépendants de la séquence des jobs
Remarque:
les ordonnancements à considérer sont les n! permutations, ou séquences
des n jobs
le critère Cmax n’a donc pas de sens pour ces modèles, puisque
n
Cmax p j quelle que soit la permutation
j 1
29/05/2019
Modèle 1// F
Propriété :
L’ordonnancement SPT est optimal pour le modèle 1// F
29/05/2019
Modèle 1// F
Job 1 2 3 4 5
pj 10 3 4 8 1
Job 5 2 3 4 1
pj 1 3 4 8 10
Fj 1 4 8 16 26
29/05/2019
Modèle 1// wjCj
29/05/2019
Modèle 1//wjC
Job 5 2 4 3 1
pj 1 3 8 4 10
Fj 1 4 12 16 26
29/05/2019
Modèle 1// Lmax
Propriété :
L’ordonnancement EDD est optimal pour le modèle 1// Lmax
29/05/2019
Modèle 1// Lmax
Job 1 2 3 4 5 6
dj 15 6 9 23 20 30
pj 10 3 4 8 10 6
29/05/2019
Modèle 1// NT
29/05/2019
Exemple:
Job 1 2 3 4 5 6
dj 15 6 9 23 20 30
Pj 10 3 4 8 10 6
29/05/2019
La tâche 1 est la première en retard et elle a le plus grand
temps d’exécution de la sous séquence (2 3 1).
On rejette la tâche 1 et on retourne à l’étape 2
Job 2 3 1 5 4 6 Tâches rejetées
dj 6 9 15 20 23 30
Pj 3 4 10 10 8 6
Cj 3 7 17
dj 6 9 23 30 1,5
Pj 3 4 8 6
Cj 3 7 15 21
29/05/2019
Extensions : Quelques modèles 1 / β / γ
29/05/2019
Arrivées non simultanées : Modèle 1/ rj , pmtn/ F
Propriété :
L’ordonnancement SRPT est optimal pour le modèle 1/ rj , pmtn/ F
29/05/2019
Modèle 1/ rj , pmtn/ F
Exemple : Soit les données
Job 1 2 3 4 5 6
rj 1 2 3 4 5 6
pj 10 3 4 8 10 6
M
1 4 8 14 22 31 41
Job 1 2 3 4 5 6
NB: Le Cj doit être
rj 1 2 3 4 5 6
décalée par une unité
Cj 31 4 8 22 41 14 de temps (+1)
Fj 30 2 5 18 36 15
Job 1 2 3 4 5
rj 0 2 4 6 8
pj 10 4 1 1 2
29/05/2019
Modèle 1/ prec/ Lmax
Propriété :
L’ordonnancement EDD’ est optimal pour le modèle 1/ prec/ Lmax
29/05/2019
Modèle 1/ prec/ Lmax
Job 1 2 3 4 5 6
dj 6 5 9 7 11 6
pj 2 3 4 3 2 1
29/05/2019
Modèle 1/ set up/ Cmax
Notation
sij : le temps de réglage si le job j succède au job i
La notation [j] désigne le job qui est à la jème place de l’ordonnancement
29/05/2019
Modèle 1/ set up/ Cmax
Remarque :
Le 1er terme est constant par contre le 2ème membre dépend de
l’ordonnancement
n 1
Le problème est donc la permutation optimale qui minimise min si (i)
i 1
29/05/2019
Séance 3
Les modèles à machines parallèles
29/05/2019
Modèles à machines parallèles
29/05/2019
Modèle Pm/ pmtn/ Cmax
Propriété :
La valeur optimale du makespan du modèle Pm/ pmtn/ Cmax
n
1
Cmax max( p j , max p j )
m j 1 j 1,...,n
29/05/2019
Modèle Pm/ pmtn/ Cmax
1 2 3 4 5
M1
12
5 6 7
M2
12
7 8
M3
12
29/05/2019
Modèle Pm/ pmtn/ Cmax
Exemple 2:
Soit 2 machines et 4 jobs de processing time respectifs 1, 2, 3 et 10
16
Cmax max( ,10) 10
2
Un ordonnancement est donc :
1 2 3
M1
1 3 6
4
M2
10
29/05/2019
Modèle Pm/ / Cmax
Sans interruption, il ne faudra l’ordre de passage des jobs j sur les machines i
29/05/2019
Modèle Pm/ Cmax
min y
n
y p j xij 0, i 1,...,m
j 1
m
xij 1, j 1,...,n (P)
i 1
29/05/2019
Modèle Pm/ Cmax
Heuristique gloutonne :
29/05/2019
Modèle Pm/ pmtn/ Cmax
Exemple 1: Soit trois machines et 8 jobs avec avec pj = j pour tout j
L’heuristique fournit l’ordonnancement :
8 3 2
M1
8 11 13
7 4 1
M2
7 12
6 5
M3
6 11
29/05/2019
Modèle Pm/ pmtn/ Cmax
Exemple 1: Soit trois machines et 8 jobs avec avec pj = j pour tout j
La résolution du problème (P) fournirait la solution optimale
8 4
M1
8 12
7 3 2
M2
7 10 12
6 5 1
M3
6 11 12
29/05/2019
Modèle Pm// F
Propriété :
L’ordonnancement optimal est obtenu en classement les jobs dans l’ordre SPT
et en les affectant dans cet ordre à la machine la moins chargée.
29/05/2019
Modèle Pm// F
M1
1 4 11
2 5 8
M2
2 7 15
1
F (16 24) 20
2
29/05/2019
Modèle Pm// F
M1
1 3 6 13
5 8
M2
5 13
1
Cmax 13; F (23 18) 20,5
2
29/05/2019
Séance 4
Les modèles « Flow-shop »
29/05/2019
Les modèles simples Fm // γ
Définition :
Les modèles simples Fm//γ sont ceux qui justifient les hypothèses suivantes :
rj = 0 j; tous les jobs sont disponibles à l’instant 0
les n jobs sont indépendants entre eux
temps de réglage de la machine indépendants de la séquence des jobs
les opérations ne peuvent pas être interrompues
29/05/2019
Les modèles simples Fm // γ
Propriété:
Pour le modèle Fm // Cmax, l’ensemble des ordonnancements pour lesquels
l’ordre de passage des jobs est identique sur les deux dernières machines est
un ensemble dominant.
j k
Mm-1
k j
Mm
29/05/2019
Le modèle F2 // Cmax
Règle de Johnson : L’idée
Dans tout ordonnancement, il y aura certainement durant le temps de Cmax
un temps mort à la fin de M1 et au début de M2.
Temps mort
M1
Temps mort
M2
Pour minimiser Cmax, il y a intérêt à minimiser ces temps morts, i.e. placer en
tête de la permutation le job avec le plus petit p1j et en fin de permutation le
job avec le plus petit p2j
29/05/2019
Le modèle F2 // Cmax
Algorithme de Johnson
Un algorithme optimal peut être construit de la manière suivante :
Soient U = {j / p1j p2j } et V = {j / p1j ≥ p2j }
Ordonner U dans l’ordre SPT des temps p1j
Ordonner V dans l’ordre LPT des temps p2j
Un ordonnancement optimal est formé de l’ensemble U ordonné suivi de
l’ensemble V ordonnée
29/05/2019
Le modèle F2 // Cmax
Job 1 2 3 4 5
p1j 3 5 1 6 7
p2j 6 2 2 6 5
U ordonné = {3, 1}
V ordonné = {4, 5, 2}
L’ordonnancement 3 – 1 – 4 – 5 – 2 est optimal avec Cmax = 24
M1
1 4 10 17 22
M2
3 10 16 22 24
29/05/2019
Cas particulier de F3 // Cmax
Définition :
La machine 2 est dominée si
soit min {p1j / j } ≥ max {p2j / j }
soit min {p3j / j } ≥ max {p2j / j }
29/05/2019
Cas particulier de F3 // Cmax
Exemple : Soit le modèle F3 // Cmax avec 6 jobs
Job 1 2 3 4 5 6
p1j 4 6 3 5 8 4
p2j 1 2 1 3 2 1
p3j 3 9 2 7 6 1
U ordonné = {2, 4}
V ordonné = {5, 1, 3, 6}
L’ordonnancement 2 – 4 – 5 – 1 – 3 – 6 est optimal avec Cmax = 36
29/05/2019
Cas particulier de F3 // Cmax
Exemple : Soit le modèle F3 // Cmax avec 6 jobs
Job 1 2 3 4 5 6
p1j 4 6 3 5 8 4
p2j 1 2 1 3 2 1
p3j 3 9 2 7 6 1
U ordonné = {2, 4}
V ordonné = {5, 1, 3, 6}
L’ordonnancement 2 – 4 – 5 – 1 – 3 – 6 est optimal avec Cmax = 36
29/05/2019
Modèle heuristique pour PFm // Cmax avec m≥3
k
p1' j pij temps total sur les k premières machines
i 1
k
29/05/2019
Modèle heuristique pour PFm // Cmax avec m≥3
Exemple : Soit le modèle F3 // Cmax avec 4 jobs
Job 1 2 3 4
p1j 1 2 6 3
p2j 8 4 2 9
p3j 4 5 8 2
Heuristique CDS
Etape k=1 Job 1 2 3 4
p’1j 1 2 6 3
p’2j 4 5 8 2
U ordonné = {1, 2, 3}
V ordonné = {4}
29/05/2019
Séance 5
Les modèles Job Shop et Open Shop
Job Shop
Open Shop
Le modèle J2 // Cmax
Algorithme de Jackson
Appliquer la règle de Johnson, d’une part à l’ensemble de J12 de jobs pour
obtenir une séquence 12 d’autre part, à l’ensemble de J21 de jobs pour
obtenir une séquence 21
sur la machine 2 : 21 - 2 - 12
Le modèle J2 // Cmax
M1
2 5 12 16 19 26 31
4 9 2 5 10 1 7 6
M2
3 8 12 15 20 25 31 34
Le modèle O2 // Cmax
M1
9 15 18 20
3 2 4 1
M2
3 8 12 19