Vous êtes sur la page 1sur 115

Ordonnancement et

gestion des flux

Présenté par Mr EL OUALIDI

29/05/2019
Partie 1

Présenté par Mr EL OUALIDI

29/05/2019
Objectif

A l'issue de la leçon l'étudiant doit être capable :


de planifier tout ou partie d'une production à partir
d'un dossier de gestion des flux décrivant le type
appliqué, ses caractéristiques, son mode de mise
en œuvre ainsi que les produits, procédés,
processus, temps etc.
Plan du cours

• Terminologie utilisés dans l’ordonnancement

• Définition et formulation du problème d’ordonnancement

• Ordonnancement de projet

• Ordonnancement d’ateliers
• Contexte
• Méthodes de résolution
Définition et formulation du problème
d’ordonnancement

1.C’est quoi l’ordonnancement ?

2.Quelques domaines concernés par la fonction ordonnancement

3.La fonction ordonnancement dans la gestion de la production

4.Contraintes rencontrées en ordonnancement

• Contraintes de potentiel

• Contraintes disjonctives

• Contraintes cumulatives
Terminologie : Flux de production

Cheminement de produits (flux physique) ou de données

(flux informationnel) au travers d’un ou plusieurs Processus

de l’entreprise.

Produits ou Données = Articles ou Entités

Un flux est caractérisé par un débit mesuré en un point

donné : Quantité d’Articles par Unité de Temps.


Terminologie : Processus

Actions successives ou simultanées qui permettent de faire

évoluer les articles d’un état initial à un état final.


Terminologie: la tâche

La tâche est l’opération de décomposition élémentaire d’un projet, connue


également sous le nom d’activité. Une tâche i est caractérisée par une date
de début ti (au plus tôt ou au plus tard), une durée d’exécution di, une date
de fin Ti (au plus tôt ou au plus tard) tel que : Ti= ti+di, et une consommation
de ressources. Des ressources qui peuvent être humaines (techniciens,
opérateurs, agents) matérielles (matières premières, engins, outils) ou
financières.
Pour chaque tâche on peut calculer une marge, qui correspond au degré de
liberté qui caractérise chaque tâche qui qualifie un retard d’exécution ou un
début anticipé sans remettre en cause le début d’une autre tâche ou le délai
du projet
Terminologie : Poste de travail

C’est une machine ou un endroit aménagé spécifiquement où peut

être exécutée une opération donnée. Un poste est défini par :

une activité : suivant son type d’activité, le poste sera un poste de

fabrication, de contrôle, de manutention… ;

un aménagement et un outillage nécessaire;

une description de la compétence de l’opérateur.


Terminologie :Poste de charge

C’est un poste (ou ensemble de postes) de travail apte à exécuter une

fabrication. Il est composé d’un, ou de plusieurs, poste(s) de travail,

identiques ou différents, et du (ou des) opérateur(s) nécessaire(s) à

son fonctionnement. C’est le moyen qui sera référencé pour la

définition d’un processus de fabrication et qui sera pris en compte

dans la planification.
Définition de l’ordonnancement

Définition 1

Le problème d’ordonnancement consiste à organiser dans le

temps la réalisation d’un ensemble de tâches, compte tenu de

contraintes temporelles (délais, contraintes d’enchaınements,...)

et de contraintes portant sur l’utilisation et la disponibilité des

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

L’ordonnancement de la production consiste à répondre aux

questions suivantes:

1.Quels produits va-t-on fabriquer?

2.Ou seront-ils fabriqués?

3.Quand seront-ils fabriqués?

4.Qui les fabriquera ?

5.Combien de temps faudra t-il pour les fabriquer?


Domaines concernés par l’ordonnancement

Projet Gestion de projet

Administration Production
L’Ordonnancement

Gestion de ressources
humaines ordonnancement des
« emploi du temps » Ateliers de production
Informatique

14
Contraintes en ordonnancement

Technologiques : une tâche ne peut débuter que lorsque

d’autres sont achevées

Commerciales : certaines tâches doivent être achevées pour

