Vous êtes sur la page 1sur 35

Problèmes à une machine

Introduction
◼ La résolution du problème
d’ordonnancement à plusieurs machines
peut recourir aux méthodes de résolution
des problèmes d’ordonnancement à une
seule machine.
◼ En pratique, on rencontre souvent le
problème de la machine goulot
d’étranglement, abordé avec des techniques
propres aux problèmes à une machine

2
Problème à une machine

◼ Minimisation de la durée totale : Cmax


◼ Minimisation des encours : Fi, wiFi
◼ Minimisation des retards : Lmax, Tmax, Ti,
Ui

3
Minimisation de la durée totale : 1 C max

Les n ! ordonnancements possibles sont


tous de durée égale à pi

A B C D
pi 5 2 2 3

• Séquence  = ABCD : valeur Cmax = 12

A B C D

0 12 temps
4
Minimisation de la durée totale :1 prec Cmax

◼ Exemple : L’ensemble des tâches A, B, C, D, E


et F sont à ordonnancer sur une machine
◼ La tâche D ne peut être exécutée qu’après les tâches
A, B et C
◼ La tâche F ne peut être exécutée qu’après la tâche D
◼ La tâche E ne peut être exécutée qu’après la tâche F

i A B C D E F
pi 5 3 4 2 3 1

5
Minimisation de la durée totale :1 prec Cmax
◼ Les ordonnancements
possibles :
◼ ABCDFE

A ◼ ACBDFE

◼ BCADFE

B D F E ◼ BACDFE

◼ CABDFE

C ◼ CBADFE

◼ Tous ces
ordonnancements sont
de durée pi

6
Minimisation de la durée totale : 1 prec Cmax

Lorsqu’il y a des relations de précédence


entre les tâches, les ordonnancements
possibles (pas nécessairement n!) sont
tous de durée égale à pi

7
Minimisation de la durée totale : 1 ri Cmax
A B C D
pi 5 2 2 3
ri 0 9 2 8
• Séquence ABCD

A B C D

0 5 9 11 13 16 temps
• Séquence ACDB

A C D B

0 5 7 8 11 13 temps

Ordonnancement des tâches dans l’ordre croissant des r i

8
Minimisation de la durée totale : 1 ri Cmax
◼ Théorème 1 :
FIFO (ri croissant) optimise 1 ri Cmax
Complexité (O(nlogn))

9
Minimisation de la durée totale : 1 ri Cmax
◼ Théorème 1 :
FIFO (ri croissant) optimise 1 ri Cmax
Complexité (O(nlogn))
(démonstration par l’absurde)
Supposons qu’il existe une séquence S dont les tâches
ne sont pas rangées dans l’ordre croissant de ri,
Montrons que S n’optimise pas Cmax

10
Minimisation des encours : 1  F i

Fi
t=0 ri ti Ci

lancement de l’ordre Sortie du système


de fabrication, arrivée
de la tâche à l’unité

◼ Mesure le volume des travaux en cours de réalisation


dans une période donnée (e.g., stock moyen journalier des
en-cours) et le degrés d’encombrement du système
◼ les problèmes 1//Fi et 1//Ci deviennent équivalents

11
Minimisation des encours : 1  C i

A B C D
pi 5 2 2 3

• Séquence  = ABCD • : valeur Ci = 33

A B C D

0 5 7 9 12 temps

• Séquence  = BCDA • : valeur Ci = 25 optimal ?

B C D A

0 2 4 7 12 temps
Minimisation des encours : 1  C i

◼ Théorème
SPT optimise 1 C i

13
Minimisation des encours : 1  wCi i

◼ on utilise comme critère lorsque les


clients ont des importances différentes.
◼ Théorème 2 :

Le séquencement des tâches dans l’ordre


croissant des (durée/ poids) (dite WSPT :
Weighted Shortest Processing Time)
optimise 1  wi Ci

14
Minimisation des encours : 1  w C i i

Exercice : Démontrer que le séquencement des


tâches dans l’ordre croissant des
« durée/poids=pi/wi » dite WSPT (Weighted
Shortest Processing Time) est optimal pour
1  wC i i

