530 likes | 789 Views
Introduction aux problèmes d'ordonnancement sans temps-morts. Philippe Chrétienne Université Paris 6 Laboratoire LIP6. Motivation. En ordonnancement classique, les co ûts imputés aux temps d'oisiveté (encore appelés temps-morts ) d'une ressource (ex: une machine) sont négligés .
E N D
Introduction aux problèmes d'ordonnancement sans temps-morts. Philippe Chrétienne Université Paris 6 Laboratoire LIP6
Motivation En ordonnancement classique, les coûts imputés aux temps d'oisiveté (encore appelés temps-morts) d'une ressource (ex: une machine) sont négligés. Cependant, lorsqu'un niveau d'énergie est nécessaire pour utiliser une ressource, interrompre le fonctionnement d'une ressource peut être très couteux. (ex : laisser un four se refroidir après une cuisson et le ramener à la température adéquate pour la cuisson suivante) Dans cet exposé, on s'intéresse aux problèmes d'ordonnancement avec ressources de type "machine" pour lesquels : chaque machine doit exécutersans temps-mortsles tâches qui lui sont allouées.
temps A B C 2 4 6 0 1 3 5 ordonnancement "classique" optimal (coût : 12) 2 temps-morts : [2,3] et [4,5] Un exemple : Une machine, 3 tâches A,B,C de durées unitaires et de dates de disponibilité 1, 3 et 5 un critère régulier C1 + C2 + C3 temps A B C 3 4 5 6 0 ordonnancement "sans temps morts" optimal (coût : 15)
Le problème d'ordonnancement à une machine sans temps-morts Notations Complexité : résultats et conjecture La date NI Problème ENI Une condition suffisante pour ENI La séquence de Jackson pour 1,NI|ri,qi|Max Ci+qi Dates critiques d'une instance Le cas de durées égales
Notations La contrainte "sans temps-morts" est signalée par le symbole NI (Non Idling) ajouté dans le premier champ de la notation || (ex: 1,NI|rj,prec,pj=1|∑fj) ; J=(1,2,…,n) est l'ensemble des tâches ; G=(J,A) est le graphe des contraintes de précédence ; Les dates de disponibilité ri: - sont compatibles avec G : (i,j)A rj ≥ ri + pi - satisfont : r1 ≤ r2 ≤ … ≤ rn; La fonction coût à minimiser est du type maxJ fi(Ci) ou ∑J fi(Ci) où les fonctions fi(.) sont croissantes au sens large.
i1 i2 in temps 0 NI() Ordonnancement NI-optimal associé à une séquence réalisable (i.e: compatible avec G). Soit = (i1,i2,…,in) une séquence réalisable des n tâches de J. La date de début t d'un ordonnancement NI respectant doit satisfaire : t ≥ 0 ; k=1..n-1 : t+∑q=1..kp(iq) ≥ r(ik+1). La date de début minimale d'un ordonnancement NI respectant est donc : NI() = Max(0, Maxk=1..n-1(r(ik+1)- ∑q=1..kp(iq)) Cet ordonnancement est NI-optimal à fixé.
temps i1 ik=i ik+1=j in 0 NI() La date NI Soit 0la séquence réalisable(1,2,...,n). SoitNI=NI(0). Propriété : Pour toute séquence réalisable , on a : NI() ≥ NI(0) Preuve: Soit = (i1,i2,…,in) une séquence réalisable telle que: ik = i, ik+1= j et j<i. j<i rj ≤ ri (i,j) G ; On peut donc échanger les tâches i et j.
ik+1=j ik=i temps i1 in 0 NI() Soit ' la séquence réalisable (i1,..,ik-1, ik+1, ik-1,ik+2,…,in). L'ordonnancement NI ci-dessous est donc un ordonnancement NI pour la séquence '. On a doncNI() ≥ NI(') . On itère cette transformation tant que ' ≠ 0. et on obtient :NI() ≥ NI(0) . Remarque : Si la préemption est autorisée, NIest la date de début minimale de tout ordonnancement NI préemptif.
La plupart des versions NI des problèmes d'ordonnancement à une machine NP-difficiles sont aussi NP-difficiles. Exemples : 1,NI | rj | Lmax est NP-difficile ; 1,NI | rj |∑Cjest NP-difficile. Ce n'est cependantpas toujours vrai : Ex: le problème d'ordonnancement où la machine est utilisable sur une famille finie d'intervalles Dk : NP-difficile en version classique et polynomial en version NI. D1 D2 D3 Complexité:résultats et conjecture
Conjecture : Un problème d'ordonnancement à une machine polynomial en version classique est-il aussi polynomial en version NI? Pas de contre-exemple trouvé jusqu'à présent! Cependant, un algorithme pour la version classique peut être inapte à détecter (à lui seul) un ordonnancement NI-optimal . Cette remarque, illustrée par l'exemple suivant, donne l'intuition que la conjecture est fausse.
Supposons que A soit un algorithme résolvant le problème 1 | ri | ∑fi(Ci) Exemple Minimiser fa(Ca) + fb(Cb) + fc(Cc) Définitions: S(t,) l'ordonnancement optimal (s'il existe) respectant la séquence et commençant à la date t. S*(t) ordonnancement optimal commençant à la date t.
coût fa fc fb ra rb rc temps a b c 0 3 5 7 8 9 10 12 les 3 fonctions coût. Pour toute date t, A calcule S*(t) en ajustant les ri par ri := max(ri,t) . Cependant, il n'existe aucune date t pour laquelle S*(t) est un ordonnancement NI-optimal ! Remarque : pour cet exemple, NI= 3.
coût fc fb fa ra rb rc temps 0 3 5 7 8 9 10 12 S(3,(a,b,c)) : coût 5 S(3,(a,c,b)) : coût 4 S*(3) = S(3,(a,c,b) ordonnancement non NI de coût 4
coût fc fb fa ra rb rc temps 0 3 t 5 7 8 9 10 12 S(t,(a,b,c)) : coût 7t-16 S(t,(a,c,b)) : coût t+1 Pour 3 < t < 5 : S*(t) = S(t,(a,c,b)) ordonnancement non NI de coût t+1
coût fc fb fa ra rb rc temps 0 3 5 t 7 8 9 10 12 S(t,(a,b,c)) : coût 7t-16 S(t,(a,c,b)) : coût 7t-29 S(t,(b,a,c)) : coût 7t-15 S(t,(b,c,a)) : coût 7t-23 Pour 5 ≤ t < 7 : S*(t) = S(t,(a,c,b)) ordonnancement NI de coût 7t-29
coût fc fb fa ra rb rc temps 0 3 5 7 t 9 10 12 S(t,(a,b,c)) : coût 7t-16 S(t,(a,c,b)) : coût 7t-29 S(t,(b,a,c)) : coût 7t-15 S(t,(b,c,a)) : coût 7t-23 S(t,(c,b,a)) : coût 7t-36 S(t,(c,a,b)) : coût 7t-37 Pour 7 ≤ t : S*(t) = S(t,(c,a,b)) ordonnancement NI de coût 7t-37
coût fc fb fa ra rb rc temps 0 3 5 7 8 9 10 12 ordo NI associé à (a,b,c)) : coût 5 S*(t) est un ordonnancement NI uniquement pour t≥5. Pour 5≤t<7, le coût de S*(t) est 7t-29. Pour 7≤t, le coût de S*(t) est 7t-37. Le meilleur ordonnancement NIque peut trouver A correspond à la date t=5 et son coût est égal à 6. L'ordo NI associé à la séquence (a,b,c) est de coût 5 !
Problème ENI • Motivation: • NI est la date minimale à laquelle peut commencer un ordonnancement NI. • Dans le cas général : • seules certaines séquences induisent un ordonnancement • NI commençant à la date NI ; • la séquence * induisant un ordonnancement NI optimal • satisfait NI(*) > NI . • On s'intéresse ici aux problèmes tels que NI(*) = NI . Définition: Un problème possède la propriété «ENI» si toute instance possèdeun ordonnancement NI-optimal qui commence à la date NI.
Définition : Un ordonnancement est dit "sans attente" si à tout instant d'une période d'inactivité de la machine, aucune tâche n'est exécutable. r1 r2 r3 Un ordonnancement sans attente. 1 2 3 r1 r2 r3 Un ordonnancement avec attente. 2 1 3 Proposition : Si les ordonnancements sans attente sont dominants, alors la propriété ENI est satisfaite.
Schéma de la preuve : Soit I(NI) la variante de l'instance I où les dates de disponibilité de I sont modifiées comme suit : rj(NI) = max{rj,lj+ NI} où lj est la durée d'un plus long chemin de G d'extrémité j. Lemme : Les ordonnancements de I(NI) sont les ordonnancements de I dont la date de début est supérieure ou égale à NI. Soit S un ordonnancement optimal sans attente de I(NI) et supposons que S possède un temps-mort [t,u]. S est sans attente et au moins le job 1 est disponible à la date NI. Donc S commence à la date NI.
1 2 k k+1 n 0 0 NI NI t t u u S Î ordo NI-optimal associé à (1,2,..,n) Considérons l'ordonnancement NI-optimal associé à la séquence (1,2,...,n) et supposons que k soit le plus petit indice tel que p1+p2+ …+pk > t. SoitÎl'ensemble des tâches exécutées par S dans [NI,t]. Il existe au moins une tâche i de {1,2,...,k} qui n'appartient pas à Î. Contradiction car la tâche i est disponible à t et l'ordonnancement S est sans attente. S est donc un ordonnancement sans temps-morts.QED.
Proposition : Si la préemption est autorisée, alors la propriété ENI est satisfaite. Schéma de la preuve : On montre que les ordonnancements sans attente sont dominants. Soit S un ordonnancement optimal et supposons que S possède une période d'attente. Soit [u(S),v(S)] la première période d'attente de S. Il existe une tache idisponible et non terminée à la date u(S). soit i la durée résiduelle de la tâche i à la date u(S).
….. ri u(S) v(S) ordonnancement S1 ….. ri S1 optimal et u(S1) > u(S) Supposons que : i ≤ v(S) - u(S) ordonnancement S
ordonnancement S ….. ri u(S) v(S) ordonnancement S2 ….. u(S2) ri S2 optimal et u(S2) > u(S) Supposons que : i > v(S) - u(S)
En itérant la transformation SS1ou SS2un nombrefini de fois, on obtient un ordonnancement optimal qui est sans attente. Les ordonnancements sans attente sont donc dominants et la propriété ENI est satisfaite.QED. Conséquence: les problèmes suivants : 1,NI | rj,prec,pmtn | fmax , 1,NI | rj,pmtn | ∑Cj , 1,NI | rj,di,pmtn | - sont polynomiaux. Pour résoudre chacun de ces problèmes, on applique l'algorithme polynomial de la version classique à l'instance I(NI).
Dates critiques d'une instance Soit = (i1,i2,…,in) une séquence des n tâches. Rappels : NI() est la date de début de l'ordonnancement NI-optimal pour la séquence . NI = NI((1,2,...,n)) est la date de début minimale d'un ordonnancement NI. Définition : Pour t ≥NI, on note ∑(t) l'ensemble des séquences telles qu'il existe un ordonnancement NI de séquence commençant à t. On a donc : ∑(t) = { | NI() ≤ t }.
Définition : Les dates critiques d'une instance sont les valeurs distinctes de type : rj - PK où jJ et KJ-{j}. Soit C=(c1,c2,…..,cN) la liste triée des dates critiques. Proposition : ∑(t) est invariant sur chaque intervalle [ck,ck+1[. Pour ck ≥ NI,notons SNI(ck) le meilleur ordonnancement NI commençant à la date ck. Proposition : Le meilleur ordonnancement SNI(ck), k{1..N} est un ordonnancement NI-optimal.
Problèmes à durées égales On suppose que les n tâches ont la même durée p. Le nombre N de dates critiques est alors polynomial : N = O(n2) ; la liste triée C est calculable en O(n2log n). 2 cas particuliers polynomiaux : tâches indépendantes; fonction objectif fmax.
n 1 2 j tâches fj(ck+kq) Ik1 Ik2 Ikq Ikn intervalles Calcul de SNI(ck) pour le cas 1. Proposition : Si les tâches sont indépendantes, déterminerSNI(ck) revient à résoudre un problème d'affectation (∑fj(Cj)) ou de bottleneck (fmax). Schéma de la preuve (pour ∑fj(Cj)): Si la tâche j est exécutable dans l'intervalle Ikq=[ck+(q-1)p, ck+qp], arc (j,Ikq) de coût fj(ck+kq). La solution (si elle existe) est une affectation de coût minimum.
temps j 0 ck Ikn Calcul de SNI(ck) pour le cas 2. Si les tâches sont dépendantes et pour le critère fmax, on utilise l'algorithme de Lawler : 1. Exécuter dans le dernier slot Ikn la tâche sans successeurs j de coût de terminaison minimum. 2. Exécuter récursivement l'algorithme sur le sous-problème privé de la tâche j.
Proposition : A partir du schéma de résolution précédent, on obtient par exemple que les problèmes suivants : 1,NI | rj,pj=p| ∑wjCj ; 1,NI | rj,pj=p| ∑wjUj; 1,NI | rj,pj=p| ∑Tj sont polynomiaux.
La séquence de Jackson pour 1,NI|ri,qi|Cmax Définition (rappel) : qi est le "délai de livraison" de la tâche i; Il faut trouver un ordonnancement NI minimisant la plus grande date de livraison Max (Ci+qi). Complexité : 1,NI|ri,qi|Cmax est NP-complet au sens fort. Séquence de Jackson pour 1|ri,qi|Cmax(rappel) : Séquence obtenue en exécutant, dès qu'il existe au moins une tâche prête, celle de plus grand qi.
Propriété de la séquence de Jackson pour 1|ri,qi|Cmax (Carlier 1984) : Soit CJ est le coût de l'ordonnancement de Jackson; Soit C* le coût d'un ordonnancement optimal. Alors on a : CJ - C* ≤ pmax Propriété Soit CNIJ est le coût de l'ordonnancement NI associé à la séquence de Jackson de l'instanceI(NI); Soit CNI* le coût d'un ordonnancement NI-optimal. Alors on a : CNIJ - CNI* ≤ pmax
Schéma de la preuve : Soit Jla séquence de Jackson de l'instance I(NI). On a NI(J) = NI (règle de Jackson et NI((1,2,..,n))= NI) ; Soit C*(I(NI)) le coût de l'ordonnancement optimal de l'instance I(NI) ; En appliquant (Carlier 84) à l'instance I(NI), on a : CNIJ - C*(I(NI)) ≤ pmax ; Comme tous les ordonnancements NI sont des ordonnancements de I(NI), on a : C*(I(NI)) ≤ CNI* QED.
Ordonnancement sans temps morts sur machines identiques Contrainte (rappel) : Les tâches allouées à chaque machine doivent être exécutées sans temps-mort. Le problème à séquences fixées ; Extension des algorithmes - de Hu pour Pm,NI|pi=1,intree|Cmax ; - de Coffmann/Graham pour P2,NI|pi=1,prec|Cmax ; Complexité de Pm,NI|pi=1,prec|Cmax ; Problèmes ouverts
pi i j -pi Le problème à séquences fixées Définition : n tâches (tâche i de durée pi); graphe de précédence G ; m machines identiques : M1, M2, ..., Mm ; La séquence L(k) = (j1k, j2k,...,jn(k)k) des tâches exécutées par la machine Mk est fixée. 5. Minimiser Cmax. Définition (graphe potentiels tâches): Soit GT le graphe obtenu à partir de G comme suit : si les tâches i et j sont consécutives dans une liste L(k) ajouter les arcs suivants :
Propriété(existence d'une solution): Le problème possède une solution si et seulement si le graphe valué GT ne possède pas de circuit strictement positif. Remarque : Une solution (s'il en existe) est entièrement déterminée par les dates de début tk des premières tâches des listes L(k). Notons : Pk(r), r=1,2,..,n(k), la somme des durées des r premières tâches de L(k) ; π(i), i=1,2,...,n, le rang de la tâche i dans sa liste.
Propriété : Soit (i,j) une contrainte de précédence de G. La tâche i occupe la position q dans L(k) ; La tâche j occupe la position r dans L(l) ; Toute solution doit alors vérifier : tl + Pl(r-1) ≥ tk + Pk(q) • Définition (graphe potentiels machines) : • Soit GM le graphe valué défini par : • les sommets sont les machines ; • il existe un arc (Mk,Ml) si G possède au moinsun arc (i,j) • tel que: • - i est une tâche de L(k) • - j est une tâche de L(l). • La valuation de l'arc (Mk,Ml) est alors : • Max(i,j)G, j L(l),i L(k)(Pl(π(j)-1) - Pk(π(i)))
1 2 4 3 7 5 6 1 3 5 7 8 10 12 2 4 6 9 11 9 8 12 10 11 Propriété (existence d'une solution) : Le problème possède une solution si et seulement si le graphe valué GM ne possède pas de circuit strictement positif. Exemple: une instance à 2 machines et durées unitaires. L(1)=(1,3,5,7,8,10,12) et L(2)=(2,4,6,9,11) sont les listes d'un ordonnancement optimal de l'instance relaxée de la contrainte NI. (algo. de Coffman/Graham)
1 2 4 3 7 5 6 9 8 12 10 11 L(1)=(1,3,5,7,8,10,12) L(2)=(2,4,6,9,11) max(0,1,0,1,1)=1 max(0,0,1,1)=1 M1 M1 M2 M2 max(-1,-1,-2)=-1 max(0,-1,-1,-2)=0 1 4 7 5 8 10 12 2 3 6 9 11 1 2 4 3 7 5 6 9 8 12 10 11 L'(1)=(1,4,7,5,8,10,12) L'(2)=(2,3,6,9,11) pas de solution NI
Extension d'algorithmes classiques 1. Le problème Pm,NI|pi=1,intree|Cmax Résolu par l'algorithme de Hu en version relaxée de la contrainte NI. Propriété : Si, dans l'algorithme de Hu, on alloue les tâches exécutables de chaque slot aux machines dans l'ordre (M1,M2,...,Mm), on obtient un ordonnancement NI-optimal. Preuve : ordo de liste + intree le nombre de tâches exécutées dans le slot t+1 est inférieur ou égal au nombre de tâches exécutées dans le slot t.
1 2 4 3 5 6 7 ordonnancement NI-optimal 8 1 4 6 8 2 5 7 3
a b 2. Le problème P2,NI|pi=1,prec|Cmax Résolu par l'algorithme de Coffman/Graham en version relaxée. • Propriété (dominance) • Il existe un ordonnancement NI-optimal dont la structure est • la suivante où : • les tâches bleues sont les ascendants de a dans G ; • les tâches vertes sont les descendants de b dans G ; • l'ordonnancement de C/G du sous-problème classique • associé aux tâches rouges n'a pas de temps mort. Remarque : Chacun des 3 ensembles de tâches (bleu, rouge, vert) peut éventuellement être vide.
Preuve : Considérons un ordonnancement NI n'ayant pas la structure "emboîtée". 2 cas possibles :
xq x1 a b Considérons un ordonnancement NI-optimal O1 de structure "emboîtée". Supposons l'ensemble B des tâches bleues non vide. O1 Si B={a}, ASC(a,G) = {a} et la propriété est vérifiée. Sinon, soit x1,x2,..,xq les tâches bleue qui précèdent a sur M1; x1 est un prédécesseur de a car sinon l'ordonnancement NI O2 suivant est strictement meilleur que O1. xq x2 a b O2 x1
xq xp+1 xp x1 a b Supposons que x1,x2,...,xp (1≤p<q) soient des ascendants de a dans G. O1 Si xp+1 ASC(a,G) alors l'ordonnancement O3 suivant est strictement meilleur que O1. O3 xq xp x1 a b xp+1 L'ensemble des tâches bleues est donc égal à ASC(a,G) Un raisonnement identique montre que l'ensemble des tâches vertes est égal à DESC(b,G). QED
Algorithme de résolution de P2,NI|pi=1,prec|Cmax. Pour toute paire de tâches {a,b} telles que : a n'est pas un descendant de b ; n(a,b) = n-Card(ASC(a,G))-Card(DESC(b,G)) est pair Faire : O(a,b) = ordonnancement de C/G associé au sous-problème {1,2,...,n}\(ASC(a,G) DESC(b,G)) ; Si makespan(O(a,b)) = n(a,b)/2 alors v(a,b)=n(a,b)/2+ Card(ASC(a,G))-Card(DESC(b,G)) sinon v(a,b) = + FinPour ; Retourner l'ordonnancement O(a,b) de v(a,b) minimum Complexité : O(n4).
2. Le problème P2,NI|pi=1,ri,di|- Résolu en version relaxée par l'algorithme glouton MD : "Dès qu'une machine est libre, ordonnancer une tâche prête de deadline minimum". Propriété (dominance) : Les ordonnancements NI tels que les dates de début a1 sur M1 et a2 sur M2 sont du type rj-k (j{1,..,n},0≤k≤n) sont dominants. Preuve : Si la séquence 1 (resp. 2) est exécutée par M1 (resp. M2) alors l'ordonnancement des tâches de M1 (resp. M2) peut commencer à NI(1) (resp. NI(1)) Variante de MD : TMD(a1,a2,n1,n2) où : a1 et a2 sont du type rj-k (j{1,..,n},0≤k≤n) ; n1 + n2 = n
M2 temps M1 a1 a2 0 a2+n2 a1+n1 On note : a = Min(a1,a2), b = Max(a1+n1,a2+n2), k(t) ({0,1,2}) le nombre de cellules bleues du slot t. Algorithme TMD(a1,a2,n1,n2) : t := a ; R := READY(t) ; Tantque (t < b) et (k(t) ≤ Card R) faire début Ordonnancer à t les k(t) tâches de R de deadline min ; t := t + 1; Mettre à jour (R,t) fin ; FinTantque ; Si t=b alors Retourner(vrai) sinon Retourner(faux)
Propriété (dominance) : • Il existe un ordonnancement NI tel que : • M1 est active sur [a1,a1+n1] ; • M2 est active sur [a2,a2+n2] ; • si et seulement si TMD(a1,a2,n1,n2) répond "vrai". Algorithme pour P2,NI|pi=1,ri,di|- : (Réponse = oui) si et seulement si il existe (a1,a2,n1,n2) tel que TMD(a1,a2,n1,n2) répond "vrai". Complexité : O(n6) car O(n5) valeurs possibles de(a1,a2,n1,n2) ;