You are on page 1of 92

1

❑ Dr.-Ing. Jean Louis


Chapitre 2:
Ebongue Fendji Ordonnancement à
machine unique
2

Mathématiques de Minimisation du
Introduction
l’ordonnancement maximum Lateness

Contenu Minimisation du
Minimisation du
TWCT problem Ordonnancement
Total Weighted
avec les Relations Non-Préemptif
completion time
de Précédence

Ordonnancement Méthode Branch & Autres problèmes


Préemptif Bound de minimisation
3

Introduction
4

L'ordonnancement à une seule machine a suscité le plus d'attention dans les


études théoriques sur l'ordonnancement. La compréhension des théories ouvre
la voie à l'analyse et à une meilleure conception des systèmes multi-machines.
Les hypothèses suivantes s'appliquent généralement à la construction de
modèles d'ordonnancement mono-machine.
1. La machine est disponible en permanence pendant la période de planification.
2. La machine traite les tâches une à une.
Introduction 3. Le temps de traitement de chaque tâche sur la machine est connu avec précision
et ne dépend pas des tâches précédentes.
4. La durée du processus comprend à la fois le temps de réglage et le temps
d'usinage réel.
5. Les autres informations relatives aux travaux sont connues à l'avance. Ces
informations peuvent comprendre la date d'échéance de la tâche (dj) et l'heure
de libération de la tâche (rj).
6. Dans la programmation non préventive, les travaux se terminent sans
interruption. Dans le cadre d'une planification préventive, les travaux peuvent
être retirés de la machine sans que l'opération ne soit terminée.
5

Mathématiques de
l’ordonnancement
6

Les paramètres de planification pour un travail typique, disons le travail j,


sont définis comme suit :
▪ pj = le temps de traitement de la tâche j
▪ Sj = l'heure de début de la tâche j
Mathématiques ▪ Wj = le temps d'attente de la tâche j
de ▪ Dj = la date d'échéance de la tâche j
l’ordonnanceme
nt ▪ Ej = earliness de la tâche j
▪ rj = release date de la tâche j
▪ Cj = completion time de la tâche j
▪ Fj = le flow time de la tâche j
▪ Lj = le lateness de la tâche j
▪ Tj = le tardiness de la tâche j
7

Le diagramme de Gantt
Le diagramme de Gantt est une façon populaire de présenter
graphiquement un calendrier des travaux sur les machines. L'axe X du
diagramme représente le temps et le bloc rectangulaire sur l'axe Y
représente la machine. Une barre horizontale indique l'heure de début et
Mathématiques de fin de chaque tâche sur une machine particulière. Le numéro de la
de tâche est inscrit dans un rectangle. La longueur du rectangle est mise à
l’ordonnanceme l'échelle pour représenter le temps de traitement de la tâche. L'heure de
nt début et de fin d’une tâche sont indiqués sur les côtés verticaux de
départ et d'arrivée du rectangle de la tâche. Les barres représentant les
machines indiquent également les intervalles de repos sur la machine. Le
diagramme de Gantt suivant présente une seule machine avec n tâches.
8

Le diagramme de Gantt

Mathématiques
de
l’ordonnanceme
nt

À partir du tableau Gantt, le temps d’attente pour l’emploi j sera: Wj = CJ –


rj – pj. De même, le lateness (Lj) de la tâche j sera; Lj = CJ - dj. Le tardiness
de la tâche Tj est défini comme un retard positif. En termes
mathématiques, le tardiness (Tj) est exprimé comme suit:
9
De même le earliness Ej est un lateness négatif

Flow time Fj

Mathématiques
de
l’ordonnanceme
nt
10
Exemple 1:

Mathématiques
de
l’ordonnanceme
nt
11
Exemple 1: Solution

Mathématiques
de
l’ordonnanceme
nt
12
Exemple 1: Solution

Mathématiques
de
l’ordonnanceme
nt
13
Exemple 1: Solution

Mathématiques
de
l’ordonnanceme
nt
14
Exemple 2:

Mathématiques
de
l’ordonnanceme
nt
15
Exemple 2: Solution

Mathématiques
de
l’ordonnanceme
nt
16
Exemple 2: Solution

Mathématiques
de
l’ordonnanceme
nt

Il convient de noter que la valeur de Cmax reste la même pour les deux séquences.
De plus, la valeur de Lmax pour la séquence EDD est inférieure à la valeur de Lmax
pour la séquence SPT. En outre, le temps d'attente moyen et le retard moyen pour la
séquence SPT sont très faibles si l'on compare les valeurs obtenues par la séquence
EDD.
Que pouvez-vous déduire de ces résultats ?
17

MINIMISATION DUMAXIMUM
LATENESS (1||Lmax)
18

Pour les problèmes de machine unique, si des dates d'échéance (dj) sont
spécifiées, la séquence suivant la date d'échéance au plus tôt (EDD)
donne une solution optimale au Lmax et au Tmax. Cette règle s'applique à la
classe de problèmes spécifiée par la terminologie 1||Lmax ou 1||Tmax.
MINIMISATION Dans cette classe de problèmes, il est implicitement supposé que le
DUMAXIMUM temps de libération de tous les travaux ; rj=0 (atelier statique)
LATENESS
(1||Lmax)
19

Exemple 3

MINIMISATION
DUMAXIMUM
LATENESS
(1||Lmax)
20

Exemple 3: Solution

MINIMISATION
DUMAXIMUM
LATENESS
(1||Lmax)
21