15
DEMONSTRATION
◼ Proof. By contradiction.
◼ Suppose a schedule S, that is not WSPT, is optimal.
◼ In this schedule there must be at least two adjacent jobs, say job j
followed by job k, such that wj /pj < wk /pk .
◼ Assume job j starts its processing at time t.
◼ Perform a so-called Adjacent Pairwise Interchange on jobs j and k. Call
the new schedule S’.

16
◼ under the original schedule S: job j starts its
processing at time t and is followed by job k,
◼ under the new schedule S’: job k starts its processing
at time t and is followed by job j.
◼ All other jobs remain in their original position: The
total weighted completion time of the jobs processed
before jobs j and k is not affected by the
interchange. Neither is the total weighted completion
time of the jobs processed after jobs j and k.

17
DEMONSTRATION
◼ Thus the difference in the values of the objectives under
schedules S and S’ is due only to jobs j and k.
◼ Under S the total weighted completion time of jobs j and k is (t
+ pj )wj + (t + pj + pk)wk, while under S’ it is (t + pk)wk + (t
+ pk + pj )wj .
◼ It is easily verified that if wj/pj < wk/pk the sum of the two
weighted completion times under S’ is strictly less than under S.
◼ This contradicts the optimality of S and completes the proof of
the theorem.
◼ The computation time needed to order the jobs according to
WSPT is the time required to sort the jobs according to the ratio
of the two parameters.
◼ A simple sort can be done in O(n log(n)) time,

18
Minimisation des encours : 1 r  C i i

A B C D
pi 5 2 2 3
ri 0 9 2 8

• Séquence CBDA (SPT : pi croissant) • : valeur Ci = 48

C B D A

0 2 4 9 11 14 19 temps

• Séquence ACDB (ri croissant) • : valeur Ci = 36

A C D B

0 5 7 8 11 13 temps
Minimisation des encours : 1 r  C i i

A B C D E
pi 3 1 1 2 2
ri 0 1 2 3 4

• Séquence ABCDE (ri croissant) Ci = 28

A B C D E

0 3 4 5 7 9 temps

• Séquence BCDEA (SPT : pi croissant) Ci = 27

B C D E A

0 1 2 3 5 7 10 temps
Minimisation des encours : 1 r  C i i

◼ 1 r  C est NP-difficile
i i

◼ S’il est possible d’interrompre une tâche

l’ordonnancement optimal du problème


1 r , prmp  C est obtenu en exécutant à
i i

tout instant la tâche ayant le plus petit


temps de travail restant : cette règle est
dite SRPT (Shortest Remaining
Processing Time)
Minimisation des encours :1 r , prmp  C i i

Application de la règle SRPT :


deux évènements à considérer
1- La machine devient libre ; on lui affecte la pièce de travail
restant minimum parmi les pièces disponibles
2- Une nouvelle pièce l arrive à l’atelier (on est à l’instant rl),
soit k la pièce en cours :
- Si le travail restant sur k est supérieur à pl, on
arrête le travail en cours sur k et on débute le travail sur l
- Sinon le travail continue sur k et l est mise en
attente

22
Minimisation des encours 1 r , prmp  C i i

A B C D E
pi 3 1 1 2 2
ri 0 1 2 3 4

• Algorithme SRPT : valeur Ci = 26

A1 B C A2 D E

0 1 2 3 5 7 9 temps
Minimisation des retards : 1 L max

◼ Théorème 3 :
◼ L’ordonnancement optimal est obtenu en
rangeant les tâches par di croissant. (règle
dite EDD : Earliest Due Date)
◼ Lemme :
◼ EDD minimise le plus grand retard vrai
« Tmax »
◼ Attention :
◼ Une séquence qui minimise Tmax ne minimise
pas nécessairement Lmax
24
Minimisation des retards : 1 L max

Tâche i A B C
pi 2 5 3
di 7 8 11

Lmax =0, Tmax =0 :


Séquence BAC séquence minimise Tmax

Séquence EDD
Lmax =-1, Tmax =0 :
séquence minimise Lmax

25
Minimisation du retard maximum : 1 r T i max

◼ S’il n’y a pas de préemption possible, tous


les problèmes 1 ri , d i  sont difficiles à
résoudre

◼ Si la préemption est permise, 1 r , prmp T


i max

est résolue par la variante suivante de la


règle EDD : à tout instant, affecter à la
machine, la pièce disponible de di minimale

