Documente Academic
Documente Profesional
Documente Cultură
DERBALA Ali
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.
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
Preuve : évidente.
ER
IV
N
U
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
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
1 n 1 n
N
n
i =1 i =1
Remarque 1 : Si les due-dates sont proches tel que tous les jobs en retard SPT minimise le
mean tardiness, le mean lateness.
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.
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
i =1
IV
ti k Ci k Ci k +1
ik ik+1
ordonnancement
de valeur ϕ 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
n
E ( ∑ w i Ci ) est minimisée par un ordonnancement non-préemptif dans l'ordre
IV
i =1
N
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
3) Permuter i et j
4) Répéter l'étape 2 jusqu'à obtenir une séquence EDD.
SI
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
Une séquence EDD est ( 6, 2, 1, 3, 5, 4 ). On peut calculer Tmax par une forme tabulaire.
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
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
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 :
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
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
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
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
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
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
Due date di 6 9 15 20 23 30
Processing time Pi 3 4 10 10 8 6
TE
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
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
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
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
~ ~
D
rj = jb + ( j - 1) pj = 1 dj= jb + j j = 1, …, t - 1
ER
ê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.
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
ordonnancement optimal. Potts ( 1985) utilise une procédure par séparation et évaluation.
A
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
non
Un ensemble U ⊂ T est dit "initial" dans ( T, <) si (T-U) → U
IV
P( U)
U
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
T1 • • T2
SA
T3 • • T4 • T5
TE
• T6
SI
T7 •
ER
On considère le sous ensemble T - U = { T2, T4, T5, T6, T7 }sur qui on refait le même travail.
U
Ce problème peut être formulé comme un programme linéaire à variables bivalentes (0,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)
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
(2) et (3) impliquent que le graphe GX où X = ( xij) comme une matrice d'adjacenses, ne
D
longueur trois).
SA
TE
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
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
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
Pk = ∑ Pkj : temps d'exécution du caractère k
j=1
SI
ER
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
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]
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
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
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
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
Cette méthode ne donne pas directement la valeur du Lmax qu'il faut déterminer.
A
τ 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
A
ID
BL
E
D
B
LA
H
A
D
D
A
SA
TE
SI
ER
IV
N
U