notion de complexité - licence 1 mass - algorithmiqueverel/teaching/07-08/acf-mass1/cm12... ·...

54

Upload: dangdat

Post on 12-Sep-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

Notion de omplexitéLi en e 1 MASS - AlgorithmiqueSébastien Verelverel�i3s.uni e.frwww.i3s.uni e.fr/∼verelÉquipe S oBi - Université de Ni e Sophia-Antipolis11 avril 2008

Page 2: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéObje tifs de la séan e 12Prendre du re ulConnaître les notions de omplexité spatiale et temporelleDénombrer le nombre d'opérations exé uter d'un algorithmeDonner l'ordre de grandeur du nombre d'opérations exé utésd'un algorithmeQuestions prin ipales du jour :Comment savoir qu'un algorithme est omplexe ?S. Verel Notion de omplexité

Page 3: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéPlan1 Bilan2 Introdu tion3 Dé�nition de omplexité4 Cal ul de omplexitéS. Verel Notion de omplexité

Page 4: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 01 : Introdu tion à l'algorithmiqueConnaître une dé�nition d'algorithmeConnaître des algorithmes �historiques�Connaître les mots lefs d'un langage impératif simpleConnaître les opérations de bases de mapleIdenti�er et utiliser les types de base de mapleEditer et ommenter un ode mapleRéaliser un al ul à l'aide de variables

S. Verel Notion de omplexité

Page 5: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéDé�nition : AlgorithmeDé�nitionUn algorithme est un ensemble �ni d'instru tions orre tementdé�nis (dans un langage formelle) qui a pour but la résolution d'unetâ he à partir d'un état initial et se terminant sur un état �nal biendé�ni.

S. Verel Notion de omplexité

Page 6: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéAlgorithmes historiquesAlgorithme d'Eu lide (éléments, VII, -325/-265 av. JC)Cal ul du PGCDCrible d'Erastothène (IIIe avant J.-C.)Multipli ation égyptienne (tour de magie)Re her he d'un mot dans un di tionnaire : itératif,di hothomiqueIndi e de masse orporelleCon evoir une bouilloire pour faire bouillir de l'eauRe ettes de uisine S. Verel Notion de omplexité

Page 7: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 02 : Algorithmes onditionnelsE rire un algorithme ave des a�e tationsE rire un algorithme qui é hange la valeur de deux variablesE rire un algorithme ave des tests simplesE rire un algorithme ave un test multiple

S. Verel Notion de omplexité

Page 8: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 02 : Algorithmes onditionnelsprin ipe in lusion / ex lusion :Dé�nir un algorithme qui donne le niveau de stress en fon tion dunombre de jours avant l'examen.

S. Verel Notion de omplexité

Page 9: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 03 : Algorithmes itératifsE rire un algorithme ave une itération de type �pour�E rire un algorithme ave des itérations emboités de type�pour�E rire un algorithme ave des l'itérations de type �tant que�E rire un algorithme orre t d'au moins 8 lignes

S. Verel Notion de omplexité

Page 10: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 03 : Algorithmes itératifsDé�nir un algorithme qui le neme d'une suite dé�nie parré urren e.Dé�nir un algorithme qui al ule l'indi e du premier terme dela suite plus grand qu'une valeur donnée.

S. Verel Notion de omplexité

Page 11: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 04 : Séparation de odes et fon tionsConnaître le prin ipe de séparation de odeE rire orre tement une fon tion mapleComprendre et al uler le résultat d'un algorithme donnéModi�er un algorithme donnéUtiliser une partie d'algorithme donnéCorriger un algorithme donné

S. Verel Notion de omplexité

Page 12: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 05 : Stru tures de données indexéesLire et enregistrer une valeur dans un tableauRe her he des valeurs extrémales d'un tableauUtilisation d'un a umulateur pour réaliser un al ul dans untableauSavoir on evoir un jeu de tests pour un algorithmeSavoir inspe ter les valeurs de ertaines données d'unalgorithme

S. Verel Notion de omplexité

Page 13: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéPetit exoDé�nir un algorithme qui rée à partir d'un tableau d'entier detaille n, un tableau d'entier de taille n/3 ontenant lemaximum de trois nombres onsé utifs (voir exemple tableau).

S. Verel Notion de omplexité