26
Minimisation du retard maximum :

En pratique deux types d’événements sont à


considérer :
1- La machine devient libre ; on lui affecte la pièce
de di minimum parmi les pièces disponibles
2- Une nouvelle pièce l arrive à l’atelier (on est à
l’instant rl), soit k la pièce en cours :
- Si dkdl alors on arrête le travail en cours sur k et on
débute le travail sur l
- Sinon le travail continue sur k et l est mise en
attente
27
Minimisation du retard maximum :

temps di Travail choix


B-A-C-D restant

0 3-*-*-* 2-*-*-* B
Tâche i A B C D
1 3-*-9-* 1-*-5-* B
ri 3 0 1 7
2 -*-9-* 0-*-5-* C
di 5 3 9 11
3 -5-9-* 0-3-4-* A
pi 3 2 5 1
6 - -9-* 0-0-4-* C
Séquence selon EDD : B-A-C-D 7 - -9-11 0-0-3-1 C
10 - - -11 0-0-0-1 D
11 -- - 0-0-0-0

B1 B2 C1 A1 C2 C3 D

2 3 6 7 10 temps
1 11
28
Somme des retards : 1 di T
i

A B
pi 6 10
di 9 4

• Règle de priorité EDD : valeur Ti = (10 − 4) + (16 − 9) = 13

B A

0 10 16 temps

• Règle de priorité SPT : valeur Ti = (16 − 4) = 12

A B

0 6 16 temps
Somme des retards : 1 T i

• Le problème 1 T i
est NP-difficile au sens fort

• Heuristique de Baker et Bertrand : règle MDD (modified due date)


MDDi (t ) = max(t + pi , d i )
MDDi(t) est le délai modifié de la tâche i, calculé à la date t

Règle MDD : à la date t, dès que la machine devient disponible


affecter la tâche ayant le plus faible MDDi(t)
Somme des retards : 1 di T
i

Algorithme de Baker et Bertrand basée sur la notion de MDD

1. t=0 ; k=1 ; E={1,....,n} ; S une séquence de dimension n


2. Trouver i* tel que MDDi*(t) = min{MDDi (t)} / i  E
3. Placer i* dans la séquence : S(k) = i*
t := t+pi*
E := E\{i*}
k := k+1
4. Si E= Fin ; sinon aller à l’étape 2
Somme des retards : 1 di T i

i A B C
pi 1 2 4
di 5 4 4

• Algorithme de Baker et Bertrand : valeur Ti = 3

B A C

0 2 3 7 temps
Nombre des tâches en retard : 1 U i

◼ Le problème 1  U est polynomial, résolu par l’algorithme


i

d’Hodson et Moore :
◼ Ranger les travaux selon la règle EDD = A ; R= ;

déterminer les Ci
◼ Tant qu’il existe des travaux en retard dans A faire :

◼ soit k le premier travail en retard


◼ soit l le plus long travail parmi les k premiers
◼ A=A-{l} et R=R+{l}
◼ Avancer les tâches en aval de l (sans modifier l’ordre EDD)
◼ déterminer les Ci
◼ Les séquences optimales sont données par les éléments de A
ordonnancés selon EDD suivis par les éléments de R dans un
ordre quelconque
Nombre des tâches en retard : exemple

i A B C D E
pi 4 8 2 5 3
di 6 14 19 8 11

• Algorithme d’Hodson et Moore : valeur Ui = 2

A E C B D

0 4 7 9 17 22
Synthèse
Problème Méthode de Résolution optimale
1| | Cmax n! (Cmax=pi)
1|prec|Cmax Toute séquence respectant les contraintes de
précédence
1|ri|Cmax FIFO (ri )
1| |Ci SPT (Shortest Porcessing Time : pi )
1| |wiCi WSPT (Weighted Shortest Porcessing Time : pi/wi )
1|ri, prmp|Ci SRPT (Shortest Remaining Porcessing Time)
1|di|Lmax EDD (Earliest Due Date : di )
1|ri,di, prmp|Tmax Une variante de EDD : à tout instant, affecter à la
machine, la pièce disponible de di minimale
1|di|Ui Algorithme d’Hodson et Moore

1|di|Ti Heuristique de Baker et Bertrand basée sur MDD


(Modified Due Date) 35

Vous aimerez peut-être aussi