Académique Documents
Professionnel Documents
Culture Documents
Objectifs des calculs de complexit : - pouvoir prvoir le temps d'excution d'un algorithme - pouvoir comparer deux algorithmes ralisant le mme traitement Exemples : - si on lance le calcul de la factorielle de 100, combien de temps faudra t-il attendre le rsultat? - quel algorithme de tri vaut-il mieux utiliser pour retrier un tableau o on vient de changer un lment? L'valuation de la complexit peut se faire plusieurs niveaux : au niveau purement algorithmique par l'anal!se et le calcul au niveau de l excution du programme exprimentalement
Complexit exprimentale
"l est possible d'valuer de fa#on exprimentale le temps d'excution des programmes$
Cette valuation exprimentale dpend beaucoup des programmation ordinateurs et s!st%mes d'exploitation utiliss$
langages
de
&our avoir un sens l'valuation exprimentale re'uiert un talonnage des ordinateurs utiliss$
Licence Informatique - Semestre 2 - Algorithmique et Programmation 2
(enchmar)ing
*n logiciel de benchmar) +talonnage, donne une mesure de puissance d'un ordinateur en flops +floating point operations per second,$ Cette puissance varie en fonction des traitements effectus +calculs bruts sur des entiers ou des rels calculs lis l'affichage $$$,
&uissance des ordinateurs grand public actuels : 'uel'ues -igaflops +./0 flops, &uissance des meilleurs super-ordinateurs actuels : environ ./// 1eraflops +./.2 flops, +cf$ !!!"top#00"org,
- la deuxi$me mthode n utilise que les deux variables dont on veut changer les valeurs, mais ralise % affectations et % oprations
Licence Informatique - Semestre 2 - Algorithmique et Programmation 4
5%gle +non officielle, de l'espace-temps informati'ue : pour gagner du temps de calcul on doit utiliser davantage d'espace mmoire$
On s'intresse essentiellement la complexit en temps +ce 'ui n'tait pas forcment le cas 'uand les mmoires coutaient cher,
faire
7uand l'algorithme op%re sur une structure multidimensionnelle il faut bien prciser le param%tre de complexit$ *n algorithme oprant sur de telles structures peut avoir des complexits diffrentes selon la dimension considre$
Licence Informatique - Semestre 2 - Algorithmique et Programmation 8
+n peut fixer des temps d excution constants ' chaque t,pe d instruction : - affectation d entier : ae - comparaison d entier : ce - opration lmentaire sur des entiers : oe +n nglige le co-t des dclarations, des affectations et du retour"
Licence Informatique - Semestre 2 - Algorithmique et Programmation
ae 9
.u total, le temps d excution sera de la forme a/n0b a et b dpendent du langage de programmation et de l ordinateur utiliss"
10
fonction avec retour boolen recherche,le%ent(chaine&' tab, chaine x entier i; dbut i <- (; tant-ue (i < tab.longueur faire si (tab&i' . x alors retourne /012; finsi fintant-ue retourne 3145; fin
&e param$tre de complexit est la taille du tableau d entre" &e nombre de tours de boucles varie selon que x est dans le tableau ou pas, et selon l endroit o x est prsent"
Licence Informatique - Semestre 2 - Algorithmique et Programmation 11
Si x est dans la premire case du tableau : 1 tour de boucle avec la condition tab(i)1x vraie Si x est dans la deuxime case du tableau : 1 tour de boucle avec la condition tab(i)1x fausse et 1 tour de boucle avec la condition tab(i)1x vraie """ Si x est dans dernire case du tableau : tab"longueur-1 tours de boucle avec la condition tab(i)1x fausse et 1 tour de boucle avec la condition tab(i)1x vraie Si x n'est pas dans le tableau : tab"longueur tours de boucle avec la condition tab(i)1x fausse
Licence Informatique - Semestre 2 - Algorithmique et Programmation 12
- La complexit au mieux : temps d'excution minimum dans le cas le plus favorable +en prati'ue cette complexit n'est pas tr%s utile,$
- La complexit mo!enne : temps d'excution dans un cas mdian ou mo!enne des temps d'excution$ Le plus souvent on utilise la complexit au pire car on veut borner le temps d'excution$
Licence Informatique - Semestre 2 - Algorithmique et Programmation 13
n 1 la taille du tableau, ae 1 affectation d entier, ce 1 comparaison d entier" 2omplexit au pire 3x n est pas dans le tableau4 : ae0n/35/ce4 2omplexit au mieux 3x est dans la premi$re case du tableau4 : ae05/ce 2omplexit en mo,enne : considrons qu on a #06 de chance que x soit dans le tableau, et #06 qu il n , soit pas, et, s il , est sa position mo,enne est au milieu" &e temps d excution est ( 3ae0n/35/ce44 0 3ae03n754/35/ce44 ) 75, de la forme a/n0b 3avec a et b constantes4
Licence Informatique - Semestre 2 - Algorithmique et Programmation 14
15
c8g+x,
f+x,
n/
?otation @ : f < @+g, s'il existe des constantes c=/ et n/ telles 'ue f+x, A c8g+x, pour tout x A n/
17
B'uivalence as!mptoti'ue
f et g tant des fonctions f < C+g, s'il existe des constantes c. c4 strictement positives et n/ telles 'ue c.8g+x, D f+x, D c48g+x, pour tout x A n/
c48g+x,
f+x,
c.8g+x, n/ x
18
19
Les algorithmes de complexit pol!nomiale ne sont utilisables 'ue sur des donnes rduites ou pour des traitements ponctuels Les algorithmes exponentiels ou au del ne sont pas utilisables en prati'ue
Licence Informatique - Semestre 2 - Algorithmique et Programmation 21
N heure
.s
Loi de Goore +empiri'ue, : coHt constant la rapidit des processeurs double tous les .I mois +les capacits de stoc)age suivent la mme loi,$ Constat : le volume des donnes stoc)es dans les s!st%mes d'informations augmente de fa#on exponentielle$ Conclusion : il vaut mieux optimiser ses algorithmes 'u'attendre des annes 'u'un processeur surpuissant soit invent$
Licence Informatique - Semestre 2 - Algorithmique et Programmation 22
5echerche s'uentielle
fonction avec retour boolen recherche,le%ent(chaine&' tab, chaine x entier i; dbut i <- (; tant-ue (i < tab.longueur faire si (tab&i' . x alors retourne /012; finsi fintant-ue retourne 3145; fin
n 1 la taille du tableau, ae 1 affectation d entier, ce 1 comparaison d entier" 2omplexit au pire 3x n est pas dans le tableau4 : ae0n/35/ce4 1 +3n4 2omplexit au mieux 3x est dans la premi$re case du tableau4 : ae05/ce 1 +314 2omplexit en mo,enne : considrons qu on a #06 de chance que x soit dans le tableau, et #06 qu il n , soit pas, et, s il , est sa position mo,enne est au milieu" &e temps d excution est ( 3ae0n/35/ce44 0 3ae03n754/35/ce44 ) 75, de la forme a/n0b 3avec a et b constantes4 1 +3n4
Licence Informatique - Semestre 2 - Algorithmique et Programmation 23
&e param$tre de complexit est la longueur du tableau, qu on appelle n" 2as au pire : x n est pas dans le tableau" &a longueur de la partie du tableau comprise entre i et ? est d abord n, puis n75, puis n7=, """", ?usqu ' ce que n75t 1 1" &e nombre de tours de boucles est donc un entier t tel que n75t 1 1 soit 5t 1 n soit t/log354 1 log3n4 soit t 1 log53n4
Licence Informatique - Semestre 2 - Algorithmique et Programmation 24
&a complexit au pire de la recherche dichotomique est 3ce 0 5/ cc 0 %/oe4/log53n4 avec ce 1 comparaison d entier, cc 1 comparaison de chaine, oe 1 opration lmentaire" 2omplexit as,mptotique : +3log3n44 2onclusion : pour des donnes de grande taille, si le tableau est tri, il vaut mieux utiliser la recherche dichotomique
Licence Informatique - Semestre 2 - Algorithmique et Programmation 25
@aram$tre de complexit : la valeur de n Al n , a qu un seul cas d excution 3pas de cas au pire ou au mieux4 Bi n C 1, le calcul de la factorielle de n co-te une comparaison d entiers, le calcul de la factorielle de n-1 et une multiplication d entiers Bi n 1 1, le calcul de la factorielle co-te une comparaison d entiers
Licence Informatique - Semestre 2 - Algorithmique et Programmation 26
&a complexit de la factorielle rcursive est donc linaire, comme celle de la factorielle itrative"
. l excution, la fonction rcursive est un peu moins rapide 3pente de la droite plus forte4 du fait des appels rcursifs"
27
Complexit et rcursivit
Bn gnral drcursiver un algorithme ne change pas la forme de sa complexit pas plus 'ue passer en rcursivit terminaleE
"l existe diverses techni'ues pour la rsolution des 'uations de rcurrence +mthode des fonctions gnratrices et dcomposition des fractions rationnelles transforme en P Q,$
1hor%me : soit 1+n, une fonction dfinie par l''uation de rcurrence suivante oR b A 4 ) A / a = / c = / et d =/ : 1+n, < a81+n3b, 9 c8n)
si a = b) alors 1+n, C +nlogb+a,, si a < b) alors 1+n, C +n)8log+n,, si a > b) alors 1+n, C n)
Licence Informatique - Semestre 2 - Algorithmique et Programmation 28
30
&aram%tre de complexitU: la valeur de n *n seul cas d'excution La complexit c+n, vrifie l''uationU: c+n, < a 9 c+n-., 9 c+n-4, si n=. c+., < . c+/, < . Solution de l''uationU: c+n, < C +Vn, oR V < +.9W2,34
Licence Informatique - Semestre 2 - Algorithmique et Programmation
31
&aram%tre de complexitU: la valeur de n *n seul cas d'excution &our nX/ il ! a +n-., tours de boucles donc la complexit vaut a8+n-.,9b avec a et b constantes donc la complexit est en O+n,$
32
&aram%tre de complexit : la taille du tableau Cas au pire : les lments sont tris dans l'ordre inverse de celui voulu Complexit au pire : remonter le premier lment ncessite +n-., tours de la boucle imbri'ue remonter le deuxi%me ncessite +n-4, tours etc$ ;onc le nombre de tours total est +n-., 9 +n-4, 9 Q 9 . < n8+n-.,34 soit O+n4,$ 5emar'ue : les tris par slection et par insertion sont aussi 'uadrati'ues$ Gais il existe des algorithmes de tri 'uasi-linaires$
Licence Informatique - Semestre 2 - Algorithmique et Programmation 33