Vous êtes sur la page 1sur 51

ENSEM-2021 Pr.

ALAMI Ayoub

CHAPITRE I : INTRODUCTION A L’ORDONNANCEMENT

I.1 Introduction
L’ordonnancement est une tâche très importante qu’une entreprise doit accomplir pour améliorer
son efficacité en termes de coûts de production et de délais de livraison. En raison de la diversité de
leurs champs d’application, notamment dans le secteur industriel et dans celui de l’informatique, les
problèmes d’ordonnancement ont été largement étudiés depuis plus de soixante ans.

En général, nous rencontrons les problèmes d’ordonnancement dans l’industrie, la gestion de


projets, la gestion de production et la logistique. Toutefois, ces problèmes peuvent être introduits dans
plusieurs domaines autres que l’industrie, par exemple dans le domaine informatique pour allouer des
processeurs à l’exécution des programmes, dans l’administration pour la gestion du personnel et les
emplois du temps.

Définition.

Ordonnancer un ensemble d’opérations, consiste à déterminer un calendrier d’exécution de ces


opérations qui optimise un critère économique fixé à l’avance, et tel que toutes les contraintes relatives
à l’exécution de ces opérations soient respectées.

Gérer donc un système de production consiste à décider, dans le détail, des tâches à accomplir et
des ressources à utiliser pour accomplir ces tâches.

I.2 Terminologie de l’ordonnancement


Comme l’indique la définition donnée en introduction, un problème d’ordonnancement est défini
par l’ensemble des tâches à réaliser, les ressources disponibles pour les exécuter, les contraintes
relatives aux tâches et aux ressources ainsi que la fonction objectif à optimiser.

Quatre notions fondamentales sont donc spécifiées : les tâches, les ressources, les contraintes et
les objectifs.

a- Les tâches
Une tâche i est définie comme étant une entité élémentaire d’un travail k (job) à réaliser. Sa
réalisation est caractérisée par une durée opératoire notée pik (processing time) et sa localisation dans le
temps est définie par une date de début notée tik. Une tâche peut aussi avoir un poids ou facteur de
priorité, noté wik, pour dénoter son importance relativement aux autres tâches.
ENSEM-2021 Pr. ALAMI Ayoub

Dans le cas de l’ordonnancement d’atelier, le terme opération remplace par fois celui de tâche.
Dans le domaine de la gestion de projet, c’est le terme activité qui est utilisé.

Un travail est constitué d’une ou plusieurs opérations. La gamme opératoire d’un travail est
donnée par le routage du travail et les durées opératoires de passage sur les différentes machines, tandis
que le routage d’un travail est la succession des ressources qui lui sont associées pour être réalisé.

Si un travail k s’exécute en une seule opération, les termes pik, tik et wik seront notés
respectivement pk, tk et wk, et sa date de fin d’exécution sera notée Ck (Completion time).

Une tâche est dite morcelable ou préemptive, lorsqu’elle peut être exécutée par morceaux, sinon
elle est dite non préemptive.

Dans la suite, nous supposons qu’un travail k est constitué d’une seule opération, et nous le
notons Jk.

b- Les ressources
Une ressource est un moyen matériel (machine, outil...), ou humain disponible en quantité limitée,
destiné à être utilisé pour la réalisation d’une ou plusieurs tâches.

Nous distinguons deux types de ressources pouvant être requises par les tâches :

 Une ressource consommable dont la quantité diminue au fur et à mesure de son utilisation,
comme les matières premières, le budget... Il convient alors d’en assurer le
réapprovisionnement éventuel.
 Une ressource renouvelable dont la quantité reste inchangée lorsqu’elle est utilisée pour la
réalisation d’une ou plusieurs tâches, comme une machine d’un atelier, équipe d’ouvriers...

Dans le cas de l’ordonnancement d’atelier, le terme machine est généralement utilisé à la place de
ressource.

Dans la suite, nous utilisons le terme machine pour désigner une ressource, et elle sera notée M i,
i=1, 2, ..., m, tel que m est le nombre de machine.

c- Les contraintes
Les contraintes représentent les limites imposées par l’environnement ou par les machines.

Nous distinguons deux sortes de contraintes : les contraintes temporelles et les contraintes liées
aux machines.
ENSEM-2021 Pr. ALAMI Ayoub

 Les contraintes temporelles se divisent en deux catégories :

 Des contraintes de précédence : ces contraintes définissent l’ordre partiel ou total


d’exécution des travaux sur les machines et permettent d’exprimer les écarts temporels
minimaux ou maximaux entre les variables tk et Ck.

 Des contraintes de temps alloué : ces contraintes sont propres à chaque travail, elles
expriment les dates limites de leur exécution. En particulier, nous parlons des contraintes
associées à :

o La date de disponibilité, notée rk, dite aussi date de début au plus tôt (release

date) ; l’exécution du travail Jk ne peut pas commencer avant la date rk : tkrk.

o La date de fin au plus tard souhaitée, notée dk, dite aussi date d’échéance (due

date) ; c’est la date de fin d’exécution préférentielle du travail k : Ckdk. Lorsque

cette date d’échéance doit être respectée, on parle de date d’échéance stricte

(deadline) notée dk.

 Les contraintes liées aux machines se divisent aussi en deux catégories :

 Des contraintes disjonctives : si deux travaux Jk et Jk’ doivent être exécutés sur une même
machine, alors soit l’exécution du travail k’ ne commence qu’après la fin de l’exécution
du travail k, ou l’inverse. Nous aurons donc tk’-tkpk ou tk-tk’pk’.

 Des contraintes cumulatives associées aux contraintes de respect des capacités des
machines.

d- Les objectifs
La fonction objectif, dite aussi critère de performance ou encore fonction d’évaluation de la
qualité de l’ordonnancement, représente le critère à optimiser qui permet d’apprécier la qualité de toute
solution d’un problème d’ordonnancement. Il existe des critères liés à l’utilisation des machines comme
la charge des machines dans un atelier, et d’autres sont liés au temps comme la date d’achèvement de la
réalisation du dernier travail, appelée makespan, et notée Cmax.

La fonction objectif varie selon le problème d’ordonnancement à traiter ; on peut citer à titre
d’exemple : le temps moyen d’achèvement des travaux, la durée totale de retard, le cumul des temps
d’attente des travaux, le nombre de travaux en retard, etc. Les critères les plus mentionnés dans la
littérature seront énumérés dans la quatrième section.
ENSEM-2021 Pr. ALAMI Ayoub

Par ailleurs, on parle d’un critère régulier lorsque l’avancement de l’exécution d’une tâche, sans
en retarder d’autres, ne dégrade pas la fonction objectif. Le critère lié au temps, Cmax, est par exemple
régulier, à la différence de la plupart des critères liés aux coûts ou aux ressources.

Par la suite nous utiliserons le terme job au lieu de travail.

I.3 Classification des problèmes d’ordonnancement d’atelier


En général, dans un problème d’ordonnancement d’atelier, nous avons n jobs J1, J2, ..., Jn et m
machines M1, M2, ..., Mm. L’élaboration d’un job nécessite son passage sur une ou plusieurs machines.

Dans la plupart des problèmes d’ordonnancement, nous imposons certaines hypothèses parmi la
liste ci-dessous :

o A un instant donné, une machine ne peut exécuter qu’une seule opération à la fois.
o A un instant donné, une opération ne peut être exécutée que sur au plus une machine.
o L’interruption d’une opération n’est pas permise.
o La durée de chaque opération est donnée et constante.
o Durant l’horizon de l’ordonnancement, les pannes des machines ne sont pas prises en
compte.

Mais il existe d’autres types de problèmes d’ordonnancement tels que :

o Problèmes d’ordonnancement par lots où une machine peut exécuter plusieurs travaux
simultanément.
o Problèmes d’ordonnancement avec chevauchements où les opérations d’un même job
peuvent s’exécuter en même temps sur plusieurs machines.

Par ailleurs, nous distinguons également entre les problèmes d’ordonnancement mono-tâche où
chaque job s’exécute en une seule tâche, et les problèmes d’ordonnancement multitâches qui sont les
problèmes dont la réalisation d’un job nécessite l’exécution de plusieurs tâches et qui regroupent les
problèmes de Flow shop, Job shop et Open shop.
ENSEM-2021 Pr. ALAMI Ayoub

I.3.1 Les problèmes à une opération


a- Problèmes à une machine

La figure I.1 illustre le problème à une machine.

Jobs en attente

Jobs traités
Machine unique

Figure I.1 - Problème à une machine

Il est évident que si tous les jobs sont disponibles à l’instant zéro et si le critère à minimiser est le
makespan, alors toute séquence d’exécution des jobs aboutit à une solution optimale. Mais, l’ajout de
contraintes et la considération d’autres critères rendent le problème plus difficile à résoudre.

b- Problèmes à machines parallèles

Le problème d’ordonnancement à machines parallèles consiste à déterminer l’affectation des jobs


aux machines puis à déterminer leurs dates de début d’exécution. Dans ces problèmes, chaque job
s’exécute en une seule opération. La figure I.2 montre ce type de problème :

Atelier

M1
Une séquence de Jobs

J1 J2 J3 J4 M2

M3

Figure I.2 - Problème à machines parallèles

Selon les caractéristiques des machines, trois types de problèmes à machines parallèles sont
considérés :
ENSEM-2021 Pr. ALAMI Ayoub

 Les problèmes à machines identiques pour lesquels les machines ont les mêmes caractéristiques
(vitesse, qualité…) et peuvent exécuter tous les jobs sans aucune distinction. Dans ces
problèmes, les durées opératoires ne dépendent pas des machines.
 Les problèmes à machines uniformes pour lesquels les machines ont des caractéristiques
différentes, et la durée d’exécution d’un job varie uniformément en fonction de la performance
de la machine choisie.
 Les problèmes à machines non liées ou indépendantes, pour lesquelles les durées opératoires
dépendent complètement des machines employées.

I.3.2 Les problèmes à multi-opérations


Ce sont des problèmes d’ordonnancement à machines spécifiques ou dédiées, où un job, pour être
réalisé, doit passer sur plusieurs machines, chacune de ces machines ayant ses spécificités. On peut
rencontrer ce modèle dans les industries de montage telle que la chaîne de montage des voitures. La
figure I.3 montre ce type de problème :

Atelier
Une séquence de Jobs

J1 J2 J3 J4 M1 M2 M3

