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

Documents pareils
Annexe 6. Notions d ordonnancement.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Chapitre 5 : Flot maximal dans un graphe

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

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

Programmation linéaire

Programmation linéaire

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

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

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

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

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

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

Mlle Yasmin A. RÍOS SOLÍS

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

Résolution de systèmes linéaires par des méthodes directes

Chapitre 7. Récurrences

Un propagateur basé sur les positions pour le problème d Open-Shop.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Contrainte de flot pour RCPSP avec temps de transfert

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Programmation linéaire et Optimisation. Didier Smets

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Plus courts chemins, programmation dynamique

En vue de l'obtention du. Présentée et soutenue par Abir BEN HMIDA SAKLY Le 12/12/2009

La classification automatique de données quantitatives

Optimisation for Cloud Computing and Big Data

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

Minimisation de la somme des retards dans un jobshop flexible

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

PLANIFICATION DE PROJET ET METHODES D ORDONNANCEMENT

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Fonctions de plusieurs variables

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

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

Résolution d équations non linéaires

3 Approximation de solutions d équations

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

Ordonnancement temps réel

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Cours de Master Recherche

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

Bases de données. Chapitre 1. Introduction

Objets Combinatoires élementaires

LES PROBLEMES D'ORDONNANCEMENT

Cours 02 : Problème général de la programmation linéaire

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

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

Chp. 4. Minimisation d une fonction d une variable

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

THÈSE. En vue de l obtention du DOCTORAT DE L UNIVERSITÉ DE TOULOUSE. Touria CHAFQANE BEN RAHHOU

I. Ensemble de définition d'une fonction

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

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

LE DIPLOME DE MAGISTER

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

CHAPITRE 5. Stratégies Mixtes

Rappels sur les suites - Algorithme

0DWKpPDWLTXHVGHO DUJHQW. édité par Mr. G.Moumoulidis (OTE)

Modélisation et Simulation

I. Polynômes de Tchebychev

Cours d analyse numérique SMI-S4

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

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

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

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

INFO-F Algorithmique 3 et Recherche Opérationnelle

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

L exclusion mutuelle distribuée

Polynômes à plusieurs variables. Résultant

Continuité et dérivabilité d une fonction

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Algorithmique et Programmation

Partie 7 : Gestion de la mémoire

Image d un intervalle par une fonction continue

Optimisation Discrète

DOCM Solutions officielles = n 2 10.

Algorithmes pour la planification de mouvements en robotique non-holonome

Ministère de l Enseignement Supérieur et de la Recherche Scientifique. Mémoire de fin d études. Thème

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

LE PROBLEME DU PLUS COURT CHEMIN

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

INSERTION TECHNIQUES FOR JOB SHOP SCHEDULING

Introduction à l étude des Corps Finis

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

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

Quelques Algorithmes simples

aux différences est appelé équation aux différences d ordre n en forme normale.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Pourquoi l apprentissage?

TUTORIAL Microsoft Project 2010 Fonctionalités de base

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Les riches heures de l ordonnancement

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

F411 - Courbes Paramétrées, Polaires

Les Conditions aux limites

Transcription:

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

Table des matières 1 Définition et classification des problèmes d ordonnancement 2 1.1 Introduction.................................... 2 1.2 Données et caractéristiques des tâches...................... 3 1.3 Environnement des machines........................... 4 1.4 Critères d optimalité............................... 4 1.5 Schéma de classification............................. 5 1.6 Exemples..................................... 7 2 Ordonnancement sur une seule machine 9 2.1 Critères minimax................................. 9 2.2 Retard maximum................................. 12 2.3 Flot total pondéré................................. 13 2.4 Nombre pondéré de tâches en retard....................... 16 2.5 Retard pondéré total................................ 18 2.6 Complexité des problèmes sur une machine................... 20 3 Ordonnancement sur des machines parallèles 21 3.1 Tâches indépendantes............................... 21 3.2 Tâches avec contraintes de précédence...................... 29 3.3 Complexité des problèmes sur machines parallèles............... 32 4 Problèmes de shop 33 4.1 Le modèle de graphe disjonctif.......................... 33 4.2 Problèmes open shop.............................. 35 4.3 Problèmes flow shop.............................. 38 4.4 Problèmes job shop............................... 39 Référence Peter Brucker, Scheduling Algorithms, Springer