MINIMISATION DU TOTAL
WEIGHTED COMPLETION TIME
(1||ΣwjCj)
22

Souvent, les tâches dans un atelier ont des priorités sur leurs étiquettes
qui sont spécifiées par le terme j. Pour programmer de telles tâches, la
séquence Weighted Shortest Processing Time (WSPT) est appliquée. La
première étape de la séquence WSPT consiste à calculer le rapport entre
le temps de traitement et le poids de chaque travail, puis à classer les
MINIMISATION travaux par ordre croissant de valeurs de rapport entre le temps de
DU TOTAL traitement et le poids.
WEIGHTED
COMPLETION
TIME (1||ΣwjCj)
23

Exemple 4

MINIMISATION
DU TOTAL
WEIGHTED
COMPLETION
TIME (1||ΣwjCj)
24

Exemple 4

MINIMISATION
DU TOTAL
WEIGHTED
COMPLETION
TIME (1||ΣwjCj)
25

MINIMISATION DU TOTAL
WEIGHTED COMPLETION TIME
AVEC DES RELATIONS DE
PRÉCÉDENCE (1|PREC|ΣwjCj)
26
Il y a des cas où les tâches ont des relations de précédence. Comme le montre le diagramme
du réseau de priorité ci-dessous, la tâche 3 dépend de tâche 2 et la tâche 2 dépend de la
tâche 1.

MINIMISATION DU Dans l'exemple suivant, un problème de machine unique est présenté lorsque les tâches ont
TOTAL WEIGHTED la relation de précédence. La fonction objective est la minimisation du total des temps de
COMPLETION TIME réalisation
AVEC DES RELATIONS
DE PRÉCÉDENCE La méthodologie de la solution est basée sur la méthode de la chaîne (Chain Method) qui est
(1|PREC|ΣwjCj) décrit ci-dessous.
1. Pour chaque ensemble de tâches dans le diagramme de réseau de priorité, former des
ensembles de tâches à partir les tâches non ordonnancées pour chaque chaîne.
2. Trouvez la valeur minimale du ρ pour chaque chaîne, où ρ =
3. Sélectionnez les tâches de la chaîne ayant la valeur globale minimale de ρ .
4. Inclure ces tâches dans le calendrier partiel, et les supprimer du réseau de diagramme.
5. Répétez les étapes (1) à (4) jusqu'à ce que tous les tâches soient ordonnancées.
27
Exemple 5

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
28
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
29
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
30
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
31
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
32
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
33
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
34
Exemple 5: Solution

MINIMISATION DU
TOTAL WEIGHTED
COMPLETION TIME
AVEC DES RELATIONS
DE PRÉCÉDENCE
(1|PREC|ΣwjCj)
35

Ordonnancement non-
préemptif
36
Ce type d’ordonnancement est pris en compte lorsque le temps de libération
de tous les tâches de l'atelier est le même. La séquence des tâches est
décidée par la politique d’ordonnancement. Une fois la séquence
déterminée, les tâches sont chargées sur la machine suivant l’ordre défini.
Les tâches sont traitées en continu sur la machine dans l'ordre de la
séquence. L'ordre de séquencement ne change pas une fois que la machine
commence à traiter les tâches. Chaque tâche est traitée sur la machine à son
Ordonnancement tour. Aucune tâche n'est retirée de la machine pendant son séjour sur celle-ci,
non-préemptif même si une tâche hautement prioritaire arrive sur cette machine. Par
conséquent, aucune interruption n'est autorisée pendant le traitement des
tâches et toutes les tâches sont traitées selon un ordre prédéfini.
37
Exemple: Les données relatives au problème à machine unique à 4 tâches
sont données dans le tableau suivant

Ordonnancement
non-préemptif
Générez un ordonnancement non préemptif en utilisant la séquence EDD,
puis calculez Cmax et Lmax.
38
Solution :
Comme les tâches ont des valeurs rj distinctes, les données du problème
présentent un environnement dynamique. La séquence EDD pour les 4 tâches
basée sur les dates d'échéance est {1-4-3-2}. Le graphique de Gantt suivant
donne des informations complètes sur la séquence EDD.

Ordonnancement
non-préemptif

La tâche 4 arrive au temps 5, pendant que la machine est libre au temps 4. Il y


a donc un temps d'inactivité du temps 4 au temps 5. Le makespan de la
séquence est de 18 unités de temps. Lmax = max {-4, 0, 5, 6} = 6. Si le temps de
libération de toutes les tâches avait été rj = 0, alors le makespan serait de 17
unités de temps ( pj = 17). Dans ce cas également, Lmax aurait été de 5.
39

Ordonnancement préemptif
40
Ce type d’ordonnancement est pris en compte lorsque les tâches arrivent
dans l'atelier à des heures différentes ; c'est-à-dire que la valeur de rj est
supérieure à zéro et qu'elle peut être différente pour chaque tâche. Dans ce
cas, les tâches sont programmées selon une séquence prédéterminée.
Toutefois, la flexibilité est intégrée dans l'ordonnancement. Cela signifie
qu’une tâche peut être retirée de la machine si une tâche hautement
prioritaire doit être traitée avant la tâche actuellement programmée. Ensuite,
Ordonnancement les tâches de faible priorité ou les tâches préemptives sont traitées plus tard.
préemptif
41
Exemple
Reprenons l'exemple précédent. Si l'on autorise la préemption, la priorité est
donnée aux tâches dont l'échéance est la plus proche (EDD). Quel sera le
nouvel ordonnancement? S'agit-il d'un meilleur ordonnancement ?(pourquoi
ou pourquoi pas ?)