Figure I.3 - Problème à machines dédiées


On distingue trois modèles selon l’ordre de passage des jobs sur les machines : Flow shop - Job
shop - Open shop

Définition.
Dans un problème de flow shop, l’atelier est formé de machines « différentes » que sont
généralement disposées en ligne, et chaque job doit passé sur chacune de ces machines dans un ordre
déterminé. Cet ordre est identique pour tous les jobs.

Définition.
Dans un problème de job shop, les jobs sont composés de plusieurs opérations et pour lesquels il
existe au moins deux jobs dont les routages sont différents.

Définition.
Les problèmes d’open shop, ce sont des problèmes à cheminements libres, dans ce type de
problèmes, les machines ont des caractéristiques différentes et les routages relatifs aux différents jobs
peuvent être différents. Ici, l’ordre de passage des jobs sur les différentes machines n’est pas imposé.

Nous pouvons schématiser cette classification dans la figure I.4 :


ENSEM-2021 Pr. ALAMI Ayoub

Problèmes d'ordonnancement d'atelier

Problèmes à une opération Problèmes à multi-opérations

Problèmes à Problèmes à
une machine machines parallèles Flow shop

Job shop
Les problèmes à Les problèmes à Les problèmes à
machines identiques machines uniformes machines non liées
Open shop

Figure I.4 - Typologie des problèmes d’ordonnancement d’atelier

I.4 Notation des problèmes d’ordonnancement d’atelier


Pour faciliter la classification des différents problèmes d’ordonnancement, plusieurs notations ont
été proposées. La notation la plus utilisée en ordonnancement est celle introduite par Graham (1979), et
qui décrit les problèmes d’ordonnancement à l’aide de trois champs 𝛂, 𝛃 et 𝛄, notée par 𝛂 | 𝛃 | 𝛄.

Le premier champ 𝛂 décrit l’environnement des machines et se décompose généralement en deux


sous champs 𝛂1 et 𝛂2, où 𝛂1 représente le type d’atelier considéré et 𝛂2 précise le nombre de machines.

Quelques valeurs classiques de 𝛂1 sont décrites dans le tableau I.1 :

Tableau I.1 - Quelques valeurs de 𝛂1

𝛂1 Description
 Machine unique
P Machines parallèles identiques
Q Machines parallèles proportionnelles
R Machine parallèles non reliées
F Flow shop
J Job shop
O Open shop
FH Flow shop hybride
JG Job shop généralisé
OG Open shop généralisé
ENSEM-2021 Pr. ALAMI Ayoub

Le deuxième champ 𝛃 correspond aux contraintes liées aux opérations. Il peut inclure plusieurs
sous-champs. Il indique si la préemption des jobs est autorisée ou non, ou encore si les périodes
d’indisponibilité existent ou non.

Dans le cas où la préemption des jobs est autorisée, l’exécution d’un job peut être arrêtée afin de
laisser passer un autre job ayant une priorité plus élevée pour s’exécuter sur la machine, ou une portion
de son temps d’exécution est interrompue par une période d’indisponibilité.

Deux types de préemption doivent être distingués : la préemption d’opération où le job


interrompu reprend son exécution sur la même machine ou il a commencé son exécution, et la
préemption arbitraire où un job peut être interrompu et envoyé à une autre machine pour compléter son
exécution.

Quand l’exécution d’un job est interrompue par une période d’indisponibilité, il continue son
exécution à la fin de la période d’indisponibilité. On dit qu’un job est résumable lorsque la durée
restante de son exécution peut être complétée après l’indisponibilité. Quand l’exécution d’un job doit
être recommencée depuis le début après la période d’indisponibilité, on dit que ce job est non
résumable.
Quelques valeurs classiques de 𝛃 sont décrites dans le tableau I.2 :

Tableau I.2 - Quelques valeurs de 𝛃

𝛃 Description

Présence de contraintes de précédence générale entre


Prec
les opérations
Une date de début au plus tôt rk est associée à chaque
rk
job k
Une date d’échéance préférentielle dk est associée à
dk
chaque job k

∽ Une date d’échéance stricte dk est associée à chaque
dk
job k
pk=1 Les durées opératoires des jobs sont unitaires

pk=p Tous les jobs ont la même durée opératoire

Pmtn La préemption des jobs est autorisée

Les opérations de chaque job doivent se succéder sans


no-wait
attente
Les ressources doivent être préparées avant et/ou après
Snsd(Rsnd) chaque exécution indépendamment de la séquence des
jobs
ENSEM-2021 Pr. ALAMI Ayoub

Le troisième terme 𝛄 spécifie les fonctions objectifs à optimiser ou les critères à mesurer. Le plus
souvent, le critère est exprimé en fonction des variables de décision associées à chaque job k, soit :

 La date Ck de fin d'exécution du job Jk

 La durée de séjour dans l’atelier du job Jk (Flow-time), son expression est donnée par
Fk=Ck-rk

 Le retard algébrique du job Jk (lateness) qui dénote l’écart par rapport au délai souhaité avec
avance favorable et retard défavorable. Il est exprimé par Lk=Ck-dk

 Le retard vrai (tardiness) de Jk donné par l’expression Tk = max(0,Lk)

 L'indicateur de retard (unit penalty) de Jk noté Uk définit par Uk=0 si Ckdk, Uk =1 sinon

 L’avance (earliness) de Jk définit par Ek=max(0,dk-Ck)=-min(0,Lk)


Le tableau I.3 donne les valeurs usuelles classiques de 𝛄 :

Tableau I.3 - Quelques valeurs usuelles de 𝛄

𝛄 Description
Cmax=Max Ck La durée totale de l’ordonnancement (Makespan)
Lmax=Max Lk Le plus grand retard algébrique (Maximum lateness)
Tmax=Max Tk Le plus grand retard vrai
⎺=∑T /n
T Le retard moyen
k

Fmax=Max Fk La plus grande durée de séjour


⎺ =∑F /n
F La durée moyenne de séjour
k

∑Uk Le nombre de travaux en retard (Number of late jobs)


∑Ck La somme des délais (Flow time)
∑[wk]Ck Le délai pondéré (Weighted flow time)
∑[wk]Uk Le nombre pondéré de jobs en retard
∑[wk]Tk Le retard pondéré

A partir de ces mesures, des critères d’appréciation ou d’évaluation des solutions du problème
d’ordonnancement sont construits. Pour ceux que nous avons présentés, l’objectif consiste dans tous les
cas à minimiser ces mesures de performance. Nous remarquons que tous ces critères sont basés sur
l’inconnue Ck et éventuellement sur les fenêtres d’exécution [rk,dk] associées aux jobs.
ENSEM-2021 Pr. ALAMI Ayoub

I.5 Modélisation d’un problème d’ordonnancement


Les problèmes d’ordonnancement d’ateliers peuvent être modélisés à l’aide d’un programme
linéaire « disjonctif » qui peut être transformé en un programme linéaire à variables mixtes, comme ils
peuvent aussi être modélisés à l’aide d’un graphe « disjonctif ».

I.5.1. Programme linéaire

Un problème d’ordonnancement peut être modélisé à l’aide d’un programme linéaire mixte. Nous
considérons à titre d’exemple le cas d’un problème à une machine à jobs indépendants dont l’objectif
est de minimiser la durée totale de l’ordonnancement.

Etant donné un ensemble N de n opérations : 1, 2, ..., n à exécuter sur une machine M, nous
disposons pour chaque opération i les données suivantes :

 ri : La date de disponibilité de l’opération i

 pi : La durée opératoire de l’opération i.

 qi : La durée de latence de l’opération i (durée séparant la fin d’exécution de l’opération i

et la fin de l’ordonnancement).

L’objectif est de déterminer un ordonnancement optimal T={ti, i=1, 2, ..., n} solution du

programme linéaire disjonctif associé à ce problème :

Minimiser t

ti≥ri i∊N

s/c t-ti≥pi+qi i∊N

ti-tj≥pj ou tj-ti≥pi i, j ∊ N , i < j

La contrainte disjonctive ti-tj≥pj ou tj-ti≥pi est équivalente au système des deux contraintes à

variables mixtes suivant :

ti-tj≥pj-K.yi,j

tj-ti≥pi-K.(1-yi,j)

Avec K est une constante réelle de très grande valeur.

Et yi,j est la variable booléenne telle que yi,j=1 si l’opération i est exécutée avant l’opération j et

yi,j=0 sinon.
ENSEM-2021 Pr. ALAMI Ayoub

I.5.2. Graphe disjonctif

Une autre manière de modéliser les contraintes d'un problème d'ordonnancement d'atelier est
d'utiliser un graphe potentiels-tâches dit graphe disjonctif.

Un des principaux avantages de ce modèle est qu’il transforme un problème d’ordonnancement,


i.e. problème de recherche de dates de début des opérations, en un problème de recherche de séquences.

Le graphe disjonctif est un graphe dont les sommets représentent les opérations composant les
jobs, auxquels s’ajoutent deux sommets fictifs appelés source et puits (correspondant respectivement au
début et à la fin des jobs), et dont les arcs modélisent les contraintes temporelles entre opérations.

On distingue deux sortes d’arcs reliant les sommets : les arcs conjonctifs et les arcs disjonctifs.
Un arc conjonctif relie deux opérations consécutives d’un même job, décrivant ainsi la contrainte de
précédence liant ces opérations. Un arc disjonctif relie deux opérations appartenant à des jobs distincts
qui utilisent une même machine. La source est reliée via des arcs conjonctifs aux premières opérations
de chaque job. Chaque arc est pondéré par la durée de l’opération de son extrémité initiale, excepté les
arcs partant de la source qui sont pondérés par 0.

Un ordonnancement réalisable est obtenu en choisissant, pour chaque arc disjonctif, une
orientation telle que le graphe résultant soit acyclique, c'est-à-dire sans circuit. On dit alors que le
graphe disjonctif est arbitré.

A titre d’illustration, considérons le problème de job shop à trois machines et trois jobs dont les
gammes opératoires sont données dans le tableau ci-dessous :

Tableau I.4 - Exemple d’un problème d’ordonnancement

J 1 2 3
J-1 M1(5) M2(3) M3(6)
J-2 M2(7) M3(4) M2(1)
J-3 M3(1) - M1(5)

Les nombres entre parenthèses, dans le tableau I.4, représentent les durées opératoires des tâches.
ENSEM-2021 Pr. ALAMI Ayoub