une date fixée

Matérielles : une machine ne peut traiter qu’une tâche à la

fois

Main d’œuvre :effectif limité

Financières : budget limité


Contrainte d’antériorité

La contrainte d’antériorité traduit un ordre de réalisation ou

d’exécution des tâches. Ainsi une tâche j ne peut être réalisée

avant qu’une autre tâche i ne soit achevée. On dira alors que la

tâche i précède j ou est antérieur la tâche i. Ceci peut s’écrire

comme suit : tj-ti di.


Contrainte de localisation

Les contraintes de localisation temporelle concernent des tâches

devant débuter impérativement après une date précise a, ce cas

s’impose généralement lors d’une commande de matériel ou

d’études préalables, on obtient : tia. Elles peuvent aussi concerner

des tâches devant être achevées avant une date précise b, dans ce

cas Tib.
Contrainte de ressources

Ces ressources sont disponibles tout au long d’un projet à une

capacité donnée. Une ressource cumulative peut être utilisée par

plusieurs tâches en même temps à condition que la capacité

disponible ne soit pas dépassée. Dans ce cas l’exécution des

tâches en parallèle est possible


Contrainte de ressources

Les ressources disjonctives

Une ressource disjonctive ne peut être utilisée que par une seule

tâche. Cette contrainte peut imposer une contrainte d’antériorité

entre deux ou plusieurs tâches puisque les tâches ne peuvent

utiliser la ressources en même temps, dans ce cas l’exécution de

ces tâches en parallèle est impossible.


Ateliers spécialisées

On parle d’ateliers spécialisés lorsque l’ensemble des équipements


nécessaires pour assurer une fonction déterminée sont rassemblés
dans un même atelier. Le problème de gestion quotidienne est de
déterminer l’ordre d’exécution d’un certain nombre de tâches, la
réalisation d’une tâche nécessitant le passage sur une ou plusieurs
machines.

Par exemple, l’emboutissage de plusieurs types de portières de


voitures demande le passage sur une même presse, l’ordre de
passage des différents types de portières sur la presse n’étant pas
déterminé a l’avance
Ordonnancement d’atelier ?
Ordonnancement d’atelier ?

L’ordonnancement d’atelier couvre un ensemble d’actions qui

transforment les décisions de fabrication dénies par le programme

directeur de production en instructions d’exécution détaillées

destinées à piloter et contrôler à court terme l’activité des postes de

travail dans l’atelier


Type d’ordonnancement

L’un centralisé, où l’on va définir pour chaque centre de charge un


calendrier prévisionnel de fabrication, distribuer les ordres de
lancement et contrôler l’exécution des fabrications.

L’autre décentralisé, qui consiste à gérer devant chaque poste de


charge la file d’attente des ordres de fabrications en choisissant
l’ordre de passage en fonction de règles de priorité locales
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)

Illustrons le problème sur l’exemple suivant .:

On a cinq tâches à effectuer sur la machine A. Le tableau présente


les différentes tâches ainsi que leurs temps opératoires. Il s’agit de
déterminer l’ordre dans lequel on va effectuer ces différentes tâches.
Il est clair que, quel que soit l’ordre choisi, le temps opératoire total
est le même : il s’agit de la somme des temps opératoires
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)
Notons Aj le temps d’achévemnt de la tâche programmée en
position j. Le temps d’achévement d’une tâche est la somme
des temps d’exécution de la tâche avec ceux des tâches
précédentes. Par exemple
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)

Examinons plus en détails la manière dont est calculé ce


temps moyen d’achévement.
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)

Il peut se récrire en détails comme suit :

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  1150) / 5
En général, il s’écrit donc comme :
Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)

Il s’agit donc d’une somme pondérée des temps opératoires, chaque

temps opératoire étant pondéré par un facteur d’autant plus grand

qu’il se trouve exécuté plus tôt dans l’ordonnancement. La règle

d’ordonnancement qui minimise le temps d’achévement moyen est

celle du temps opératoire minimum : il s’agit d’exécuter ces tâches

