Ordonnancement sur une machine



Documents pareils
Annexe 6. Notions d ordonnancement.

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Chapitre 5 : Flot maximal dans un graphe

Programmation linéaire

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

Chp. 4. Minimisation d une fonction d une variable

Plus courts chemins, programmation dynamique

Image d un intervalle par une fonction continue

Intégration et probabilités TD1 Espaces mesurés Corrigé

Université Paris-Dauphine DUMI2E 1ère année, Applications

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Feuille TD n 1 Exercices d algorithmique éléments de correction

Définitions. Numéro à préciser. (Durée : )

LE PROBLEME DU PLUS COURT CHEMIN

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Rappels sur les suites - Algorithme

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Continuité et dérivabilité d une fonction

Programmation linéaire

L exclusion mutuelle distribuée

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

La mesure de Lebesgue sur la droite réelle

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

1 Recherche en table par balayage

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Objets Combinatoires élementaires

Limites finies en un point

Contrainte de flot pour RCPSP avec temps de transfert

Intégration et probabilités TD1 Espaces mesurés

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Mlle Yasmin A. RÍOS SOLÍS

Introduction à la théorie des graphes. Solutions des exercices

Programmation linéaire et Optimisation. Didier Smets

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Chapitre 2 Le problème de l unicité des solutions

Algorithmes de recherche

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Algorithmique avec Algobox


De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Théorie de la mesure. S. Nicolay

Analyse du temps de réponse des systèmes temps réel

Résolution d équations non linéaires

Chapitre 7 : Intégration sur un intervalle quelconque

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Architecture des Systèmes d Information Architecture des Systèmes d Information

Cours de Master Recherche

Suites numériques 3. 1 Convergence et limite d une suite

MIS 102 Initiation à l Informatique

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Jean-Philippe Préaux

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Programmation Objet - Cours II

CHAPITRE 5. Stratégies Mixtes

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Modélisation et Simulation

Partie 7 : Gestion de la mémoire

Chapitre 7. Récurrences

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Encryptions, compression et partitionnement des données

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Chapitre 7. Circuits Magnétiques et Inductance. 7.1 Introduction Production d un champ magnétique

LES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

DOCM Solutions officielles = n 2 10.

UN ALGORITHME COOPÉRATIF POUR UN PROBLÈME D ATELIER JOB SHOP MULTI-AGENT

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Eléments de Théorie des Graphes et Programmation Linéaire

Licence à distance Chapitre V : Equations différentielles. Méthodes numériques à un pas.

Introduction à la théorie des files d'attente. Claude Chaudet

Moments des variables aléatoires réelles

par Denis-Charles Cisinski & Georges Maltsiniotis

Application de K-means à la définition du nombre de VM optimal dans un cloud

Optimisation for Cloud Computing and Big Data

ÉPREUVE COMMUNE DE TIPE Partie D

Principe de symétrisation pour la construction d un test adaptatif

Cours d analyse numérique SMI-S4

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Calculs de probabilités

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Gestion des Clés Publiques (PKI)

Fonctions de plusieurs variables

Transcription:

Ordonnancement sur une machine Module MOP-Cours 2 Spécialité IAD Philippe Chrétienne Critères MinMax 1 / prec / f max 1 / prec,pmtn,r j / f max 1 / prec, r j, p mtn,l max 1 / rj,qj / Cmax Flowtime 1 / /!w j C j 1 / r j, pmtn /!w j C j Plan

Notations Enoncé d un problème : E ; Paramètres de E : les jobs : J= {J 1,.,J n } les durées p j ; les contraintes de précédence : (J i,j j ) les dates de disponibilité r j les deadlines d j ; les durées de latence q j ; la préemption : pmtn la fonction coût : f j (C j ). E = <J;G(J);p j,j"j;r j,j"j;d j,j"j;f j,j"j> f*(e) coût minimum d un ordonnancement de E. Algorithme de résolution d un problème : A Solution fournie par A pour l énoncé E : A(E) 1 / prec / f max Un coût f j (C j ) est attaché à la terminaison du job J j à la date C j. Les fonctions f j sont croissantes au sens large. Idée de base de l algorithme : En raison de la monotonie des fonctions de coût, il existe un ordonnancement optimal sans temps mort. Une solution du problème sera donc représentée par une séquence des n jobs. L algorithme de Lawler construit un séquencement optimal de la dernière à la première tâche de la séquence.

