Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V...

57

Transcript of Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V...

Page 1: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

Synthèse et omplexitéLi en e 2 MASS - Algorithmique et Informatique ThéoriqueSébastien Verelverel�i3s.uni e.frwww.i3s.uni e.fr/∼verelÉquipe S oBi - Université de Ni e Sophia-Antipolis10 avril 2008

Page 2: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéObje tifs de la séan e 12 onnaitre le lien entre ma hine abstraite, type de donnéesabstraite, terminaison, omplexité et orre tionAvoir des notions sur la omplexitéQuestions prin ipales du jour :Qu'est- e que 'est que toute ette uisine ?

S. Verel Synthèse et omplexité

Page 3: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéPlan1 Bilan2 ComplexitéDé�nition de omplexité

S. Verel Synthèse et omplexité

Page 4: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 01 : Introdu tion à l'algorithme onnaitre une dé�nition d'algorithmemaîtriser les algorithmes onditionelsmaîtriser les algorithmes itératifsutiliser et é rire des fon tions

S. Verel Synthèse et omplexité

Page 5: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité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 Synthèse et omplexité

Page 6: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéUne di� ulté : double itérationsA partir de deux tableaux, dé�nir un algorithme qui al ule leproduit des deux tableaux de la manière suivante. Pour al uler eproduit, il faut multiplier haque élément du tableau 1 par haqueélément du tableau 2, et additionner le tout. Par exemple si l'on a :Tableau 1 : 4 8 7 12 et Tableau 2 : 3 6Le produit sera :3 ∗ 4 + 3 ∗ 8 + 3 ∗ 7 + 3 ∗ 12 + 6 ∗ 4 + 6 ∗ 8 + 6 ∗ 7 + 6 ∗ 12 = 279

S. Verel Synthèse et omplexité

Page 7: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéUne di� ulté : double itérationAlgorithme produit(t1, t2 : tableau de réels, n, p : entier) : réeldébutvariable i, j : entiervariable p : réels ← 0pour i de 0 à n-1 fairepour j de 0 à p-1 faires ← s + t1[i ] ∗ t2[j ]�n pour�n pourretourner s�n S. Verel Synthèse et omplexité

Page 8: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéAutre exempleCal uler la somme des éléments sous la diagonale d'une matri e.Comment représenter une matri e ?Par un tableau à double entrée, i.e. un tableau de tableaux.Algorithme produit(m : tableau de tableaux de réels, n : entier) :réeldébutvariable i, j : entiervariable s : réels ← 0pour i de 0 à n-1 fairepour j de 0 à i faires ← s + m[i ][j ]�n pour�n pourretourner s�n S. Verel Synthèse et omplexité

Page 9: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 02 : Notion de ma hine et type de données abstraits onnaitre la dé�nition de ma hine abstraite et type de donnéesabstraitdonner le résultat d'un algorithme s'exé utant sur une ma hineabstraiteé rire un algorithme ave une stru ture de donnée indexéeé rire un algorithme itératif de re her he dans un tableausavoir é rire orre tement un algorithme de plus de 10 lignes

S. Verel Synthèse et omplexité

Page 10: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéMa hine de Turinga b �0 � , dr , 1 refusé a epté1 a , dr , 1 b , dr , 1 �, ga, 22 refusé � , ga , 33 a , ga , 3 b , ga , 3 �, dr, 0a a a b b ba a a b a bS. Verel Synthèse et omplexité

Page 11: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéMa hines Abstraites

"monde réel"

MachineAbstraite

Machine Concrète

S. Verel Synthèse et omplexité

Page 12: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéMa hine / synthaxe / sémantiqueSémantique

MACHINE MOT Modèle MATH.

Synthaxe

S. Verel Synthèse et omplexité

Page 13: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 03 : Algorithmes ré ursifssavoir démontrer à l'aide du prin ipe de ré urren esavoir dé�nir le lien entre preuve par ré urren e et algorithmeré ursifé rire des algorithmes ré ursifs omme par exemple elui al ulant la fa torielle et re her hant un élément pardi hotomie

S. Verel Synthèse et omplexité

Page 14: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéPrin ipeDeux étapes à démontrer :le caractère héréditaire

Si Pn est vraie

pour un n>= n0 Pn+1 est vraiealorsPn0 est vraie

l’initialisation

Pour on lure : Pn est vraie pour tout n ≥ n0S. Verel Synthèse et omplexité