Le graphe disjonctif représentant ce problème est donné par la figure I.5 :

1 2 3

1-1 1-2 1-3


5 7 1
0

2 3
0 3 4
0 2-1 2-2

0
*
5
3 2 1

3-1 3-2 3-3


6 1

Figure I.5 - Graphe disjonctif

I.6 Représentation d’une solution d’un problème d’ordonnancement


Il existe plusieurs manières de représenter les solutions d’un problème d’ordonnancement, nous
présentons dans ce qui suit celle qui est la plus utilisée : Le diagramme de Gantt.

Dans la littérature, un ordonnancement est représenté toujours par un diagramme de Gantt, du


nom de son développeur Henry Gantt, pour mettre en évidence l’occupation des machines dans le
temps, les séquences de traitement sur chaque machine et les dates de fin des jobs. Dans le cas de
problèmes d’atelier, ce diagramme se compose de plusieurs lignes horizontales, chacune d’entre elles
est associée à une machine. Les opérations exécutées sur une machine donnée sont représentées sous
forme de barres ayant des longueurs proportionnelles à leurs durées opératoires. L’axe des abscisses
représentant le temps, les barres sont positionnées aux dates de début d’exécution des opérations.

Considérons le problème de job shop précédent ; la figure I.6 décrit le diagramme de Gantt
représentant une solution réalisable dont le makespan est égale à quinze unités de temps :
ENSEM-2021 Pr. ALAMI Ayoub

Machines

M1 J1-1 J3-3

M2 J2-1 J3-2 J1-2

M3 J3-1 J2-2 J1-3

Temps
Figure I.6 - Diagramme de Gantt

I.7 Classes d’ordonnancement


La solution d’un problème d’ordonnancement est appelée ordonnancement. Ce dernier est défini,
comme évoqué précédemment, par la valeur, pour chaque tâche i, de sa date de début t i ou par sa date
de fin Ci=ti+pi, ainsi que par la valeur de la fonction objectif considérée.

Fréquemment, nous pouvons restreindre l'espace de recherche des solutions à un sous ensemble
d’ordonnancements particuliers. Nous s'intéressons en particulier aux sous-ensembles dominants. Un
sous ensemble de solutions est dominant pour l'optimisation d'un critère donné, s'il contient au moins un
optimum pour ce critère. Un sous-ensemble est dit dominant relativement à l'admissibilité lorsque le
sous ensemble contient au moins une solution admissible, s'il en existe. Rappelons qu'un
ordonnancement est dit admissible s'il respecte toutes les contraintes du problème.

Trois classes d'ordonnancement sont généralement considérées : les ordonnancements semi-actifs,


actifs et sans retard.

Définition.

Un ordonnancement est dit semi-actif s’il n’est pas possible de commencer une opération plus tôt
sans modifier l’ordre dans lequel les opérations sont ordonnancées sur une machine (ou une ressource)
et sans en détériorer le critère de performance.

Considérons un exemple d’un problème de Job-shop, composé de deux jobs. Chaque job
comporte trois opérations. Chaque opération est à réaliser sur une machine donnée. Il y a trois machines
dans le problème considéré. Les temps de traitement varient d’une opération à une autre. Les données
du problème sont résumées dans le Tableau I.5 ci-dessous.

L'objectif du problème est de trouver un ordonnancement minimisant la durée totale de traitement


de toutes les opérations (i.e. makespan).
ENSEM-2021 Pr. ALAMI Ayoub

Tableau I.5- Exemple pour le Job-shop

J 1 2
J-1 M3(4) M2(7)
J-2 M1(3) M1(6)
J-3 M2(2) M3(5)

La figure I.7 ci-dessous représente deux solutions optimales : une non semi-actif (A) et l’autre qui
est semi-actif (B).

Figure I.7 - Ordonnancement optimal, non semi-actif (A) et l'ordonnancement semi-actif associé (B)

Il apparait sur la Figure I.7(B) que la deuxième opération du Job 1 peut être encore avancée. Il
s’agit d’une autre classe d’ordonnancement : les ordonnancements actifs.

Définition.

Un ordonnancement est dit actif si aucune opération ne peut être exécutée plus tôt sans retarder
une autre opération ou violer de contrainte.

Ou, d’une autre façon :

Un ordonnancement est dit actif si aucune opération ne peut être démarrée plus tôt sans décaler
vers la droite une autre opération, c.-à-d il n’est pas possible d’avancer l’exécution d’une opération sans
violer une contrainte ou sans retarder la date de début d'une autre opération.

Notons qu'un ordonnancement actif est semi-actif, mais l’inverse n’étant pas vrai.

Dans le cadre de l’exemple présenté sur la Figure I.7, il apparait que la seconde opération du Job
1 peut être avancée avant la seconde opération du Job 2 sans détériorer la solution courante.

La FigureI.8 montre que les ordonnancements A et B diffèrent d’une permutation.


ENSEM-2021 Pr. ALAMI Ayoub

Figure I.8 – (A) est un ordonnancement optimal et non actif et (B) est l'ordonnancement actif
associé

Définition.

Un ordonnancement sans retard (ou sans délai) est un ordonnancement dans lequel une machine
ne peut rester inactive alors qu'elle pourrait commencer l'exécution d'une autre opération.

Les relations entre les différentes classes d'ordonnancement sont illustrées par le diagramme de
Venn décrit par la figure I.9 :
Ordonnancement optimal

X
Sans retard
Actif

Semi actif

Figure I.9 - Diagramme de Venn

I.8 Méthodes de résolution des problèmes d’ordonnancement


Il existe deux classes de méthodes pour résoudre les problèmes d’ordonnancement :

- Les méthodes exactes. Parmi ces méthodes on peut citer :

 la programmation linéaire.
 la programmation dynamique.
 les méthodes arborescentes.
ENSEM-2021 Pr. ALAMI Ayoub

- Les méthodes approchées. Parmi lesquelles, on peut citer :

 les méthodes de listes.


 les méthodes par voisinage : le recuit simulé, la recherche avec tabou.
 les algorithmes génétiques.

Les méthodes de liste permettent de déterminer des ordonnancements actifs et des


ordonnancements sans retard en respectant une règle de priorité fixée à l’avance.

Parmi les règles de priorité les plus utilisées, nous pouvons citer :

- MWKR (Most WorK Remining) : choisir l’opération correspondant au job sur lequel il reste le
plus de travail à effectuer.
- LPT (Longest Processing Time) : choisir l’opération qui a la durée opératoire la plus longue.
- SPT (Shortest Processing Time) : choisir l’opération qui a la durée opératoire la plus courte.
- FIFO (First In First Out) : choisir l’opération qui est rentrée le plus tôt dans la file.

I.9 Deux exemples d’utilisation des algorithmes de liste.


Exemple 1 : détermination d’un ordonnancement sans retard.

Dans ce paragraphe, nous montrerons à l’aide d’un exemple comment on utilise l’algorithme de
liste pour déterminer un ordonnancement sans retard avec MWKR comme règle de priorité.

Soit le problème du job shop à 4 jobs et 3 machines dont les gammes opératoires sont données
dans le tableau ci-dessous :

j 1 2 3 4
j -1 M1 7 M1 6 M2 5 M3 9
j -2 M2 5 M3 3 M3 6 M1 7
j -3 M3 8 M2 7 M1 8 M2 4

L’objectif est de déterminer l’ordonnancement de durée totale minimale.

Dans le tableau ci-dessous nous donnons le détail de tous les calculs qui nous ont permis de
déterminer cet ordonnancement, puis nous donnons le graphe relatif à cette solution.
ENSEM-2021 Pr. ALAMI Ayoub

date machines Opérations disponibles


M1 disponible (1-1), (2-1)
t=0 M2 disponible (3-1)
M3 disponible (4-1)

M1 non disponible (2-1)


t=5 M2 disponible ------
M3 non disponible (3-2)

M1 disponible (2-1)
t=7 M2 disponible (1-2)
M3 non disponible (3-2)

M1 non disponible (4-2)


t=9 M2 non disponible ------
M3 disponible (3-2)

M1 non disponible (4-2)


t = 12 M2 disponible ------
M3 non disponible (1-3)

M1 disponible (4-2)
t = 13 M2 disponible ------
M3 non disponible (1-3) , (2-2)

M1 non disponible (3-3)


t = 15 M2 disponible ------
M3 disponible (1-3) , (2-2)

M1 non disponible (3-3)


t = 18 M2 disponible (2-3)
M3 disponible (1-3)

M1 disponible (3-3)
t = 20 M2 non disponible (4-3)
M3 non disponible ------

M1 non disponible ------


t = 25 M2 disponible (4-3)
M3 non disponible ------

Tableau des calculs relatifs à l’ordonnancement sans retard / MWKR


ENSEM-2021 Pr. ALAMI Ayoub

0 7 18
1-1 7 1-2 5 1-3
1 2 3

0 7 15 18 8
2-1 6 2-2 3 2-3
0 1 3 2
0
° 29
0 0 9 20 7
*
3-1 5 3-2 6 3-3
2 3 1 8
0 4
0 13 25
4-1 9 4-2 7 4-3
3 1 2

Le graphe représentant l’ordonnancement sans retard / MWKR

Exemple 2 : détermination d’un ordonnancement actif.

Pour déterminer un ordonnancement actif, relatif à une règle de priorité, du problème du job shop
à n jobs et m machines, on peut utiliser l’algorithme de Giffler et Thompson que nous présentons ci-
dessous :
 Algorithme de Giffler et Thompson

 Notations :

Ok,l : la lème opération du job Jk;


pk,l : temps d’exécution de l’opération Ok,l;
Eh : ensemble contenant les h-1 opérations déjà ordonnancées;
Sh : ensemble des opérations ordonnançables au niveau h; (toutes les opérations qui les
précéder ont déjà été ordonnancées et se retrouvent dans Eh ).
k,l : la date au plus tôt à laquelle l'opération Ok,l appartenant à l'ensemble Sh peut débuter.
k,l : la date au plus tôt à laquelle l'opération Ok,l de l'ensemble Sh peut être terminée.
(k,l = k,l + pk,l);

 Algorithme

Étape 1: initialisation:
Poser:
h = 1, avec E1 = Ø
S1 : l'ensemble contenant toutes les opérations sans prédécesseurs;
ENSEM-2021 Pr. ALAMI Ayoub

Étape 2:

Trouver * min k,l , ainsi que la machine M* sur laquelle * se produit.


Ok,l Sh

Si un choix est possible pour M*, faire un choix arbitraire;


(* est la date de fin au plus tôt pour toutes les opérations présentes dans Sh, c'est-à-dire les
tâches pouvant être ordonnancées).

Étape 3:
Choisir une opération Ok,lSh correspondant à la règle de priorité choisie et telle que:
1) elle nécessite la machine M*, et
2) k,l < *

Étape 4:
1) additionner Ok,l à l'ensemble Eh pour créer Eh+1 ;
2) supprimer l’opération Ok,l à l'ensemble Sh et créer Sh+1 en ajoutant l'opération Ok,l+1 (à
moins que l’opération Ok,l ne soit la dernière opération du job Jk);
3) incrémenter h par 1;

Étape 5:
S'il demeure encore des opérations à ordonnancer, retourner à l'étape 2, (si h < n*m) sinon
arrêter.

Exemple
Considérons le même exemple traité en dessus :

j 1 2 3 4
j-1 M1 7 M1 6 M2 5 M3 9
j-2 M2 5 M3 3 M3 6 M1 7
j-3 M3 8 M2 7 M1 8 M2 4

Ci-dessous, nous allons utiliser l’algorithme de Giffler et Thompson pour déterminer un


ordonnancement actif, avec comme règle de priorité MWKR.
ENSEM-2021 Pr. ALAMI Ayoub

k M1 M2 M3 J O M σ φ φ* MKWR
1 0 0 0 1 1 1 0 7
2 1 1 0 6
3 1 2 0 5 5
4 1 3 0 9
2 0 5 0 1 1 1 0 7 20
2 1 1 0 6 6 16
3 2 3 5 11
4 1 3 0 9
3 7 5 0 1 2 2 7 12
2 1 1 7 13
3 2 3 5 11 14
4 1 3 0 9 9 20
4 7 5 9 1 2 2 7 12 12
2 1 1 7 13
3 2 3 9 15
4 2 1 9 16
5 7 12 9 1 3 3 12 20
2 1 1 7 13 13 16
3 2 3 9 15
4 2 1 9 16 11
6 13 12 9 1 3 3 12 20 8
2 2 3 13 16 10
3 2 3 9 15 15 14
4 2 1 13 20
7 13 12 15 1 3 3 15 23 8
2 2 3 15 18 18 10
3 3 1 15 23
4 2 1 13 20
8 13 12 18 1 3 3 18 26
2 3 2 18 25
3 3 1 15 23 8
4 2 1 13 20 20 11
9 20 12 18 1 3 3 18 26
2 3 2 18 25 7
3 3 1 20 28
4 3 2 20 24 24 4
10 20 25 18 1 3 3 18 26 26
3 3 1 20 28
4 3 2 25 29
11 20 25 26 3 3 1 20 28 28
4 3 2 25 29
12 28 25 26 4 3 2 25 29 29

Tableau des calculs en appliquant l’algorithme de Giffler et Thompson/ MWKR


ENSEM-2021 Pr. ALAMI Ayoub

0 7 18
1-1 7 1-2 5 1-3
1 2 3

0 7 15 18 8
2-1 6 2-2 3 2-3
0 1 3 2
0
29 29
° 0 9 20 7
0 *
3-1 5 3-2 6 3-3
8
2 3 1
0 4
0 13 25
4-1 9 4-2 7 4-3
3 1 2
ENSEM-2021 Pr. ALAMI Ayoub

CHAPITRE II : LES PROBLÈMES À UNE MACHINE


Dans cette partie nous allons étudier deux problèmes à une machines dont les critères à
minimiser sont :
 Le nombre de jobs en retard.
 La somme des retards pondérés.

II.1 Minimisation du nombre de jobs en retard : Algorithme de Moore-Hodgson

Ci-dessous nous allons présenter l’algorithme de Moore-Hodgson qui permet de


déterminer un ordonnancement du problème à une machine tel que le nombre de jobs en
retard est minimal.
Soient n jobs indépendants à ordonnancer sur une machines tels que d1 ≤ d2 ≤ . . . ≤ dn

Algorithme de Moore-Hodgson
1- Poser : C = 0, O = Ø ; L = Ø ;
2- Pour j = 1 à n, faire:
C  C + pj
O = O  {Jj}
Si C > dj alors :
Soit Ji le job de O de plus grande durée
O  O \ {Ji} , L  L {Ji}
C  C - pj
Fin si
Fin pour
3 - Ordonnancer les jobs de O dans l’ordre naturel puis les jobs de L dans n’importe quel
ordre.
Exemple
Déterminer l’ordonnancement qui minimise le nombre de jobs en retard pour le
problème à une machine dont les données figurent dans le tableau ci-dessous :

Jj J1 J2 J3 J4 J5 J6
pj 6 4 7 8 3 5
dj 8 9 15 20 21 22

Pour déterminer un tel ordonnancement nous allons utiliser l’algorithme de Moore-


Hodgson.

1 - C = 0, O = Ø et L = Ø
2 - * C = p1 = 6, O = {J1}
C ≤ d1 = 8
* C = 6 + p2 = 10, O = {J1, J2}
C > d2 = 9
O = {J2} , L = {J1} et C = 4
ENSEM-2021 Pr. ALAMI Ayoub

* C = 4 + p3 = 11, O = {J2, J3}


C ≤ d3 = 15
* C = 11 + p4 = 19, O = {J2, J3, J4}
C ≤ d4 = 20
* C = 19 + p5 = 22, O = {J2, J3, J4, J5}
C > d5 = 21
O = {J2, J3, J5}, L = {J1, J4} et C = 14
* C = 14 + p6 = 19, O = {J2, J3, J5, J6}
C ≤ d6 = 22
3 - Le séquencement optimal est : J2J3J5J6J1J4
L’ordonnancement optimal est : t2 = 0, t3 = 4, t5 = 11, t6 = 14, t1 = 19, t4 = 25
Il y aura deux jobs qui seront en retard, à savoir les jobs J1 et J4.

II.2 Minimisation de la somme des retards pondérés.

Nous allons présenter ci-dessous une méthode exacte qui permet de déterminer un
ordonnancement qui minimise la somme des retards pondérés. Cette présentation sera faite sur
un exemple.
Exemple

Enoncé

Soit le problème à une machine pour lequel on veut déterminer un ordonnancement qui
minimise la somme des retards pondérés, et dont les données figurent dans le tableau ci-
dessous :

J1 J2 J3 J4
pi 3 7 2 3
di 11 12 9 4
wi 2 3 1 2

23
ENSEM-2021 Pr. ALAMI Ayoub

Résolution

 Initialisation
On pose : S0 = {1, 2, 3, 4} et D0 = 15
 Niveau 1.
o Cas 1.
Le job J1 est le dernier à être exécuté.
Le retard pondéré relatif à cette décision est de valeur 8.
L’ensemble des jobs qui restent à ordonnancer est S1 = {2, 3, 4}
La durée totale nécessaire à la réalisation des jobs de S1 est D1 = 12.
o Cas 2.
Le job J2 est le dernier à être exécuté.
Le retard pondéré relatif à cette décision est de valeur 9.
L’ensemble des jobs qui restent à ordonnancer est S2 = {1, 3, 4}
La durée totale nécessaire à la réalisation des jobs de S2 est D2 = 8.
o Cas 3.
Le job J3 est le dernier à être exécuté.
Le retard pondéré relatif à cette décision est de valeur 6.
L’ensemble des jobs qui restent à ordonnancer est S3 = {1, 2, 4}
La durée totale nécessaire à la réalisation des jobs de S3 est D3 = 13.
o Cas 4.
Le job J4 est le dernier à être exécuté.
Le retard pondéré relatif à cette décision est de valeur 22.
L’ensemble des jobs qui restent à ordonnancer est S4 = {1, 2, 3}.
La durée totale nécessaire à la réalisation des jobs de S4 est D4 = 12

Conclusion.

Le retard pondéré le plus petit est associé à la décision d’exécuter le job J3 en dernier.
On décide d’exécuter le job J3 en dernier.
 Niveau 2.
o Cas 1.
Si le job J1 est exécuté juste avant le job J3.
Le retard pondéré relatif à cette décision est de valeur 10.
L’ensemble des jobs qui restent à ordonnancer est S5 = {2, 4}.
La durée totale nécessaire à la réalisation des jobs de S5 est D5 = 10
o Cas 2.
Si le job J2 est exécuté juste avant le job J3.
Le retard pondéré relatif à cette décision est de valeur 9.
L’ensemble des jobs qui restent à ordonnancer est S6 = {1, 4}.
La durée totale nécessaire à la réalisation des jobs de S6 est D6 = 6.
o Cas 3.
Si le job J4 est exécuté juste avant le job J3.
Le retard pondéré relatif à cette décision est de valeur 24.
L’ensemble des jobs qui restent à ordonnancer est S7 = {1, 2}.
La durée totale nécessaire à la réalisation des jobs de S7 est D7 = 10.

24
ENSEM-2021 Pr. ALAMI Ayoub

Remarque.

D’après l’analyse faite jusqu’à présent c’est la décision d’exécuter le job J1 en dernier
qui donne l’espoir d’avoir la somme des retards pondérés la plus petite.
o Cas 4.
Si le job J2 est exécuté juste avant le job J1.
Le retard pondéré relatif à cette décision est de valeur 8.
L’ensemble des jobs qui restent à ordonnancer est S8 = {3, 4}.
La durée totale nécessaire à la réalisation des jobs de S8 est D8 = 5.
o Cas 5.
Si le job J3 est exécuté juste avant le job J1.
Le retard pondéré relatif à cette décision est de valeur 11.
L’ensemble des jobs qui restent à ordonnancer est S9 = {2, 4}.
La durée totale nécessaire à la réalisation des jobs de S9 est D9 = 10.
o Cas 6.
Si le job J4 est exécuté juste avant le job J1.
Le retard pondéré relatif à cette décision est de valeur 24.
L’ensemble des jobs qui restent à ordonnancer est S10 = {2, 3}.
La durée totale nécessaire à la réalisation des jobs de S10 est D10 = 9.

Conclusion.

D’après l’étude réalisée ci-dessus, le retard pondéré le plus petit est associé à la
décision d’exécuter endernier le job J1 et juste avant le job J2.

 Niveau 3.