Ordonnancement Solution :
préemptif
La séquence EDD est {1-4-3-2} Temps, t=0.

Le job (tâche) arrivé à l'heure zéro est le job 1. le job 1 est programmé à
l'heure zéro. Ensuite, la machine achèvera le job 1 à l'heure 4.
Temps, t=3.
Les jobs 2 et 3 sont arrivés. La machine est occupée et ne peut traiter aucun
travail.
42
Solution :
Temps, t=4.
Le traitement du job 1 est terminé et la machine se libère et est prête à traiter
n'importe quel job en attente. En ce qui concerne la séquence EDD, le
prochain job dans la séquence EDD est le job 4, mais il n'est pas encore
arrivé parce que son heure d'arrivée est au temps 5. Ainsi, le job suivant dans
la séquence EDD est pris en charge, c'est-à-dire le job 3. Comme le job 3 est
Ordonnancement
préemptif déjà arrivé, il est alors affecté à la machine.
Temps, t=5.
Job j4 est arrivé. Actuellement, la machine traite le job 3. D'après la séquence
EDD, il est clair que le job 3 est moins prioritaire que le job 4. Par conséquent,
il est impossible que le job 3 soit traité. Ensuite, le job 4 est alors affecté à la
machine. Le job 4 a un temps de traitement de 5 unités de temps, ce qui
signifie qu’il sera terminé au temps 10.
43
Solution :
Temps, t=10
Le traitement du job 4 est terminé. Ensuite, le job suivant dans la séquence
EDD est le job 3. Cet emploi a déjà été partiellement traité entre le moment
t=4 et t=5. Son temps de traitement restant est de 5 unités de temps. Par
conséquent, attribuez le job 3 à la machine et il sera terminé au temps 15.

Ordonnancement Temps, t=15


préemptif
Le traitement de job j3 est terminé. Ensuite, le prochain travail dans la
séquence EDD est le job 2. Son temps de traitement est de 2 unités de temps.
Ensuite, le job 2 est affecté à la machine et fini au temps 17. Temps, t=17.

Le traitement du job 2 est terminé. Il n'y a pas d'autre job à traiter, la


procédure est donc ARRÊTÉE.
Le graphique de Gantt suivant présente le calendrier des jobs
44
Solution :
Le graphique de Gantt suivant présente le calendrier des tâches

Ordonnancement
préemptif

D'après le diagramme de Gantt ci-dessus, il devrait être clair que les valeurs
de makespan et de retard maximum sont les suivantes : makespan =17 et
Lmax=5.
Il devrait être clair que pour ce problème de données, l’ordonnancement
préemptif offre une meilleure solution que l’ordonnancement non préemptif.
45

Nombre de Tardy Jobs


46
Un objectif d’ordonnancement populaire est la minimisation du nombre de
tardy jobs. Il est exprimé comme un problème 1||nt dans la terminologie.
L’algorithme de Hodgson fournit un solution optimal à ce problème.
Etape 1 : Ordonner les jobs dans l'ordre des EDD.

Étape 2 : Construire le diagramme de Gantt pour la séquence EDD et calculer


les valeurs de Tj pour tous les jobs (1 à n)

Nombrede Tardy Étape 3 : Si les valeurs de Tj pour tous les jobs sont égales à zéro (cela signifie
Jobs qu'il n'y a pas de job en retard). STOP. La séquence EDD est une séquence
optimale pour le problème d'ordonnancement considéré 1|| nt Sinon, passez
à l'étape 4.
Étape 4 : Pour la séquence en cours, trouvez le premier job en retard dans la
séquence, disons k.

Étape 5 : Retirez le job j parmi les job ordonnancés jusqu'à présent (1 ≤ 𝑗 ≤


𝑘) dont le temps de traitement est le plus long de la séquence et placez-le
dans l'ensemble des jobs en retard. Ensuite, passez à l'étape 2.
47
Exemple
Résolvez le problème 1 || nt suivant dans lequel les données suivantes sont
données :

Nombrede Tardy
Jobs
Solution :
Réorganisez les jobs en fonction de la séquence EDD comme suit

Les calculs des temps de réalisation (Cj) et des retards (Tj ) sont présentés
dans le tableau ci-dessous. Le nombre de jobs en retard nt est égal à 4.
48
Les calculs des temps de réalisation (Cj) et des retards (Tj ) sont présentés
dans le tableau ci-dessous. Le nombre de jobs en retard nt est égal à 4.

Nombrede Tardy
Jobs
À partir de l'étape 4, le premier job en retard de la séquence est le job 1.
Selon l'étape 5, les jobs 2, 3 et 1 sont candidats à la suppression de l'ensemble
des job en retard. Comme le job 1 a le plus grand temps de traitement pj.
Ensuite, le job 1 est retiré de l’ordonnancement actuel et placé dans le
groupe des jobs en retard, ce qui signifie que le job 1 sera attaché à la fin ou
à la dernière position de la séquence.
49

Recalcul des valeurs de Tj et Cj comme indiqué dans le tableau ci-dessous.

Nombrede Tardy
Jobs

Le premier job en retard dans le nouvel ordonnancement est le job 4. Dans la


liste des jobs ordonnancés, {2, 3, 5, 4}, le job 5 a la grand temps de traitement.
Ainsi, le job 5 est déplacé vers la dernière position dans la séquence, comme
indiqué ci-dessous.
50

