CSI 3505 Algorithmes Voraces Algorithmes voraces pour lordonnancement

  • Slides: 14
Download presentation
CSI 3505 Algorithmes Voraces Algorithmes voraces pour l'ordonnancement des (tâche) travaux: problème de minimisation

CSI 3505 Algorithmes Voraces Algorithmes voraces pour l'ordonnancement des (tâche) travaux: problème de minimisation de l'attente n clients Un seul serveur ti: temps que prendra le client i (connu a-priori) On veut minimiser la somme totale des attentes des clients: n (temps passé dans le système par le client i) i=1 12/29/2021 Dr. Nejib Zaguia 1

CSI 3505 Algorithmes Voraces n Exemple: t 1 = 5 t 2 = 10

CSI 3505 Algorithmes Voraces n Exemple: t 1 = 5 t 2 = 10 t 3 = 3 Il y a 6 ordres possibles: 123: 132: 213: 231: 312: 321: 5 + (5 + 10) + (5 + 10 + 3) = 38 5 + (5 + 3) + (5 + 3 + 10) = 31 10 + (10 + 5) + (10 + 5 + 3) = 43 10 + (10 + 3) + ( 10 + 3 + 5) = 41 3 + (3 + 5) + (3 + 5 + 10) = 29 3 + (3 + 10) + ( 3 + 10 + 5 ) = 34 Algorithme vorace: A chaque étape, ajouter à la fin de la liste le client demandant le moins de service entre tous ceux qui restent. 12/29/2021 Dr. Nejib Zaguia 2

CSI 3505 Algorithmes Voraces Théorème. L'algorithme vorace donne toujours la solution optimale. Preuve. Soit

CSI 3505 Algorithmes Voraces Théorème. L'algorithme vorace donne toujours la solution optimale. Preuve. Soit I = (i 1, i 2, …, in) une permutation quelconque des entiers {1, 2, …, n}. Si les clients sont servis dans l'ordre I, le temps total que tous les clients passent dans le système: T(I) = ti 1 + (ti 1 + ti 2 ) + (ti 1 + ti 2 + ti 3 ) + …. . n = (n - k + 1) tik k=1 12/29/2021 Dr. Nejib Zaguia 3

CSI 3505 Algorithmes Voraces Supposons que dans cet ordre I: 1 2 …. .