o Cas 1.
Si on exécute le job J1 en dernier, le job J2 juste avant le job J1 et le job J3 juste avant le job J2.
Le retard pondéré relatif à cette décision est de valeur 8.
L’ensemble des jobs qui restent à ordonnancer est S11 = {4}.
La durée totale nécessaire à la réalisation des jobs de S11 est D11 = 3.
o Cas 2.
Si on exécute le job J1 en dernier, le job J2 juste avant le job J1 et le job J4 juste avant le job J2.
Le retard pondéré relatif à cette décision est de valeur 10.
L’ensemble des jobs qui restent à ordonnancer est S12 = {3}.
La durée totale nécessaire à la réalisation des jobs de S12 est D12 = 2.

Conclusion.

D’après l’analyse réalisée jusqu’à présent, la meilleure décision à prendre est celle
relative au cas 1 du niveau 3.

25
ENSEM-2021 Pr. ALAMI Ayoub

 Niveau 4.

Si on exécute les jobs dans cet ordre : J4 puis J3 puis J2 et finalement le job J1, alors la
somme des retards pondérés relative à cette décision est de valeur 8.

Résumé :

Bi Ordonnancement Retard Si Di
i Partiel pondéré
1 1 8 2, 3, 4 12
2 2 9 1, 3, 4 8
3 3 6 1, 2, 4 13
4 4 22 1, 2, 3 12
5 1→3 10 2, 4 10
6 2→3 9 1, 4 6
7 4→3 24 1, 2 10
8 2→1 8 3, 4 5
9 3→1 11 2, 4 10
10 4→1 24 2, 3 9
11 3→2→1 8 4 3
12 4→2→1 10 3 2
13 4→3→2→1 8 Ø 0

II.3 Minimisation de la durée totale de l’ordonnancement.

Dans cette partie nous allons étudier le problème à une machine à jobs indépendants vu dans la
section I.5.1 du chapitre I.

II.3.1 Définition du problème.

Etant donné l’ensemble N formé de n opérations : 1, 2, …, n à exécuter sur une machine M.


Pour chaque opération i sont données :
 Sa date de disponibilité : ri
 Sa durée : pi
 Sa durée de latence : qi

L’objectif est de déterminer un ordonnancement T = {ti, i=1, 2, …, n} solution du


programme linéaire disjonctif suivant :

Minimiser t

ti≥ri i∊N

s/c t-ti≥pi+qi i∊N

ti – tj ≥ pj ou tj – ti ≥ pi i, j ∊ N , i < j

26
ENSEM-2021 Pr. ALAMI Ayoub

Transformation des contraintes disjonctives.

Soit K une constante réelle de très grande valeur.


Soit yi,j la variable booléenne définie par :
1 si l’opération i doit être exécuté avant l’opération j
yi,j =
0 sinon

Alors la contrainte disjonctive :

ti - tj ≥ pj ou tj - ti ≥ pi

est équivalente au système des deux contraintes à variables mixtes suivant :

ti – tj ≥ pj - K.yi,j

tj – ti ≥ pi - K.(1 - yi,j)

Proposition

Soit L un sous-ensemble de N, et h(L) la quantité définie par :

h(L)  min ri   p i  min q i


iL iL iL

h(L) est une borne inférieure de la durée optimale d’un ordonnancement.

Corollaire

La quantité V  max h(L) est une évaluation par défaut de la durée optimale de
LN
l’ordonnancement du problème à une machine.

II.3.2 Algorithme primal de Jackson avec préemption


Notons :
t : l’instant courant.
U : l’ensemble des opérations totalement ordonnancées.
Algorithme

* t  min ri , U   , U  N , pi  pi i N
iN

* Tant que U est non vide, faire :


- O  j U / r j  t 
- Soit i l’opération de O de qi maximale.

- v = min  min (rj –t) , pi+


  jU-O
- pi+  pi+ - v , si pi+ = 0 alors : U = U   i  et U = U \ i
- t = maxt + v , min rj
jU 
27
ENSEM-2021 Pr. ALAMI Ayoub

Proposition

L’ordonnancement préemptif de Jackson a pour durée V  max h(L) et est optimal.


LN

Exemple

Soit le problème à une machine dont les données figurent dans le tableau ci-dessous :

i 1 2 3 4 5 6 7
ri 10 13 11 20 30 0 30
pi 5 6 7 4 3 6 8
qi 7 26 24 21 8 17 0

t6=0 t11 =10 t31=11 t2=13 t32 =19 t4=24 t12=28 t5=30 t13=33 t7=35
p6=6 p1=5 p3=7 p2=6 p3+=5 p4=4 p1+=4 p5=3 p1+=2 p7=8
p6+=0 p1+=4 p3+=5 p2+=0 p3+=0 p4+=0 p1+=2 p5+=0 p1+=0 p7+=0
q6=17 q2=26 q3=24 q4=21 q5=8 q1=7 q7=0
23 45 48 49 41 42 43

La durée totale de l’ordonnancement trouvé est 49.

II.3.3 Algorithme de Jackson sans préemption.

C’est un algorithme de liste dans lequel, à chaque instant où la machine est libre, on
ordonnance l’opération disponible ayant la plus grande durée de latence.
Notons :
t : l’instant courant.
U : l’ensemble des opérations totalement ordonnancées.

Algorithme

* t  min ri , U   , U  N
iN
* Tant que U est non vide, faire :
- Sélectionner l’opération i disponible (ri  t) de qi maximale.
- Ordonnancer l’opération i en posant t i = t.
- U = U   i  et U = U \ i, t = maxt + pi , min rj
jU

28
ENSEM-2021 Pr. ALAMI Ayoub

Exemple

L’ordonnancement déterminé par l’algorithme ci-dessus, relatif aux données de


l’exemple précédent, est donné dans le tableau ci-dessous :

t6=0 t1=10 t2=15 t3=21 t4=28 t5=32 t7=35


p6=6 p1=5 p2=6 p3=7 p4=4 p5=3 p7=8
q6=17 q1=7 q2=26 q3=24 q4=21 q5=8 q7=0

23 22 47 52 53 43 43

Le graphe conjonctif G associé à l’ordonnancement déterminé ci-dessus est le suivant :

6
6

0 1 23

10 5 12

13 2 32
6
o 11 31 *
3
20 25
7
11
30 4

4
8
30 5
3

Le chemin critique relatif à ce problème est donné par μ = { ° , 1 , 2, 3 , 4 ,* }.

Théorème

Soit f0 la durée de l’ordonnancement déterminé par l’algorithme de Jackson sans


préemption, alors :

 Si cet ordonnancement n’est pas optimal, il existe une opération critique c et un


ensemble critique J, J  N, tel que :
h(J) > f0 – pc

Par conséquent, la distance entre l’ordonnancement optimal et celui déterminé par


l’algorithme de Jackson sans préemption est inférieure à pc. De plus, dans tout
ordonnancement optimal, l’opération c doit être exécutée soit avant soit après toutes
les opérations de J.
29
ENSEM-2021 Pr. ALAMI Ayoub

 Si cet ordonnancement est optimal, il existe un sous-ensemble J de N tel que :


h(J) = f0

Démonstration

Soit G le graphe conjonctif associé à l’ordonnancement déterminé par l’algorithme de


Jackson sans préemption.
Soit μ un chemin critique passant par un nombre maximal de sommets. En général μ ne
passe pas par tous les sommets de G.
En vu de simplifier la présentation, changeons la numérotation des sommets de manière à
ce que le chemin critique μ passe par les sommets ° , 1 , 2 , … , s , * dans cet ordre.
La valeur du chemin critique est :

f 0  r1  pi  qs
1is

1) Tout d’abord, aucune opération n’exécutée entre les instants r1-1 et r1.

Car sinon, soit j l’opération qui a été exécutée entre ces deux instants, et soit tj la date
du début d’exécution de cette opération. Alors, on a r1 = tj + pj , et donc :

f 0 = t j + p j +  pi + q s
1is

et donc le chemin ° , j , 1 , 2 , … , s , * est critique. Ce qui est en contradiction avec le


fait que μ contient un nombre maximal de sommets.

2) Nous pouvons affirmer que :


r1  min
i
ri
1is

Nous avons déjà montré qu’entre les instants r1-1 et r1 aucune opération n’est exécutée,
et dans l’algorithme de Jackson sans préemption lorsque l’opération est ordonnancée,
la date r1 vérifie l’égalité :

r1  min ri
iU

et comme 1, 2 , ... , s U, donc :

r1  min
i
ri
1is

3) * Si qs = min qi alors :
1is

f 0  r1   p i  q s
1is

 min ri   p i  min q i
1is 1is 1is

 h(J) où J  1, 2, ..., s

30
ENSEM-2021 Pr. ALAMI Ayoub

Et donc, l’ordonnancement déterminé par l’algorithme de Jackson est optimal.

Sinon, il existe alors une opération i, i < s, telle que qi < qs.

Soit c le plus grand indice tel que qc < qs, et soit J = {c+1, c+2, …, s}, donc qc < qα
J.
Remarquons que J rα > tc, car sinon, l’opération α devrait être ordonnancée à
l’instant tc, car elle est plus prioritaire que l’opération c (qc < qα).
Par conséquent, pour tout αJ, on a :
rα > tc = r1 + p1 + p2 + …+ pc-1
Donc :
min r  r1  p1  p2  ...  pc1
J

Nous avons :
qs  min q
J

Ce qui implique :
min r  p c1  ... p s  min q   (r1   pi  q s )  p c
J J 1is
C'est-à-dire :
h(J) > f0 – pc

Et donc la distance entre la valeur de l’ordonnancement optimal et la valeur de


l’ordonnancement déterminé par l’algorithme de Jackson est inférieure à pc.

Par conséquent, l’opération c doit être exécutée soit avant, soit après, toutes les
opérations de J.

Exemple

Pour l’exemple précédent, nous avons :

μ = {° , 1 , 2 , 3 , 4 , *}

q1 = 7 , q2 = 26 , q3 = 24 , q4 = 21
On a :
q1 < q4 , q2  q4 , q3  q4

Donc :
c = 1 et J = {2 , 3 , 4}

31
ENSEM-2021 Pr. ALAMI Ayoub

II.3.4 Algorithme de Carlier.

 Principe de séparation.