Après avoir déplacé le job 5 à la dernière position de la séquence, on


recalcule Tj et Cj comme indiqué dans le tableau ci-dessous.

Nombrede Tardy
Jobs

Il doit être clair qu'il n'y a pas de retard dans l’ensemble des job
ordonnancés. Il n'y a donc que deux jobs tardifs, à savoir les jobs 1 et 5. Par
conséquent, le nombre total de jobs tardifs nt est égal à 2. Ce problème a
deux séquences optimales: {2,3,4,6,1,5}, et {2,3,4,6,5,1}.
51

Branch and Bound


52
La méthode Branch and Bound utilise un arbre de séquences. Chaque nœud
de l'arbre contient une séquence partielle de job.
Pour un problème à n jobs, il y a n-1 nombres de niveaux pour un arbre.

Au niveau zéro, le nœud racine sera placé avec toutes les n positions vides de
la séquence.
Au niveau 1, il y aura un nombre n de nœuds. Chaque nœud contiendra une
séquence partielle de jobs. La première position de la séquence sera
Branch and Bound
occupée par un job dans l'ordre numérique.
De même, chaque nœud au (n-1)ème niveau sera ramifié en (n-2) nombre de
nœuds. Le processus se poursuivra jusqu'à ce que chaque nœud ait
exactement une feuille.

La construction d'un arbre permettant de générer toutes les séquences pour


un problème à 3 job est présentée dans la figure suivante.
53

Branch and Bound


54
La génération de toutes les séquences est de nature combinatoire et donnera
lieu à un nombre énorme de séquences, même pour un petit nombre de jobs.
Par exemple, pour un problème de 10 jobs, il y en aura 10 ! séquences.

Pour réduire l'effort de calcul, des limites inférieures sont calculées à chaque
niveau pour chaque nœud. La formule utilisée pour calculer la limite
inférieure est pertinente pour la fonction objective du problème
d'ordonnancement.
Branch and Bound
Le branchement est effectué uniquement à partir des nœuds ayant la
limite inférieure minimale. Ainsi, seule une petite partie des nœuds est
explorée, ce qui réduit le nombre de calculs.
La méthode Branch and Bound (B&B) est appliquée dans presque tous les
problèmes d'ordonnancement. Dans le paragraphe suivant, cette méthode est
appliquée pour résoudre des problèmes à machine unique où les jobs ont
des temps de libération distincts (rj) et la fonction objective est de minimiser
Lmax. Comme la terminologie de l'ordonnancement l'implique, ces types de
problèmes sont appelés problème 1 | rj | Lmax.
55

MINIMIZATION OF MAXIMUM
LATENESS WITH READY TIME
PROBLEM
(1 | rj | Lmax )
56
Dans cette section, la méthode Branch and Bound (B&B) est utilisée pour
résoudre le problème d'ordonnancement suivant : 1 | rj | Lmax. Les directives
suivantes doivent être suivies lors de l'élaboration de l'arbre générateur
d'ordonnancement pour le B&B du problème considéré :
1. À tout niveau de l'arbre, ne générer que les nœuds enfants pour le nœud
MINIMIZATION OF parent sélectionné qui satisfont la relation suivante :
MAXIMUM
LATENESS WITH
READY TIME Où :
PROBLEM J = ensemble des jobs non encore ordonnancés
(1 | rj| Lmax) t = heure à laquelle le job j est censé commencer.

Cela signifie que seuls les jobs qui sont prêts à être traités seront pris en
considération.
57
Dans cette section, la méthode Branch and Bound (B&B) est utilisée pour
résoudre le problème d'ordonnancement suivant : 1 | rj | Lmax. Les directives
suivantes doivent être suivies lors de l'élaboration de l'arbre générateur
d'ordonnancement pour le B&B du problème considéré :
2. Calculer la valeur des limites inférieures pour tous les nœuds à
MINIMIZATION OF n'importe quel niveau en utilisant l’ordonnancement EDD préemptif. Cela
MAXIMUM signifie qu'à chaque nœud, Lmax est calculé à l'aide de l’ordonnancement EDD
LATENESS WITH préemptif développée. Ensuite, le(s) nœud(s) (séquence(s)) ayant la valeur
READY TIME minimale Lmax pour un branchement ultérieur au niveau inférieur est choisi.
PROBLEM
(1 | rj| Lmax) L'exemple suivant illustre la mise en œuvre du B&B pour la résolution du
problème d'ordonnancement suivant : 1 | rj | Lmax.
58
Exemple Le tableau suivant présente un exemple de problème de 1 | rj |
Lmax. Trouvez une solution optimale pour ce problème en utilisant la méthode
B&B.

MINIMIZATION OF
MAXIMUM
LATENESS WITH Solution :
READY TIME
PROBLEM Au départ, il y a quatre nœuds possibles au niveau 1, comme le montre la
(1 | rj| Lmax) figure ci-dessous.
59
Itération I - Étape (1)
Pour les quatre nœuds du niveau 1, vérifiez l'état :

Dans les étapes suivants, chaque séquence partielle sera examinée une par
une comme suit :
MINIMIZATION OF
MAXIMUM a) Séquence partielle : (1-*-*-*) r1 = 0 t=0
LATENESS WITH
READY TIME Les jobs non ordonnancés sont (2-3-4). Le délai minimum d'exécution de
PROBLEM tous ces jobs peut être calculé comme suit.
(1 | rj| Lmax)

