Vous êtes sur la page 1sur 18

Ordonnancement dans les ateliers. Cours donné par le Dr.

DERBALA Ali

Chapitre 4 : Les problèmes d'ordonnancement à une seule machine


a) cas de tâches indépendantes

Les résultats sur les problèmes d'ordonnancement sont trop nombreux pour pouvoir être tous
décrits. Nous nous limitons à quelques cas particuliers en donnant des idées des méthodes
employées et des résultats que l'on peut obtenir. C'est les problèmes qu'on sait résoudre
polynomialement et où les tâches sont indépendantes. En général les problèmes deviennent
difficiles si aux tâches sont associés des release-date ou des due-date ou des deadlines.

1. Les ordonnancements de permutation


Deux techniques d'ordonnancement qui ont une utilité sont la preemption où l'exécution de la

A
tâche est interrompue ( avec resume ou sans resume ) et qu'une tâche quitte la machine sans

ID
avoir terminée son exécution et l'insertion du temps d'oisiveté où la machine est laissée oisive

BL
bien qu'un travail prêt est en attente d'être exécuté.

E
Exemple 1 ( de preemption et du temps d'oisiveté. Deux jobs sur une machine ):
1 2 2
D 1
B
0 3 5
LA

2 1 1 1 2
0 2 5
H

1 2 1
A
D

0 2 4 5
preemption Insertion d'un temps d'oisiveté
D
A
SA

Nous énonçons quelques théorèmes.


Théorème 1 : Dans un problème n / 1 / - avec une mesure de performance régulière, il n'est
TE

pas nécessaire de considérer les ordonnancements qui impliquent aussi la preemption ou


l'insertion du temps d'oisiveté.
SI

Preuve : évidente.
ER
IV
N
U

Problèmes d'ordonnancement à une seule machine 37 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

1 n 1 n
Théorème 2 : Soit le problème n / 1 /
n
∑ Fi = n ∑ c i − ri . Le mean flow time est
i =1 i =1
minimisé en ordonnançant les tâches dans l'ordre croissant des temps d'exécution
P[1] ≤ P[2] ≤ .... ≤ P[n ] appelé aussi selon la règle SPT ( short processing time first )

et maximisé en ordonnançant les tâches dans l'ordre décroissant des temps d'exécution
P[1] ≥ P[2] ≥ .... ≥ P[n ] appelé aussi la règle LPT ( longest processing time first )

1 n 1 n 1 n 1 n
Preuve : F =
n
∑ i n∑ i i n∑ i i
F = c − r = ( w + P ) = W +
n
∑ Pi
i =1 i =1 i =1 i =1

1 n
Minimiser F , c'est minimiser W puisque ∑ Pi est un terme constant quelque soit l'ordre

A
n
i =1

ID
d'exécution des tâches. Il suffit de choisir les plus courts temps d'exécution les premiers. La

BL
démonstration se poursuivra en résonnant par absurde et en considérant un autre
ordonnancement qui ne suit pas SPT pour au moins deux tâches consécutives et en les

E
comparant. On montre qu'on peut améliorer l'ordo non SPT en permutant les deux tâches
qu'on a supposé non SPT.
D
B
LA

Généralisation :
H

1 n 1 n 1 n
La règle SPT minimise ∑ c i , max w i et T = ∑ Ti = ∑ max(c i − d i ,0) .
A

n i n n
i =1 i =1 i =1
D

LPT maximise tout ce que SPT minimise.


D

La règle SPT ne minimise pas toutes les fonctions objectifs. Elle ne minimise pas
A

l'ordonnancement à due-date.
SA

Exemple 2 :
TE

Job Pi di
A 1 3
SI

B 2 2
ER

On considère soit AB ou BA. SPT sélectionne AB mais BA a un maximum lateness et un


maximum tardiness, mean tardiness plus petit ( max L i = c i − d i ) , max Ti = max(c i − d i ,0)
IV

1 n 1 n
N

,T= ∑ i n ∑ max(ci − d i ,0) ).


T =
U

n
i =1 i =1

Problèmes d'ordonnancement à une seule machine 38 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Remarque 1 : Si les due-dates sont proches tel que tous les jobs en retard SPT minimise le
mean tardiness, le mean lateness.

Si d1 = d2 = …= dn , SPT minimise le nombre de jobs en retard.


Par contre, montrer sur le même exemple que SPT ne minimise pas la variance du flowtime

1 n 2= 1
n
2
de jobs définie par var F = ∑ ( Fi − F) ∑ Fi 2 - F . SPT minimise chacun des termes
n n
i =1 i =1
de cette expression différence mais ne minimise pas la différence.