1 Définition et classification des problèmes d ordonnancement 1.1 Introduction Introduction Définition 1 (Théorie de l ordonnancement Wikipedia). La théorie de l ordonnancement est une branche de la recherche opérationnelle qui s intéresse au calcul de dates d exécution optimales de tâches. Pour cela, il est très souvent nécessaire d affecter en même temps les ressources nécessaires à l exécution de ces tâches. Un problème d ordonnancement peut être considéré comme un sous-problème de planification dans lequel il s agit de décider de l exécution opérationnelle des tâches planifiées. Définition 2 (Problème d ordonnancement Wikipedia). Un problème d ordonnancement consiste à organiser dans le temps la réalisation de tâches, compte tenu de contraintes temporelles (délais, contraintes d enchaînement) et de contraintes portant sur la disponibilité des ressources requises. (...) Un ordonnancement constitue une solution au problème d ordonnancement. Il est défini par le planning d exécution des tâches («ordre» et «calendrier») et d allocation des ressources et vise à satisfaire un ou plusieurs objectifs. Un ordonnancement est très souvent représenté par un diagramme de Gantt. Contexte du cours Données Ensemble de m machines (ou processeurs) Ensemble de n tâches (jobs) M j J i (j = 1,..., m). (i = 1,..., n). tâche machine (production) pièce machine (informatique) programme processeur (hôpital) opération chirurgien (restaurant) repas cuisinier (recherche) projet chercheur......... Problèmes de base Quelle tâche sur quelle machine? Affectation, allocation des tâches Dans quel ordre sur les processeurs? Séquence par machine 2

Définition 3 (Ordonnancement). Un ordonnancement est une allocation d un ou plusieurs intervalles de temps pour chaque tâche sur une ou plusieurs machines, satisfaisant les contraintes imposées. Hypothèses A chaque instant, un processeur ne peut exécuter qu une seule tâche. A chaque instant, une tâche ne peut être exécutée que par un seul processeur. Diagrammes de Gantt Un ordonnancement peut être représenté par un diagramme de Gantt. Représentation orientée machines Représentation orientée tâches Diversité des problèmes Environnement des tâches : paramètres (durée, date de lancement, date limite,...), contraintes technologiques (précédences,...) Machines : type, vitesse d exécution,... Objectif : réaliser une date de fin des tâches, le plus vite possible,... Dans le cadre du cours : données et paramètres déterministes. 1.2 Données et caractéristiques des tâches Données relatives aux tâches Une tâche J i consiste en un nombre n i d opérations (ou tâches élémentaires) O i1,..., O ini. Chaque opération O ij a un temps d exécution p ij. Si n i = 1, on identifie J i et O i1 et le temps d exécution est noté p i. Date de disponibilité (release date) r i. Date échue (due date) d i. Poids (priorité) w i. 3

Caractéristiques des tâches Modes d exécution des tâches : Sans préemption : une tâche commencée doit être exécutée jusque la fin. Avec préemption : tâches morcelables, une tâche ou une opération peut être interrompue et recommencée plus tard sur la même machine ou sur une autre. Contraintes de précédence : J i J j, la tâche J i doit être terminée avant de commencer J j. Ces relations de précédence peuvent être représentées par un graphe dirigé acyclique. 1.3 Environnement des machines Types de machines Machines parallèles : remplissent les mêmes fonctions. 3 formes de machines parallèles : identiques : même vitesse pour toute les tâches (p ij = p i pour toute machine M j ) ; uniformes : chaque machine M j a sa propre vitesse s j indépendante de la tâche (p ij = p i /s j ). générales : la vitesse sur M j dépend de la tâche J i. Machines dédiées : spécialisées pour l exécution de certaines tâches. Quelques configurations intéressantes Système de machines dédiées, tâches J i composée de n i opérations O i1,..., O ini, relations de précédences entre les opérations (general shop). Job shop : O i1 O i2 O ini i = 1,..., n. Flow shop : Job shop avec n i = m pour i = 1,..., n, chaque opération est associée à une machine et l ordre des opérations est le même pour toutes les tâches. Open shop : Comme le flow shop mais ordre quelconque des opérations. 1.4 Critères d optimalité Types de fonctions objectif Date d achèvement d une tâche J i : C i. Coût associé : f i (C i ). On considère généralement deux types de fonctions objectifs : Objectifs bottleneck" : f max (C) := max{f i (C i ) : i = 1,..., n Objectifs additifs : fi (C) := f i (C i ) i=1,...,n 4