La séparation se fait sur le sommet pendant et non terminal Su de plus petite évaluation
par défaut.
Appliquer l’algorithme de Jackson sans préemption pour déterminer le couple critique
( c , J ).
Si le couple ( c , J ) n’existe pas, alors le sommet Su est terminal.
Sinon, créer les deux sommets fils de Su, Sv et Sv+1.
* Pour Sv, l’opération c doit être exécutée avant toutes les opérations de J, pour cela,
poser :

q c = max q c ,  p i + min q i
iJ iJ
* Pour Sv+1, l’opération c doit être exécutée après toutes les opérations de J, pour cela
poser :
r c = max r c , min r i +  pi
iJ iJ
 Fonctions d’évaluation.
o Evaluation par défaut
L’évaluation par défaut en chacun des sommets Sv et Sv+1 est donnée par le maximum de
V(Su), h(J) et h(J{c}).
o Evaluation par excès.
L’évaluation par excès f0 est la valeur de la meilleure solution réalisable trouvée.
 Sommets terminaux.
Un sommet Su est dit terminal si une des deux conditions suivantes est vérifiée :

o Son évaluation V(Su) est supérieure ou égale à f0.


o Si après la résolution par l’algorithme de Jackson sans préemption du
problème à une machine associé à Su, on ne trouve pas de couple critique
(c , J).
Exemple

Suite de la résolution de l’exemple précédent.


Nous avons trouvé précédemment : c = 1 et J = {2 , 3 , 4}

 Création de S1.
L’opération 1 doit être exécutée avant toutes les opérations de J.
La nouvelle valeur de q1 est 38.
On trouve V(S1) = 53 = f0.
Donc le sommet S1 est terminal.

 Création de S2.
L’opération 1 doit être exécutée après toutes les opérations de J.
La nouvelle valeur de r1 est 28.

32
ENSEM-2021 Pr. ALAMI Ayoub

On trouve V(S2) =49 < f0 = 53.

 Exploration du sommet S2.


L’utilisation de l’algorithme de Jackson sans préemption au problème à une machine
associé à S2 nous permet de trouver l’ordonnancement suivant :

t6 = 0 , t3 = 11 , t2 = 18 , t4 = 24 , t1 = 28 , t5 = 33 , t7 = 36

La nouvelle valeur de f0 est :

f0 = 50

Le chemin critique maximal relatif à ce problème est :


 = {° , 3 , 2 , *}.
Le couple critique est :
c = 3 et J = {2}

 Création de S3.
L’opération 3 doit être exécutée avant l’opération 2.
La nouvelle valeur de q3 est 32.
On trouve V(S3) = 50 = f0.
Le sommet S3 est terminal.

 Création de S4.
L’opération 3 doit être exécutée après l’opération 2.
La nouvelle valeur de r3 est 19.
On trouve V(S4) =50 = f0.
Le sommet S4 est terminal.
Donc le dernier ordonnancement trouvé est optimal.

33
ENSEM-2021 Pr. ALAMI Ayoub

Exercice 1
On considère 7 opérations devant passer sur une machine donnée.
On possède pour ces opérations les informations suivantes :
- elles sont toutes actuellement disponibles
- leur temps de traitement et la date à laquelle elles doivent être livrées sont donnés dans le tableau
suivant :

Opérations 1 2 3 4 5 6 7
Durée en jours 4 5 3 6 7 2 1
Délai de livraison 8 10 15 10 17 20 14
Déterminer un ordonnancement minimisant le nombre de jobs en retard.
Exercice 2
Soit le problème à une machine dont les données figurent dans le tableau ci-dessous :

Opération i 1 2 3 4 5 6 7
Date de disponibilité de i (ri) 6 15 0 20 30 9 20
Durée opératoire de i (pi) 5 6 7 4 3 6 8
Durée de latence de i (qi) 7 26 25 0 8 18 15
Déterminer un ordonnancement minimisant le makespan.

34
ENSEM-2021 Pr. ALAMI Ayoub

Solution :
Exercice 2
L’application de l’algorithme Jackson avec préemption donne une borne inférieure du
problème sans préemption. La valeur obtenue est 47. (LB=47)
En appliquant l’algorithme Jackson sans préemption nous obtenant f0=50.
Le chemin critique associé est μ = {°, 3, 1, 6, 2, *}
Le couple critique correspondant est : c = 6 et J = {2}

 Création de S1.
L’opération 6 doit être exécutée avant toutes les opérations de J.
La nouvelle valeur de q6 est 32.
Après le calcul de h(J) et h(J{6}) On trouve V(S1) = 47 < f0.

 Création de S2.
L’opération 6 doit être exécutée après toutes les opérations de J.
La nouvelle valeur de r6 est 21.
On trouve V(S2) =47 < f0.
Puisque les deux sommets S1 et S2 ont la même valeur, on explore un au hasard. Nous
avons choisi à explorer le sommet S1.

 Exploration du sommet S1.


L’utilisation de l’algorithme de Jackson sans préemption au problème à une machine
associé à S1 nous permet de trouver l’ordonnancement suivant :

t3 = 0 , t1 =7 , t6 = 12 , t2 = 18 , t7 = 24 , t5 = 32 , t4 = 35

de durée 50. La valeur de f0 reste inchangée.

Le chemin critique maximal relatif à ce problème est :


 = {°, 3, 1, 6, 2, *}.
Le couple critique correspondant est :
c = 1 et J = {6, 2}

 Création de S3.
L’opération 1 doit être exécutée avant toutes les opérations J.
La nouvelle valeur de q1 est 38.
On trouve V(S3) = 49 < f0.

 Création de S4.
L’opération 1 doit être exécutée après toutes les opérations J.
La nouvelle valeur de r1 est 21.
On trouve V(S4) =47 < f0.
On a V(S4) < V(S3), on explore le sommet S4.

35
ENSEM-2021 Pr. ALAMI Ayoub

 Exploration du sommet S4.


L’utilisation de l’algorithme de Jackson sans préemption au problème à une machine
associé à S4 nous permet de trouver l’ordonnancement suivant :

t3 = 0 , t6 =9 , t2 = 15 , t7 = 21 , t1 = 29 , t5 = 34 , t4 = 37

de valeur 47. La nouvelle valeur de f0 est :

f0 = 47 (meilleur solution réalisable)

Le chemin critique maximal relatif à ce problème est :


 = {°, 6, 2, *}.
Le couple critique n’existe pas, d’où le sommet S4 est terminal.
On a :
V(S2) = f0 et V(S3) > f0

D’où les sommets S2 et S3 sont terminaux.

Conclusion : Le dernier ordonnancement obtenu de valeur f0 = 47 est optimal.

36
ENSEM-2021 Pr. ALAMI Ayoub

CHAPITRE III : LES PROBLÈMES DU FLOW SHOP

III.1 Le flow shop à deux jobs


Pour déterminer l’ordonnancement optimal du problème du flow shop à 2 jobs et m
machines, on peut utiliser l’algorithme graphique d’Akers que nous présentons ci-dessous :
 Algorithme d’Akers

 Porter séquentiellement sur les axes d'un graphique cartésien les temps de traitement
sur les machines du premier job sur un axe et du deuxième sur l'autre.
 Hachurer les sections associées à chaque machine aux intersections des axes indiquant
les surfaces communes.
 Déterminer l'ordre des opérations pour chacun des jobs qui n'intercepte pas les
surfaces hachurées en minimisant les déplacements dans le graphe. Seuls les
déplacements horizontaux, verticaux et à 45 degrés sont permis.
Exemple
Soit le problème du flow shop à 2 jobs et 3 machines dont les gammes opératoires sont
données dans le tableau suivant :

j Job 1 Job 2
j -1 MA 3 MA 2
j -2 MB 4 MB 5
j -3 MC 5 MC 3

Pour trouver l’ordonnancement optimal qui minimise la durée totale, nous allons utiliser
l’algorithme d’Akers.
Dans la figure ci-dessous nous donnons la représentation graphique, relative à la
méthode d’Akers, pour ce problème.

Ci-dessous, nous donnons le diagramme de Gantt relatif à l’ordonnancement optimal de


ce problème.

37
ENSEM-2021 Pr. ALAMI Ayoub

III.2 Le flow shop à deux machines.


Dans le cas où nous avons un flow shop à deux machines, et tel que chaque job J i est
formé au plus de deux opérations (ni ≤ 2), on a le théorème suivant :
Théorème

Un ordonnancement optimal du problème de flow shop à deux machines et tel que


chaque job est formé de deux opérations au plus, peut être déterminé en appliquant la règle de
Johnson suivante :
Si Jk et Jl sont deux jobs appartenant au flow shop F, alors :

Si min {pk,1 , pl,2} ≤ min {pk,2 , pl,1}

alors Jk précède Jl dans tout ordonnancement optimal.

 Algorithme de Johnson.

- Constituer les groupes de travaux U = {i / pi,1 < pi,2} et V = {i / pi,1 ≥ pi,2 }.

- Ordonner U suivant la règle SPT sur la première machine (pi,1), et V suivant la règle
LPT sur la deuxième machine (pi,2).

- La séquence optimale est donnée par les travaux ordonnés dans U enchaînés par ceux
ordonnés dans V.

Exemple

Trouver le séquencement optimal du flow shop suivant :

j 1 2 3 4 5
j -1 M1 6 M1 4 M1 4 M1 8 M1 2
j -2 M2 8 M2 5 M2 1 M2 4 M2 3

38
ENSEM-2021 Pr. ALAMI Ayoub

Résolution :

- U = {1, 2, 5} et V = {3, 4}
- U = {5, 2, 1} (SPT : pi,1) et V = {4, 3} (LPT : pi,2).
La séquence optimale est : 5→2→1→4→3.

III.3 Généralisation au flow shop à trois machines.


Dans les deux cas suivants :

min pi,1  max pi,2 ou min pi,3  max pi,2


i i i i

On peut étendre la règle de Johnson au problème du flow shop à trois machines. On définit
alors deux machines fictives M’1 et M’2, sur lesquelles les durées respectives d’un job Ji sont :

p’i,1=pi,1+ pi,2 et p’i,2=pi,2+ pi,3

et on applique l’algorithme précédent à ce nouveau problème.

Exemple

Soit le problème de flow shop dont les données figurent dans le tableau ci-dessous :

i 1 2 3 4 5 6
p 5 7 4 8 6 7
i,1
p 3 2 3 4 2 0
i,2
p 9 5 7 12 8 7
i,3

p’i,1 8 9 7 12 8 7
p’i,2 12 7 10 16 10 7