par ordre croissant de durée :


Ordonnancement sur une machine:
La règle du temps opératoire minimum (TOM)

L’application de cette règle donne l’ordonnancement illustré


au tableau. Cette application donne le temps d’achévement
moyen minimum :
Exemple

5 pièces repérées de 1 à 5 avec un temps opératoire


Exemple

Durée de réalisation moyenne dm= 1546


Exemple

Si l'on applique la règle du temps opératoire minimum on


obtient , avec un ordre de passage 2 4 3 5 1 qui minimise la
durée de réalisation moyenne.
On obtient: dm=1202 au lieu de 1546
Ordonnancement avec deux machines:

Cas ou toutes les tâches sont à exécuter sur A puis B:


« L'algorithme de Johnson »

Permet minimiser la durée de réalisation d'une file d'attente de n pièces


devant toutes passer selon le même ordre sur deux machines A et B
(problème du type flow-shop).

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

Considérons 4 pièces P1 P2 P3 et P4 qui vont passer successivement


sur les machines M1 et M2 afin d'être fabriquées.
Les gammes de fabrications s'écrivent ainsi
L'algorithme de Johnson

On obtient ainsi l'ordre suivant : P2, P4, P1, P3


Ordonnancement avec deux machines:

Cas de tâches ne s’effectuant pas dans le même ordre


Dans ce cas plus général, certaines tâches ne nécessitent que le
passage sur une machine, d’autres sur les deux dans un ordre ou
l’autre. Les données numériques sont reprises au tableau

L’ordonnancement qui minimise le temps total d’exécution des tâches


sur les deux machines est obtenu par l’algorithme de Jackson
Ordonnancement avec deux machines : l’algorithme de
Jackson

1. Faire une partition de l’ensemble des n tâches en

• l’ensemble A des tâches ne passant que sur A;

• l’ensemble B des tâches ne passant que sur B;

• l’ensemble AB des tâches passant sur A puis B;

• l’ensemble BA des tâches passant sur B puis A.


Ordonnancement avec deux machines:
l’algorithme de Jackson

2. Calculer un ordonnancement pour chaque sous-ensemble :

• l’ordonnancement optimal pour AB par Johnson;

• l’ordonnancement optimal pour BA par Johnson;

• un ordonnancement arbitraire pour A (par exemple, TOM);

• un ordonnancement arbitraire pour B (par exemple, TOM).


Ordonnancement avec deux machines:
l’algorithme de Jackson

3. Reconstruire la séquence optimale pour chaque machine de la

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.

• Pour la machine B : la séquence optimale pour le sous-ensemble


BA, puis les tâches de B, puis la séquence optimale du sous-
ensemble AB.
Ordonnancement avec deux machines: l’algorithme de
Jackson
Ordonnancement avec deux machines: l’algorithme de
Jackson
Ordonnancement sur 3 Machines

L’algorithme de Johnson ne s’applique qu’en présence de deux