Algorithme A1(E) ; Si Card(J)=1 alors Retourner((J 1 )) ; Choisir une sortie J k de G dont le coût f k (! J p j ) est minimum ; Ê := <J-{J k };p j, j"j-{j k };G(J-J k );f j, j"j-{j k }> ; Retourner ((A1(Ê),J k )). Propriété de A1. Soit E un énoncé, Ô= A1(E) et soit J k le dernier job de Ô. Il existe une solution optimale de E dont le dernier job est J k. Preuve : Soit O* une solution optimale dont le dernier job est J i où i!k. Notons O*=O 1 J k O 2 J i la séquence des jobs dans O*. La séquence O = O 1 O 2 J i J k est réalisable ; La solution O satisfait f max (O ) " f max (O*). Preuve de A1 (récurrence sur n). P(n): Si Card(J)=n, A1(E) est un ordonnancement optimal. P(1) est vraie. Supposons que P(n-1) soit vraie. Considérons un énoncé E à n jobs. Soit Ô=A1(E) = O 1 J k. O 1 est optimal pour J-{J k } (induction et structure récursive de l algorithme) D après la propriété précédente, il existe un ordonnancement optimal O* = O 2 J k. On a alors : f max (Ô) = max{f max (O 1 ),f k (P)} " max{f max (O 2 ),f k (P)} = f max (O*) Il en résulte que Ô est optimal.

1 / prec, pmtn, r j / f max Première étape : Rendre les dates de disponibilité r j «$compatibles$» avec G. Propriété : Soit O un ordonnancement quelconque. Si (J i,j j ) " prec alors : S j # r i + p i. max{r i +p i, r j } est donc aussi une date de disponibilité pour J j. Algorithme pour modifier les dates de disponibilité r j. Supposons que (J 1,J 2,,J n ) soit une liste topologique de prec. (i.e : (J i,j j ) " prec # i < j) Algorithme B1(E) r 1 := r 1 ; Pour j de 2 à n faire r j := max (Ji,Jj) "prec {r i + p i } FinPour ; Retourner(r ). Propriété des dates r j : Les valeurs r j sont des dates de disponibilité pour E. Pour tout J j, r j # r j ; Pour tout (J i,j j ) " prec : r j # r i. On supposera dans la suite que les dates de disponibilité r j sont compatibles avec prec.