Puisque r1 < 3, il faut donc inclure ce nœud (1-*-*-*) dans l'arbre.


b) Séquence partielle : (2-*-*-*) r2 = 1 t=0 60

Les jobs non ordonnancés sont (1-3-4). Le délai minimum d'exécution de tous ces
jobs peut être calculé comme suit.

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME Puisque r2 < 4, il faut donc inclure ce nœud (2-*-*-*) dans l'arbre.
PROBLEM c) Séquence partielle : (3-*-*-*) r3 = 3 t=0
(1 | rj| Lmax)
Les jobs non ordonnancés sont (1-2-4). Le temps minimum d'exécution de tous ces
jobs peut être calculé comme suit :

Puisque r3 n'est pas inférieur à 3. Alors, n'incluez pas ce nœud (3-*-*-*) dans
l'arbre
d) Séquence partielle : (4-*-*-*) r4 = 5 t=0 61

Les jobs non ordonnancés sont (1-2-3). Le délai minimum d'exécution de tous
ces jobs peut être calculé comme suit :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM
(1 | rj| Lmax) Puisque r4 n'est pas inférieur à 3. Alors, n'incluez pas ce nœud (4-*-*-*) dans
l'arbre.
Itération - I : Étape (2)
Trouvez Lmax pour les séquences (1-*-*-*) et (2-*-*-*) comme suit :
La séquence des EDD en fonction des dates d'échéance est la suivante : (1-4-
3-2)
Voici l’ordonnancement de la séquence (1-*-*-*) utilisant l’ordonnancement
préemptif :
Voici l’ordre de la séquence (1-*-*-*) utilisant l’ordonnancement préemptif:
62

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME Voici l’ordre de la séquence (2-*-*-*) utilisant l’ordonnancement préemptif:
PROBLEM
(1 | rj| Lmax)
La figure précédente montre clairement que la machine est restée inactive 63

pendant l'intervalle de temps [0, 1] parce que la première tâche de la


séquence est la tâche 2 et que son temps de préparation est de 1. La limite
inférieure (LB) du nœud (1-*-*-*) est inférieure à la LB du nœud (2-*-*-*).
Cela signifie qu'il faut poursuivre la ramification à partir du nœud (1-*-*-*). La
figure suivante montre la branche à partir du nœud (1-*-*-*).
MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM
(1 | rj| Lmax)

Il devrait être clair, d'après la figure ci-dessus, qu'il y a trois nœuds qui
émanent du nœud (1-*-*-*). Ensuite, vérifiez la condition suivante afin de
déterminer le(s) nœud(s) à prendre en compte :
Itération 2 - Étape (1) 64

a) Séquence partielle : (1-2-*-*) r2 = 1 t=4

Les jobs non ordonnancés sont (3-4). Le délai minimum d'exécution de tous
ces jobs peut être calculé comme suit :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM Puisque r2 < 10, il faut donc inclure ce nœud (1-2-*-*) dans l'arbre
(1 | rj| Lmax)
b) Séquence partielle : (1-3-*-*) r3 = 3 t=4

Les jobs non ordonnancés sont (2-4). Le délai minimum d'exécution de tous
ces jobs peut être calculé comme suit :

Puisque r3< 6, il faut donc inclure ce nœud (1-3-*-* ) dans l'arbre


c) Séquence partielle : (1-4-*-*) r4 = 5 t=4 65

Les jobs non ordonnancés sont {2-3}. Le délai minimum d'exécution de tous
ces jobs peut être calculé comme suit :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM Itération 2 : Étape (2)
(1 | rj| Lmax)
Trouvez Lmax pour les trois séquences comme suit :

Dans l'ordre (1-2-*-*), la première et deuxième postions sont déjà affectés


respectivement aux jobs 1 et 2. Pour les deux autres positions, selon la
séquence EDD (14-3-2), le job 4 sera affecté à la position 3 et le job 3 sera
affecté à la position 4. Le calcul pour la limite inférieure qui est Lmax est le
suivant :
66

Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 6.


MINIMIZATION OF
MAXIMUM Dans l'ordre (1-3-*-*), le premier et le deuxième poste sont déjà affectés
LATENESS WITH respectivement aux jobs 1 et 3. Pour les deux autres postes, selon la séquence
READY TIME EDD, le poste 4 sera affecté au poste 3 et le poste 2 sera affecté au poste 4. Le
PROBLEM
(1 | rj| Lmax) calcul pour la limite inférieure est le suivant :
Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 5. 67

Dans l'ordre (1-4-*-*), le premier et le deuxième poste sont déjà affectés


respectivement aux emplois 1 et 4. Pour les deux autres postes, selon la
séquence EDD, le poste 3 sera affecté au poste 3 et le poste 2 sera affecté au
poste 4. Le calcul pour la limite inférieure est le suivant :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM
(1 | rj| Lmax)

Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 6. Lorsque l'on compare
les valeurs de la limite inférieure des trois nœuds, il doit être clair que le
nœud (1-3-*-*) a la valeur minimale. Ainsi, à partir de ce nœud, la
ramification doit se poursuivre comme indiqué dans la figure ci-dessous.
Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 6. Lorsque l'on compare
68

les valeurs de la limite inférieure des trois nœuds, il doit être clair que le
nœud (1-3-*-*) a la valeur minimale. Ainsi, à partir de ce nœud, la
ramification doit se poursuivre comme indiqué dans la figure ci-dessous.

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM
(1 | rj| Lmax)

Ensuite, vérifiez la condition suivante afin de déterminer le(s) nœud(s) à