machines. Cependant, le cas de trois machines peut se ramener au
cas de deux machines si la machine B est complétement dominée
par la machine A ou par la machine C, c’est-`a-dire si l’on se trouve
dans le cas ou’:

Ou dans le cas ou’:


Ordonnancement sur 3 Machines: Exemple
Ordonnancement sur 3 Machines : Exemple

On applique alors l’algorithme de Johnson à ce problème à


deux machines pour déterminer l’ordonnancement optimal:
Ordonnancement avec Plus deux machines :
L'algorithme de Johnson généralisé

Il peut s'appliquer sur toute fabrication dont le processus de


fabrication est séquentiel avec plus de deux postes de fabrication
même si tous les postes ne sont pas utilisés.
Pour chaque pièce :
• Réaliser la somme des temps de toutes les phases (N)
• Réaliser la somme x des temps des n-1 premières phases
• Réaliser la somme y des temps des n-1 dernières phases
• Calculer le rapport k=x/y
On obtient l'ordre des fabrications grâce à l'ordre croissant de k
L'algorithme de Johnson généralisé : Exemple

Soit une file d'attente composée de six pièces et devant être


fabriquées séquentiellement sur 4 machines, les temps
opératoires sont exprimés en centièmes d'heures.
L'algorithme de Johnson généralisé : Exemple
L'algorithme de Johnson généralisé : Exemple

=L'ordre de passage est donc : P3 P4 P6 P2 P5 P1


Exercice 1

Considérons, ci-dessous, 6 tâches (T1, T2, T3, T4, T5, T6)


relatives à la fabrication d’un produit alimentaire. Ces tâches
doivent être s’enchainées sans attente et tous les centres C1, C2,
C3 sont utilisés.
Représenter, à l’aide un Gantt, l’enchainement de ces tâches. En
déduire la durée d’exécution totale de toutes ces tâches dans une
programmation au plus tôt sans attente

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é

1. Indiquez l’algorithme d’ordonnancement qui permet de minimiser


le temps global de réalisation de ces 8 produits (A à H).
2. Trouver l’ordre de fabrication de ces 8 produits en appliquant
l’algorithme que vous proposez.
3. Représenter graphiquement la prévision de réalisation au plus tôt
de ces fabrications dans le temps
• Les produits en ordonnées
• Les moyens en ordonnées

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.

Les temps nécessaires aux opérations de préparation, de découpage et de


conditionnement sont donnés en minutes au tableau ci-dessous.

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

Présenté par Mr EL OUALIDI

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 :

Completion time Cj C’est la date de fin de l’exécution du job j


 Flow time Fj C’est le temps que le job j passe dans l’atelier : Fj = Cj - rj
 Waiting time Wj C’est le temps que le job j «attend» : Wj = Fj - pj
Lateness Lj C’est le retard algébrique du job j ; la différence entre sa date
de fin d’exécution et sa date de fin souhaitée : Lj = Cj - dj
Tardiness Tj (resp. Earliness Ej ) C’est le retard (resp. l’avance) du job j
par rapport à sa due date Tj = max(0, Lj) (resp. Ej = max(0, -Lj) )
 Variables indicatrice de retard Uj
Uj = 1 si Tj > 0
= 0 si Tj = 0

29/05/2019
Critères de performance :

 Critères « Somme » C’est la date de fin de l’exécution du job j


 Mean completion time : n
1
temps moyen d’utilisation des machines C Cj
n j 1
utiliser le moins longtemps possible les machines
 Mean flow time : n
1
temps moyen de séjour des jobs dans l’atelier F Fj
n j 1
minimiser les encours dans l’atelier
 W, L,T, E
 En introduisant un poids wj qui représente l’importance accordée au
n
job j, 1
Cw wjC j
n j 1

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 »

 Lmax,Tmax, Fmax,Wmax, Emax

 Autres Critères
 Nombre de jobs en retard
n

NT Uj
j 1

29/05/2019
Nomenclature des modèles d’ordonnancement

▪ Introduite dès 1979 par Graham et al.

▪ Classification des modèles selon trois champs α | β | γ


α : structure de l’atelier
β : contraintes particulières du problème
γ : critères à optimiser

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

 pmtn possibilité de préemption. d’interrompre l’exécution d’une


opération et de continuer plus tard.
29/05/2019
Le troisième champ γ

γ est un critère de performance.

Dans les problèmes multicritères, le champ γ indique les différents critères


pris en considération.

29/05/2019
Les modèles à une machine

- Les modèles simples1 // γ

- Extensions : quelques modèles 1/ β /γ

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

Définition : Ordonnancement SPT


L’ordonnancement SPT « Shortest processing time » est l’ordonnancement
où les jobs sont rangés dans l’ordre croissant des pj

Propriété :
L’ordonnancement SPT est optimal pour le modèle 1// F

29/05/2019
Modèle 1// F

Exemple : Soit les données

Job 1 2 3 4 5
pj 10 3 4 8 1

L’ordre optimal donné par SPT est {5, 2, 3, 4, 1} avec F 11

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

Définition : Ordonnancement WSPT


L’ordonnancement WSPT «Weighted SPT» est l’ordonnancement où les
pj
jobs sont rangés dans l’ordre croissant des
wj
Propriété :
L’ordonnancement WSPT est optimal pour le modèle 1// wjCj

29/05/2019
Modèle 1//wjC

Exemple : Soit les données


Job 1 2 3 4 5
pj 10 3 4 8 1
wj 0.2 0.2 0.1 0.4 0.1
pj / wj 50 15 40 20 10

L’ordre optimal donné par WSPT est {5, 2, 4, 3, 1} avec wjC j =

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

Définition : Ordonnancement EDD


L’ordonnancement EDD « Earliest due date » est l’ordonnancement où les
jobs sont rangés dans l’ordre croissant des dj

Propriété :
L’ordonnancement EDD est optimal pour le modèle 1// Lmax

29/05/2019
Modèle 1// Lmax

Exemple : Soit les données

Job 1 2 3 4 5 6
dj 15 6 9 23 20 30
pj 10 3 4 8 10 6

Un ordonnancement optimal est {Lmax

29/05/2019
Modèle 1// NT

Un ordonnancement optimal peut être obtenu grâce à l’algorithme de Moore et


Hodgson :
1. Classer les jobs dans l’ordre EDD et initialiser la liste L des jobs en retard :
L=
1. Placer les jobs dans cet ordre tant qu’aucune tâche n’est en retard; soit le kème
job qui est le premier en retard
2. Déterminer parmi les k premiers jobs, celui qui a le plus grand processing time
et le placer dans la liste L; réactualiser l’ordonnancement. Retourner à 2
3. Quand tous les jobs ont été traités, l’ordonnancement optimal est celui obtenu,
suivi par ceux qui sont la liste L (jobs en retard) dans un ordre quelconque

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

On forme la séquence EDD et on calcule le temps de fin d’exécution


Des tâches jusqu’une tâche soit trouvé en retard (Etape 1 et 2)
Séquence: 2 3 1 5 4 6

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

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

La tâche 4 est la première en retard et la tâche 5 a le plus


grand temps d’exécution de la sous séquence (2 3 5 4).
On rejette la tâche5 et on retourne à l’étape 2
Job² 2 3 5 4 6 Tâches rejetées
dj 6 9 20 23 30 1,
Pj 3 4 10 8 6
Cj 3 7 17 25
29/05/2019
On passe à l’étape 4 et on forme la séquence optimale :
(2 3 4 6 1 5) ou (2 3 4 6 5 1)
Job 2 3 4 6 Tâches rejetées

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 / β / γ

 Arrivées non simultanées : modèles1/ rj , pmtn/ F

 Jobs dépendants : modèles 1 / prec / γ

 Temps de réglage dépendant de l’ordonnancement : modèle 1/ set-up / Cmax

29/05/2019
Arrivées non simultanées : Modèle 1/ rj , pmtn/ F

Définition : Ordonnancement SRPT (ou SPT dynamique)


L’ordonnancement SRPT «Shortest remaining processing times» consiste à
chaque instant de décision, à exécuter le job qui a le plus petit temps
d’exécution restant

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

Le diagramme suivant décrit le résultat de l’algorithme


1 2 3 6 4 1 5

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

Un ordonnancement optimal est {1(1), 2, 3, 6, 4, 1(9), 5} avec F 17,5


29/05/2019
Exemple 2: Soit les données

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

Définition : Ordonnancement EDD’


L’ordonnancement EDD’ est l’ordonnancement où les jobs sont rangés dans
l’ordre croissant des d’j
où : d 'j min(d j , mind k )
k ( j)

(j) est l’ensemble des successeurs de j

Propriété :
L’ordonnancement EDD’ est optimal pour le modèle 1/ prec/ Lmax

29/05/2019
Modèle 1/ prec/ Lmax

Exemple : Soit le modèle avec 6 jobs

Job 1 2 3 4 5 6
dj 6 5 9 7 11 6
pj 2 3 4 3 2 1

et les contraintes de précédence :


1 2 3
5
Job 1 2 3 4 5 6
4 d’j 5 5 9 6 11 6
6

L’ordonnancement optimal est donc (1, 2, 4, 6, 3 ,5) avec


Lmax max(0,0,1,3,4,4) 4
29/05/2019
Modèle 1/ prec/ Lmax

Exemple 2: Donner le nombre de tâches en retard

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

p[1] p[2] p[j-1] p[j] p[n-1] p[n]

s[1][2] s[j-1][j] s[n-1][n]


Cmax
n n
Cmax pj s[ j 1][ j ]
j 1 j 2

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

Le problème est bien identique au célèbre problème de voyageur de


commerce. La seule petite différence avec TSP est que le job [1] ne succède
pas au job[n]. Pour y remédier, il suffit d’instaurer un job fictif n+1

avec si,n+1 = sn+1, i = 0 pour tout i et pn+1 =0

29/05/2019
Séance 3
Les modèles à machines parallèles

29/05/2019
Modèles à machines parallèles

Plusieurs types de machines en parallèle : α1 {P, Q, R}

α1 = P : machines en parallèle identique

α1 = Q : machines en parallèle uniformes; la machine k possède une vitesse


sk et si le job j est affecté à la machine k, son temps sera pjk = pj / sk

α1 = R : machines en parallèle sont sans rapport; la machine k utilise une


vitesse skj pour traiter un job j en un temps pjk = pj / skj

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

On en déduit l’algorithme de Algorithme de Mc Naughton :


 Prendre les jobs dans un ordre quelconque
 Remplir une à une les machines
 Couper l’exécution d’un job quand la valeur Cmax est atteinte.

29/05/2019
Modèle Pm/ pmtn/ Cmax

Exemple 1: Soit trois machines et 8 jobs avec avec pj = j pour tout j


8
j
1
Cmax max( j ,8) 12
3
En prenant les jobs dans l’ordre SPT, on obtient l’ordonnancement :

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

Formulation en programmation linéaire mixte:


Introduisons les variables binaires:
xij = 1 si le job j est exécuté sur la machine i
= 0 sinon. n

Le temps d’exécution total sur la machine i est donc


p j xij
n j 1
Cmax max p j xij
i 1...,m j 1

En introduisant une variable supplémentaire y continue, on obtient P :

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

xij 0,1 , i 1,...,m; j 1,...,n


y 0

29/05/2019
Modèle Pm/ Cmax

Heuristique gloutonne :

 Ranger les jobs dans l’ordre LPT « Largest proceesing time »,


l’ordre des pj décroissants
 Affecter les jobs dans cet ordre à la machine la moins chargé

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

Contrairement au critère Cmax, il convient non seulement de décider de


l’affectation des jobs sur les machines, mais aussi de déterminer l’ordre de
passages des jobs sur les machines

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

Exemple 1: Soit 2 machines et 6 jobs avec processing time 1, 2, 3, 5,7 et 8

L’ordonnancement optimal est :


1 3 7

M1
1 4 11

2 5 8

M2
2 7 15

1
F (16 24) 20
2

29/05/2019
Modèle Pm// F

Exemple 1: Soit 2 machines et 6 jobs avec processing time 1, 2, 3, 5,7 et 8

L’ordonnancement optimal pour Cmax est :


1 2 3 7

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

 L’étude du modèle F3 // Cmax peut se réduire à celle di modèle PF3 // Cmax

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

Exemple : Soit le modèle F2 // Cmax avec 5 jobs

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 }

Dans ce cas particulier, un ordonnancement optimal peut être déterminé en


appliquant l’algorithme de Johnson à un modèle fictif Fm // Cmax, avec :
 p’1j = p1j + p2j
 p’2j = p2j + p3j

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

La machine 2 est dominée par la machine 1


Job 1 2 3 4 5 6
p’1j 5 8 4 8 10 5
p’2j 4 11 3 10 8 2

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

La machine 2 est dominée par la machine 1


Job 1 2 3 4 5 6
p’1j 5 8 4 8 10 5
p’2j 4 11 3 10 8 2

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

Heuristique CDS (Campbell, Dudek et Smith)


Appliquer (m-1) fois la règle de Johnson
A la kème fois (k = 1, 2,…, m-1), les processing times sur les 2 machines
fictives sont définis par :

k
 p1' j pij temps total sur les k premières machines
i 1
k

 p2' j p(m i 1) j temps total sur les k dernières machines


i 1

Les (m-1) ordonnancements générés sont évalués du point de vue Cmax et le


meilleur est retenu.

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}

L’ordonnancement 1 – 2 – 3 – 4 de valeur Cmax = 28

29/05/2019
Séance 5
Les modèles Job Shop et Open Shop

Job Shop

Open Shop
Le modèle J2 // Cmax

Chaque job nécessite au plus une opération sur chaque machine.


L’ensemble des jobs peut être partitionnée en 4 sous ensembles :
J1 (J2) : ensemble de jobs composées d’une seule opération à effectuer sur
la machine 1 (2)

 J12 (J21) : ensemble de jobs composées de 2 opérations :


 la 1re à effectuer sur la machine 1 (2)
 la 2ème à effectuer sur la machine 2 (1)
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

 Notons par ailleurs 1 et 2 deux séquences quelconques, respectivement


de J1 et J2
 Un ordonnancement optimal est fourni par :
 sur la machine 1 : 12 - 1 - 21

 sur la machine 2 : 21 - 2 - 12
Le modèle J2 // Cmax

Exemple : Soit le modèle J2 // Cmax avec 10 jobs


Job 1 2 3 4 5 6 7 8 9 10
p1j 2 5 4 1 - 7 3 3 6 -
p2j 5 4 - 3 3 3 6 - 5 5
avec J12 = {1, 6, 7} et J21 = {2, 4, 9}
La règle de Johnson fournit :
pour J12, la séquence 12 : (1- 7 – 6)
pour J21, la séquence 21 : (4- 9 – 2)
L’ordonnancement optimal (Cmax = 34) est donc
1 7 6 3 8 4 9 2

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

Chaque job nécessite 2 opérations à effectuer sur les machines 1 et 2, mais


l’ordre dans lequel elles sont effectués n’est pas imposé.

Algorithme de Gonzalez et Sahni


L’ensemble des jobs est partitionnée en 2 ensembles :
 U = { j | p1j ≤ p2j }
 V = { j | p1j > p2j }
 posons p1r = max {p1j / j U } et p2s = max {p2j / j V }
 Un ordonnancement optimal est fourni selon deux cas :
Le modèle O2 // Cmax

Algorithme de Gonzalez et Sahni


Cas 1 : p1r ≥ p2s
 sur la machine 1, placer d’abord les jobs de U\{r}, dans un ordre
quelconque, puis les jobs de V dans un ordre quelconque, enfin le job r
sur la machine 2, placer d’abord le job r, puis les jobs de U\{r}, dans le même
ordre que sur la machine 1, puis les jobs de V dans le même ordre que sur la
machine 1
Le modèle O2 // Cmax

Algorithme de Gonzalez et Sahni


Cas 2 : p1r p2s
sur la machine 1, placer d’abord le job s, puis les jobs de V\{s}, dans un
ordre quelconque, puis les jobs de U dans un ordre quelconque
sur la machine 2, placer d’abord les jobs de V\{s}, dans le même ordre que
sur la machine 1, puis les jobs de U dans le même ordre que sur la machine
1, enfin le job s
Le modèle J2 // Cmax

Exemple : Soit le modèle O2 // Cmax avec 4 jobs


Job 1 2 3 4
p1j 9 3 6 2
p2j 7 5 3 4

U = {2, 4} et max {p1j / j U } = p12 = 3


V = {1, 3} et max {p2j / j V } = p21 = 7
On est dans le cas 2 avec s = 1
1 3 2 4

M1
9 15 18 20
3 2 4 1

M2
3 8 12 19

Vous aimerez peut-être aussi