Deuxième étape : Calcul de l ordonnancement au plus tôt non préemptif O pour la séquence des jobs associée aux r j croissants au sens large. Notations : B : bloc ; Un bloc B possède : une date de début notée début(b) ; une date de fin notée fin(b) ; un ensemble de jobs noté jobs(b). Rappel : On suppose que : 1. les r j sont compatibles avec G ; 2. r 1 " r 2 " " r n Algorithme B2(E) ; % retourne la liste des blocs de l ordonnancement O% i := ArgMin{r j,j"j} ; t := Min{r j,j"j} ; début(b) := t ; jobs(b) := {i} ; Tantque i < n et r i+1 " t + p i faire jobs(b) := jobs(b) $ {J i+1 } ; t := t + p i ; i := i + 1 FinTantque ; fin(b) := t +p i ; Si jobs(b)=j alors retourner((b)) sinon Ê := <J-B ; G(J-B) ; p j,j"j-b ; r j,j"j-b ; f j,j"j-b > ; Retourner ((B,B2(Ê))) FinSi

Exemple : n=6 ; r 1 = 0, r 2 = r 3 = 1, r 4 = 5, r 5 = 7, r 6 = 10 ; p 1 = p 2 = 2, p 3 = p 4 = 1 ; p 5 =2 ; p 6 = 1 ; 1 2 3 4 5 6 r 1 =0 r 2 =r 3 =1 r 4 =5 r 5 =7 r 6 =10 temps Un ordonnancement O à 3 blocs Propriétés de l ordonnancement O : Soient : (B 1, B 2,, B q ) la suite des blocs obtenus ; u 1, u 2,., u q les dates de début des blocs ; v 1, v 2,., v q les dates de fin des blocs. Propriété 1: Les dates u k sont des dates de disponibilité r j. Si le job J j appartient à jobs(b k ), alors r j # u k. Preuve : (exercice) Propriété 2 : Soit O* un ordonnancement optimal de l énoncé E du problème (préemptif) initial. Dans O*, tous les jobs de jobs(b k ) sont exécutés dans la fenêtre [u k,v k ].

Preuve de la propriété 3 : Supposons que [u k,v k ] soit le premier intervalle non totalement occupé par les jobs de jobs(b k ). Soit alors [s,t] la fenêtre de temps-mort de cet intervalle. u k s t Il existe un job J i tel que r i " s et non terminé à la date s. Sinon, soit T k l ensemble des jobs exécutés après s. On aurait Min{r j /J j " T k } > s et O comporterait un temps mort dans [u k,v k ] (structure de B2(E) ). Soit alors R i la durée résiduelle de J i au temps s. On peut alors : exécuter J i, sur l intervalle [s, s+min{r i,t-s}] ; supprimer les Min{R i,t-s} dernières unités de temps de J i dans O*; On obtient alors un ordonnancement O tel que : f max (O )" f max (O*) v k D après la propriété 3, on peut réduire le problème aux seuls jobs d un bloc B. Soit [deb(b),fin(b)] la fenêtre de B. E(B) énoncé associé aux seuls jobs de jobs(b). Soit O*(B) un ordonnancement optimal de E(B). Soit G(B) le graphe de précédence des jobs de jobs(b). Soit S(B) l ensemble des jobs sans successeurs dans G(B).

2 bornes inférieures de f*(j) : f l (fin(b)) = Min S(B) {f j (fin(b))} ; f*(e(b-{j l })) (où E(B-{J l }) est l énoncé associé aux seuls jobs de jobs(b)-{j l }) Preuve des bornes : O* se termine par un morceau d un job de S(B) ; En remplaçant dans O* les morceaux de J l par des temps-morts, on obtient un ordonnancement O de E(B-{J l }) tel que : f max (O*) = max{f max (O ), f l (fin(b))) }. Il en résulte que : f*(e(b)) # f max (O )# f*(e(b-{j l })) Construction (récursive) d un ordonnancement optimal. Supposons connu un ordonnancement O optimal pour E(B-{J l }) ; Soient : B 1, B 2,, B q les blocs de O (associés à B2(E(B-{J l })); g 1, g 2,., g q les dates de début des blocs de O ; d 1, d 2,., d q les dates de fin des blocs de O. En remplaçant dans O les temps morts par des morceaux d exécution de J l, on obtient un ordonnancement O de E(B) dont le coût est égal à max{f max (O ), f l (fin(b)) }. O est donc un ordonnancement optimal.

Exemple : i 1 2 3 4 5 6 7 p i 6 5 7 6 4 3 2 r i 0 10 11 13 20 35 35 d i 33 43 36 24 29 42 50 f i (t) = Max{0, t-d i } i 1 2 3 4 5 6 7 p i 6 5 7 6 4 3 2 r i 0 10 11 13 20 35 35 d i 23 33 26 14 19 32 40 6 2 3 4 5 6 7 0 6 10 15 22 28 32 35 38 40 6 2 3 4 5 6 7 0 6 10 15 22 28 32 35 38 40 6 2 3 4 5 2 6 7 0 6 10 18 24 28 32 35 38 40 6 2 3 4 3 5 3 2 6 7 0 6 10 13 20 28 32 35 38 40