Résolution

En utilisant l’algorithme précédent, nous trouvons le séquencement optimal suivant :

3→1→5→4→2→6

III.4 Le problème du flow shop à m machines : Heuristique de CDS


Pour le problème du flow shop à m machines on peut utiliser l’heuristique proposée par
Campdell, Dudek et Smith (CDS).

 Heuristique de Campdell, Dudek et Smith (CDS)

A partir du problème à m machines, on génère m-1 problèmes fictifs à deux machines


équivalentes.
 A l’étape 1, on ne considère que la première et la dernière machine, soit :
p1i,1= pi,1 et p1i,2= pi,m

39
ENSEM-2021 Pr. ALAMI Ayoub

 A l’étape l, 2 ≤ l ≤ m-1, on considère le problème à deux machines équivalentes,


avec comme durées sur les deux machines :
l m

pli,1  pi,k et pli,2  pi,k


k=1 k=m-l+1

 Pour chacun de ces problèmes fictifs, on détermine le séquencement optimal par


l’algorithme de Johnson.

 On conserve le meilleur séquencement parmi les m-1.

 Détermination du tableau Tl.

Tl=(tlj,k) , j=1, 2, …., n et k=1, 2, ….., m


tl1,1=0
tl1,k = tl1,k-1 + pl1,k-1 , k=2, 3, …, m
tlj,1 = tlj-1,1 + plj-1,1 , j=2, 3, …, n
tlj,k = max{ tlj-1,k + plj-1,k , tlj,k-1 + plj,k-1} , j=2, 3, …, n et k=2, 3, …, m
Exemple

Soit le problème de flow shop à 5 jobs et 4 machines, dont les durées opératoires sont
données dans le tableau suivant :

M 1 M2 M3 M4
J1 2 6 3 1
P = J2 8 3 4 7
J3 1 11 8 6
J4 7 7 15 12
J5 11 3 1 2

Ci-dessous, nous déterminons un séquencement par l’heuristique CDS, puis nous


donnons l’ordonnancement au plus tôt associé.

 Etape 1

Le problème à deux machines associé est :

J1 J2 J3 J4 J5
M1 2 8 1 7 11
M2 1 7 6 12 2

Le séquencement optimal pour ce problème à deux machines est : 3→4→2→5→1

D’où :

M 1 M2 M3 M4
J3 1 11 8 6
1
P = J4 7 7 15 12
J2 8 3 4 7
J5 11 3 1 2
J1 2 6 3 1
40
ENSEM-2021 Pr. ALAMI Ayoub

M 1 M2 M3 M4
J3 0 1 12 20
1
T = J4 1 12 20 35
J2 8 19 35 47
J5 16 27 39 54
J1 27 30 40 56

M 1 M2 M3 M4
J3 1 12 20 26
C1 = J4 8 19 35 47
J2 16 22 39 54
J5 27 30 40 56
J1 29 36 43 57

 Etape 2

Le problème à deux machines associé est :

J 1 J2 J3 J4 J5
M1 8 11 12 14 14
M2 4 11 14 27 3

Le séquencement optimal pour ce problème à deux machines est : 3→4→2→1→5

D’où :

M 1 M2 M3 M4
J3 1 11 8 6
2
P = J4 7 7 15 12
J2 8 3 4 7
J1 2 6 3 1
J5 11 3 1 2

M 1 M2 M3 M4
J3 0 1 12 20
2
T = J4 1 12 20 35
J2 8 19 35 47
J1 16 22 39 54
J5 18 29 42 55

M 1 M2 M3 M4
J3 1 12 20 26
C2 = J4 8 19 35 47
J2 16 22 39 54
J1 18 28 42 55
J5 29 32 43 57

41
ENSEM-2021 Pr. ALAMI Ayoub

 Etape 3

Le problème à deux machines associé est :

J1 J2 J3 J4 J5
M1 11 15 20 29 15
M2 10 14 25 34 6

Le séquencement optimal pour ce problème à deux machines est : 3→4→2→1→5

Donc, les deux ordonnancements trouvés par l’algorithme de CDS ont la même durée
totale, on peut prendre, par exemple, l’ordonnancement donné dans le tableau ci-
dessous :

M 1 M2 M3 M4
J3 0 1 12 20
2
T = J4 1 12 20 35
J2 8 19 35 47
J1 16 22 39 54
J5 18 29 42 55

La durée totale de l’ordonnancement est 57.

42
ENSEM-2021 Pr. ALAMI Ayoub

Exercice

Une entreprise doit usiner n pièces qui doivent être fabriquée par deux machines, A et B
séquentiellement : d’abord sur la machine MA puis sur la machine MB.
Une fois l’ordre choisi sur la machine A, les pièces doivent être réalisées suivant le même ordre sur
la machine B.
On dispose comme données des durées de fabrication dA(Pi) et dB(Pi) de chaque pièce Pi sur les
deux machines. Encore une fois, le but est de minimiser le temps final où toutes les pièces sont
exécutées.
Voilà un exemple de données. En usinant les pièces dans l’ordre 2, 1, 3 on obtient un
ordonnancement qui termine à la date 16.

Pièces 1 2 3
Durée dA 3 2 4
Durée dB 1 4 7

Question 1. Cette solution est-elle optimale ? Justifiez pourquoi.


L’algorithme de Johnson fournit un algorithme polynomial pour ce problème. Il procède ainsi :
1. Soit S l’ensemble des pièces Pi telles que dA(Pi) < dB(Pi).
2. Soit T les autres pièces.
3. Ordonnancer les pièces dans l’ordre suivant : d’abord les pièces de S par d A croissante, puis
les pièces de T par dB décroissante.
Question 2. Appliquer cet algorithme sur l’instance suivante. On donnera les ensembles S et T et
l’ordonnancement final obtenu.

Pièces 1 2 3 4 5
Durée dA 4 1 3 5 2
Durée dB 1 3 2 3 3

Pour justifier son algorithme, Johnson a prouvé que pour obtenir l’ordonnancement optimal, il suffit
de mettre la pièce Pi avant la pièce Pj si l’inégalité suivante est vérifiée
min(dA(Pi); dB(Pj)) ≤ min(dB(Pi); dA(Pj)) (1)
Question 3. Montrer que, pour une instance quelconque, l’ordonnancement obtenu avec
l’algorithme de Johnson vérifie bien cette propriété. C’est-à-dire que pour toutes pièces Pi et Pj
l’inégalité (1) est vérifiée. On pourra séparer les cas suivant si Pi et Pj sont tous les deux dans S ou
bien tous les deux dans T ou bien un dans chaque ensemble.

43
ENSEM-2021 Pr. ALAMI Ayoub

CHAPITRE IV : Le problème du job shop

IV.1 Le job shop à deux jobs.


Pour déterminer l’ordonnancement optimal du problème du job shop à 2 jobs et m
machines, on peut utiliser l’algorithme graphique d’Akers que nous avons déjà présenté.
Exemple
Soit le problème du job shop à 2 jobs et 4 machines dont les gammes opératoires sont
données dans le tableau suivant :

j Job 1 Job 2
j -1 MA 6 MA 4
j -2 MB 1 MD 3
j -3 MC 5 MB 2
j-4 MD 4 MC 5
Pour trouver l’ordonnancement optimal qui minimise la durée totale, nous allons utiliser
l’algorithme d’Akers.
Dans la figure ci-dessous nous donnons la représentation graphique, relative à la
méthode d’Akers, pour ce problème

Ci-dessous, nous donnons le diagramme de Gantt relatif à l’ordonnancement optimal de


ce problème.

44
ENSEM-2021 Pr. ALAMI Ayoub

IV.2 Le job shop à deux machines.


Pour résoudre le problème de job shop à deux machines, tel que chaque job est formé au
plus de deux opérations, on peut utiliser l’algorithme de Jackson suivant :

 Algorithme

- Partitionner l’ensemble des jobs en quatre sous-ensembles :


* F1 : ensemble des jobs composés d’une seule opération, qui doit être exécutée sur M1.
* F2 : ensemble des jobs composés d’une seule opération, qui doit être exécutée sur M2.
* F1,2 : ensemble des jobs dont la première opération doit être exécutée sur M1, et la
deuxième sur M2.
* F2,1 : ensemble des jobs dont la première opération doit être exécutée sur M2, et la
deuxième sur M1.
- Séquencer les jobs de F1,2 et ceux de F2,1 en utilisant l’algorithme de Johnson (voir section III.2).
Les jobs de F1 ainsi que ceux de F2 sont séquencés de façon arbitraire.
- Le séquencement optimal du job shop est le suivant :

* Sur M1 : F1,2→F1→F2,1
* Sur M2 : F2,1→F2→F1,2
Exemple
Déterminer le séquencement optimal du job shop dont les données figurent dans le
tableau ci-dessous :
J 1 2 3 4 5 6 7 8 9
j-1 M1 8 M1 7 M1 9 M1 4 M2 6 M2 5 M1 9 M2 1 M2 5
j-2 M2 2 M2 5 M2 8 M2 7 M1 4 M1 3 -- -- -- -- -- --

Résolution

*U1,2 = {4} , V1,2 = {1,2,3}


V1,2 = {3,2,1} (LPT : pi,2)
Le séquencement optimal de F1,2 est : 4→3→2→1
*U2,1 = Ø , V2,1 = {5,6} (LPT : pi,2)
Le séquencement optimal de F2,1 est : 5→6
* Le séquencement optimal du job shop est le suivant :
- Sur M1 : 4→3→2→1→7→5→6
- Sur M2 : 5→6→8→9→4→3→2→1

45
ENSEM-2021 Pr. ALAMI Ayoub

IV.3 Job shop à m machines et n jobs : Algorithme de Carlier et Pinson.


IV.3.1 Définition du problème

Le problème du job shop peut être énoncé comme suit :


Etant donné n jobs : J1, J2, …, Jn qui doivent être exécutés sur m machines : M1, M2,
….,Mm ; sous les hypothèses suivantes :
H1) Chaque machine ne peut exécuter qu’une seule opération à la fois.
H2) L’interruption de l’exécution d’une opération n’est pas permise.
H3) L’ordre de passage de chacun des jobs sur les différentes machines est fixé, et
dépend de ce job.
H4) La durée opératoire de chaque opération est donnée et constante.
H5) Durant la période d’ordonnancement, les pannes des machines ne sont pas prises
en compte.
H6) Les différents jobs sont indépendants les des autres. Il n’existe aucun ordre de
priorité attaché aux jobs.
Le problème consiste à déterminer, sous les hypothèses H1, H2, …, H6, les dates de
début des opérations qui optimisent un critère fixé à l’avance.
Exemple
1 1

