Complexit algorithmique - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Complexit algorithmique

Description:

Mesurer ces 2 grandeurs pour comparer entre eux diff rents algorithmes ' ... Toute lecture, criture, affectation (sans appel de fonction) a un temps en (1) ... – PowerPoint PPT presentation

Number of Views:150
Avg rating:3.0/5.0
Slides: 20
Provided by: laboratoir49
Category:

less

Transcript and Presenter's Notes

Title: Complexit algorithmique


1
Complexité algorithmique
2
Complexité
  • Exécution d un programme gutilisation des
    ressources de l ordinateur
  • temps de calcul pour exécuter les opérations
  • occupation mémoire (pgme données)
  • Mesurer ces 2 grandeurs pour comparer entre eux
    différents algorithmes
  •  Sur toute machine, quelque soit le langage de
    programmation, l algo A1 est meilleur que A2
    pour des données de grande taille 

3
Temps d exécution d un programme
  • Mettre en évidence les opérations fondamentales
    le temps est proportionnel au nombre de ces
    opérations
  • Recherche d un élément E dans une liste
    Lnombre de comparaisons entre E et les élts de
    L
  • Recherche d un élément sur disquenombre
    d accès à la mémoire secondaire
  • Multiplication de matricesnombre de
    multiplications et d additions

4
Temps d exécution d un programme
  • Soit n la taille des données soumise au programme
  • taille de la liste dans laquelle on cherche E
  • taille de la liste à trier
  • dimensions d une matrice dont on calcule le
    carré
  • T(n) temps d exécution du programme

5
Décompte du nombre d opérations fondamentales
  • P nombre d instructions dans un bloc de
    programme
  • P(séquence) ? P(E) E élément de la séquence
  • P(if C then I1 else I2) P(C) max(P(I1), P(I2))
  • P(boucle) ? P(Ii) Ii Ième itération de la
    boucle
  • P(F(n)) s écrit en fonction de P(F(k)) pour une
    procédure ou fonction récursive g résolution
    d équations de récurrences

6
Temps d exécution d un programme
  • Pour certains problèmes, le temps ne dépend pas
    seulement de la taille de la donnée mais aussi de
    la donnée elle-même
  • Complexité au mieux Tmin(n) min(Temps(d) d
    donnée de taille n)
  • Complexité au pireTmax(n) max(Temps(d) d
    donnée de taille n)
  • Complexité en moyenne Tmoy(n)

7
Temps d exécution d un programme
  • Tmin(d) lt Tmoy(d) lt Tmax(d)
  • Un exemple de calcul recherche dun élément X
    dans un tableau L

8
Ltableau X élément Debut i lt- 1 Tantque iltn
et Li ltgtX faire i lt- i1 Fintantque Fin
9
Ordre de grandeur asymptotique la notation ?
  • T(n) pour n grand
  • Comparaison des ordres de grandeur asymptotique
  • Définition
  • f ?(g) ssi ?c ? R, ? n0 tq ? n gt n0, f(n)
    ?c g(n)
  • Ex 2n ?(n²)

10
Equivalent la notation ?
  • Définition
  • f ?(g) ssi f ?(g) et g ?(f)
  • C'est-à-dire
  • ?c ? R, ?d ? R, ? n0 tq ? n gt n0, d g(n) ?
    f(n) ?c g(n)
  • Ex 2n ?(n) mais 2n n'est pas en ?(n²)

11
Propriétés
  • Les constantes ne sont pas importantes
  • Les termes d ordre inférieur sont
    négligeablesSi T(n) aknk a1n a0 avec
    akgt0 alors T(n) est en (nk)
  • Si T1(n) ?(f1(n)) et T2(n) ?(f2(n)) alors
    T1(n) T2(n) ?(f1(n) f2(n))
  • Si f(n) ?(g(n)) et g(n) ?(h(n)) alors f(n)
    ?(h(n))

12
Appellation des ordres de grandeur courant
  • ?(1) constante
  • ?(log(n)) logarithmique
  • ?(n) linéaire
  • ?(n log n) n log n
  • ?(n²) quadratique
  • ?(n3) cubique
  • ?(2n) exponentielle

13
Croissance comparée des fonctionsfréquemment
utilisées en complexité
14
Rapport Temps / Taille des données
15
Calcul de la complexité
  • Toute lecture, écriture, affectation (sans appel
    de fonction) a un temps en ?(1)
  • Complexité d une séquencecomplexité de
    l instruction de plus forte complexité
  • Si C alors A1 sinon A2 ?(c(n)) ?(f1(n)) ?(
    f2(n))T(n) ?( c(n) max(f1(n), f2(n)) )

16
Calcul de la complexité
  • Pour i de A à B faire IteriFinpour
  • Si T(Iteri) indépendant de i en ?(f(n)),alors
    T(n) ?((B-A1) f(n))
  • Si T(Iteri) dépendant de i Titer(n,i)alors

17
Calcul de la complexité
  • Tant que C faire Iter Fintantque
  • La difficulté est de déterminer une borne sup
    pour le nombre d itérationsNB
  • Si T(Iter) ?(f(n)) T(n) ?(NB(C(n) f(n)))
  • Si T(Iter) dépend de l itération i T(n)
    ?(NBC(n) ? Titer(n,i)

18
Calcul de la complexité
  • Procédures et fonctions récursives
  • T(n) calculé grâce à des relations de récurrence

19
Exemple
  • T(n) temps d exécution en fonction de
    l argument n
  • baseT(1) a
  • récurrenceT(n) b T(n-1), pour ngt1
  • On démontre par récurrence queT(n) a (n-1) b
    pour n ? 1
  • Donc T(n) ?(n)
  • function fact(ninteger) integer
  • begin
  • if nlt1 then fact 1 else fact n
    fact(n-1) end
Write a Comment
User Comments (0)
About PowerShow.com