Algorithme (récursif) B3(E(B)) pour ordonnancer un seul bloc B de B2(E). Algorithme B3(E(B)) ; Si Card(jobs(B))=1 alors O := placerjob( jobs(b),deb(b),fin(b),o) sinon Soit J l une sortie de G(B) de coût f l (fin(b)) minimum ; (B 1,B 2,,B p ) := B2(E(B-{J l })) ; Pour k de 1 à p faire O := B3(E(B k )) ; %appel récursif% O[deb(B k ),fin(b k )] := O ; remplacertempsmort(j l,deb(b),fin(b),o) FinPour ; FinSi ; Retourner(O). Remarques sur B3(E) La procédure placerjob( J i, u,v,o) place le job Ji dans la fenêtre [u,v] d un ordonnancement O ; La procédure remplacertempsmort(j i,u,v,o) remplace les temps morts d un ordonnancement O par des morceaux d exécution du job J i. Algorithme général A2(E) pour 1 / prec,r j,pmtn / f max. Algorithme A2(E) ; (B 1,B 2,,B p ) := B2(E(B)) ; Pour k de 1 à p faire O*.[deb(B k ),fin(b k )]:= B3(E(B k )) FinPour ; Retourner O*.

1 / prec, r j, pmtn / L max Etape 1 : Modification des deadlines. Supposons que (J 1,J 2,,J n ) soit une liste topologique de prec. Algorithme de modification des deadlines : Algorithme B4(E) d n := d n ; Pour i de n-1 à 1 faire d i := min (Ji,Jj) "prec {d j - p j } FinPour. Propriété des dates d j : Les valeurs d j sont des deadlines telles que : pour tout J j, d j " d j ; (J i,j j ) " prec # d i " d j. Algorithme A3(E) : d := B4(E) ; t := Min J {r j }; Tantque (tous les jobs ne sont pas terminés) faire Choisir un job J i tel que (r i " t) dont le deadline modifié est minimum ; Exécuter J i jusqu au plus petit instant u>t tel que : - soit J i est terminé ; - soit t est une date de disponibilité. t := u ; FinTantque.

Exemple pour 1 / prec,pmtn,r j / L max 1 / r j,q j / C max Définition du problème. n jobs non préemptifs indépendants. Pour chaque job J j : une date de disponibilité r j ; une durée de latence q j. La durée de latence q j représente le temps minimum nécessaire entre la fin de fin C j de J j et la fin de l ordonnancement. La machine n est pas requise par Jj entre C j et C j +q j. C max = Max J {C j + q j } Il faut minimiser C max.

Complexité de 1 / r j,q j / C max Propriété : 1 / r j,q j / C max est NP-complet au sens fort Preuve : Réduction pseudo-polynomiale de 3-PARTITION Remarque : C max " C ( ' j, C j " C - q j. Il en résulte que : 1 / r j,q j / C max ( 1 / prec,r j,d j / - On montre que 1 / prec,r j,d j / - est NP-complet au sens fort. 3-PARTITION: Donnée: A={a 1,, a 3n }; s:a%& telle que : s(a)=nb et 'i"{1,..,3n} B/4 < s(a i ) < B/2 Question: Peut-on réaliser une partition de A en n classes de même poids? Si la réponse est «!oui!», chaque classe contient exactement 3 éléments de A et est de taille B.

On montre que 3-PARTITION ) ps OMS Réduction pseudo-pôlynomiale : Enoncé de 3-PARTITION: I=(A,s) où Card(A)=3n ; s(a)=nb ; 'a"a, B/4<s(a)<B/2. Enoncé f(i) de OMS: 3n tâches T i : (p i = s(a i ), r i =0, d i =nb+n-1) n-1 tâches D j : (p j =1, r j = jb+j-1, d j = jb+j) Supposons l$ énoncé (A,s) à réponse «$oui$». Soit alors C 1,..,C n les sous-ensembles de 3 tâches T i associées aux n classes de A de poids B. L$ ordonnancement de f(i) suivant est réalisable: C 1 D 1 C 2 D 2 D n-1 C n 0 B B+1 2B+1 2B+2 nb+n-1 Réciproquement, supposons qu$ il existe un ordonnancement de l$ énoncé f(i) de OMS. Les n-1 tâches D j sont bloquées dans les intervalles [jb+j-1,jb+j]. L$ espace libre restant de l$ intervalle [0, nb+n-1] est juste suffisant pour les autres tâches T i. On peut donc partitionner A en n classes de poids B.

Résolution de 1 / r j,q j / C max 1) Recherche d une bonne solution approchée par l algorithme de Jackson ; 2) Propriétés fondamentales de la solution de Jackson ; 3) Mise en œuvre d une méthode arborescente fondée sur 2). L algorithme de Jackson construit une solution notée O 0 en appliquant la règle simple suivante (règle de Jackson) : Initialiser le temps t à Min J {r j } ; Si t est une date de disponibilité ou de terminaison d un job : si l ensemble des jobs prêts à t n est pas vide, alors ordonnancer le job prêt de durée de latence maximum sinon créer un temps-mort jusqu à la prochaine date de disponibilité. Algorithme de Jackson : Algorithme B5(E) ; Si J!$* alors u := Min J {r j } ; Choisir J i dans J tel que r i =u et q i maximum ; O.[u,u+p i ]:=J i ; J:=J-{J i } ; Pour tout Jj de J faire r j := Max{r j,u+p i } Ê := <J,p,r,q> ; Retourner(B5(Ê)) ; %appel récursif% FinSi. La notation O.[u,v]:= J i signifie que la fenêtre [u,v] est affectée au job J i.

