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

Leçon 10 Mesurer lefficacité des algorithmes. Plan du cours Comment comparer ? Comparer pgm vs algorithme La taille dun problème Le temps dexécution Grand.

Présentations similaires


Présentation au sujet: "Leçon 10 Mesurer lefficacité des algorithmes. Plan du cours Comment comparer ? Comparer pgm vs algorithme La taille dun problème Le temps dexécution Grand."— Transcription de la présentation:

1 leçon 10 Mesurer lefficacité des algorithmes

2 Plan du cours Comment comparer ? Comparer pgm vs algorithme La taille dun problème Le temps dexécution Grand O Temps vs espace mémoire Lefficacité des algorithmes de fouille Lefficacité des algorithmes de tri NP complétude

3 Comment comparer ? 2 algorithmes faisant la même tâche –Lequel est plus performant? Temps dexécution de leur implémentation –Quelles données utiliser? On cherche des différences significatives

4 Programme vs algorithme Mieux vaut analyser lalgo –Le pgm fait des choix style –La machine Certaines opérations sont + rapides –Les données testées Lanalyse de la complexité doit faire abstraction des 3 éléments ci-dessus

5 La taille dun problème La complexité peut sexprimer en terme de la taille du problème: –Peut référer aux nombres déléments à traiter Un algorithme pour trier ou fouiller une liste de N nombres Algorithme de Hanoi pour N tours: N sera la taille –Peut référer à la grandeur dune quantité traitée Un algorithme pour déterminer la primalité dun nombre: N sera le nombre

6 Temps dexécution Parler du nombre dinstructions exécutées –Prendre le groupe dinstructions les + exécutées –Sexprime souvent en terme de la taille du problème For(i=1; i<=n; i++) for (j=1; j<=i; j++) for (k=1; k<=5; k++) Exécuter tâche T Quelle est la complexité de cet algorithme, sil faut t unités de temps pour effectuer T ?

7 Grand O (pour ordre de grandeur) On doit exprimer comment la complexité croit en fonction de la taille du problème –Cest une question de proportionnalité –Les complexités n et 2n+5 sont du même ordre de grandeur –n et n 2 sont dordres différents Les ordres de grandeur –O(log n) –O(n) –O(n log n) –O(n k ) –O(2 n ) Une complexité O(f(n)) signifie un temps dexécution pas plus grand que c*f(n).

8 log 2 n N N log n N2N N3N n2n

9

10 Règles O(f(n)) = O(f(n)+g(n)), si O(f(n))> O(g(n)) O(f(n)) = O(k*f(n)) O(f(n))+O(g(n)) = O(f(n)+g(n))

11 Complexité Analyse des pires cas Analyse en moyenne

12 Les algorithmes de fouille Séquentielle –O(n) Binaire –O(log n)

13 Les algorithmes de tri De complexité O(n 2 ) De complexité O(n logn) De complexité O(n) Une adresse intéressante: –http://lwh.free.fr/pages/algo/tri/tri.htmhttp://lwh.free.fr/pages/algo/tri/tri.htm

14 Trier un tableau Le tri rapide: tri récursif comportant 3 étapes –Étape 1: Partition autour du pivot Un élément pivot du tableau T à trier est choisi. Le tableau T est réorganisé afin que: –les éléments <= au pivot se retrouvent avant le pivot –Les élémenst > pivot se retrouvent après le pivot –Étape2 Un appel récursif est demandé pour trier les éléments avant le pivot –Étape 3 Un appel récursif est demandé pour trier les éléments après le pivot La conséquence de létape 1 est que lélément pivot se retrouve à sa position finale (Lorsque T est complètement trié).

15 Tri Rapide

16 Fonctionnement de la fonction pivot 1/2 éléments <= X Xéléments > X Ce à quoi il faut arriver X> X À une certaine étape du processus <= X??? PremierPivotDernier PremierDernier pk p pointe sur le dernier élément connu pour lequel T[p] <= Pivot à sa droite, les éléments sont >= Pivot. k pointe sur le premier élément non encore traité if (T[k] <= Pivot) { p++; Échanger(T[k], T[p]); }

17 Fonctionnement de la fonction pivot 2/2 Après avoir parcouru le tableau X> X <= X PremierDernier p éléments <= XX éléments > X PremierPivot En échangean T[Premier] et T[p] on obtient Dernier

18 Le code

19 Analyse de complexité Tri bulle ou Tri sélection –O(N 2 ) –Si N=10 6 –N 2 = –Si 10 6 op /sec –exige 11,5 jours Tri rapide –O(N log(N)) –Si N=10 6 –Nlog(N) = 6N –Si 10 6 op /sec –exige 6 secondes

20 Première passe : 10 0

21 Première passe : résultat

22 Deuxième passe : 10 1

23 Deuxième passe : résultat

24 NP complétude Lisez les articles distribués en classe


Télécharger ppt "Leçon 10 Mesurer lefficacité des algorithmes. Plan du cours Comment comparer ? Comparer pgm vs algorithme La taille dun problème Le temps dexécution Grand."

Présentations similaires


Annonces Google