Exemple 3: Soit le problème 7 / 1 / F dont les données sont:


Job 1 2 3 4 5 6 7
Pi 6 4 8 3 2 7 1

A
ID
L'ordonnancement SPT est ( 7, 5, 4, 2, 1, 6, 3 )

BL
Pour calculer F on remarque que
Fi(1) = 1

E
Fi(2) = 1 + 2
D
Fi(3) = 1 + 2 + 3
B
LA

Fi(4) = 1 + 2 + 3 + 4
Fi(5) = 1 + 2 + 3 + 4 + 6
H

Fi(6) = 1 + 2 + 3 + 4 + 6 + 7
A

Fi(7) = 1 + 2 + 3 + 4 + 6 + 7 + 8
D

1 7 1 6

D

Fi(k ) = (7 x1 + 6x 2 + 5x3 + 4x 4 + 3x 6 + 2x 7 + 8) = 12 x
7 7 7
k =1
A
SA

1 n
En général pour un ordonnancement SPT, F =
n
∑ (n − k + 1)Pi(k)
k =1
E
IT

n
S

Proposition 1 : le problème 1 // ∑ w i C i est facile.


ER

i =1
IV

Soit ( i1 , i2 , .., in ) une permutation de T et intervenant deux tâches consécutives ik et ik+1 .


Cette méthode est appelé " Adjacent pairwise interchange property ".
N
U

Problèmes d'ordonnancement à une seule machine 39 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Notons ϕ' la valeur du critère obtenue

ti k Ci k Ci k +1
ik ik+1
ordonnancement
de valeur ϕ temps

t’i k + 1 t’i k C’i k


ik + 1 ik
ordonnancement
de valeur ϕ‘ c’i k + 1 ik temps

A
ID
BL
ϕ' - ϕ = wi k ( c'i k - ci k ) + wi k + 1 ( c'i k + 1 - c i k + 1 ) = w i k p i k + 1 - wi k + 1 pi k
w ik w ik +1

E
ϕ' < ϕ ⇔ < .
p ik p ik +1
D
wi
B
Si on note ρi = , appelé indice de priorité de la tâche i ,
pi
LA

alors : ϕ‘ < ϕ ⇔ ρik + 1 > ρi k. Plus ρi est grand, plus la tâche i est prioritaire.
H
A

Règle de Smith
D

En l'absence de contrainte d'antériorité, nous ordonnons les tâches dans l'ordre des ρi non
D

croissants et on obtiendra une permutation ( i*1 , i*2 , .., i*n ) tel que ρ*i 1 ≥ ρ*i 2 ≥ .. ≥ ρ*i n,
A

wi
SA

où ρi = . Cette permutation est optimale.


pi
TE

Proposition 2 ( Rothkopt( 1966 )) :


SI

Si les temps de service sont aléatoires de moyennes connues,


ER

n
E ( ∑ w i Ci ) est minimisée par un ordonnancement non-préemptif dans l'ordre
IV

i =1
N

décroissant des wi / E Ci.


U

Problèmes d'ordonnancement à une seule machine 40 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Preuve : identique à celle de Smith en passant à l'espérance.


2. Les problèmes avec les due-dates. Résultats élémentaires
Le critère considéré est celui du décalage ( Lateness ) Li = ci - di , la différence entre la date de
fin d'exécution et la date de fin d'exécution au plus tard.

1 n
Théorème 3 : Le décalage moyen L =
n
∑ Li est minimisé par la règle SPT.
i =1

1 n 1 n 1 n
∑ i n∑ i i ∑ d i qui est une constante.

A
Preuve : L = L = ( c − d ) = F - d où d =
n n

D
i =1 i =1 i =1

I
Or SPT minimise F donc elle minimise L .

BL
Supposons qu'on peut ordonner les jobs selon les dates de fin au plus tard dans le sens
croissant ce qui est d[1] ≤ d[2] ≤ .... ≤ d[n ]

E
D
B
Théorème 4 ( Jackson ( 1955)) : LA
Soit les problèmes n / 1 / Lmax et n / 1 / Tmax. Le maximum job lateness et la maximum job
tardiness sont minimisés en ordonnançant les tâches dans l'ordre croissant des due-dates
H

( EDD sequencing : Earlest due date ).


A
D

Preuve : en utilisant l'échange de deux tâches et en comparant les ordonnancements obtenus.


D

Ce théorème peu s'énoncer comme l'algorithme suivant :


A
SA

1) Commencer par une séquence de tâches non EDD


