Vous êtes sur la page 1sur 28

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
ENSEM-2021 Pr. ALAMI Ayoub

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

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)

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

Proposition

h(L) est une évaluation par défaut de la durée optimale de l’ordonnancement du


problème à une machine.

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
27
ENSEM-2021 Pr. ALAMI Ayoub
- t = maxt + v , min rj
jU 
Proposition

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


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.

28