prendre en compte :
Itération 3 - Étape (1) 69

a) Séquence partielle : (1-3-2-*) r2 = 1 t=10

Le job non ordonnancé est {4}. Le délai minimum d'exécution de ce job peut
être calculé comme suit :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM Puisque r2 < 15, il faut donc inclure ce nœud (1-3-2-*) dans l'arbre.
(1 | rj| Lmax)
b) Séquence partielle : (1,3,4,*) r2 = 5 t=10

Le job non ordonnancé est {2}. Le délai minimum d'exécution de ce job peut
être calculé comme suit :

Puisque r4 < 12, il faut donc inclure ce nœud (1-3-4-*) dans l'arbre.
Itération 3 : Étape (2) 70

Trouvez Lmax pour les deux séquences comme suit :

Dans l'ordre (1-3-2-*), la première position, la deuxième position, la troisième


position sont déjà attribuées respectivement aux jobs 1, 3 et 2. Pour le job
restant, qui est le job 4, il sera attribué à la dernière position. Le calcul pour la
limite inférieure sera le suivant :
MINIMIZATION OF
MAXIMUM
LATENESS WITH
READY TIME
PROBLEM
(1 | rj| Lmax)

Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 7.

Dans l'ordre (1-3-4-*), la première position, la deuxième position, la troisième


position sont déjà attribuées respectivement aux jobs 1, 3 et 4. Pour le job
restant, qui est le job 2, il sera attribué à la dernière position. Le calcul pour la
limite inférieure sera le suivant :
71

Ainsi, d'après le tableau ci-dessus, la Lmax est égale à 5. Lorsque l'on compare
MINIMIZATION OF les valeurs limites inférieures des deux nœuds, il doit être clair que le nœud
MAXIMUM
LATENESS WITH (1-3-4-2) a la valeur minimale. Ceci conclut la procédure du branch and
READY TIME bound et signifie également que la séquence optimale a été obtenue. La
PROBLEM séquence optimale est {1-3-4-2}.
(1 | rj| Lmax)
72

MINIMIZATION OF TOTAL
WEIGHTED TARDINESS PROBLEM
(1 || σ 𝑤𝑗 𝑇𝑗 )
Dans la théorie classique de l’ordonnancement, la minimisation du retard 73

total pondéré a fait l'objet de recherches approfondies. Diverses approches


ont été développées. Dans les slides qui suivent, l'une de ces approches, la
méthode B&B, sera explorée pour résoudre ce problème. Afin de réduire
l'espace de solution pour σ 𝑤𝑗 𝑇𝑗 , ce qui signifie réduire au minimum l'effort
de recherche d'une solution quasi optimale dans l'espace de solution,
examinons le lemme suivant qui aide à établir une relation relative entre les
MINIMIZATION OF
TOTAL WEIGHTED jobs, ce qui produit des contraintes de priorité entre certains des emplois.
TARDINESS Lemme :
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗) Pour minimiser un problème 1|| σ 𝑤𝑗 𝑇𝑗 , et pour deux jobs quelconques,
disons j et k, ce qui suit est vrai :
Pj ≤Pk
dj ≤dk et

Wj ≥Wk,
Il existe alors une séquence optimale qui minimise le problème
1|| σ 𝑤𝑗 𝑇𝑗 dans lequel le job j apparaît avant le job k.
Comme mentionné précédemment, ce lemme aidera à établir une relation 74 entre
les jobs, ce qui produit des contraintes de précédence entre certains jobs et
contribue par conséquent à éliminer un nombre important de séquences
possibles, ce qui réduit l'espace de solution et l'effort de recherche.

Méthode :

Étape 1 : Identifier les positions des jobs dans la séquence suivant les données
MINIMIZATION OF Étape 2 : Construire un arbre B&B avec seulement des nœuds qui contient des
TOTAL WEIGHTED jobs possibles pour être en dernière position dans la séquence. Utilisez le Lemme
TARDINESS
PROBLEM (1 || mentionné ci-dessus pour construire ces nœuds au niveau un de l'arbre.
σ 𝑤𝑗 𝑇𝑗) Étape 3 : Trouvez la limite inférieure pour chaque nœud développé. Cela signifie
qu'il faut calculer σ 𝑤𝑗 𝑇𝑗 comme limite inférieure pour chaque nœud.

Etape 4 : Branche à partir du (des) nœud(s) qui a (ont) la (les) valeur(s)


minimale(s) de la limite inférieure.

Étape 5 : Lorsque vous passez à un nœud de niveau inférieur, n'incluez que les
jobs qui satisfont le Lemme mentionné ci-dessus.

Étape 6 : Continuez à vous ramifier au niveau le plus bas de l'arbre jusqu'à ce que
tous les jobs soient inclus dans l’ordonnancement.
Exemple 75

Trouvez une séquence optimale pour le problème 1 || σ 𝑤𝑗 𝑇𝑗 en fonction des


données du tableau suivant :

MINIMIZATION OF
TOTAL WEIGHTED
TARDINESS Solution :
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗) La première étape consiste à déterminer l'ensemble des jobs qui satisfont à
la condition de relation dans le lemme mentionné plus haut, dans lequel les
conditions pour tout job sont les suivantes :

En appliquant cette relation, on peut constater que dans un ordre optimal, le


job 1 apparaîtra avant le job 3. De même, le job 2 apparaîtra avant le job 4.
Par conséquent, pour l'arbre B&B, seuls deux nœuds peuvent être construits
qui représentent les séquences partielles comme le montre la figure suivante.
Solution : 76