Exemple : j 1 2 3 4 5 6 7 r j 10 13 11 20 32 0 32 p j 5 6 7 1 3 6 2 q j 7 26 24 21 8 17 0 6 1 2 3 4 5 7 0 6 10 15 21 28 29 32 35 37 Propriétés de la solution de Jackson Borne inférieure : Soit I une partie quelconque de J, la valeur h(i) = Min I {r j } +! I p j + Min I q j est une évaluation par défaut de la durée optimale f*. Il en résulte que : Max I h(i) " f*. Solution de Jackson et évaluation par excès de f*. Soit O 0 la solution de Jackson et f 0 sa valeur. 1) On a : f 0 - f* " Max J {p j } 2) Si O 0 n est pas optimal, on peut déterminer une partie D de J et un job c dans J-D tels que : f* - h(d) < p c.

Preuve : Supposons que le séquencement de O 0 soit (J 1,J 2,, J n ). O 0 est donc l ordonnancement au plus tôt du graphe valué G(0 0 ) suivant : r 1 1 2 p 1 p 2 p 1 +q 1 0 r j j p j +q j n+1 p j r n n-1 n p n +q n Définition d un chemin critique «$maximal$» de G(O 0 ). l : plus grand indice par lequel passe un chemin critique. r 1 1 p 1 +q 1 h : plus petit indice tel que (0,h,h+1,,l,n+1) est critique. r h h p h +q h 0 r c p c +q c r c+1 p c+1 +q c+1 n+1 c : plus grand indice de h..l tel que q c <q l (c = h-1 si cet indice n existe pas) r l l p l +q l D = {c+1..l}. (sommets violets) n

Dans O 0, le slot [r h -1,r h ] est un temps mort. Sinon le job J j en exécution sur ce slot se termine en r h et t j + p j +! h..l p i + q l = r h +! h..l p i + q l =f 0. On a : t i = r i et j<h. (0,j,..,h,..,l,n+1) est donc critique. Contradiction. r 1 r h 1 h p 1 +q 1 p h +q h 0 r c c p c +q c n+1 On a : r h = Min h..l {r i }. Evident si h=1; Sinon, soit J j le job qui précède J h dans O 0 ; L intervalle [t j +p j, t h ] est un temps mort de O 0 ; Donc, lors de la terminaison de J j, il vient : t h =r h =Min h..n {r i } et donc r h = Min h..l {r i }. r l l n p l +q l Considérons les 2 cas : 1) q l = Min h..l {q i }. On a alors D = h..l ; O 0 est alors optimal car f 0 = h(d) 2) q l! Min h..l {q i }. D après la définition de c et D, on a : (1) q l = Min D {q i } ; (2) q c < q l. Il en résulte que : Pour tout j dans D : q j > q c. Montrons que : pour tout j dans D : r j > t c. Supposons j dans D tel que t c " r j ; A la date t c, j est disponible et q j > q c. Contradiction.