M1 M2 M3
2

3 3
Routages

j 1 2 3
j -1 M1 5 M2 3 M3 6
j -2 M2 7 M3 4 M2 1
j -3 M3 1 - - M1 5
Gammes opératoires

Dans la suite de ce cours, on ne s’intéressera qu’au job shop dont le critère à minimiser est
la durée totale de l’ordonnancement.

IV.3.2 Complexité

Excepté pour les rares cas pour lesquels des algorithmes polynomiaux ont été mis au point :

 Le problème à deux machines, et où chaque job est formé au plus de deuxopérations.


 Le problème à deux machines, et où les durées opératoires sont toutes égales à 1.
 Le problème où le job shop est constitué de deux jobs.
 Le problème à deux machines, et où les durées opératoires sont toutes égales à 1, etles dates
de disponibilités sont différentes.

46
ENSEM-2021 Pr. ALAMI Ayoub

IV.3.3 Modélisation du job shop classique

Un job shop peut être modélisé sous la forme d’un programme linéaire mixte, ou à
l’aide d’un graphe « disjonctif ».

Notations :
Dans ce qui suit, nous allons utiliser les notations suivantes :
n : le nombre de jobs.
m : le nombre de machines.
Ji : le ième job.
ni : le nombre d’opérations du job Ji.
(i,h) : la hème opération du job Ji.
pi,h : la durée opératoire de (i,h).
N = {1, 2, …, n}
M = {1, 2, …, m}
Ni = {1, 2, …, ni}
J = {(i,h) / iN et hNi}

Soit f l’application de J dans M définie par :


f((i,h)) = p  (i,h) doit être exécutée sur la machine Mp.
p = {(i,h)J / f((i,h)) = p}
p est l’ensemble des opérations de J qui doivent être exécutées sur Mp.

Hypothèse

Dans la suite de ce chapitre, on suppose que pour tout i élément de N et tout h compris
entre 1 et ni – 1, l’opération (i,h) précède l’opération (i,h+1).
Un job shop peut être modélisé à l’aide d’un graphe « disjonctif » G’ = (G,D), où :
 G = (X,C) est le graphe associé à la partie conjonctive de G’, et où :

o X est l’ensemble des opérations du job shop J auxquelles on adjoigne une


opération début °, et une opération fin *.

X = J{°,*}

o C est l’ensemble des arcs conjonctifs suivants :

 ((i,h),(i,h+1)) iN , h = 1, 2, …, ni-1


 (°,(i,1)) et ((i,ni),*) ∀ iN.
 D est l’ensemble des arcs « disjonctifs » suivants :
[(i,h),(j,k)] ∀ pM et (i,h),(j,k)p

47
ENSEM-2021 Pr. ALAMI Ayoub

Exemple

Le graphe « disjonctif » modélisant le job shop de l’exemple précédent est donné ci-
dessous :

1 2 3

1-1 1-2 1-3


5 7 1
0

2 3
0 3 4
0 2-1 2-2

0
*
5
3 2 1

3-1 3-2 3-3


6 1

Pour construire un ordonnancement du job shop J il faut arbitrer les arcs « disjonctifs »
du graphe G’. C'est-à-dire, il faut fixer un sens à chaque arc « disjonctif ».

Définition

Un arbitrage A est un ensemble d’arcs tels que :

[(i,h),(j,k)]D , si ((i,h),(j,k))A alors ((j,k),(i,h))A

L’appartenance de l’arc ((i,h),(j,k)) à A impose l’exécution de l’opération (i,h) avant


l’opération (j,k).
Si l’un des arcs ((i,h),(j,k)) ou ((j,k),(i,h)) appartient à A, on dit que l’arc « disjonctif »
[(i,h),(j,k)] a été arbitré.

Définition

Un arbitrage A est dit complet si tous les arcs de D ont été arbitrés.

Définition

Un arbitrage A est dit compatible si le graphe conjonctif GA = (X , CA) est sans


circuit.
Un ordonnancement réalisable correspond donc à un arbitrage compatible complet.

Le problème

Notons par Acc l’ensemble des arbitrages compatibles complets associés au graphe
« disjonctif » G’, et par t(A) la valeur du chemin de longueur maximale dans GA.
Alors, résoudre le problème d’ordonnancement du job shop J consiste à déterminer un
élément A* de Acc tel que :
t(A*)  min t(A)
AAcc

48
ENSEM-2021 Pr. ALAMI Ayoub

V-3-4. Résolution du job shop classique.

 Arbitrages triviaux

Soit f0 l’entier naturel positif défini par :


 Si au moins un ordonnancement réalisable a déjà été trouvé, et si f* est la
durée totale du meilleur ordonnancement trouvé, alors on prend f0 = f*-1.
 Sinon, f0 est obtenu à partir de l’évaluation par défaut initiale, en multipliant cette
dernière par 1,1 ou 1,15.
L’objectif est de déterminer, s’il existe, un ordonnancement réalisable T, de durée totale
inférieure ou égale à f0.
 Arbitrage sur disjonction
Soient (i,h) et (j,k) deux opérations qui doivent être exécutées sur la même machine.
Si l’inégalité :

ri,h + pi,h + pj,k + qj,k > f0

alors, dans l’ordonnancement T, l’opération (j,k) doit être exécutée avant l’opération (i,h).
 Entrée et sortie d’une clique
Définition

Une clique C est un ensemble d’opérations qui doivent être exécutées sur la même
machine, et de cardinal au moins égal à 2.

Définition

Une opération e (resp s) appartenant à C est appelée entrée (resp sortie) de C si e


(resp s) est ordonnancée dans T avant (resp après) toutes les autres opérations de C.
Notons par E’ (resp S’) le sous-ensemble des opérations i de C pour lesquelles il existe
un ordonnancement T avec i comme entrée (resp sortie) de C.
Notons par E (respt S) un sur-ensemble de E’ (resp S’) correspondant aux entrées
(resp sorties) possibles de C.
Soient les trois inégalités suivantes :

rk   pi  min qi  f0 (1)
iC iSk

min ri   pi  q k  f 0 (2)
iEkiC

min ri   pi min q j  f0 (3)


iEkiC jSk

Proposition

 Si (1) est vérifiée, alors kE’ dans toute solution.


 Si (1) et (3) sont vérifiées, alors k est une sortie de la clique C dans toute solution.
 Si (2) est vérifiée, alors kS’ dans toute solution.
 Si (2) et (3) sont vérifiées, alors k est une entrée de la clique C dans toute solution.

49
ENSEM-2021 Pr. ALAMI Ayoub

Proposition

 Si e est une entrée de la clique C, alors :

qe = max qe ,  p i  min q i 


iCeiS

 Si s est une sortie de la clique C, alors :


rs = max rs , min ri  p i 
iE iCs

 Une méthode exacte

Ci-dessous nous présentons la méthode de Carlier et Pinson qui est une méthode
arborescente. Elle permet de déterminer la solution optimale du problème du job shop
classique.

 Fonction d’évaluation

Soit Su le sommet de l’arborescence dont nous voulons calculer l’évaluation, et soit A


l’arbitrage partiel associé.
La date de disponibilité ri,h et la durée de latence qi,h de l’opération (i,h) sont données par :
ri,h = l(°,(i,h))
qi,h = l((i,h),*) – pi,h

où l(x,y) est la valeur du chemin de longueur maximale allant de x à y dans le graphe GA.

Une évaluation par défaut peut être obtenue en résolvant m problèmes à une machine en
utilisant l’algorithme de Jackson avec préemption.
Si Vk est la durée totale de l’ordonnancement de Jackson avec préemption relatif à la
machine Mk, alors :

V = max {Vk , 1km}

est une évaluation par défaut du sommet Su.

 Principe de séparation.

Soit Su le sommet à séparer et Au l’arbitrage partiel associé.

Soit [(i,h),(j,k)] une disjonction non arbitrée. Nous séparons Su en deux sommets Sv et Sv+1.

A Sv on associe l’arbitrage Au {((i,h),(j,k))} et Sv+1 on associe l’arbitrage Au{((j,k),(i,h))}.


On choisit la disjonction [(i,h),(j,k)] de la manière suivante :
Soit Mr la machine correspondant à l’ordonnancement préemptif initial de durée
maximale.
Si la clique Cr n’est pas totalement arbitrée, alors on choisit une disjonction non arbitrée
dans l’un des ensembles : Er et Sr , de cardinal minimal.
Sinon, choisir une disjonction non arbitrée appartenant à un ensemble Ex ou Sx (x  r) de
cardinal minimal.
Dans le cas où plusieurs disjonctions sont candidates, on utilise le critère de choixsuivant :
50
ENSEM-2021 Pr. ALAMI Ayoub

Pour chaque disjonction candidate [(i,h),(j,k)], calculer les quantités :

𝑑𝑖,ℎ = max0 , ri,h + p i,h + pj,k + qj,k  LB


𝑗,𝑘

𝑖,ℎ
𝑑𝑗,𝑘  max0 , rj,k + p j,k + pi,h + qi,h - LB
𝑗,𝑘
 𝑗,𝑘 𝑑𝑖,ℎ𝑗,𝑘
𝑎𝑖,ℎ  min 𝑑𝑖,ℎ
𝑗,𝑘 𝑗,𝑘
𝑏𝑖,ℎ 𝑑𝑖,ℎ 𝑑𝑖,ℎ
𝑗,𝑘 
𝑗,𝑘
Faire la séparation sur la disjonction de 𝑏𝑖,ℎ maximal, et en cas d’égalité sur celle de
𝑗,𝑘
𝑎𝑖,ℎ maximal.

Exercices

1) Déterminer un ordonnancement optimal du job shop formé de 10 jobs à exécuter sur


deux machines et dont les gammes figurent ci-dessous:

i 1 2 3 4 5 6 7 8 9 10
i-1 M1 6 M1 4 M1 4 M1 5 M1 7 M2 6 M2 8 M2 4 M2 5 M2 4
i-2 M2 5 M2 7 M2 3 M2 4 -- -- -- -- M1 6 M1 7 M1 3 M1 6

51

Vous aimerez peut-être aussi