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

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Mais vous comprenez qu’il s’agit d’une « tromperie ».
LES NOMBRES PREMIERS ET COMPOSÉS
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Dans cette partie Graphes Eulériens.
Distance inter-locuteur
3. Variantes de l’algorithme
Algorithmes et structures de données avancés
Calculs de complexité d'algorithmes
1 Introduction 1 - Equations de Maxwell dans le vide 2 - Equations de propagation du champ électromagnétique dans le vide 2 - Equations de propagation.
Demande globale, élasticités et équilibre de marché
F. Pascual - Laboratoire d’Informatique de Grenoble
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
Ordonnancement des mouvements de deux robots
SERIE I : ELECTROSTATIQUE
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Conception et analyse des algorithmes
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Synchronisation et communication entre processus
Algorithmes Branch & Bound
Sémantique axiomatique
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Ordonnancement avec exclusion mutuelle par un graphe d’intervalles ou d’une classe apparentée : complexité et algorithmes ~ Frédéric Gardi - 14 Juin.
Tableaux de distributions
Tableaux de distributions
LES NOMBRES PREMIERS ET COMPOSÉS
Sommations et notation sigma
LES ARBRES IUP 2 Génie Informatique
RACINES CARREES Définition Développer avec la distributivité Produit 1
GPA750 Les ateliers multigammes Chapitre 5
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Dualité Introduction à la dualité. Construction du couple primal-dual.
Courbes de Bézier.

1.1 LES VECTEURS GÉOMÉTRIQUES
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Algorithmes d ’approximation
Recherche Opérationnelle
Titre : Implémentation des éléments finis en Matlab
Propriétés des ordonnancements SPT
Ordonnancement de tâches
GPA750 – Gestion de Projets
Technique de points de contrôle: Formes de Bézier
Sous-espaces vectoriels engendrés
Programmation linéaire en nombres entiers : les méthodes de troncature
l’algorithme du simplexe
ASI 3 Méthodes numériques pour l’ingénieur
MAXIMISER les RESULTATS
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Equation différentielle de 2ème ordre
D.E ZEGOUR Ecole Supérieure d’Informatique
Suites numériques Définitions.
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
Le problème central de l’ordonnancement (les plus longs chemins)
Problème de double digestion
Programmation dynamique
Ajouts et retraits dans un arbre de connexion Nicolas Thibault et Christian Laforest, Équipe OPAL Laboratoire IBISC (regroupement LaMI et LSC), Évry 8.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Transcription de la présentation:

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

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)

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.

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

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.

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.

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

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.

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.

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.

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

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

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

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

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

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.

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.

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.

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.

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

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

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)

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

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

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.

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.

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

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

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.

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

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

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

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

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

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 4 2 5 7 6 8 3 ordonnancement NI-optimal

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.

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

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

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

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

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)

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

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.