Page 15: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéExempleOn dé�nit T0 = 0, et pour tout entier n stri tement positif,Tn = Tn−1 + n.Démontrer que pour tout entier n positif, Tn = n(n+1)2 .

S. Verel Synthèse et omplexité

Page 16: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéAlgorithmes ré ursifsRe her he di hothomique dans un tableau...Attendre la �n du monde en empilant des disques (lourds)...

S. Verel Synthèse et omplexité

Page 17: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 04 : Types de données abstraits séquen iels onnaitre le type de données abstrait liste onnaitre le type de données abstrait pile et �leé rire des algorithmes ré ursifs basés sur le TDA liste, enparti ulier le al ul de la longueur, l'extra tion de sous-liste, la on aténation de listes, l'ajout et la supression d'éléments,l'utilisation d'a umulateur

S. Verel Synthèse et omplexité

Page 18: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéExemple (trop) simpleE 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 Synthèse et omplexité

Page 19: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 05 : Type de données abstrait arbre onnaitre le type de données abstrait arbreé rire des algorithmes ré ursifs basé sur le TDA arbre, enparti ulier le par ours d'arbre, de �ltre et de re her hed'élements

S. Verel Synthèse et omplexité

Page 20: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéExemple (trop) simpleLes arbres binaires ne sont supposés ne ontenir que des nombres 0ou 1.E rire un algorithme qui hange tous les 0 en 1 et inversement d'unarbre donné en paramètreAlgorithme swap(a : arbre d'entier) : arbredébutsi arbreEstVide ?(a) alorsretourner arbreVide()sinonsi ra ine(a) = 0 alorsretourner arbreCons(1, swap(arbreGau he(a),swap(arbreDroit(a))))sinonretourner arbreCons(0, swap(arbreGau he(a),swap(arbreDroit(a))))�n si�n si�n S. Verel Synthèse et omplexité

Page 21: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 06 : Relation d'ordre onnaitre la dé�nition de relation d'ordreprouver qu'une relation binaire est une relation d'ordre onnaitre l'ordre lexi ographique et de la divisibilité sur lesentiersdonner le diagramme de Hasse d'une relation d'ordre �nie

S. Verel Synthèse et omplexité

Page 22: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéDé�nitionRelation d'ordreUne relation d'ordre est une relation :ré�exiveantisymétriquetransitive

S. Verel Synthèse et omplexité

Page 23: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéExempleRelation d'in lusion sur l'ensemble {a, b, }ens. vide

{a , b , c}

{a,c} {b,c}

{a} {b} {c}

{a, b}

S. Verel Synthèse et omplexité

Page 24: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 07 : Prin ipe d'indu tion onstruire et é rire des ensembles dé�nis indu tivementprouver par indu tionnotion de terminaison d'algorithme

S. Verel Synthèse et omplexité

Page 25: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéExempleSoit un ensemble E .Ensemble A dé�ni indu tivement :Base : ǫ ∈ AIndu tion : si e ∈ E , g ∈ A, ∈ A et d ∈ A alors(e, g , , d) ∈ AFon tion n dé�nie indu tivement sur ABase : n(ǫ) = 0Indu tion : Pour tout g , , d de A et e ∈ E ,n((e, g , , d)) = 1 + n(g) + n( ) + n(d)S. Verel Synthèse et omplexité

Page 26: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 08 : Langages rationnelssavoir dé�nir mot et langage. onnaitre les opérations algébriques sur les langagessavoir dé�nir langage rationnelsavoir é rire une expression régulière simplesavoir dé�nir le langage re onnu par un automate �ni

S. Verel Synthèse et omplexité

Page 27: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 09 : Automate non déterministedé�nir automate à état �ni re onnaissant un langage rationnelsimple onnaître le théorème de Kleenedéterminiser un automate

S. Verel Synthèse et omplexité

Page 28: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéAutomate non déterministeVoir tableau

S. Verel Synthèse et omplexité

Page 29: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéLangage rationnelDé�nition indu tive de l'ensemble des langages rationnels (ouréguliers) :Langages rationnels (ou réguliers)L'ensemble des langages rationnels R est dé�ni par :base :∅ ∈ R{ǫ} ∈ Rpour tout a ∈ Σ, {a} ∈ R .indu tion : Si L ∈ R et M ∈ R alors :L ∪M ∈ RL.M ∈ RL∗ ∈ R . S. Verel Synthèse et omplexité