2) Déterminer une paire de tâches adjacentes i et j tel que di > dj où j suit i
TE

3) Permuter i et j
4) Répéter l'étape 2 jusqu'à obtenir une séquence EDD.
SI

En chaque étape Lmax diminue ou reste inchangé.


ER

De même pour le Tmax(S) = max { 0, Lmax(S)}


IV

Exemple 4 : résoudre n / 1 / Tmax


N
U

Job 1 2 3 4 5 6
Due date di 7 3 8 12 9 3
Processing time Pi 1 1 2 4 1 3

Problèmes d'ordonnancement à une seule machine 41 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Une séquence EDD est ( 6, 2, 1, 3, 5, 4 ). On peut calculer Tmax par une forme tabulaire.

Job Ji(k) Completion time Lateness Tardiness

k
Ci(k) = ∑ Pi(l) Li(k) = ci(k) - di(k) Ti(k) = max ( 0, Li(k))
l =1

A
6 3 0 0

ID
2 4 1 1
1 5 -2 0

BL
3 7 -1 0

E
5 8 -1 0

D
4 12 0 0

B
La permutation ( 2, 6, 1, 3, 5, 4 ) est aussi optimale. LA
H
On définit le temps d'écart ( slack time ) du job i à l'instant t par di - Pi - t. C'est le temps qu'il
A

reste avant que le job i ne commencera son exécution s'il ne veut pas être en retard. La tâche
D

avec le minimum de " slack time " offre le plus grand risque d'être en retard et devra être
D

exécuter le plus tôt. L'instant de décision t est le même pour toutes les tâches, on doit
A

ordonnancer les tâches dans l'ordre des d[1] − P[1] ≤ d[2] − P[2] ≤ .... ≤ d[n ] − P[n ]
SA

Théorème 5 : Dans le problème n / 1 / ---, le minimum job lateness Lmin et le minimum job
TE

tardiness Tmin sont maximisés en ordonnançant les tâches selon l'ordre croissant des " temps
d'écarts ".
SI

Lmin n'est pas une mesure régulière.


ER

Job T Tmax Tmin


IV

1 2 3 4
Due date di 1 2 4 3
N
U

Processing time Pi 2 4 3 1
SPT sequence ci 3 10 6 1
4, 1, 3, 2 Ti 2 8 2 0 3.0 8 0
Due date sequence ci 2 6 9 10
1, 2, 3, 4 Ti 1 4 5 4 3.5 5 1

Problèmes d'ordonnancement à une seule machine 42 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Slack time sequence ci 6 4 9 10


2, 1, 3, 4 Ti 5 2 5 4 4 5 2
Un autre ordonnancement ci 2 10 5 6
1, 3, 4 , 2 Ti 1 8 1 0 2.5 8 0

Remarque 2 : On peut minimiser par SPT le mean tardiness, minimise par EDD le maximum
tardiness et maximise par le slack-time le minimum tardiness mais aucune de ces règles ne
minimise le mean tardiness.
Si le critère est le mean flow time alors on a :

Théorème 6 : ( de Smith 1956 )


S'il existe un ordonnancement tel que le maximum job tardiness est zéro, alors il existe un

A
ordre sur les jobs avec le job k placé dans la dernière position lequel minimise le mean flow

ID
n
time si et seulement si : a) dk ≥ ∑ Pi

BL
i =1
n

E
b) Pk ≥ Pi ∀ i avec di ≥ ∑ Pi
i =1 D
B
LA

Ce théorème stipule qu'une tâche "k" peut être mise à la dernière position d'un
ordonnancement si cela ne la fait pas retardée et si la tâche a le plus grand temps d'exécution
H

parmi l'ensemble de toutes les tâches qui peuvent être dans la dernière position sans être en
A

retard. C'est une règle SPT soumise aux due dates.


D
D

Exemple 5 :
A

Job 1 2 3 4 5 6
SA

Due date di 24 21 8 5 10 23
TE

Processing time Pi 4 7 1 3 2 5
L'ordonnancement due -date ( 4 3 5 2 6 1 ) donne un maximum tardiness nul.
SI
ER
IV
N
U

Problèmes d'ordonnancement à une seule machine 43 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

6
∑ Pi = 22. Les jobs 1 et 6 vérifient les conditions d'application du théorème. d1 et d6 sont
i =1
supérieures à 22. Une des tâches est à mettre en dernière position. Le job 6 est sélectionné car
5
P6 > P1 . On exclue le job 6 et on recalcule ∑ Pi pour le reste des tâches à exécuter.
i =1
5
∑ Pi = 17. Les jobs 1 et 2 sont candidats. Le job 2 sera sélectionné, etc.
i =1
On obtiendra l'ordonnancement optimal ( 3 4 5 1 2 6 ).

