Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parReynaud Jourdan Modifié depuis plus de 9 années
2
MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI
3
Complexité Algorithmique Une mesure de la difficulté d’exécuter un programme. Permet d’évaluer le coût associé à l’exécution d’un programme. Ressources utilisées: temps CPU, mémoire. Mesures communes de la complexité: “Temps” : # d’opérations ou # de cycles “Espace”: # d’octets de mémoire utilisés
4
Complexité dépendante des Input Les algorithmes ont différentes complexités pour des nombres différents d’inputs. La recherche dans une longue liste prendra généralement plus de temps qu’une recherche dans une liste plus courte. La complexité est généralement exprimée comme une fonction du nombre d’inputs. La fonction de complexité est souvent exprimée dans le pire cas pour une longueur donnée (# inputs).
5
Exemple 1: Algorithme Max Problème: Trouver l’ordre de grandeur de la complexité de l’algorithme MAX dans le pire cas, en tenant compte que chaque ligne de code est exécutée dans un temps constant et que différentes lignes de code peuvent être exécutées dans des temps différents.
6
Analyse de complexité (suite..) procédure max(a 1, a 2, …, a n : entiers) v := a 1 t 1 pour i := 2 à nt 2 si a i > v alors v := a i t 3 retourner vt 4 Pire cas: Temps pour l’exécution de chaque ligne
7
Analyse de complexité (suite..) Ordre de complexité de t(n)?
8
Exemple 2: Recherche linéaire procédure recherche linéaire (x: entier, a 1, a 2, …, a n : entiers distincts) i := 1t 1 TTQ (i n x a i ) fairet 2 i := i + 1t 3 si i n alors position := it 4 sinon position := 0t 5 retourner positiont 6
9
Analyse de la recherche linéaire L’ordre de complexité (pire cas): Meilleur cas: Cas moyen, si l’item est présent:
10
Exemple 3: Recherche Binaire procédure recherche binaire (x:entier, a 1, a 2, …, a n : entiers distinc, triés du plus petit au plus grand) i := 1 j := n TTQ i a m alors i := m+1 sinon j := m fin si x = a i alors position := i sinon position := 0 retourner position (1) Question importante: Combien d’iterations de la boucle?
11
Analyse de la recherche Binaire Supposons que n est une puissance 2, k: n=2 k. L’intervalle de départ de i=1 à j=n (n items). Chaque itération: l’intervalle j i+1 est coupé en 2. La boucle termine quand l’intervalle de recherche est 1=2 0 (i=j). Donc, le nombre d’itérations est: k = log 2 n = (log 2 n)= (log n) Même pour n 2 k (pas une puissance de 2), la complexité reste (log 2 n) = (log n).
12
Quelques ordres de complexité (1)Constant (log c n)Logarithmique (même ordre c) (log c n)Polylogarithmique (n)Linéaire (n c )Polynomiale ( pour divers c) (c n ) Exponentielle (pour c>1) (n!)Factorielle (With c a constant.) NP Problems
13
Analyse de complexité: points importants Définitions de la complexité algorithmique, complexité temporelle, complexite temporelle du pire cas. Identifier l’ordre de complexité. Analyse de complexité: pire cas, meilleur cas, ou cas moyen de l’ordre de complexité temporelle d’algorithmes simples.
14
Revue: Complexité Complexité algorithmique = coût de l’exécution. L’Accent est mis sur la complexité temporelle. Même si l’espace et l’énergie est importante. Caractériser la complexité en fonction de n la dimension des inputs: Pire-cas, Meilleur-case, ou Cas-moyen. Utilisation de la notion d’ordre pour représenter de façon concise des propriétés de croissance des fonctions de complexité.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.