CSI 3505 Algorithmes Voraces Supposons que dans cet ordre I: 1 2 …. . a ………. . . b …………. … n On a: a<b et tia > tib Si on inverse les positions de ces deux clients: I’: 1 2 …. . b ………. . . a …………. … n ti 1 ti 2 …. . tib ………. . . tia …………. … tin n T(I') = (n - a + 1) tib + (n - b + 1) tia + 12/29/2021 Dr. Nejib Zaguia (n - k + 1) tik k=1 k {a, b} 4

CSI 3505 Algorithmes Voraces n Comparons les deux ordres: n T(I) = (n -

CSI 3505 Algorithmes Voraces n Comparons les deux ordres: n T(I) = (n - k + 1) tik k=1 n T(I') = (n - a + 1) tib + (n - b + 1) tia + (n - k + 1) tik k=1 k {a, b} T(I) - T(I') = (n - a + 1) (tia- tib) + (n - b + 1) (tib - tia) = (b-a) (tia- tib) > 0 Donc l’ordre I’ d’exécution des tâches est meilleur que I 12/29/2021 Dr. Nejib Zaguia 5

CSI 3505 Algorithmes Voraces n n Conclusion: L’algorithme vorace donne toujours une solution optimale.

CSI 3505 Algorithmes Voraces n n Conclusion: L’algorithme vorace donne toujours une solution optimale. Une solution qui n’est pas construite avec une méthode vorace ne peut être optimale. 12/29/2021 Dr. Nejib Zaguia 6

CSI 3505 Algorithmes Voraces Ordonnancement avec échéances n tâches a exécuter - chacune en

CSI 3505 Algorithmes Voraces Ordonnancement avec échéances n tâches a exécuter - chacune en temps unitaire une et une seule tâche est exécuter a chaque instant t = 1, 2 …. La tâche i apporte un gain gi > 0 si et seulement si elle est exécutée au plus tard a l'instant di On n’est pas obligé d’exécuter toutes les tâches Exemple 12/29/2021 n=4 i gi di 1 50 2 Dr. Nejib Zaguia 2 10 1 3 15 2 4 30 1 7

CSI 3505 Algorithmes Voraces Il y des séquences qui ne donne aucun gain «

CSI 3505 Algorithmes Voraces Il y des séquences qui ne donne aucun gain « 0 » … les autres Séq. . . possibles: gain 1 50 i 1 2 3 4 2 10 gi 50 10 15 30 3 15 di 2 1 4 30 1, 3 65 Les séquences 1 et 1, 2, 3 2, 1 60 correspondent au même gain. Il 2, 3 25 n’y a que la tâche 1 qui donne un 3, 1 65 gain. 4, 1 80 4, 3 45 12/29/2021 Dr. Nejib Zaguia 8

CSI 3505 Algorithmes Voraces Ensemble de tâche T est réalisable s’il existe au moins

CSI 3505 Algorithmes Voraces Ensemble de tâche T est réalisable s’il existe au moins un ordre des tâche de T (séquence réalisable) et qui permet d'exécuter toutes les tâches de l'ensemble T avant leur échéances Un ensemble de tâche T est réalisable si est seulement si la séquence croissante des tâches de T triées par leurs temps d’échéance est réalisable 12/29/2021 Dr. Nejib Zaguia 9

CSI 3505 Algorithmes Voraces Supposons que S est réalisable suivant l’ordre: t 1 t

CSI 3505 Algorithmes Voraces Supposons que S est réalisable suivant l’ordre: t 1 t 2 … ti … tj … tk Et que d(tj) < d(ti), en échangeant ti et tj dans l’ordre S, on obtient un ordre réalisable t 1 t 2 … tj … ti … tk n En utilisant d’une façon répétitive ces échanges on arrive aux mêmes tâches dans l’ordre croissant, et qui est aussi réalisable. L’inverse est évidemment vrai. 12/29/2021 Dr. Nejib Zaguia 10

CSI 3505 Algorithmes Voraces Conséquence: Comment savoir si un ensemble de tâches est réalisable?

CSI 3505 Algorithmes Voraces Conséquence: Comment savoir si un ensemble de tâches est réalisable? n Il suffit de tester les tâches dans un seul ordre: l’ordre croissant des tâches de T triées par leurs temps d’échéance 12/29/2021 Dr. Nejib Zaguia 11

CSI 3505 Algorithmes Voraces Algorithme vorace: Construire l'ensemble des tâches à exécuter étape par

CSI 3505 Algorithmes Voraces Algorithme vorace: Construire l'ensemble des tâches à exécuter étape par étape, Ajouter, a chaque étape, la tâche non encore considérée ayant la plus grande valeur de gi a condition que le nouveau ensemble de tâches soit réalisable. Combien d’étapes? 12/29/2021 n-1 Dr. Nejib Zaguia 12

CSI 3505 Algorithmes Voraces trier l’ensemble des tâches T en ordre décroissant relativement au

CSI 3505 Algorithmes Voraces trier l’ensemble des tâches T en ordre décroissant relativement au gain S: = répéter Choisir la tâche e T avec le gain le plus grand T : = T - e Si S e est réalisable S : = S e jusqu'a ce que T est vide 12/29/2021 Dr. Nejib Zaguia 13

CSI 3505 Algorithmes Voraces Complexité - Cas Pire taille du problème: n, le nombre

CSI 3505 Algorithmes Voraces Complexité - Cas Pire taille du problème: n, le nombre de tâches opération: comparaisons Trier les tâches: O(n log n) A chaque pas: (i-1) comparaisons pour ajouter la i-ème tâche i comparaisons pour vérifier si l'ensemble est réalisable n [(i-1) + i] i=2 12/29/2021 = n 2 -1 Dr. Nejib Zaguia 14