Complexité des algorithmes (1) Influence de la taille des données

Documents pareils
ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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

Algorithmique et Programmation

Chapitre 7. Récurrences

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

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

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

Sites web éducatifs et ressources en mathématiques

Programmation linéaire

Quelques Algorithmes simples

Algorithmique I. Algorithmique I p.1/??

1 Recherche en table par balayage

Table des matières. I Mise à niveau 11. Préface

Continuité et dérivabilité d une fonction

Recherche dans un tableau

Plus courts chemins, programmation dynamique

Corrigé des TD 1 à 5

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

ARBRES BINAIRES DE RECHERCHE

Génération automatique de procédures numériques pour les fonctions D-finies

Bases de programmation. Cours 5. Structurer les données

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Introduction à MATLAB R

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Programme de la classe de première année MPSI

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

4D v11 SQL Release 5 (11.5) ADDENDUM

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.

Représentation d un entier en base b

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Tests non-paramétriques de non-effet et d adéquation pour des covariables fonctionnelles

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

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Rappels sur les suites - Algorithme

CORRECTION EXERCICES ALGORITHME 1

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

Chapitre 5 : Flot maximal dans un graphe

4. Les structures de données statiques

TP 7 : oscillateur de torsion

Polynômes à plusieurs variables. Résultant

Calcul Formel et Numérique, Partie I

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

Algorithmes récursifs

Chapitre 6. Fonction réelle d une variable réelle

Représentation des Nombres

Documentation d information technique spécifique Education. PGI Open Line PRO

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

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

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

Chaînes de Markov au lycée

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

Les arbres binaires de recherche

Limitations of the Playstation 3 for High Performance Cluster Computing

Soutenance de stage Laboratoire des Signaux et Systèmes

Manuel de validation Fascicule v4.25 : Thermique transitoire des structures volumiques

Dans une année, il y a 12 mois. Dans une année, il y a 52 semaines. Dans une année, il y a 4 trimestres. Dans une année, il y a 365 jours.

Fonctions de plusieurs variables

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

BeSpoon et l homme Connecté

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

I. Polynômes de Tchebychev

Annexe 6. Notions d ordonnancement.

Limites finies en un point

Equipement. électronique

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Correction TD algorithmique

CCP PSI Mathématiques 1 : un corrigé

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

Chapitre 1. L intérêt. 2. Concept d intérêt. 1. Mise en situation. Au terme de ce chapitre, vous serez en mesure de :

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Quelques tests de primalité

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:


Pascal Viot Laboratoire de Physique Théorique des Liquides, Boîte 121, 4, Place Jussieu, Paris Cedex 05 viot@lptl.jussieu.

Modèle de calcul des paramètres économiques

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Plan du cours Cours théoriques. 29 septembre 2014

Modèles et Méthodes de Réservation

IFT3245. Simulation et modèles

Cours de Master Recherche

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Optimisation Discrète

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

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Annexe commune aux séries ES, L et S : boîtes et quantiles

Adama MBODJI MBODJ.SYSTEM

Le partage de clés cryptographiques : Théorie et Pratique

Informatique Générale

Bureau : 238 Tel : dominique.muller@upmf-grenoble.fr

Transcription:

Nour-Eddine Oussous, Éric Wegrzynowski Introduction Motivation Objectifs Exemple 2 Le pire, le meilleur et le moyen Classes de complexité Taux de croissance 24 septembre 2008 Motivation Coût d un algorithme L exécution d un programme a toujours un coût. On distingue habituellement deux coûts : le temps d exécution : la complexité temporelle (point sensible) l espace mémoire requis : la complexité spatiale Historique Vitesse µprocesseur Mémoire Fin 70 10 MHz 16 ko 40 4000 Fin 90 400 MHz 64 Mo 2.5 16 Fin 00 1 GHz 1 Go Fin 04 3 GHz 1 Go Motivation Influence de la taille des données Ces coûts c dépendent de la taille n des données à traiter c = f (n) f étant une fonction de N dans R