Fonctions objectifs classiques Durée totale (makespan) : C max = max{c i : i = 1,..., n Flot total (total flow time) : i=1,...,n Flot total pondéré : w i C i i=1,...,n Autres fonctions dépendant des dates limites d i : C i L i := C i d i E i := max{0, d i C i T i := max{0, C i d i D i := C i d i S i := (C { i d i ) 2 0 si Ci d U i := i 1 sinon retard algébrique (lateness) avance (earliness) retard (tardiness) déviation absolue (absolute deviation) déviation au carré (squared deviation) pénalité unitaire (unit penalty) Par exemple, max T i est le retard maximum, i U i est le nombre de tâches en retard,... 1.5 Schéma de classification Schéma de classification Représentation des classes de problèmes par trois champs : α : processeurs ; β : paramètres ; γ : critère d optimisation. α β γ Processeurs The first field α = α 1 α 2 describes the processor environment. α 1 {, P, Q, R, O, F, J characterizes the type of processor used : : single processor, P : identical processors, Q : uniform processors, R : unrelated processors, O : dedicated processors : open shop system, F : dedicated processors : flow shop system, J : dedicated processors : job shop system. Parameter α 2 {, k denotes the number of processors in the problem : : the number of processors is assumed to be variable, k : the number of processors is equal to k (k is a positive integer). 5

Tâches The second field β = β 1, β 2, β 3, β 4, β 5, β 6, β 7, β 8 describes task and resource characteristics. Parameter β 1 {, pmtn indicates the possibility of task preemption : β 1 = : no preemption is allowed, β 1 = pmtn : preemptions are allowed. Parameter β 2 {, res characterizes additional resources : β 2 = : no additional resources exist, β 2 = res : there are specified resource constraints. Parameter β 3 {, prec, uan, tree, chains reflects the precedence constraints : β 3 =, prec, tree, chains : denotes respectively independent tasks, general precedence constraints, precedence constraints forming a tree or a set of chains. Parameter β 4 {, r i describes ready times : β 4 = : all ready times are zero, β 4 = r i : ready times differ per task. Parameter β 5 {, p i = p, p p i p describes task processing times : β 5 = : tasks have arbitrary processing times, β 5 = (p i = p) : all tasks have processing times equal to p units, β 5 = (p p i p) : no p i is less than p or greater than p. Parameter β 6 {, d describes deadlines : β 6 = : no deadlines are assumed in the system (however, due dates may be defined if a due date involving criterion is used to evaluate schedules), β 6 = d : deadlines are imposed on the performance of a task set. Parameter β 7 {, n i k describes the maximal number of tasks constituting a job in case of job shop systems : β 7 = : the above number is arbitrary or the scheduling problem is not a job shop problem, β 7 = (n i k) : the number of tasks for each job is not greater than k. Parameter β 8 {, no wait describes a no-wait property in the case of scheduling on dedicated processors : β 8 = : buffers of unlimited capacity are assumed, β 8 = no wait : buffers among processors are of zero capacity and a job after finishing its processing on one processor must immediately start on the consecutive processor. Critère d optimisation The third field, γ, denotes an optimality criterion (performance measure), i.e. γ {C max, C i, w i C i, L max, D i,.... 6

1.6 Exemples 7 tâches, durées p = (6, 3, 6, 2, 4, 3, 1), m = 3 machines parallèles. r = (2, 0, 1, 6, 2, 1, 9) d = (8, 3, 6, 7, 9, 9, 10) p ij = p i b j, b 1 = 2, b 2 = 1, b 3 = 0.5 Précédences : 1 6 4 2 5 3 7 P 3 prec C max P1 T1 P2 T2 T4 T5 P3 T3 T6 T7 5 10 C max = 10 (optimal) P 3 prec, r j C max P1 T1 P2 T2 T4 T6 P3 T3 T5 T7 5 10 C max = 12 (optimal) 7

Q3 prec, r i C max P1 P2 P3 T2 T1 T4 T6 T7 T3 T5 5 10 C max = 10.5 (optimal) P 3 prec, r i L max P1 T1 P2 T2 T4 T6 P3 T3 T5 T7 5 10 L max = 2, U i = 5 8

2 Ordonnancement sur une seule machine 2.1 Critères minimax Remarque préliminaire Sur une seule machine, si r i = 0 pour tout i, et la fonction objectif est une fonction monotone des temps d achèvement, alors les seuls ordonnancements à considérer sont ceux sans préemption et sans temps morts. Conséquence du fait que la fonction objectif ne peut être améliorée si la préemption est autorisée. 1 prec f max f max = max j=1,...,n f j(c j ) f j monotone pour tout j. Notations N = {1,..., n : ensemble des tâches ; S N : tâches non ordonnancées ; p(s) := j S p j ; A = (a ij ) : matrice d adjacence des précédences ; n(i) : nombre de successeurs directs de i. Idées de base de l algorithme Il suffit de construire la séquence optimale des tâches π := (π(1), π(2),..., π(n)). Construction en arrière. Règle : ordonnancer une tâche j S qui n a pas de successeur dans S et a une valeur f j (p(s)) minimale comme dernière tâche de S. Algorithme 4 (1 prec f max - Lawler). pour (i = 1 ; i n ; i++) n(i) = n a ij ; j=1 S = {1,..., n ; p = n p j ; j=1 pour (k = n ; k 1 ; k- -) { trouver j S avec n(j)==0 et f j (p) minimum ; S = S \ {j ; π(k) = j ; p = p p j ; 9

pour (i = 1 ; i n ; i++) { si (a ij == 1) n(i) = n(i) 1 ; Complexité : O(n 2 ) 1 prec; p j = 1; r j f max et 1 prec; pmtn; r j f max Si i j et si r i + p i > r j, alors j ne peut pas commencer avant r j = r i + p i. On peut donc remplacer r j par r j. Supposons que les tâches sont triées topologiquement (si i j, alors i < j). Algorithme 5 (Modifier r j ). pour (i = 1 ; i n ; i++) pour (j = i + 1 ; j n ; j++) si (i j) r j = max{r j, r i + p i Si p i > 0 et i j, alors r j > r i. Si on ordonnance les tâches en ordre croissant de r j tel que les dates d arrivées sont respectées, l ordonnancement est admissible. Un tel ordonnancement peut consister en plusieurs blocs. Un bloc est un ensemble maximal de tâches exécutées sans temps morts entre elles. Supposons que les r j ont été modifiés et les tâches ordonnées suivant ces r j. Algorithme 6 (Blocs({1, 2,..., n)). i = 1 ; j = 1 ; tant que (i n) { t = r i ; B j = ; tant que (r i t and i n) { B j = B j {i ; t = t + p i ; i = i + 1 ; C i = t ; j = j + 1 ; Pour chaque bloc B j nous définissons : s j := min r i i B j p(b j ) := i B j p i t j = t(b j ) := s j + p(b j ) (temps de début) (temps de fin) 10

1 prec; pmtn; r j f max Lemme 7. Pour le problème 1 prec; pmtn; r j f max, il existe un ordonnancement optimal tel que les intervalles [s j, t j ] (j = 1,..., k) construits par l algorithme Blocs sont complètement occupés par des tâches. Conséquence : les blocs peuvent être traités séparément, la solution étant le maximum des valeurs des solutions sur l ensemble des blocs. Considérons un bloc B, avec f max(b) la valeur optimale pour les tâches de B. Nous avons : f max(b) max j B {f max(b \ {j). De plus, f l (t(b)) := min{f j (t(b)) : j B sans successeur dans B f max(b). Construction d un ordonnancement optimal Résoudre le problème pour B \ {l (la solution a une structure de blocs). On peut montrer que l peut être ordonnancé pendant les temps morts de cette structure de blocs. L ordonnancement obtenu a une valeur objectif d au plus : Cette valeur est optimale pour B. Algorithme 8 (1 prec; pmtn; r j f max ). S = {1,..., n ; f max = Decompose(S) ; Procédure 9 (Decompose(S)). max {f max(b \ {l), f l (t(b)) si S = renvoyer ; si S = {i renvoyer f i (r i + p i ) ; sinon { Blocs(S) ; f = ; pour tout B {B 1,..., B j { trouver l tel que f l (t(b)) := min{f j (t(b)) : j B sans successeur dans B; h = Decompose(B \ {l) ; f = max {f, h, f l (t(b)) ; renvoyer f ; 1 prec; p j = 1; r j f max Si les données sont entières, les temps de début et de fin des blocs sont entiers. Si p j = 1 pour tout j, alors la préemption n est pas nécessaire. L algorithme résout donc également 1 prec; p j = 1; r j f max. Si l algorithme est appliqué à 1 prec f max, il est équivalent à l algorithme de Lawler. 11

2.2 Retard maximum 1 r j L max Théorème 10. 1 r j L max est NP-difficile. Mais il existe des cas particuliers polynomiaux... r j = r pour tout j Règle de Jackson : Ordonner les tâches par ordre croissant de date limite (earliest due date (EDD)). Si précédences : modifier les dates limites (voir plus loin). d j = d pour tout j Règle d ordonnancement : Ordonner les tâches par ordre croissant de date de disponibilité. Si précédences : modifier les dates de disponibilité. p j = 1 pour tout j Règle de Horn (1974) : A tout moment, ordonner une tâche disponible avec la plus petite date limite. Si précédences : modifier les dates limites (voir plus loin). Modification des dates limites Si i j et si d j + p j < d i, alors i ne peut pas se terminer après d i = d j + p j. On peut donc remplacer d i par d i. Soit IP (i) l ensemble des prédécesseurs directs de i. Algorithme 11 (Modifier d j ). pour (i = 1 ; i n ; i++) n(i) = 0 ; pour (i = 1 ; i n ; i++) pour tout (j IP (i)) n j = n j + 1 ; F = ; pour (i = 1 ; i n ; i++) si (n i == 0) F = F {i ; tant que (F ) { choisir j F ; pour tout (i IP (j)) { d i = min{d i, d j p j ; n i = n i 1 ; si (n i == 0) F = F {i ; F = F \ {j ; 12

1 prec; pmtn; r j L max Cas particulier de 1 prec; pmtn; r j f max. Résolution directe : Earliest Due Date Ordonnancer les tâches en commençant à la plus petite valeur de r j. A chaque point de décision t donné par une date de disponibilité ou par la fin d une tâche, ordonnancer une tâche j telle que : r j t ; tous les prédécesseurs de j sont ordonnancés ; j a la plus petite date limite modifiée. 1 prec; p j = 1 L max Cas particulier de 1 prec; r j ; p j = 1 f max. Résolution plus efficace (Monma 1982). Commencer par modifier les dates limites. On suppose que toutes les dates limites sont positives (L max 0). Toutes les tâches sont ordonnancées dans l intervalle [0, n], ce qui implique qu aucune tâche j avec d j n n est en retard. Bucket sorting { {j : dj = k if 0 k n 1 B k := {j : d j n if k = n. Algorithme 12 (1 prec; p j = 1 L max ). pour (k = 0 ; k n ; k + +) B k = ; pour (i = 1 ; i n ; i++) si (d i < n) B di = B di {i ; sinon B n = B n {i ; i = 1 ; pour (k = 0 ; k n ; k + +) { tant que ( j B k ) { π(i) = j ; B k = B K \ {j ; i = i + 1 ; 2.3 Flot total pondéré 1 tree w j C j Nous nous intéressons d abord aux arbres sortants (outtree). Pour chaque tâche i, nous définissons : q(i) = w i p i et soit S(i) l ensemble des successeurs (pas nécessairement directs) de i, incluant i. Pour un ensemble de tâches I {1,..., n : w(i) := i I w i, p(i) = i I 13 p i et q(i) = w(i) p(i)

Deux sous-ensembles I, J {1,..., n sont parallèles I J si, pour tout i I, j J, i n est pas un successeur de j et j n est pas un successeur de i. Chaque ordonnancement est donné par une séquence π. Lemme 13. Soit π une séquence optimale et soient I et J deux blocs (ensembles de tâches exécutées consécutivement), tels que I est ordonnancé immédiatement avant J. Soit π la séquence obtenue en échangeant I et J. 1. I J implique q(i) q(j). 2. Si I J et q(i) = q(j) alors π est également optimale. Théorème 14. Soient i et j des tâches telles que i j et q j = max{q k : k S(i). Alors il existe un ordonnancement optimal dans lequel i est exécuté immédiatement avant j. Les conditions du théorème sont satisfaites si nous choisissons une tâche j différente de la racine avec une valeur q j maximale, et son unique parent i. Puisqu il existe un ordonnancement où i est exécuté immédiatement avant j, nous pouvons fusionner les noeuds i et j et les enfants de j deviennent enfants de j. Le nouveau noeud i représente la sous-séquence π i : i, j et aura le label q(i) := q({i, j). Ce processus peut être appliqué récursivement. Notations : E(i) : dernier job de π i ; P (i) : prédécesseur de i dans la relation de précédence, puis prédécesseur de i dans une séquence optimale. Algorithme 15 (1 outtree w j C j ). w(1) = ; pour (i = 1 ; i n ; i++) E(i) = i; J i = {i; q(i) = w(i)/p(i) ; L = {1,..., n ; tant que (L {1) { trouver j L avec la valeur q(j) la plus grande ; f = P (j) ; trouver i tel que f J i ; w(i) = w(i) + w(j) ; p(i) = p(i) + p(j) ; q(i) = w(i)/p(i) ; P (j) = E(i) ; E(i) = E(j) ; J i = J i J j ; L = L \ {j ; 1 intree w j C j Réduction à un problème 1 outtree w jc j P : i j pour P ssi j i pour P. w j = w j pour j = 1,..., n. 14

FIG. 1 1 outtree w j C j 15

π : 1,..., n optimale pour P ssi π : n,..., 1 optimale pour P. ( ) ( ) n n n f (π ) = ( w i ) p j = ( w i ) p j w i p i i=1 n = j i p j ) i=1 ( n ( ( n w i w i) i=1 j i i=1 j=1 = f(π) a. j>i p j ) i=1 n w i p i i=1 1 w j C j Réduction à un problème 1 outtree w j C j en ajoutant une racine r avec un temps d exécution très petit comme tâche artificielle. Règle du quotient de Smith Ordonner les tâches en ordre croissant de p j /w j (si tous les w j > 0). 1 C j Règle de Smith Ordonner les tâches en ordre croissant de p j (shortest processing time first). 1 r j ; pmtn C j Règle de Smith modifiée A chaque date de disponibilité ou de fin d une tâche, ordonnancer une tâche non terminée disponible avec le plus petit temps d exécution restant. Remarque : 1 r j ; pmtn w j C j est NP-difficile. 2.4 Nombre pondéré de tâches en retard 1 r j ; p j = 1 w j U j Nous nous intéressons tout d abord au problème plus général 1 r j ; p j = 1 f j, avec f j fonction monotone de C j pour tout j. Si le créneau de temps t est affecté à la tâche i, alors le coût correspondant est f i (t + 1). Puisque les f j sont monotones, les tâches devraient être ordonnancées le plus tôt possible. Supposons que les tâches sont ordonnées de sorte que r 1 r 2 r n. Les n créneaux auxquelles les tâches peuvent être ordonnancées au plus tôt peuvent être calculées par : Algorithme 16 (Créneaux). t 1 = r 1 ; pour (i = 2 ; i n ; i + +) t i = max{r i,..., t i 1 + 1 ; Il existe un ordonnancement qui utilise tous les créneaux de temps t i (i = 1,..., n). Définissons un graphe biparti complet avec V 1 = {1,..., n, V 2 = {t 1,..., t n, 16

ainsi que des coûts { fi (t c ij = j + 1) si r i t j, sinon. 1 r j ; p j = 1 f j se réduit à un problème d affectation dans ce graphe biparti, et peut donc être résolu en O(n 3 ). 1 p j = 1 w j U j Algorithme qui construit un ensemble S de tâches à temps. Tâches de S ordonnancées en ordre croissant de dates limites. Les tâches n appartenant pas à S sont en retard et peuvent être exécutées dans un ordre arbitraire après les tâches de S. Idée de l algorithme : essayer d ordonnancer les tâches dans l ordre des dates limites ; si la tâche suivante i à ordonnancer est en retard, on ordonnance i et on retire une tâche k avec la plus petite valeur w k de S. Nous supposons que 1 d 1 d 2 d n. t indique le temps courant. Algorithme 17 (1 p j = 1 w j U j ). t = 1 ; S = ; pour (i = 1 ; i n ; i + +) { si (d i t) S = S {i ; t = t + 1 ; sinon { retirer k de S où k est le plus grand index avec w k minimal ; S = S {i ; Complexité : O(n log n). Pour 1 p j = 1 U j, la complexité peut-être réduite à O(n). 1 U j Construire un ensemble S maximal de tâches à temps. Tâches de S ordonnancées en ordre croissant de dates limites. Les tâches n appartenant pas à S sont en retard et peuvent être exécutées dans un ordre arbitraire après les tâches de S. Idée de l algorithme : essayer d ordonnancer les tâches dans l ordre des dates limites ; si la tâche suivante i à ordonnancer est en retard, on retire une tâche k avec le plus grand temps d exécution de S. Algorithme 18 (1 U j ). t = 0 ; S = ; 17

pour (i = 1 ; i n ; i + +) { S = S {i ; t = t + p i ; si (t > d i ) { trouver j S qui maximise p j ; S = S \ {j ; t = t p j ; 2.5 Retard pondéré total 1 w j T j 1 T j est NP-difficile (1 pmtn T J également). 1 r j ; p j = 1 w j T j peut être résolu en O(n 3 ) (cas particulier de 1 r j ; p j = 1 f j ), mais 1 prec; p j = 1 T j est NP-difficile. Algorithme pseudo-polynomial de Lawler pour 1 w j T j si les poids w j sont acceptables pour les temps d exécution p j, c est-à-dire si p i < p j implique w i w j pour tout i, j = 1,..., n. Lemme 19. Soient des poids arbitraires, et soit π une séquence optimale pour les dates limites d 1,..., d n, et soit C j le temps de fin de la tâche j, j = 1,..., n, pour cette séquence. Soient d j choisis de sorte que min{d j, C j d j max{d j, C j. Alors toute séquence π optimale pour les dates limites d 1,..., d n est aussi optimale par rapport à d 1,..., d n. Lemme 20. Supposons que les poids w j sont acceptables pour les temps d exécution p j. Alors il existe une séquence optimale π dans laquelle i précède j si d i d j et p i < p j, et dans laquelle toutes les tâches à temps sont en ordre croissant de dates limites. Théorème 21. Soient j = 1,..., n des tâches avec d 1 d 2 d n et des poids acceptables. Soit k une tâche avec le plus grand temps d exécution. Alors il existe une tâche j k telle que, dans un ordonnancement optimal, toutes les tâches ν = 1,..., j avec ν k sont ordonnancées avant k et les tâches restantes sont ordonnancées après k. L algorithme calcule, pour tout j k, un ordonnancement optimal dans lequel l ensemble de tâches I 1 = {1,..., j \ {k est ordonnancé avant k et l ensemble I 2 = {j + 1,..., n est ordonnancé après k. Pour chaque j, le problème est divisé en deux sous-problèmes. Dans le premier problème, les tâches de I 1 doivent être ordonnancées optimalement à partir du temps t 1 = 0. Dans le deuxième problème, les tâches de I 2 doivent être ordonnancées optimalement à partir du temps t 2 = j p i. i=1 Procédure récursive Sequence(t,I) qui calcule un ordonnancement optimal σ pour l ensemble de tâches I en commençant au temps t. 18

Algorithme 22 (Sequence(t, I)). Si (I = ) σ := ; Sinon { Soient i 1 < i 2 < < i r les tâches de I ; Trouver i k tel que p ik = max{p i : i I ; f = ; Pour (j = k + 1 ; j r ; j + +) { I 1 = {i ν : 1 ν j; ν k ; t 1 = t ; σ 1 = Sequence(t 1, I 1 ) ; I 2 = {i ν : j < ν r ; t 2 = t + j p iν ; σ 2 = Sequence(t 2, I 2 ) ; σ = σ 1 i k σ 2 ; Si f(σ, t) < f σ = σ ; f = f(σ, t) ; Renvoyer σ ; Algorithme 23 (1 w j T j ). ν=1 σ = Sequence(0, {1,..., n); Complexité : O(n 3 p) ou O(n 4 p max ) avec p = n p j et p max = max n p j. j=1 j=1 19

2.6 Complexité des problèmes sur une machine Graphe des réductions Résultats de complexité http ://www.mathematik.uni-osnabrueck.de/research/or/class/dateien/classes/ein_ma/ein_ma/ 20

3 Ordonnancement sur des machines parallèles P C i et R C i sont les seuls problèmes avec des temps d exécution arbitraires pour lesquels un algorithme polynomial est connu dans le cas où la préemption n est pas autorisée. P 2 C max et P 2 w i C i sont NP-difficiles. Nous allons donc principalement étudier des problèmes avec préemption ou des temps d exécution unitaires. 3.1 Tâches indépendantes Machines identiques Considérons n tâches J i avec des temps d exécution p i (i = 1,..., n) à exécuter sur m machines parallèles identiques M 1,..., M m. P pmtn C max Une borne inférieure pour P pmtn C max est donnée par { ( n ) LB := max max p i, p i /m. i Un ordonnancement qui atteint cette borne peut être obtenu en un temps O(n) : Remplir les machines successivement avec les tâches dans un ordre arbitraire. Quand la borne est atteinte, diviser la tâche en deux parties et ordonnancer la deuxième partie de la tâche préemptée au temps 0 sur la machine suivante. Vu que p i LB pour tout i, les deux parties d une tâche préemptée ne se chevauchent pas. i=1 Exemple : m = 3 i 1 2 3 4 5 p i 4 5 3 5 4 1 2 2 3 4 4 5 0 LB=7 P pmtn; r i C max et P pmtn L max Cas particuliers de Q pmtn; r i L max. O(n log n + mn) (voir plus loin). P pmtn; r i L max Considérons tout d abord la version décision du problème : Etant donné une constante L, existe-t-il un ordonnancement tel que n max L i = max n {C i d i L? i=1 i=1 21

De plus, nous voulons trouver un tel ordonnancement s il existe. La condition est satisfaite ssi C i d L i := L + d i pour tout i = 1,..., n. Chaque tâche J i doit être exécutée dans l intervalle [r i, d L i ] (fenêtres de temps, time windows). Nous allons montrer que le problème d ordonnancer avec préemption n tâches sur m machines identiques de sorte que les tâches sont exécutées pendant leur fenêtre de temps [r i, d i ] se ramène à un problème de flot maximum. Soient t 1 < t 2 < < t r la séquence ordonnée des différentes valeurs de r i et d i. Considérons les intervalles Construction du graphe : I K := [t K, t K+1 ] de longueur t K+1 t K pour K = 1,..., r 1. Noeuds : Un noeud par tâche J i et par intervalle I K, plus deux noeuds artificiels s et t. Arcs : (s, J i ) de capacité p i pour tout i = 1,..., n. (I K, t) de capacité mt K pour tout K = 1,..., r 1. (J i, I K ) si J i peut être exécuté pendant I K (r i t K et t K+1 d i ), de capacité T K. Il existe un ordonnancement satisfaisant toutes les fenêtres de temps ssi le flot maximum a une valeur n p i. i=1 Complexité : O(n 3 ). Pour résoudre P pmtn; r i L max, recherche par bissection sur la valeur de L. Supposons que d i r i + n max n p j, ce qui implique j=1 Algorithme en n max n p j L max n max n p j. j=1 j=1 O(n 3 (log n + log 1 ɛ + log( n max j=1 p j)) pour résoudre le problème avec une erreur absolue d au plus ɛ. P p i = 1; r i L max On suppose que les tâches sont ordonnées de sorte que r 1 r 2 r n. 22

r i entiers : ordonnancer dans l ordre des dates limites d i croissantes. Plus précisément : si au temps courant toutes les machines ne sont pas occupées et qu il y a une tâche J i avec r i t i, on ordonnance une telle tâche avec la date limite la plus petite. Complexité O(n log n). Cette approche ne fonctionne pas si les r i ne sont pas entiers. Considérons l exemple suivant avec m = 2. i 1 2 3 4 r i 0 0.2 0.5 0.5 d i 2 3 1.9 3 M1 M2 1 3 2 4 0.2 0.5 1 1.9 2 FIG. 2 Earliest Due Date L max = 0.1 M1 1 2 M2 3 4 0.2 0.5 1 1.9 2 FIG. 3 Un meilleur ordonnancement L max = 0.4 Machines uniformes n tâches J i (i = 1,..., n) à ordonnancer sur m machines parallèles uniformes M j (j = 1,..., m). Les machines ont des vitesses différentes s j (j = 1,..., m). L exécution de la tâche J i sur la machine M j dure p i /s j unités de temps. Hypothèses : 1 = s 1 s 2... s m et p 1 p 2 p n. Q pmtn C max Soient P i = p 1 + + p i et S j = s 1 + + s j pour i = 1,..., n et j = 1,..., m. Nous supposons que n m. Condition nécessaire pour exécuter toutes les tâches dans l intervalle [0, T ] : i.e. P n /S m T. P n = p 1 + + p n s 1 T + s 2 T + + s m T = S m T 23

De même, P j /S j T pour j = 1,..., m 1, parce que P j /S j est une borne inférieure sur le temps nécessaire pour les tâches J 1,..., J j. On en déduit que w := max{ max m 1 P j/s j, P n /S m j=1 est une borne inférieure sur C max. Nous allons construire un ordonnancement qui atteint cette borne. Etant donné un ordonnancement partiel jusqu au temps t, le niveau p i (t) de la tâche i au temps t est la portion de i pas encore exécutée. Au temps t, l algorithme niveau appelle la procédure affectation(t) qui associe les tâches aux machines. Les machines continuent avec cette affectation de tâches jusqu à un temps s > t où la procédure est répétée. Algorithme 24 (niveau). t = 0 ; tant qu il existe une tâche i avec p i (t) > 0 { affectation(t) ; t 1 = min{s > t : une tâche se termine au temps s. t 2 = min{s > t : il existe deux tâches i, j telles que p i (t) > p j (t) et p i (s) = p j (s) ; t = min{t 1, t 2 ; Algorithme 25 (affectation(t)). J = {i : p i (t) > 0 ; M = {M 1,..., M m ; marquer toutes les tâches dans J et les machines dans M comme non affectées. tant qu il existe des tâches et des machines non affectées { Trouver l ensemble I J des tâches avec le plus grand niveau ; r = min{ M, J ; Affecter les tâches de I à exécuter conjointement aux r machines les plus rapides de M ; J = J \ I ; Eliminer les r machines les plus rapides de M ; Pour exécuter r tâches 1,... ; r conjointement sur M 1,..., M l (r l) pendant une période de temps T, nous exécutons chaque tâche pendant une période de T/r unités de temps sur chaque machine. Complexité : O(n 2 m). Amélioré par Gonzalez et Sahni (1978) : O(n + m log n) et au plus 2(m 1) préemptions. Conséquence : des tâches 1,..., n avec des temps d exécution p 1,..., p n peuvent être ordonnancées dans un intervalle de longueur T ssi p i T h(a) pour tout A {1,..., n avec i A { S A si A m h(a) = sinon. S m 24