Page 30: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéLien entre expression régulière, langage rationnel etautomateThéorèmeUn langage est rationnel (ou régullier) si et seulement si il est dé ritpar une expression régulière.Théorème de KleeneUn langage sur un alphabet Σ est rationnel si et seulement si il estre onnu par un automate �ni.S. Verel Synthèse et omplexité

Page 31: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéséan e 10 : Test et Véri� ation d'algorithmessavoir proposer un jeux de tests simples pour un algorithme onnaître la di�éren e entre jeux de tests et preuve de orre tionprouver la orre tion d'algorithmes utilisant l'a�e tation, les onditions simples, les itérations

S. Verel Synthèse et omplexité

Page 32: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéCorre tion exer i e 4 : Fa torielleSoit C l'algorithme :k ← Nf ← 1tant que k > 0 fairef ← f ∗ kk ← k − 1�n tant queSoit I la proposition : (f ∗ k! = N!) ∧ (k ≥ 0)S. Verel Synthèse et omplexité

Page 33: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéQuestion 1 : tra e d'exé ution1 Réaliser une tra e d'algorithme pour N = 5 en donnantégalement la valeur de vérite de I .Opération k f Ik ← N 5 - -f ← 1 5 1 VRAIévaluation de k > 0 5 1 VRAIf ← f ∗ k 5 5 FAUXk ← k − 1 4 5 VRAIévaluation de k > 0 4 5 VRAIf ← f ∗ k 4 20 FAUXk ← k − 1 3 20 VRAIévaluation de k > 0 3 20 VRAIf ← f ∗ k 3 60 FAUXk ← k − 1 2 60 VRAIévaluation de k > 0 2 60 VRAIf ← f ∗ k 2 120 FAUXk ← k − 1 1 120 VRAIévaluation de k > 0 1 120 VRAIf f k 1 120 VRAIk k 1 0 120 VRAIévaluation de k 0 0 120 VRAIS. Verel Synthèse et omplexité

Page 34: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéQuestion 22 Montrer que la spé i� ation {0 ≤ N}k ← N ; f ← 1{I} estvraie.Depuis la post- ondition I et on véri�e qu'en exé utant les deuxa�e tations, on obtient la pré- ondition N ≥ 0.{1 ∗ k! = N! ∧ k ≥ 0} f ← 1 {f ∗ k! = N! ∧ k ≥ 0}{N! = N! ∧N ≥ 0} k ← N {k! = N! ∧ k ≥ 0}Or N! = N! ∧N ≥ 0 est équivalent à N ≥ 0.Don la spé i� ation {N ≥ 0} k ← N ; f ← 1 {I} est vraie.S. Verel Synthèse et omplexité

Page 35: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéQuestion 33 Montrer que la spé i� ation{k > 0 ∧ I}f ← f ∗ k ; k ← k − 1{I} est vraie.Montrons que en partant de la pos- ondition que la spé i� ation

{k > 0 ∧ I} f ← f ∗ k ; k ← k − 1 {I} est vraie.{k − 1 ≥ 0 ∧ f ∗ (k − 1)! = N!} k ← k − 1 {k ≥ 0 ∧ f ∗ k! = N!}{k ≥ 1 ∧ f ∗ k ∗ (k − 1)! = N!} f ← f ∗ k {k ≥ 1 ∧ f ∗ (k − 1)! = N!}Or, f ∗ k ∗ (k − 1)! = f ∗ k!don d'après la omposition d'instru tions, on obtient la spé i� ation

{k > 0 ∧ I} f ← f ∗ k ; k ← k − 1 {I}S. Verel Synthèse et omplexité

Page 36: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéQuestion 44 Montrer que l'impli ation (¬(k > 0) ∧ I )⇒ (f = N!) estvraie.Montrons que (¬(k > 0) ∧ I )⇒ (f = N!).

(¬(k > 0) ∧ I ) ⇒ (k ≤ 0 ∧ k ≥ 0 ∧ f ∗ k! = N!)⇒ (k = 0 ∧ f ∗ k! = N!)⇒ f = N!

S. Verel Synthèse et omplexité