A
D
3. Minimisation du nombre de tâches en retard NT

I
Si la règle EDD donne un nombre nul de tâches en retard ou donne une seule tâche en retard

BL
alors elle est une règle optimale pour n / 1 / NT . Si elle donne plus d'une tâche en retard, EDD
peut ne pas être optimale. Un algorithme efficace pour le cas général est celui de Hodgson et

E
D
Moore. La méthode suppose qu'une suite optimale est de la forme
a) un ensemble ( E*) de tâches en avance dans l'ordre EDD
B
LA
b) un ensemble L* de tâches en retard, ordonnancées dans n'importe quel ordre.
Algorithme 1 : ( de Moore et d'Hodgson (1968 ))
H

Etape 1 : ordonnance les tâches suivant la règle EDD et soit ( Ji(1), Ji(2), …, Ji(n) ) la
A

permutation de tâches ainsi obtenue tel que d i(k ) ≤ d i(k +1) , k = 1, 2, …, n-1.
D

Etape 2 : Déterminer la première tâche en retard, soit Ji(l) dans la suite actuelle.
D

Si aucune tâche n'est en retard aller à l'étape 4.


A
SA

Etape 3 : Déterminer la tâche dans la sous permutation ( Ji(1), Ji(2), …, Ji(l) ) avec le plus grand
temps d'exécution et la rejeter de la séquence. Aller à l'étape 2 avec une séquence actuelle qui
TE

a moins d'une tâche qu'auparavant.


Etape 4 : former un ordonnancement optimale en prenant la sous séquence actuelle et en
SI

rajoutant les tâches rejetées qui peuvent être ordonnancer dans n'importe que ordre.
ER
IV

Exemple 6 :
Job 1 2 3 4 5 6
N

Due date di 15 6 9 23 20 30
U

Processing time Pi 10 3 4 8 10 6

Problèmes d'ordonnancement à une seule machine 44 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

On forme la séquence EDD et on calcule le temps de fin d'exécution des tâches jusqu'à ce
qu'une tâche soit trouvée en retard ( étape 1 et 2 de l'algorithme )
La séquence actuelle 2 3 1 5 4 6
Due date di 6 9 15 20 23 30
Processing time Pi 3 4 10 10 8 6
Temps de fin d'exécution 3 7 17
La tâche 1 est la première en retard et a le plus grand temps d'exécution de la sous séquence
( 2 3 1 ). On rejette la tâche 1 ( étape 3 ). On retourne et on répète l'étape 2 avec la nouvelle
séquence actuelle.
Nouvelle séquence actuelle 2 3 5 4 6 Tâches rejetées
Due date di 6 9 20 23 30 1
Processing time Pi 3 4 10 8 6

A
Temps de fin d'exécution 3 7 17 25

ID
La tâche 4 est la première tâche en retard dans cette séquence ( 2, 3 , 5, 4 ). La tâche 5 a le

BL
temps d'exécution le plus grand. La tâche 5 est rejetée ( étape 3 ). On revient à l'étape 2, et on
trouve plus de tâches en retard.

E
Nouvelle séquence actuelle 2 3 4 6
D Tâches rejetées
B
Due date di 6 9 23 30 1, 5
LA

Processing time Pi 3 4 8 6
Temps de fin d'exécution 3 7 15 21
H
A

D'où on passe à l'étape 4 et on forme la séquence optimale ( 2 3 4 6 1 5) ou ( 2 3 4 6 5 1 ).


D

On pouvait présenter les calculs dans un autre tableau plus compacte.


D
A

Séquence EDD 2 3 1 5 4 6 Tâches rejetées


SA

Due date di 6 9 15 20 23 30
Processing time Pi 3 4 10 10 8 6
TE

Temps de fin d'exécution 3 7 17 1


SI

Temps de fin d'exécution 3 7 * 17 25 5


ER

Temps de fin d'exécution 3 7 * * 15 21


IV
N
U

Problèmes d'ordonnancement à une seule machine 45 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Théorème 7 : L'algorithme de Moore et Hodgson fournit un ordonnancement optimal pour le


problème n / 1 / NT.
Preuve: à faire.

4. Minimisation du retard moyen T (mean tardiness)