Pour le nœud avec séquence partielle (*-*-*-4), la limite inférieure (LB) qui
MINIMIZATION OF est σ 𝑤𝑗 𝑇𝑗 peut être calculée comme suit :
TOTAL WEIGHTED
TARDINESS
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗)

De même, la limite inférieure (LB) pour le nœud avec séquence partielle (*-*-
*-3) peut être calculée comme suit :
Solution : 77

Ainsi, puisque le nœud avec la séquence partielle (*-*-*-3) a une valeur de


limite inférieure plus petite, alors, la ramification doit être poursuivie avec ce
nœud. Cela signifie que le nœud à séquence partielle (*-*-*-4) doit être
sonder. Seuls deux nœuds peuvent être étudiés avec les deux séquences
partielles (*-*-4-3) et (*-*-1-3) comme le montre la figure ci-dessous.
MINIMIZATION OF
TOTAL WEIGHTED
TARDINESS
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗)

La limite inférieure de la séquence partielle (*-*-4-3) qui est σ 𝑤𝑗 𝑇𝑗 peut être


calculée comme suit :
Solution : 78

La limite inférieure de la séquence partielle (*-*-4-3) qui est σ 𝑤𝑗 𝑇𝑗 peut être


calculée comme suit :

MINIMIZATION OF
TOTAL WEIGHTED La limite inférieure de la séquence partielle (*-*-1-3) qui est σ 𝑤𝑗 𝑇𝑗 peut être
TARDINESS calculée comme suit :
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗)

Par conséquent, puisque le nœud avec la séquence partielle (*-*-4-3) a une


valeur de limite inférieure, alors, la ramification doit être poursuivie à partir
de ce nœud. Cela signifie que le nœud à séquence partielle (*-*-1-3) doit
être sondé. Seuls deux nœuds peuvent être étudiés avec les deux séquences
partielles (*-1-4-3) et (*-2-1-3) comme le montre la figure ci-dessous.
Solution : 79

Par conséquent, puisque le nœud avec la séquence partielle (*-*-4-3) a une


valeur de limite inférieure, alors, la ramification doit être poursuivie à partir
de ce nœud. Cela signifie que le nœud à séquence partielle (*-*-1-3) doit
être sonder. Seuls deux nœuds peuvent être étudiés avec les deux séquences
partielles (*-1-4-3) et (*-2-1-3) comme le montre la figure ci-dessous.
MINIMIZATION OF
TOTAL WEIGHTED
TARDINESS
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗)
Solution : 80

La limite inférieure de la séquence partielle (*-1-4-3) qui est σ 𝑤𝑗 𝑇𝑗 peut être


calculée comme suit :

MINIMIZATION OF
TOTAL WEIGHTED La limite inférieure de la séquence partielle (*-2-1-3) qui est σ 𝑤𝑗 𝑇𝑗 peut être
TARDINESS calculée comme suit :
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗)

Ainsi, puisque le nœud avec la séquence partielle (*-2-4-3) a une valeur de


limite inférieure, alors, une séquence optimale a été trouvée qui est (1-2-4-3)
parce que plus aucune ramification ne peut être faite tous les travaux ont été
programmés. Le calcul complet de l'ordonnancement est donné dans le
tableau suivant :
Solution : 81

Le calcul complet de l'ordonnancement est donné dans le tableau suivant :

MINIMIZATION OF
TOTAL WEIGHTED
TARDINESS Le retard total pondéré σ 𝑤𝑗 𝑇𝑗 = 67. La même approche peut être utilisée
PROBLEM (1 ||
σ 𝑤𝑗 𝑇𝑗) pour résoudre le problème 1 || σ 𝑇𝑗 . On n’a qu’à supposer que tous les jobs
ont le même poids 𝑤𝑗 =1.
82

MINIMIZATION OF MAXIMUM
LATENESS WITH PRECEDENCE
PROBLEM
(1 | PREC | Lmax)
Dans cette section, le problème d’ordonnancement a des jobs qui ont 83 un

rapport de prédécence entre eux. En ordonnancant les travaux sur une seule
machine, l'objectif est de minimiser le retard maximum (Lmax). L'une des
méthodes bien connues pour résoudre ce problème est basée sur la règle de
la plus petite marge restant (RS) (least remaining slack).
Cette règle est appliquée pour résoudre le problème 1 | prec | Lmax.
MINIMIZATION OF
MAXIMUM Le RSj peut être calculé comme suit :
LATENESS WITH
PRECEDENCE
PROBLEM Avec
(1 | PREC | Lmax)
RSj = la marge de manœuvre restante du job j.
pj = le temps de traitement du job j.
dj = date d'échéance pour le job j.

t = heure de l’ordonnancement.
L'algorithme pour mettre en œuvre les règles RS est le suivant : 84

Étape 1 : Au temps zéro, fixer t = 0.

Étape 2 : À partir du graphe de précédence donné, formez l'ensemble des


jobs ordonnançables.
Étape 3 : Calculez les valeurs RS de ces jobs.
MINIMIZATION OF Étape 4 : Sélectionnez un job j ayant une valeur minimale de RSj et
MAXIMUM
LATENESS WITH ordonnancez le sur la machine.
PRECEDENCE Étape 5 : Supprimez le job récemment ordonnancé des jobs ordonnançables
PROBLEM
(1 | PREC | Lmax) définis.
Étape 6 : Si tous les jobs ont été ordonnancés, ARRÊTEZ. Sinon, mettez à jour
l'ensemble des jobs ordonnançables à partir du graphe de précédence.
Actualisez la valeur de t. Passez à l'étape 3.
Exemple 85