Objectifs Proposer des méthodes pour estimer le coût d un algorithme comparer deux algorithmes sans avoir à les programmer Estimer l influence de la taille des données n sur les ressources nécessaires c. c = f (n) Somme des éléments d un tableau (algo) 1 // Donnee : un t a b l e a u A i n d e x e de 1 a n d e n t i e r s 2 // S o r t i e : Σ n 1 A[i] 3 Somme(A ) : 4 s := 0 5 {s = 0 k=1 A[k]} 6 pour i v a r i a n t de 1 a n f a i r e 7 s := s + A[i] 8 {s = ik=1 A[k]} 9 f i n pour 10 {s = Σ n k=1 A[k]} Somme des éléments d un tableau (analyse) Le temps de calcul de la somme dépend évidemment 1. de la taille n du tableau 2. et du nombre d opérations élémentaires effectuées affectations additions d entiers accès à un élément du tableau Somme des éléments d un tableau (analyse) En notant t := le temps d une affectation d entiers t + le temps d une addition de deux entiers t [ ] le temps d un accès à un élément du tableau a(n) le nombre d affectations pour un tableau de taille n b(n) le nombre d additions pour un tableau de taille n c(n) le nombre d accès pour un tableau de taille n le temps T (n) de calcul s exprime par T (n) = a(n) t := + b(n) t + + c(n) t [ ]

Somme des éléments d un tableau (analyse) La ligne 7 de l algorithme montre que b(n) = c(n) et en tenant compte de la ligne 4 a(n) = 1 + b(n) Somme des éléments d un tableau (analyse) À chaque étape i de la boucle pour, il y a une addition donc pour les n étapes il y a b(n) = additions n 1 = n i=1 Le coût de l algorithme Somme est donc donc T (n) = b(n) (t := + t + + t [ ] ) + t := Il suffit donc de déterminer b(n). T (n) = n (t := + t + + t [ ] ) + t := soit de la forme T (n) = α n + β α et β ne dépendant pas de n, mais uniquement du coût des opérations élémentaires. Exemple 2 Insertion d un élément dans un tableau trié (algo) Données : un tableau A[1..MAX ], un indice n > 1 CU : la tranche A[1..n 1] est triée But : placer l élément A[n] à sa place dans la tranche A[1..n] Var. locales : i i n s e r e r (A,n ) : i := n {A[1..i 1] t r i é, A[i] < A[i + 1..n], A[i + 1..n] t r i é } t a n t que i > 1 e t A[i] < A[i 1] f a i r e echanger (A[i],A[i 1]) dec (i ) {A[1..i 1] t r i é, A[i] < A[i + 1..n], A[i + 1..n] t r i é } f i n t a n t que {A[1..i 1] t r i é, A[i] < A[i + 1..n], A[i + 1..n] t r i é e t (i = 1 ou A[i] A[i 1]) } Exemple 2 Insertion d un élément dans un tableau trié (analyse) Le coût de l insertion dépend 1. de la taille n 1 de la tranche triée du tableau 2. de la valeur de l élément A[n] 3. du coût des opérations de décrémentation et comparaison d indices, d accès à un élément du tableau, et enfin d échange et de comparaison d éléments du tableau. Nous ne nous intéressons qu à ces deux dernières opérations e(n) = nbre d échanges c(n) = nbre de comparaisons d éléments de A dans l insertion de A[n] dans A[1..n 1]

Exemple 2 Insertion d un élément dans un tableau trié (coût) Pour insérer l élément d indice n dans la tranche A[1..n 1] : Meilleur des cas : A[n] A[1..n 1] (le tableau est trié) nbre échanges : e(n) = 0 nbre comparaisons : Pire des cas : A[n] < A[1..n 1] c(n) = 1 nbre échanges : e(n) = n 1 nbre comparaisons : c(n) = n 1 Trois sortes de complexité Pour une taille donnée n, le coût d un algorithme peut dépendre de la donnée. On distingue alors trois cas : le pire des cas : c est celui qui donne un coût maximal le meilleur des cas : c est celui qui donne un coût minimal le coût moyen : c est la moyenne des coûts sur l ensemble de toutes les données de taille n En analyse de complexité, on étudie souvent le pire cas ce qui donne une majoration de la complexité de l algorithme. Remarques Lorsqu on étudie la complexité d un algorithme, on ne s intéresse pas au temps de calcul exact mais à un ordre de grandeur. Pour une complexité polynomiale, par exemple, on ne s intéresse qu au terme de plus haut degré. Majoration asymptotique O(g(n)) Définition On dit que g(n) est un majorant asymptotique pour f (n) et l on écrit f (n) O(g(n)) s il existe une constante strictement positive c telle que pour n assez grand on ait 0 f (n) c g(n) Ceci revient à dire que f (n) est inférieure à g(n) à une constante multiplicative près et pour n assez grand. Au lieu de f (n) O(g(n)), on écrit souvent f (n) = O(g(n))