L'algorithme de Wilkerson-Irwin utilise une règle simple. Il utilise deux listes ( procédure
heuristique )
Liste 1 de tâches ordonnancées : qu'on peut changer
Liste 2 de tâches non ordonnancées : ordonnées selon EDD.
A chaque étape, la première tâche sur la liste 2 des non ordonnançables est appelée " tâche

A
pivot" qui est à déplacer.

ID
Soit α : l'indice de la dernière tâche de la liste1 des ordonnançable

BL
β : l'indice de la tâche pivot
γ : l'indice de la première tâche sur la liste des non ordonnançables.

E
Il utilise la permutation de deux tâches consécutives i et j. A chaque étape, l'algorithme

D
applique la règle ci dessous aux tâches β et γ où dβ ≤ dγ.
B
LA
Algorithme 2 : ( de Wilkerson-Irwin, une heuristique )
H

Etape 1 : ( Initialisation ) Placer toutes les tâches dans une liste non ordonnançable selon
A

EDD. Soient a et b les deux premières tâches sur la liste.


D

Si max { Pa, Pb} ≤ max { dβ, dγ }, alors attribue la première position dans la séquence à la
D

tâche avec le " earlier due date " sinon attribuez la première position à la tâche qui a le plus
A

petit temps d'exécution. La tâche attribuée devient α et l'autre tâche β, la tâche pivot.
SA

Etape 2 : si Fα + max { Pβ, Pγ }≤ max { dβ, dγ }, ou si Pβ ≤ Pγ alors ajouter la tâcheβ à la liste


des ordonnançables. La tâche β devient α;
TE

La tâche γ est déplacée de la liste non ordonnançable et devient β. La tâche suivante dans la
SI

liste non ordonnançable devienne γ. Répéter l'étape 2 sans si la liste non ordonnançable est
ER

vide; Dans ce cas ajouter la tâche β à la liste ordonnançable et arrêter.


Sinon Fα + max { Pβ, Pγ }> max { dβ, dγ } et si Pβ > Pα , retourner la tâche β à la liste
IV

non_ordonnançable et le job γ devient le jobβ. Aller à l'étape 3.


N

Etape 3 : si Fα - Pα + max { Pα, Pβ }≤ max { dα , dβ }ou si Pα ≤ Pβ, alors ajouter le job β à la


U

liste_ordonnançable. Le jobβ devient le jobα; le premier job de la liste _ nonordonnable

Problèmes d'ordonnancement à une seule machine 46 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

devient le privot et le job suivant de la liste non_ordonnançable devient le job γ. Aller à


l'étape 2.
Sinon si Fα - Pα + max { Pα, Pβ }> max { dα , dβ }et Pα > Pβ, aller à l'étape 4 ( de saut).
Etape 4 ( de saut) :
Déplacer le job α de la liste_ordonnançable et le remettre dans la liste non_ordonnançable
dans l'ordre EDD. Si des tâches restent dans list_ordonnançable, le dernier job restant devient
le job α. Aller à l'étape 3.
Si list_ordonnançable est vide, le job β est attribué à la première position sur list-
ordonnançable et devient le job α; le premier job de list non_ordonnançable devient le pivot;
Le suivant de list non_ordonnançable devient γ. Aller à l'étape 2.

A
Φ si c j ≤ d j

ID

Cet algorithme peut fournir un ordonnancement optimal si Ij =  appelé
 [d j , c j ] si c j > d j

BL
intervalle de retard.

E
D
Théorème 7 : La séquence produite par l'algorithme de Wilkerson-Irwin minimise T s'il

B
n'existe pas un instant t tel que t ∈ Ij et t ∈ Ii pour tout couple ( i, j) de tâches et d'intervalles
LA
de retards.
H

5. Les problèmes difficiles à une seule machine


A
D

~ ~
D

Le problème 1 / rj , d j / Cmax est NP-difficile au sens fort même si rj et d j sont entiers. Il se


A

réduit à un problème de 3-partition.


SA

Proposition 3 : Le problème 1 / rj / Lmax est fortement NP-difficile.


TE

Preuve: Le nombre de n jobs est égal à 4t - 1 et


SI

rj = jb + ( j - 1) pj = 1 dj= jb + j j = 1, …, t - 1
ER

rj = 0 pj = aj-t+1 dj= tb + (t-1) j = t, …, 4t - 1


Un ordonnancement avec Lmax ≤ 0 existe si et seulement si chaque job j, j = 1, …, t - 1 peut
IV

être exécuté entre rj et dj = rj + Pj. Cela est possible que si le reste des tâches peut être
N