Considérez le problème de 1| prec | Lmax avec les données indiquées dans le


tableau suivant :

MINIMIZATION OF
MAXIMUM
LATENESS WITH De plus, le graphe de précédence pour les jobs est donné dans la figure
PRECEDENCE suivante :
PROBLEM
(1 | PREC | Lmax)
Solution 86

Au temps zéro, t = 0. L'ensemble des jobs ordonnançables basé sur le graphe


de précédence contient les jobs suivants : {1-2-5}. Le calcul des valeurs de RS
pour ces jobs est donné dans le tableau :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
PRECEDENCE
PROBLEM
(1 | PREC | Lmax) Le job 2 a la valeur minimale de RS. Ensuite, le job 2 est ordonnancé d'abord
sur la machine au temps 0 et il sera terminé au temps 3. Ainsi, la valeur de t a
été mise à jour pour être = 3. L'ensemble S = {2}.
Ensuite, le job 6 est ajouté à l'ensemble des jobs ordonnançables. Cela
signifie que l'ensemble contient les jobs suivants : {1-5-6}. Le calcul des
valeurs RS pour ces jobs de l'ensemble est donné dans le tableau suivant :
Solution 87

Le calcul des valeurs RS pour ces jobs de l'ensemble est donné dans le
tableau suivant :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
PRECEDENCE
PROBLEM Comme le job 1 a la valeur RS minimale, il est donc ordonnancé en deuxième
(1 | PREC | Lmax) position au temps 3 de la machine. Le job sera terminé au temps 5. Par
conséquent, la valeur actualisée de t est = 5. L'ensemble S = {2-1}.
Ensuite, le job 4 est ajouté à la liste des jobs ordonnançables. L'ensemble des
jobs ordonnançables est {5-6-4}. Sur les trois jobs de l'ensemble, le job 4 a la
valeur minimale de RS comme indiqué dans le tableau suivant :
Solution 88

Sur les trois jobs de l'ensemble, le job 4 a la valeur minimale de RS comme


indiqué dans le tableau suivant :

MINIMIZATION OF
MAXIMUM
LATENESS WITH
PRECEDENCE
PROBLEM Ainsi, le job 4 est prévu au temps 5 et il sera terminé au temps 6. L'ensemble
(1 | PREC | Lmax) S = {2-1-4}. La valeur t sera donc mise à jour pour être égale à 6. au temps
courant, seuls deux jobs sont dans l'ensemble ordonnançable. Ces jobs sont
{5-6}. Sur ces deux jobs, le job 6 a la valeur RS minimale comme indiqué dans
le tableau suivant :
Solution 89

Ensuite, le job 6 est prévu au temps 6 et il sera terminé au temps 9.


L'ensemble S = {2-1-4-6}. La valeur t sera donc mise à jour pour être égale à 9.
À ce moment, le job 3 est ajouté à l'ensemble ordonnançable. Les jobs de
l'ensemble à ordonnancer sont {5-3}. Parmi ces deux jobs, le job 5 a la valeur
minimale de RS comme indiqué dans le tableau suivant :
MINIMIZATION OF
MAXIMUM
LATENESS WITH
PRECEDENCE
PROBLEM
(1 | PREC | Lmax)
Par conséquent, le job 5 est prévu au temps 9 et terminé au temps 13.
L'ensemble S = {2-1-4-6-5}. La valeur de t sera donc mise à jour pour être =
13. À ce moment, le job 7 est ajouté à l'ensemble des jobs ordonnançables.
L'ensemble des jobs ordonnançables contient les jobs suivants : {3-7}. Parmi
ces deux jobs, le job 3 a la valeur minimale de RS comme indiqué dans le
tableau suivant.
Solution 90

Parmi ces deux jobs, le job 3 a la valeur minimale de RS comme indiqué dans
le tableau suivant.

MINIMIZATION OF
MAXIMUM
LATENESS WITH Ensuite, le job 3 est prévu à la date 13 et il sera terminé à la date 15.
PRECEDENCE L'ensemble S = {2-1-4-6-5-3}. La valeur de t est = 15. À ce moment, le job 8 est
PROBLEM
(1 | PREC | Lmax) ajouté à l'ensemble ordonnançable. L'ensemble des jobs ordonnançables est
{7-8}. Parmi ces deux jobs, le job 7 a la valeur minimale de RS comme indiqué
dans le tableau suivant :
Solution 91

Ainsi, le job 7 est prévu à la date 15 et il sera achevé à la date 17. L'ensemble
S = {2-1-4-6-5-3-7}. La valeur de t est = 17. Le seul job non ordonnancé est le
job 8 avec une valeur RS de 0 comme indiqué dans le tableau suivant :

MINIMIZATION OF
MAXIMUM Ensuite, le job 8 est prévu à la date 17 et il sera terminé à la date 19.
LATENESS WITH L'ensemble des tâches ordonnançables est vide. Par conséquent, STOP.
PRECEDENCE
PROBLEM La séquence finale des jobs sur la machine est la suivante : {2-1-4-6-5-3-7-8}.
(1 | PREC | Lmax) Le diagramme de Gantt pour cette séquence est présenté ci-dessous :

D'après le diagramme de Gantt, le retard maximum (Lmax) est de 2.


92

THE
END

You might also like