Page 37: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéQuestion 55 Con lure en montrant que la spé i� ation {0 ≤ N}C{f = N!}est vraie.On a montré que :1 {N ≥ 0}k ← N ; f ← 1{I}2 {k > 0 ∧ I}f ← f ∗ k ; k ← k − 1{I}3 (k ≤ 0 ∧ I )⇒ f = N!D'après la propriété du ours sur les itérations tant que, on peut don endéduire que la spé i� ation :{N ≥ 0} TantQue k > 0 Fairef ← f ∗ k ; k ← k − 1 FinTantQue {f = N!}est vraie, 'est à dire que :

{N ≥ 0}C{f = N!} est vraie.L'algorithme al ule la fa torielle d'un nombre entier positif.S. Verel Synthèse et omplexité

Page 38: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéAlors uisine or not uisine ?Algorithme : méthode automatique, univoque de résolution de ertains problèmes, et , et .Comment é rire des algorithmes ?des problèmes qui né essitent d'enregistrer des al ulsintermédiaires,des problèmes qui né essitent di�érents traitement selon lasituation,des problèmes qui né essitent l'itération d'opérations,des problèmes qui se réduisent en d'autres plus simple,des problèmes qui traitent et organisent de nombreusesdonnées.Des algorithmes pour quelle ma hine ?ma hine abstraite universelle,quels problèmes peut-on résoudre ?Comment savoir que l'algorithme est orre t ?Est- e que l'algorithme est e� a e en espa e et en temps ?S. Verel Synthèse et omplexité

Page 39: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexitéAn ienne séan e 11 : Notion de omplexitésavoir dé�nir les notions de omplexité spatiale et temporelle al uler la omplexité d'algorithmes itératifs al uler la omplexité d'algorithmes ré ursifs simples lasser les algorithmes selon leur lasse de omplexité

S. Verel Synthèse et omplexité

Page 40: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 41: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 42: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 43: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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�n

S. Verel Synthèse et omplexité

Page 44: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 45: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 46: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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'algorithmeCe sont des dé�nitions informelles...On ne s'interessera seulement qu'à la omplexité temporelle, la omplexité spatiale étant en général moins ritique.Pourtant, souvent expérimentalement on pense à e genre derelation : CspatialeCtemporelle = onstanteS. Verel Synthèse et omplexité

Page 47: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéMesure de omplexité temporelle (D. Knuth)Pour rendre indépendent 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éesObje tifs :Estimer le out sans exé uter l'algorithme omparaison d'algorithmesS. Verel Synthèse et omplexité

Page 48: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

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

Page 49: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéDé�nitionsSoient f et g deux fon tions de IN dans IR.Borne appro hée asymptotiqueg(n) est une borne asymptotique appro hée asympotiquement def (n) s'il existe deux onstantes stri tement positives 1 et 2 tellesque, pour n assez 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 Synthèse et omplexité

Page 50: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéDé�nitionsBorne supérieure asymptotiqueg(n) est une borne supérieure appro hée asympotiquement de f (n)s'il existe une onstante stri tement positive telles que, pour nassez grand, 0 ≤ f (n) ≤ g(n)On note alors f (n) = O(g(n))c g(n)

f(n)

S. Verel Synthèse et omplexité

Page 51: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéDé�nitionsBorne supérieure non asymptotiquement appro hée (négligeable)g(n) est une borne supérieure non asymtotiquement 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 Synthèse et omplexité

Page 52: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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))Θ et O sont des relations ré�exivesO et o sont des relations transitivesΘ est une relation d'équivalen epour 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 Synthèse et omplexité

Page 53: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéClasses de omplexitéPour analyser la omplexité, on lassi�e les mesures de omplexitédans les atégories suivantes : 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 par fusion d'un tableau de taille n omplexité polynomiale : Θ(nk) ave k > 1ex : multipli ation de matri es omplexité exponentielle : Θ(an) ave a > 1ex : tour de Hanoi S. Verel Synthèse et omplexité

Page 54: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 55: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 56: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition 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 Synthèse et omplexité

Page 57: Synthèse et complexité - Licence 2 MASS - Algorithmique et ...verel/TEACHING/...dichotomie S. V erel Synthèse et complexité ... diagramme de Hasse d'une relation d'o rdre nie S.

BilanComplexité Dé�nition de omplexitéObje tifs de la séan e 11 onnaitre le lien entre ma hine abstraite, type de donnéesabstraite, terminaison, omplexité et orre tionNotion de omplexitéQuestions prin ipales du jour :Qu'est- e que 'est que toute ette uisine ? THE END.S. Verel Synthèse et omplexité