partitionné sur les t intervalles de longueur b, qui peut se faire si et seulement si le 3-partition
U

a une solution.

Problèmes d'ordonnancement à une seule machine 47 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Seuls les trois problèmes particuliers du problème 1 / rj / Lmax sont solvables :


a) si rj = r, pour tout j = 1,…, n. Un ordonnancement optimal est obtenu par la règle de
Jackson. Ordonnancer dans l'ordre croissant des due-dates ( EDD).
b) Si dj = d pour tout j = 1,…, n. Ordonnancer dans l'ordre croissant des release-dates
c) Si pj = 1, pour tout j = 1,…, n. En tout instant, une tâche disponible avec la plus petite due
date. C'est en O(nlogn) ( Horn 1974).

b) cas de tâches dépendantes

On suppose que les tâches sont liées par un graphe de précédence Γ. i < j signifie que la tâche

A
i ne peut s'exécuter que si la tâche j a terminé son exécution.

ID
BL
~
6. Le problème 1 / prec, rj, d j / Cmax
~

E
Il est classé NP-difficile au sens fort car déjà 1 / rj , d j / Cmax l'est. Seulement si Pi = 1 et si ri

D
et di sont des entiers multiples d'une certaine unité de temps, une version modifiée de la règle
EDD résolve le problème optimalement en temps polynomial [Bla94]. B
LA

∑ w i ci
H

7. Le problème 1 / prec /
A

Pour les contraintes de précèdence générales, Lawler et al( 1978) montrent qu'il est NP-
D

difficile. Sidney(1975) a présenté une approche de décomposition du graphe qui donne un


D

ordonnancement optimal. Potts ( 1985) utilise une procédure par séparation et évaluation.
A

Si le graphe de précédence est un arbre, Horn(1972) a présenté un algorithme d'optimisation


SA

polynomial.
Soit G = ( X, U) un graphe quelconque.
TE

Un ensemble U ⊂ T est dit ayant des précédences sur V ⊂ T s'il existe une tâche Ti ∈U et
SI

Tj ∈ V tel que Tj est un successeur de Ti. On écrira U → V.


ER

non
Un ensemble U ⊂ T est dit "initial" dans ( T, <) si (T-U) → U
IV

⇔ ( T - U) →U n'est pas vraie. Aucune tâche de (T - U) n'a de successeurs dans U.


Pour toute tâche de U, tous ces prédécesseurs sont dans U.
N

P( U)
U

Pour tout U ⊂ T, U ≠∅, définissons P(U) = ∑ Pi et W(U) = ∑ w i et ρ(U) = W ( U)


.
Ti ∈U Ti ∈U

Problèmes d'ordonnancement à une seule machine 48 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Un sous ensemble U⊂ T est dit ρ*-minimal pour ( T, < ) si


i) U est initial dans ( T, < )
ii) ρ(U) ≤ ρ(V) ∀ V, V initial dans ( T, < ) et
iii) ρ(U) < ρ(V) ∀ V, V ⊂ U.
Dans ces conditions, on a l'algorithme de Sidney.

