Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFlorine Beaudin Modifié depuis plus de 6 années
1
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité RSD-GL 1
2
Analyse de la complexité
Notation de Landau: On ne s ’intéresse pas en général à la complexité exacte, mais à son ordre de grandeur. 2
3
Type de complexité T(n) = Ө (1), temps constant : temps d’exécution indépendant de la taille des données à traiter. T(n) = Ө(log(n)), temps logarithmique : on rencontre généralement une telle complexité lorsque l’algorithme casse un gros problème en plusieurs petits, T(n) = Ө(n), Complexité linéaire : cette complexité est généralement obtenue lorsqu’un travail en temps constant est effectué sur chaque donnée en entrée. T(n) = Ө(n.log(n)) : Complexité linearithmique l’algorithme scinde le problème en plusieurs sous-problèmes plus petits qui sont résolus de manière indépendante. La résolution de l’ensemble de ces problèmes plus petits apporte la solution du problème initial. T(n) = Ө(n²), Complexité quadratique : T(n)=Ө(n3) Complexité cubique T(n) = Ө(2n), Complexité exponentiel
4
Analyse de la complexité
Exemple Calcul du factoriel Algorithme Trivial : T(n)=n-1 T(n)=Ө(n) C’est une Complexité linéaire Algorithme Binaire: [log2 n] ≤ T(n) ≤ 2[log2 n]. T(n)=Ө(Log(n)) C’est une complexité logarithmique
5
Analyse de la complexité
Règles générales : 1. le temps d’exécution (t.e.) d’une affectation ou d’un test est considéré comme constant. 2. Le temps d’une séquence d’instructions est la somme des des instructions qui la composent. 3. le temps d’un branchement conditionnel est égal au t.e. du test plus le max des deux t.e. correspondant aux deux alternatives (dans le cas d’un temps max). 4. Le temps d’une boucle est égal à la somme du coût du test + du corps de la boucle + test de sortie de boucle.
6
Exemple Calcul complexité
Si a >b alors ecrire (« a superieur à b ») sinon ecrire(« a inferieur à b ») Finsi C’est une Complexité constante donc T(n)= Ө(1) pour i allant de 1 à N faire c1 n+1 { pour j allant de 1 à n faire c2 n*(n+1) operation; c3 n*n } T(n)=c1*(n+1)+c2*n*(n+1)+c3*n*n=(c2+c3)n2+(c1+c2)*n+c1 T(n)=Ө(n2) complexité quadratique
7
Analyse de la complexité
Définition 2 (Complexité). La complexité d’un algorithme est la mesure du nombre d’opérations fondamentales qu’il effectue sur un jeu de données. La complexité est exprimée comme une fonction de la taille du jeu de données. Complexité au meilleur : C’est le plus petit nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille fixée, ici à n. C’est une borne inférieure de la complexité de l’algorithme sur un jeu de données de taille n. 7
8
Analyse de la complexité
Complexité au pire : C’est le plus grand nombre d’opérations qu’aura à exécuter l’algorithme sur un jeu de données de taille fixée, ici à n. Complexité en moyenne : C’est la moyenne des complexités de l’algorithme sur des jeux de données de taille n. Le plus souvent, on utilise la complexité au pire, car on veut borner le temps d'exécution 8
9
Analyse de la complexité
Exemple : cas du tri par insertion Problématique du tri Données : une séquence de n nombre a1, a2, , an. résultats : une permutation <a ’1, a ’2, , a ’n> des données t.q. a ’1 a ’2 , , a ’n exemple : 9
10
Analyse de la complexité
attribution d ’un coût en temps ci à chaque instruction, et compter le nombre d’exécutions de chacune des instructions. Pour chaque valeur de j de 2 à n , nous notons t j le nombre d’exécutions de la boucle tant que pour cette valeur de j. Il est à noter que la valeur de t j dépend des données… Le temps d’exécution total de l’algorithme est alors : 10
11
Analyse de la complexité
Complexité au meilleur : le cas le plus favorable pour l’algorithme TRI-INSERTION est quand le tableau est déjà trié. Dans ce cas tj = 1 pour tout j. T(n) peut ici être écrit sous la forme T(n) = an+b, a et b étant des constantes indépendantes des entrées, et T(n) est donc une fonction linéaire de n.
12
Analyse de la complexité
Complexité au pire : le cas le plus défavorable pour l’algorithme TRI-INSERTION est quand le tableau est déjà trié dans l ’ordre inverse. Dans ce cas tj =j pour tout j. Rappel : donc et T(n) peut ici être écrit sous la forme T(n)=ax2 +bx +c, a, b et c étant des constantes, et T(n) est donc une fonction quadratique. 12
13
Analyse de la complexité
Complexité en moyenne : supposons que l’on applique l’algorithme de tri par insertion à n nombres choisis au hasard. La moyenne est tj = j/2. Si l ’on reporte cette valeur dans l ’équation on obtient également une fonction quadratique. meilleur cas : Q(n ). pire cas : Q(n2 ). en moyenne : Q(n2 ). En général, on considère qu’un algorithme est plus efficace qu’un autre si sa complexité dans le pire cas a un ordre de grandeur inférieur. 13
14
Etude Comparatif des differents types de complexités
Les temps d'exécution = 10 ns/instruc =10-8 s/instruc. Notation Type de complexité n = 5 n = 10 n = 20 n = 50 n = 250 n = 1 000 n = 10 000 n = 1 000 000 exemple Q(1) complexité constante 10 ns Accées Tableau Q(log(n)) complexité logarithmique 20 ns 30 ns 40 ns 60 ns Dichotomie Q(n) complexité linéaire 50 ns 100 ns 200 ns 500 ns 2.5 µs 10 µs 100 µs 10 ms Parcours de liste Q(nlog(n)) complexité linéarithmique 260 ns 850 ns 6 µs 30 µs 400 µs 60 ms Tris dont le Tri fusion ou le Tri rapide Q(n2) complexité quadratique (polynomiale) 250 ns 1 µs 4 µs 25 µs 625 µs 1 s 2.8 heures Trie par insersion Q(n3) complexité cubique (polynomiale) 1.25 µs 80 ms 1.25 ms 156 ms 10 s 2.7 heures 316 ans Parcours de tableaux 3D 492 ns 7 µs 5 ms 3.2 ans 1020 ans Q(en) complexité exponentielle 320 ns 130 jours 1059 ans ... Q(n!) complexité factorielle 1.2 µs 36 ms 770 ans 1048 ans Probleme de voyageur en commerce
15
Conclusion Complexité est inférieure à n²: utilisables.
Entre n² et n3 : utilisables pour problèmes de taille moyenne. Au-delà:utilisables que pour problèmes de très petite taille.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.