La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction aux problèmes d'ordonnancement sans temps-morts.

Présentations similaires


Présentation au sujet: "Introduction aux problèmes d'ordonnancement sans temps-morts."— Transcription de la présentation:

1 Introduction aux problèmes d'ordonnancement sans temps-morts.
Philippe Chrétienne Université Paris 6 Laboratoire LIP6

2 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écuter sans temps-morts les tâches qui lui sont allouées.

3 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 A B C 1 3 5 temps ordonnancement "classique" optimal (coût : 12) 2 temps-morts : [2,3] et [4,5] 2 4 6 temps A B C 3 4 5 6 ordonnancement "sans temps morts" optimal (coût : 15)

4 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

5 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.

6 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)) in i2 i1 temps NI() Cet ordonnancement est NI-optimal à  fixé.

7 La date NI Soit 0 la séquence réalisable (1,2,...,n).
Soit NI = 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. in ik=i i1 temps NI() ik+1=j j<i  rj ≤ ri  (i,j)  G ; On peut donc échanger les tâches i et j.

8 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 '. temps in ik+1=j i1 NI() ik=i On a donc NI() ≥ NI(') . On itère cette transformation tant que ' ≠ 0. et on obtient : NI() ≥ NI(0) . Remarque : Si la préemption est autorisée, NI est la date de début minimale de tout ordonnancement NI préemptif.

9 Complexité:résultats et conjecture
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 |∑Cj est NP-difficile. Ce n'est cependant pas 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

10 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.

11 tâches a b c pi 2 3 ri 5 7 fi(t) 0 si 2≤t≤5 t-8 5(t-9)
Supposons que A soit un algorithme résolvant le problème 1 | ri | ∑fi(Ci) Exemple tâches a b c pi 2 3 ri 5 7 fi(t) 0 si 2≤t≤5 t-5 sinon t-8 5(t-9) 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.

12 les 3 fonctions coût. fa rc fc 5 8 9 7 10 12 ra rb temps coût 3 fb a b c 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.

13 fa rc fc 5 8 9 7 10 12 ra rb temps coût 3 fb 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

14 fa rc fc 5 8 9 7 10 12 ra rb temps coût 3 fb S(t,(a,b,c)) : coût 7t-16 S(t,(a,c,b)) : coût t+1 t Pour 3 < t < 5 : S*(t) = S(t,(a,c,b)) ordonnancement non NI de coût t+1

15 fa rc fc 5 8 9 7 10 12 ra rb temps coût 3 fb 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 t Pour 5 ≤ t < 7 : S*(t) = S(t,(a,c,b)) ordonnancement NI de coût 7t-29

16 S*(t) = S(t,(c,a,b)) ordonnancement NI de coût 7t-37
fa rc fc 5 9 7 10 12 ra rb temps coût 3 fb 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 t Pour 7 ≤ t : S*(t) = S(t,(c,a,b)) ordonnancement NI de coût 7t-37

17 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 NI que 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 ! fa rc fc 5 8 9 7 10 12 ra rb temps coût 3 fb ordo NI associé à (a,b,c)) : coût 5

18 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ède un ordonnancement NI-optimal qui commence à la date NI.

19 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. 1 2 r1 r2 r3 3 Un ordonnancement sans attente. avec attente. Proposition : Si les ordonnancements sans attente sont dominants, alors la propriété ENI est satisfaite.

20 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.

21 Considérons l'ordonnancement NI-optimal associé à la
1 2 NI t u k k+1 n Î NI t u S 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.

22 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 i disponible et non terminée à la date u(S). soit i la durée résiduelle de la tâche i à la date u(S).

23 Supposons que : i ≤ v(S) - u(S)
ordonnancement S ….. u(S) v(S) ri S1 optimal et u(S1) > u(S) ….. ri ordonnancement S1

24 Supposons que : i > v(S) - u(S)
ordonnancement S ….. u(S) v(S) ri S2 optimal et u(S2) > u(S) ordonnancement S2 u(S2)

25 En itérant la transformation SS1ou SS2 un nombre fini
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).

26 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 }.

27 Définition : Les dates critiques d'une instance sont les valeurs distinctes de type : rj - PK où jJ et KJ-{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.

28 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.

29 Calcul de SNI(ck) pour le cas 1.
Proposition : Si les tâches sont indépendantes, déterminer SNI(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). 1 2 j n Ik1 Ik2 Ikq Ikn tâches intervalles fj(ck+kq) La solution (si elle existe) est une affectation de coût minimum.

30 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. temps j ck Ikn

31 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.

32 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.

33 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'instance I(NI); Soit CNI* le coût d'un ordonnancement NI-optimal. Alors on a : CNIJ - CNI* ≤ pmax

34 Schéma de la preuve : Soit J la 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.

35 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

36 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 : i j pi -pi

37 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.

38 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 moins un 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)))

39 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. 1 4 2 3 6 5 7 9 8 12 11 10 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 3 5 7 8 10 12 2 4 6 9 11

40 1 4 2 3 6 5 7 9 8 12 11 10 L(1)=(1,3,5,7,8,10,12) L(2)=(2,4,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) M1 M2 max(0,0,1,1)=1 max(0,-1,-1,-2)=0 M1 M2 max(0,1,0,1,1)=1 max(-1,-1,-2)=-1 1 4 7 5 8 10 12 2 3 6 9 11 pas de solution NI

41 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.

42 1 4 2 5 7 6 8 3 ordonnancement NI-optimal

43 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. a b Remarque : Chacun des 3 ensembles de tâches (bleu, rouge, vert) peut éventuellement être vide.

44 Preuve : Considérons un ordonnancement NI n'ayant pas la structure "emboîtée". 2 cas possibles :

45 Considérons un ordonnancement NI-optimal O1
de structure "emboîtée". Supposons l'ensemble B des tâches bleues non vide. x1 a b xq 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

46 Supposons que x1,x2,...,xp (1≤p<q) soient des ascendants
de a dans G. O1 xp+1 xp x1 a b xq 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

47 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).

48 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

49 a = Min(a1,a2), b = Max(a1+n1,a2+n2),
a1+n1 temps a1 a2 a2+n2 M1 M2 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)

50 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) ;

51 Conclusions La contrainte NI ouvre de nombreuses directions de recherche : - au niveau complexité ; - au niveau structure des solutions ; - au niveau résolution algorithmique exacte ou approchée (bornes sup, bornes inf,....). L'existence même de solutions NI pose des problèmes difficiles dans de nombreux cas (problèmes d'ateliers, ...). La contrainte NI peut également être assouplie (par exemple coûts associés aux temps-morts). On peut également étudier des problèmes mixtes à machines NI et non-NI.


Télécharger ppt "Introduction aux problèmes d'ordonnancement sans temps-morts."

Présentations similaires


Annonces Google