Algorithme 4 ( de Sidney(1975) pour le problème 1 / prec / ∑ w i ci


Begin
While T ≠∅ do

A
Begin

ID
Determine task set U that is ρ*-minimal for ( T, < );

BL
Schedule the members of task set U optimally;
T:=T-U

E
End;

D
End.
___________________________________________________________________________
B
LA
Si Γ = ∅, l'algorithme de Sidney n'est autre que la règle de Smith.
H
A

Exemple 7 : Soit T = { T1, …, T7 }un ensemble de 7 tâches dans les temps d'exécution et les
D

poids sont données par P = [ 5, 8, 3, 5, 3, 7, 6 ] et W = [ 1, 1, …, 1].


D

Les contraintes de précédence sont :


A

T1 • • T2
SA

T3 • • T4 • T5
TE

• T6
SI

T7 •
ER

Le sous ensemble U = { T1, T3} est initial et P(U) = 8, W(U) = 2 et ρ(U) = 4.


Il n'existe pas de V, V initial tel que ρ(V) < ρ(U). Seul { T1} est le sous ensemble propre de U
IV

avec ρ(T1) = P1 = 5 > ρ(U). D'où U est ρ* minimal.


N

On considère le sous ensemble T - U = { T2, T4, T5, T6, T7 }sur qui on refait le même travail.
U

Le sous ensemble ρ* minimal est { T2, T4, T5}.

Problèmes d'ordonnancement à une seule machine 49 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

L'ordonnancement optimal sera { T1, T3, T2, T5, T6, T7 }.

Ce problème peut être formulé comme un programme linéaire à variables bivalentes (0,1)

1 si le job i est exécuté avant le job j


Soient xij =  pour (i, j = 1,……,n),
0 sin on
e ij = 1 si les contraintes de précédence spécifient que le job i est un prédécesseur du job j et

e ij = 0 sinon. La date de fin d'exécution du job j survient à l'instant ∑ p i x ij + p j ,

le problème s'écrit: Minimiser ∑∑ p i x ijw j + ∑ p jw j


i j j
Sous les contraintes: x ij ≥ e ij (i, j =1, ..., n; i ≠ j) (1)

A
ID
x ij + x ji = 1 (i, j =1, ..., n; i ≠ j) (2)

BL
x ij + x jk + x ki ≥ 1 (i, j, k =1, ..., n; i ≠ j, i ≠ k, j ≠ k) (3)

x ij ∈ {0,1} (i, j =1, ..., n) (4)

E
D
xii = 0( i = 1, ..., n) (5)
eij ∈ {0,1} (i, j =1, ..., n) (6)
B
LA

Les contraintes (1) assurent que xij = 1 dans le cas où la contrainte de précédence
H

spécifie que la tâche i est un prédécesseur de j.


A

Une tâche Ti est ordonnancée avant ou après Tj dans (2).


D

(2) et (3) impliquent que le graphe GX où X = ( xij) comme une matrice d'adjacenses, ne
D

contenant aucun cycles ( Si un graphe contient un cycle, il contiendrait forcément un cycle de


A

longueur trois).
SA
TE

8. Difficulté des problèmes


Le problème 1 / prec, rj / Lmax est NP-difficile.
SI

1 / pmtn, prec, rj / Lmax et 1 / prec, rj, Pj = 1/ Lmax sont faciles ( Sid78, Mon82).
ER

~
Les problèmes 1 / prec, rj/ ∑ w i c i et 1 / prec, d j / ∑ w i c i sont difficiles.
IV

Même si le graphe de précédence est simple de la forme d'une chaîne, et les temps d'exécution
~
unitaires, les problèmes 1 / chains, rj, Pj = 1/ ∑ w i c i ; 1 / chains, d j , Pj = 1/ ∑ w i c i sont
N
U

difficiles ( Lenstra & Rinnooy Kan ( 1980))

Problèmes d'ordonnancement à une seule machine 50 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

1 / rj / Lmax est NP-difficile.


Si les temps d'exécution sont unitaires, 1 / rj, Pj = 1 / Lmax ; 1/ pmtn, rj/ Lmax sont résolus
optimalement par Horn ( 1974).
1/ pmtn, prec, rj/ Lmax es facile. Lawler a donné un algorithme en O( n2).
Les problèmes 1/ prec/ ∑ w i Ti ; 1 / prec, Pj = 1/ ∑ Ti ; 1 / chains, Pj = 1/ ∑ w i Ti sont NP-

difficiles même si les poids wi = w sont de même valeur.

9. Généralisations
9.1. de la règle EDD
Définissons dj' = min { dj, min { di / j < i, i un successeur de j}}

A
ID
Théorème 8 : Les problèmes 1/ prec / Lmax et 1/ prec / Tmax sont minimisés par la séquence
d'[1] ≤ d '[2] ≤ .... ≤ d'[n ]

BL
Preuve : ( adjacent pairwise interchange ).

E
D
9.2. de la règle SPT
B
1 n 1 n 1 n 1 n
∑ i n∑ i i n∑ i i ∑ Pi
LA
Si la mesure de performance est F = F = c − r = ( w + P ) = W +
n n
i =1 i =1 i =1 i =1
H

Considérons le problème 1 / prec / F .


A

Un "string" ( anneau ) est un ensemble de tâches qu'il faut exécuter dans un ordre fixe sans
D

interruption. Soit un graphe de précédence donné par " s " strings ( un caractère, un ensemble
D

d'anneaux).
A

Nk : le nombre de tâches dans le caractère k ( 1 ≤ k ≤ s )


SA

Pkj : temps d'exécution de la tâche j du caractère k (1 ≤ j ≤ nk )


TE

nk
Pk = ∑ Pkj : temps d'exécution du caractère k
j=1
SI
ER

Fkj : flow time de la tâche j dans le caractère k


Fk = Fk,nk : date de fin du caractère k
IV

1 s
L'objectif est de minimiser ∑ F k . Chaque caractère est considéré comme une tâche et
N

s k = 1
U

une séquence optimale peut être de la forme : P[1] ≤ P[ 2 ] ≤ .... ≤ P[ s ]

Problèmes d'ordonnancement à une seule machine 51 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

n
1 s k
Soit un nouvel objectif noté F = ∑ ∑ Fkj alors
n
k =1 j=1

Théorème 9 : Le problème 1 / string / F est minimisé par la séquence des caractères dans
P[1] P[2] P[s]
l'ordre ≤ ≤ ... ≤ .
n [1] n [2] n [s]

10. Problèmes dans l'objectif est de la forme max {γ i (c i )}


i ∈ {1,..., n}

L'algorithme de Lawler minimise les problèmes de la forme n/ 1/ prec/ max {γ i (c i )}


i ∈ {1,..., n}

où γi(ci) est une fonction croissante en ci ou régulière.

A
Si γi(ci) = ci- di = Li , l'objectif sera le Lmax

ID
Si γi(ci) = max ( ci- di , 0 ), l'objectif sera le Tmax

BL
Théorème 9 : considérons le problème n/ 1/ prec/ max {γ i (c i )} .
i ∈ {1,..., n}

E
Soit V ⊆ T un sous ensemble de tâches qui peuvent être exécutées en dernier, ces tâchesD
B
peuvent ne pas précéder aucune tâche.
LA

n
La dernière tâche dans l'ordonnancement se termine à l'instant τ = ∑ Pi
H

i =1
A

Soit Jk la tâche dans V tel que γk(τ ) = min {γ i (c i )}, la dernière tâche qui coûte moins
D

Ji ∈ V
D

parmi celles qu'on peut exécuter la dernière, alors il existe un ordonnancement optimal où Jk
A

est ordonnancée la dernière.


SA

Preuve: à faire.
Exemple 8 : Soit le problème 6 / 1 / Lmax avec des contraintes de précédence ci dessous
TE
SI

J1 • • J2 • J3
ER

• J5
IV

J4 •
N

•J6
U

Problèmes d'ordonnancement à une seule machine 52 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

Job 1 2 3 4 5 6
Processing time Pi 2 3 4 3 2 1
Due date di 3 6 9 7 11 7

Trouvons la tâche qui s'exécutera la dernière, la sixième. τ = 2 + 3 + 4 + 3 + 2 + 1 = 15.3


Les tâches 3, 5 et 6 peuvent être exécutée les dernières. V = { 3, 5, 6 }
Le minimum de décalage sur V est : min { ( 15 - 9), ( 15 - 11), ( 15 - 7)} = 4
C'est la tâche 5, J5 qui s'exécutera la sixième.

A
On efface la tâche J5 de la liste et sa date de fin.

ID
Des cinq tâches restantes le nouveau τ = 15 - 2 = 13.

BL
J3 ou J6 peuvent être exécutée la dernière. On calcule le min ((13-9, 13-7) = 4
J3 sera placée à la cinquième position.

E
On déterminera la tâche qui s'exécutera la quatrième.
On efface J3 et J5. J2 devient disponible pour s'exécuter en dernier.
D
B
τ = 13 - 4 = 9. Min ((9 - 6, 9 - 7)) = 2, la tâche J6 réalise ce minimum et sera placée à la
LA

quatrième position.
H

On déterminera à la troisième position parmi V = { J2, J4} et τ = 9 - 1 = 8.


A

Min ( 8 - 6, 8 - 7) = 1, J4 sera exécutée la troisième. Ainsi de suite on trouve


D

L'ordonnancement (J1, J2, J4, J6 , J3, J5} et Lmax = 4.


D

Cette méthode ne donne pas directement la valeur du Lmax qu'il faut déterminer.
A

On peut la retrouver en dressant un tableau typique ci dessous.


SA

τ J1 J2 J4 J6 J3 J5 Job ordonnancé
TE

15 * * 6 * 4 8 J5
13 * * 4 * S 6 J3
SI

9 J6
* 3 S * S 2
ER

8 J4
* 2 S 1 S S
5 J2
IV

* −1 S S S S
2 J1
N

−1 S S S S S
U

D'où Lmax = 4, valeur en rond.

Problèmes d'ordonnancement à une seule machine 53 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes
Ordonnancement dans les ateliers. Cours donné par le Dr. DERBALA Ali

A
ID
BL
E
D
B
LA
H
A
D
D
A
SA
TE
SI
ER
IV
N
U

Problèmes d'ordonnancement à une seule machine 54 a. Cas de tâches indépendantes


b. Cas de tâches dépendantes

Vous aimerez peut-être aussi