On a donc : t c < Min D {r j }. Comme t c = t h +p h + + p c-1 et q l = Min D {q j }, il vient en remplaçant t c par son expression : h(d) = Min D {r j } +! D p j + Min D q j > r h +! h..l p j + q l -p c. D où : h(d) > f 0 - p c. Conclusion : Si f* est la solution optimale, le couple (c,d) associé à la solution de Jackson O 0 satisfait : f 0 - h(d) " p c -1. Il en résulte que dans une solution optimale : soit le job c est exécuté avant tous les jobs de D soit le job c est exécuté après tous les jobs de D. En effet, dans le cas contraire, il existerait dans le graphe G(O*) un chemin de 0 à n+1 de longueur supérieure à h(d)+p c > f*. Propriété (Calcul de Max I+J {h(i)}). Soit E l énoncé associé à E pour lequel la préemption est autorisée. Max I+J {h(i)} est la valeur du makespan de la solution fournie par l algorithme de Jackson préemptif pour l énoncé E. Propriété : L algorithme de Jackson préemptif calcule un ordonnancement optimal pour le problème 1 / r j,q j,pmtn / C max. Règle simple de l algorithme de Jackson préemptif : A chaque fin de job ou nouvelle date disponibilité on exécute le job disponible de latence maximale

Solution de Jackson pour E : Algorithme B6(E ) ; t := Min J {r j } ; Tantque J! * faire Si l ensemble des jobs prêts à t n est pas vide, alors Choisir le job prêt J i de latence maximum ; Exécuter dans O J i jusqu au plus petit instant u>t tel que : J i est terminé à u ou u est une date de disponibilité ; Si J i est terminé à u alors J := J-{J i } ; sinon créer dans O un temps-mort jusqu au plus petit instant u>t tel que u soit une date de disponibilité FinSi t := u ; FinTantque ; Retourner(O). Exemple : j 1 2 3 4 5 6 7 r j 10 13 11 20 32 0 32 p j 5 6 7 1 3 6 2 q j 7 26 24 21 8 17 0 6 1 3 2 3 4 1 5 7 0 6 10 11 13 19 24 25 29 32 35 37 15

Algorithme Branch & Bound pour 1 / r j,q j / C max Chaque sommet S de l arborescence de recherche correspond à un énoncé de «$1 / r j,q j / C max$» que l on note E(S)=(r,p,q). On note (c(s),d(s)) le couple (c,d) associé à E(S). La racine correspond à l énoncé initial E 0. La fonction d évaluation par défaut est définie par : g(s) = Max I+J {h(i)} Rappel : g(s) = B6(E(S) ) (algorithme de Jackson préemptif) Séparation d un sommet S. On sépare le sommet S en 2 nouveaux problèmes : - le problème avant pour lequel c(s) est exécuté avant tous les jobs de D(S) ; - le problème après pour lequel c(s) est exécuté après tous les jobs de D(S) ; Le problème avant est associé au nœud S av et défini par le triplet (r,p,q ) où : pour j!c(s), q j = q j ; q c(s) = Max{q c(s), p(d(s))+min D(S) {q j }. Le problème après est associé au nœud S ap et défini par le triplet (r,p,q) où : pour j!c(s), r j = r j ; r c(s) = Max{r c(s), p(d(s))+min D(S) {r j }.

Soit ê la valeur de la meilleure solution connue lors de l examen du sommet S. Il résulte de la propriété fondamentale de la solution de Jackson de l énoncé E = (r,p,q) que : pour tout job J k de J-D tel que p k > ê - h(d), alors dans toute solution optimale, soit J k est exécuté avant tous les jobs de D ; soit J k est exécuté après tous les jobs de D. Propriété de dominance : Soit K = {J k " J-D/p k > ê - h(d)} et k " K. Si r k + p(d) + p k + p l > ê alors dans toute solution optimale, J k est exécuté après tous les jobs de D ; Si Min D r j + p(d) + p k + q k > ê alors dans toute solution optimale, J k est exécuté avant tous les jobs de D.