Page 14: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 06 : Simuler l'aléatoireConnaître les propriétés d'un générateur pseudo-aléatoireSimuler un nombre aléatoire entier ou �ottant entre 2 bornesdonnéesE rire un algorithme utilisant un générateur pseudo-aléatoireE rire un algorithme qui génère des séries temporelles du typeut+1 = aut + b + ǫ et ut+1 = (a + ǫ)ut + b

S. Verel Notion de omplexité

Page 15: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 06 : Simuler l'aléatoireVoir orre tion du devoir dans le pro hain TD...

S. Verel Notion de omplexité

Page 16: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 07 : Re her he et dénombrement dans des tableauxRe her he itérative d'un élément dans un tableauRe her he di hotomique d'un élément dans un tableauDénombrement des éléments dans un tableauDénombrement des éléments dans deux tableaux en parallèle

S. Verel Notion de omplexité

Page 17: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéRe her he di hotomiqueAlgorithme re her heDi hotomique(x : entier, t : tableau d'entier, n :entier) : booleendébutvariable a,b, : entiera ← 0b ← n − 1 ← (a + b)/2tant que a ≤ b et t[ ] 6= x fairesi t[ ] < x alorsa ← + 1sinonb ← − 1�n si ← (a + b)/2�n tant queretourner a ≤ b�n S. Verel Notion de omplexité

Page 18: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 08 : Algorithmes de trisConnaître le prin ipe et l'interêt des algorithmes de triAlgorithme de tri par séle tions et permutationsAlgorithme de tri par insertionsAlgorithme de tri rapide

S. Verel Notion de omplexité

Page 19: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 09 : Algorithmes ré ursifsE rire un algorithme ré ursif ave un seul testEtablir le lien entre preuve par ré urren e et algorithme ré ursifRe her he di hotomique d'un élément dans un tableau

S. Verel Notion de omplexité

Page 20: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 09 : Algorithmes ré ursifs al ul du pg dCal ul de suite numérique al ul de la puissan e al ul de la fa torielleTours de Hanoï

S. Verel Notion de omplexité

Page 21: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéRe her he di hotomiqueRe her he dans un tableau de nombres entiers ordonnésAlgorithme re her he(n :entier, t :tableau d'entiers, a, b : entier) : booléendébutvariable : entiersi a > b alorsretourner Fauxsinon ← (a + b)/2si t[ ] = n alorsretourner Vraisinonsi t[ ] < n alorsretourner re her he(n, t, +1, b)sinonretourner re her he(n, t, a, -1)�n si�n si�n si�n S. Verel Notion de omplexité

Page 22: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 10 : Stru tures de données linéairesConnaître les opérations de base sur les listesCal uler la longueur d'une listeExtra tion de sous-listes d'une listeUtiliser un a umulateur ave une liste

S. Verel Notion de omplexité

Page 23: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéExempleE rire un algorithme ré ursif onstru tion qui prend en paramètreun entier positif n et qui retourne une liste de taille n qui ommen epar 0 si n est pair et qui ommen e par 1 si n est impair.Par exemple, onstru tion(5) retourne la liste (1, 0, 1, 0, 1) et onstru tion(6) retourne la liste (0, 1, 0, 1, 0, 1)Algorithme onstru tion(n : entier) : listedébutsi n = 0 alorsretourner listeVide()sinonsi modulo(n, 2) = 0 alorsretourner listeCons(0, onstru tion(n − 1))sinonretourner listeCons(1, onstru tion(n − 1))�n si�n si�n S. Verel Notion de omplexité

Page 24: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 11 : Stru tures de données arbores entesConnaître les opérations de base sur les arbresPar ours pré�xe, in�xe, post�xe dans un arbreRe her he d'un élément dans un arbre

S. Verel Notion de omplexité

Page 25: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéséan e 12 : Notion de omplexitéConnaître les notions de omplexité spatiale et temporelleDénombrer le nombre d'opérations exé uter d'un algorithmeDonner l'ordre de grandeur du nombre d'opérations exé utésd'un algorithme

S. Verel Notion de omplexité

Page 26: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéReparlons de uisineProblèmeConvevoir un bon gâteau aux itronsIngrédients (pour 6personnes) :- 1 pâte brisée- 150 g de su re- 100 g de beurre fondu- 3 oeufs- le jus de deux itronsPréparation :. Pré hau�er le four à 200�C.. Abaisser la pâte brisée.. Battre les oeufs ave le su re en poudrejusqu'à l'obtention d'un mélangemousseux.. Ajouter le jus de itron.. Ajouter le beurre fondu.. Enfourner et laisser uire environ 30 mn.. La préparation doit dorer.S. Verel Notion de omplexité

Page 27: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéReparlons uisineQuand on fait modestement un peu de uisine plusieurs questionsse posent :Combien de temps faut-il pour préparer ette re ette ?Est- e que j'ai le matériel et la pla e pour réaliser la re ette ?On peut même aller plus loin :Est- e la re ette de marmiton est plus rapide que la re ette degrand-mère ?Qu'est- e que je peux faire omme re ette ave une asserolleet une poelle ?Est- e que j'ai assez de plats pour réaliser la re ette pour 15personnes ?Mes amis arivent dans une heure, est- e que j'ai assez detemps pour faire 100 houx à la rème ?Est- e que la re ette est bonne ?...S. Verel Notion de omplexité

Page 28: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéQuestion uisineEn uisine, deux fa teurs (en autres...) sont à prendre en onsidération :Le temps de on eptionL'espa e né essaire à la on eptionBien sùr, le temps et l'espa e dépendent du nombre de personnes.Regardons les problèmes en informatique où les données ont uneautre saveur... S. Verel Notion de omplexité

Page 29: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéRe her he dans un tableau de nombres entiers ordonnésAlgorithme re her he1(x : entier, t : tableau d'entiers, n : entier) :booléendébutvariable i : entieri ← 0tant que i < n et t[i ] 6= x fairei ← i + 1�n tant quesi i < n alorsretourner truesinonretourner false�n si�n S. Verel Notion de omplexité

Page 30: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéRe her he dans un tableau de nombres entiers ordonnésAlgorithme re her he1(x : entier, t : tableau d'entiers, n : entier) :booléendébutvariable i : entieri ← 0tant que i < n et t[i ] 6= x fairei ← i + 1�n tant queretourner i < n�nAu fait, pourquoi ne pas avoir tester t[i ] = x ?S. Verel Notion de omplexité

Page 31: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéRe her he dans un tableau de nombres entiers ordonnésAlgorithme re her he2(x : entier, t : tableau d'entiers, a, b : entier) : :booléenvariable : entierdébutsi a > b alorsretourner Fauxsinon ← (a + b)/2si t[ ] = x alorsretourner Vraisinonsi t[ ] < x alorsretourner re her he(x, t, +1, b)sinonretourner re her he(x, t, a, -1)�n si�n si�n si�n S. Verel Notion de omplexité

Page 32: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéComparaison d'algorithmesQuel est l'algorithme le plus rapide ?Question mal posée : ela dépend du nombre de données pour haque algorithme....Quel est l'algorithme le plus rapide pour un tableau de taille n ?Question en ore mal posée : ela dépend des ma hines sur lesquels haque algorithme s'exé ute....Quel est l'algorithme le plus rapide s'exé utant sur une mêmema hine de référen e ( ?) pour un tableau de taille n ?Question en ore mal posée : on peut imaginer des tableaux surlesquels haque algorithme est très rapide par rapport à l'autre.Comparaison des temps d'exé ution :en moyennedans le pire des as pour haque algorithmedans le meilleure des as pour haque algorithmeS. Verel Notion de omplexité

Page 33: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéComplexité spatiale et temporelleIl existe deux mesures de l'e� a ité d'un algorithme :Complexité spatiale : espa e mémoire né essaire pour exé uterl'algorithmeComplexité temporelle : temps né essaire pour exé uterl'algorithmeOn ne s'interessera seulement qu'à la omplexité temporelle, la omplexité spatiale étant en général moins ritique.Pourtant, souvent expériementalement on pense à e genre derelation : CspatialeCtemporelle = onstanteS. Verel Notion de omplexité

Page 34: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéMesure de omplexité temporelle (D. Knuth)Pour rendre indépendant la mesure de la vitesse de la ma hine (enautres), il faut dé�nir une unité de omparaisonL'idée est de dé�nir le nombre d'opérations élémentaires enfon tion de la taille des donnéesIntérêts :Estimer le out sans exé uter l'algorithme omparaison d'algorithmes sans les exé uterS. Verel Notion de omplexité

Page 35: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéMesure de omplexité temporelle (D. Knuth �n 1960)La taille des données peut être :la taille d'un tableaula grandeur des nombresla taille d'une listeLes opérations élémentaires peuvent être :a�e tationle ture mémoireaddition, soutra tion, et .test logiqueLes instru tions élémentaires ont souvent de oût de 1 unité.S. Verel Notion de omplexité

Page 36: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéVitesse de pro esseursour e wikipedia :Date Nom Transistors Fréq. MIPS1971 4004 23001974 8080 6000 2MHz 0,641979 8088 29000 5MHz 0,331982 80286 134000 6MHz 11985 80386 275000 16MHz 51989 80486 1200000 25MHz 201993 Pentium 3100000 60MHz 1001997 PentiumII 7500000 233MHz 3001999 PentiumIII 9500000 450MHz 5102000 Pentium4 42000000 1,5GHz 17002004 Pentium4 Pres ott 125000000 3,6GHz 90002006 Core2Duo 291000000 2,4GHz 22000MIPS : Millions d'instru tions par se ondeS. Verel Notion de omplexité

Page 37: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéDé�nitionsSoient f et g deux fon tions de IN dans IR.Borne appro hée asymptotiqueg(n) est une borne appro hée asymptotiquement de f (n) s'il existedeux onstantes stri tement positives 1 et 2 telles que, pour nassez grand, 0 ≤ 1g(n) ≤ f (n) ≤ 2g(n)On note alors f (n) = Θ(g(n))c1 g(n)

f(n)

c2 g(n)

S. Verel Notion de omplexité

Page 38: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéDé�nitionsBorne supérieure asymptotiqueg(n) est une borne supérieure appro hée asymptotiquement def (n) s'il existe une onstante stri tement positive telles que, pourn assez grand, 0 ≤ f (n) ≤ g(n)On note alors f (n) = O(g(n))c g(n)

f(n)

S. Verel Notion de omplexité

Page 39: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéDé�nitionsBorne supérieure non asymptotiquement appro hée (négligeable)g(n) est une borne supérieure non asymptotiquement appro hée def (n) ou que f est négligeable devant g silimn→∞

f (n)g(n) = 0On note alors f (n) = o(g(n))S. Verel Notion de omplexité

Page 40: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéPropriétéssi f (n) = Θ(g(n)) alors f (n) = O(g(n))si f (n) = o(g(n)) alors f (n) = O(g(n))pour tout K ∈ IR, Θ(K + f (n)) = Θ(f (n))pour tout C ∈ IR, Θ(C f (n)) = Θ(f (n))pour tout j < k , Θ(nk + nj ) = Θ(nk )

S. Verel Notion de omplexité

Page 41: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéClasses de omplexitéPour analyser la omplexité, on lassi�e les mesures de omplexitédans les atégories suivantes : omplexité onstante : Θ(1)ex : al ul du maximum de deux nombres omplexité logarithmique : Θ(log(n))ex : re her he di hotomique dans un tableau de taille n omplexité linéaire : Θ(n)ex : re her he dans un tableau non ordonné de taille n omplexité quasi-linéaire : Θ(n log(n))ex : tri rapide omplexité polynomiale : Θ(nk) ave k > 1ex : tri par insertion, multipli ation de matri es omplexité exponentielle : Θ(an) ave a > 1ex : tour de Hanoi S. Verel Notion de omplexité

Page 42: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéTaux de roissan eT (n) n = 10 n = 20 n = 30 n = 40 n = 60log(n) 1µs 1.3µs 1.5µs 1.6µs 1.8µsn 10µs 20µs 30µs 40µs 60µsn log(n) 10µs 26µs 44µs 64µs 107µsn2 100µs 400µs 900µs 1.6ms 3.6msn3 1ms 8ms 27ms 64ms 216ms2n 1ms 1s 18mn 13jour 366sie le3n 60ms 1h 6an 3900sie le 1.31013sie leEviter d'é rire des algorithmes ave des omplexités exponentielles...S. Verel Notion de omplexité

Page 43: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéE�et d'une améliorationSoit N la taille d'une instan e traitable en un temps raisonnableQuelle taille pourra-t-on traiter lorsque les ordinateurs seront100 et 1000 plus rapides ?Exemple 1 : T (n) = Θ(n2)Aujourd'hui : T (N) = kN2Demain : T ′

(N ′

) = T (N′

)100 = k N′2100 d'où N ′

= 10NExemple 2 : T (n) = Θ(2n)Aujourd'hui : T (N) = k2NDemain : T ′

(N ′

) = k 2N′100 d'où N ′

= N + 6.67S. Verel Notion de omplexité

Page 44: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéE�et d'une améliorationT (n) aujourd'hui 100 fois plus rapide 1000 fois plus rapidelog(n) N N100 N1000n N 100N 1000Nn2 N 10N 32Nn3 N 4.6N 10N2n N N + 7 N + 103n N N + 4 N + 6

S. Verel Notion de omplexité

Page 45: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéApproximationPour haque instru tion de base, on peut dé�nir un oût di�érent :1 a�e tation : 11 le ture : 21 opération arithmétique : 31 test : 4Mais on s'intéresse seulement à la lasse de omplexité, 'est-à-direau oût à une onstante multipli ative près.On approxime don le oût des instru tions par un même et unique oût unitaire.Voire même un oût unitaire par "ligne de ode"...S. Verel Notion de omplexité

Page 46: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéConditionnelsi b alorsalgo de omplexité C1sinonalgo de omplexité C2�n siLa omplexité d'une onditionelle est :si b est vraie, 1 + C1si b est fausse, 1 + C2S. Verel Notion de omplexité

Page 47: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéItération "pour"pour i de a à b fairealgo de omplexité Ci�n pourLa omplexité d'une bou le "pour" est la somme des omplexitésdes instru tions répétées : b∑i=a CiS. Verel Notion de omplexité

Page 48: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéItération "pour" : as parti ulierpour i de 1 à n fairealgo de omplexité C�n pourLorsque ∀i Ci = C et que le nombre d'itérations est n, la omplexité est de : n C

S. Verel Notion de omplexité

Page 49: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéItération tant quetant que bi fairealgo de omplexité Ci�n tant queSoit le n le nombre d'itérations de la bou le "tant que", la omplexité est alors : n∑i=1 CiS. Verel Notion de omplexité

Page 50: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéItération tant que : remarquetant que bi fairealgo de omplexité Ci�n tant queLe nombre d'itérations dépend souvent des données.On utilise alors les notions de : omplexité dans le pire des as : lorsque le nombre d'itérationsera maximal omplexité moyenne : nombre d'itérations moyen omplexité dans le meilleur des as : lorsque le nombred'itération sera minimalS. Verel Notion de omplexité

Page 51: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéExemple omplet : re her he dans un tableau non ordonnéAlgorithme re her he(x : entier, t : tableau d'entiers, n : entier) : :booléendébutvariable i : entieri ← 0tant que i < n et t[i ] 6= x fairei ← i + 1�n tant queretourner i < n�nS. Verel Notion de omplexité

Page 52: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéCal ul de la omplexité (temporelle)Soit T (n) la omplexité pour un tableau de taille n.Une a�e tation au début et un test à la �n :2A haque itération : 2 tests et 1 a�e tation3Nombre d'itérations :Au mieux : 1Au pire : nen moyenne : n/2 S. Verel Notion de omplexité

Page 53: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéCal ul de la omplexité (temporelle)Complexité au mieux : T (n) = 5T (n) = Θ(1) : omplexité onstanteComplexité en moyenne : T (n) = 2 + 3n2T (n) = Θ(n) : omplexité linéaireComplexité au pire : T (n) = 2 + 3nT (n) = Θ(n) : omplexité linéaire

S. Verel Notion de omplexité

Page 54: Notion de complexité - Licence 1 MASS - Algorithmiqueverel/TEACHING/07-08/acf-MASS1/cm12... · maple Identi er et utiliser les t yp es de base maple Editer et commenter un co de

BilanIntrodu tionDé�nition de omplexitéCal ul de omplexitéObje tifs de la séan e 12Connaître les notions de omplexité spatiale et temporelleDénombrer le nombre d'opérations exé uter d'un algorithmeDonner l'ordre de grandeur du nombre d'opérations exé utésd'un algorithmeQuestions prin ipales du jour :Comment savoir qu'un algorithme est omplexe ?

S. Verel Notion de omplexité