O(g(n)) : illustration graphique Minoration asymptotique Ω(g(n)) Définition On dit que g(n) est un minorant asymptotique pour f (n) et l on écrit f (n) Ω(g(n)) s il existe une constante strictement positive c telle que pour n assez grand on ait 0 c g(n) f (n) Ceci revient à dire que f (n) est supérieure à g(n) à une constante multiplicative près et pour n assez grand. Au lieu de f (n) Ω(g(n)), on écrit souvent f (n) = Ω(g(n)) Ω(g(n)) : illustration graphique Ordre de grandeur asymptotique Θ(g(n)) Définition On dit que g(n) est un ordre de grandeur asymptotique pour f (n) et l on écrit f (n) Θ(g(n)) s il existe deux constantes strictement positives c 1 et c 2 telles que pour n assez grand on ait 0 c 1 g(n) f (n) c 2 g(n) Ceci revient à dire que le rapport f (n)/g(n) est compris entre deux constantes positives pour n assez grand. Au lieu de f (n) Θ(g(n)), on écrit souvent f (n) = Θ(g(n))

Θ(g(n)) : illustration graphique Lors de l analyse de complexité, on essaie de situer un coût c = f (n) par rapport aux ordres de grandeur suivants (donnés dans l ordre croissant) : 1. logarithmique 2. linéaire 3. quasi-linéaire 4. polynomial (quadratique, cubique,... ) 5. exponentiel Logarithmique Linéaire c Θ(log n) Exemple : recherche dichotomique dans un tableau trié A[1..n] c Θ(n) Exemple : calcul du produit scalaire de deux vecteurs de R n

Comparaison linéaire/logarithmique Complexité quasi-linéaire c Θ(n log n) Exemple : Tri par fusion Comparaison quasi-linéaire/linéaire Complexité polynomiale c Θ(n k ) avec k > 1 Exemple : Multiplication de deux matrices carrées d ordre n par la méthode usuelle : Θ(n 3 ) Lorsque k = 2 ou 3, on parle d ordre de grandeur quadratique ou cubique

Comparaison polynomial/quasi-linéaire Complexité exponentielle c Θ(a n ) avec a > 1 Exemple : Tours de Hanoï : Θ(2 n ) Comparaison exponentiel/polynomial Taux de croissance Comparaison T (n) n = 10 n = 20 n = 30 n = 40 n = 50 n = 60 log n 1 µs 1, 3 µs 1, 5 µs 1, 6 µs 1, 7 µs 1, 8 µs n 10 µs 20 µs 30 µs 40 µs 50 µs 60 µs n log n 10 µs 26 µs 44 µs 64 µs 85 µs 107 µs n 2 100 µs 400 µs 900 µs 1, 6 ms 2, 5 ms 3, 6 ms n 3 1 ms 8 ms 27 ms 64 ms 125 ms 216 ms n 5 0, 1 s 3 s 24 s 1, 7 mn 5 mn 13 mn 2 n 1 ms 1 s 18 mn 13 jours 36 ans 366 siècles 3 n 60 ms 1 heure 6 ans 3900 2 10 8 1, 3 10 13 siècles siècles siècles

Taux de croissance Effet d une amélioration technologique Taille des données traitées à temps constant T (n) Aujourd hui 100 fois + rapide 1000 fois + rapide log n N N 100 N 1000 n N 100 N 1000 N n 2 N 10 N 32 N n 3 N 4, 6 N 10 N n 5 N 2, 5 N 4 N 2 n N N + 7 N + 10 3 n N N + 4 N + 6