Mesurer l’efficacité des algorithmes

Slides:



Advertisements
Présentations similaires
Fonctionnement d’une machine à pile :
Advertisements

Chap. 4 Recherche en Table
Structures de données et complexité
Introduction à l’Algorithmique
Calculs de complexité d'algorithmes
GEF 435 Principes des systèmes d’exploitation
Chapitre 6: Les procédures et les fonctions
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Hiérarchie mémoire Contrôle Entrées Mémoire Chemin de données Sorties.
Mémoire & Processus Cours SE - SRC
Le remplacement moléculaire
Séminaire Florin Périer Alain Gély LIMOS
Regards sur 50 ans de lenseignement des mathématiques à lécole primaire Daprès Michel FAYOL Le nombre au cycle 2 (scéren)
Initiation à la programmation et algorithmique cours 3
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Références Bibliographiques
SECURITE DU SYSTEME D’INFORMATION (SSI)
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Algorithmes Branch & Bound
Les algorithmes: complexité et notation asymptotique
Methode de Tri efficace
IFT-2000: Structures de Données Introduction à lanalyse dalgorithmes Dominic Genest, 2009.
Algorithmique et Programmation
Standard Template Library (STL)
Allocation de la mémoire Tâche à faire Attribuer de lespace mémoire Charger Code et Données Exécuter La tâche -Tenir à jour une carte de lespace libre/occupé.
Déroulé de formation B1V
Analyse d’algorithmes
Structures de données IFT-2000
Systèmes Superscalaires et VLIW
IFT Complexité et NP-complétude
FSAB 1402: Informatique 2 Complexité Calculatoire
Analyse des algorithmes: une introduction. La question abord é e dans ce chapitre est la suivante: Comment choisir parmi les diff é rentes approches pour.
Efficacité des algorithmes
Efficacité des algorithmes
Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI.
Les Algorithmes de Tri Introduction Tri par Sélection
Ordonnancement de tâches
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
ASI 3 Méthodes numériques pour l’ingénieur
Analyse des Algorithmes
III. Récursivité Principe et exemples
Analyse d’algorithmes
Conception et analyse des algorithmes
Efficacité des algorithmes
………………………………………..………………..……………
Chapitre 21 Collections Partie II Algorithmes  Algorithmes sur des List : sort binarySearch reverse shuffle fill copy  Algorithmes sur des Collections.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Chapitre 6 Les traitements avancés
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Les Machines RAM.
ETNA – 1ème année Guillaume Belmas –
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI.
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Test.
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
Architecture et technologie des ordinateurs II
CSI2510 Structures de données et algorithmes Analyse des algorithmes
Files de priorité (Priority Queue)
Algorithmes parallèles
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Chapitre 12 Surveillance des ressources et des performances Module S41.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Test.
Test.
test
Test test.
Transcription de la présentation:

Mesurer l’efficacité des algorithmes leçon 10 Mesurer l’efficacité des algorithmes

Plan du cours Comment comparer ? Comparer pgm vs algorithme La taille d’un problème Le temps d’exécution Grand O Temps vs espace mémoire L’efficacité des algorithmes de fouille L’efficacité des algorithmes de tri NP complétude

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

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

La taille d’un problème La complexité peut s’exprimer 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 d’une quantité traitée Un algorithme pour déterminer la primalité d’un nombre: N sera le nombre

Temps d’exécution Parler du nombre d’instructions exécutées Prendre le groupe d’instructions les + exécutées S’exprime 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, s’il faut t unités de temps pour effectuer T ?

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

10 100 1000 10000 100000 1000000 1 log2n 3 6 9 13 16 19 N 102 103 104 105 106 N log n 30 664 9965 107 N2 108 1010 1012 N3 109 1015 1018 2n 1030 10301 103010 1030103 10301030

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

Complexité Analyse des pires cas Analyse en moyenne

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

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

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

Tri Rapide

Fonctionnement de la fonction pivot 1/2 Ce à quoi il faut arriver éléments <= X X éléments > X Premier Pivot Dernier À une certaine étape du processus X <= X > X ??? Premier Dernier p k 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]); }

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

Le code

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

Première passe : 100 17 8 29 58 12 51 66 2 70 95 52 84 5 43 80 44 68 16 7 73 11 39 32 45 26 91 10 32 63 24 10 91 52 3 24 45 26 57 68 89 57 89 80 11 2 73 44 5 16 7 58 39 3 70 51 12 43 84 95 66 17 8 29 63

Première passe : résultat 32 63 10 91 52 3 24 45 26 57 68 89 80 11 2 73 44 5 16 7 58 39 70 51 12 43 84 95 66 17 8 29

Deuxième passe : 101 70 10 80 11 51 12 91 2 52 32 43 73 3 63 84 44 24 95 5 45 66 16 26 17 7 8 17 57 7 16 58 8 58 5 12 29 45 57 68 89 68 3 11 26 39 44 52 66 73 84 95 29 39 2 10 24 32 43 51 63 70 80 91 89

Deuxième passe : résultat 8 17 7 16 58 5 12 29 45 57 68 89 3 11 26 39 44 52 66 73 84 95 2 10 24 32 43 51 63 70 80 91

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