Vous êtes sur la page 1sur 5

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Complexit e des algorithmes (2)


Wegrzynowski Nour-Eddine Oussous, Eric
Licence ST-A, USTL - API2

Analyse des boucles Pour Exemple Formules Analyse des boucles Tant Que Exemple Analyse de sch emas r ecursifs Exemple 1 : factorielle Exemple 2 : Tours de Hano Principe g en eral

1er octobre 2008

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Tri par insertion (algo)


Co ut dune boucle pour
Dans la boucle pour i v a r i a n t de a ` a b faire ACTION( i ) f i n pour si f (i ) d esigne le co ut de lex ecution de ACTION(i ), alors le co ut de la boucle est
b

Algo
Donn ees : un tableau A[1..n] dentiers But : trier le tableau A par ordre croissant Var. locales : i pour i v a r i a n t de 2 ` a n faire i n s e r e r (A ,i ) f i n pour

c=
i =a

f (i )

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Exemple

Tri par insertion (co ut)


Le co ut de lalgorithme d epend 1. de la taille n du tableau 2. du contenu du tableau 3. du co ut des op erations el ementaires ( echanges, comparaisons, acc` es) Nous nous int eressons 1. au nombre d echanges d el ements du tableau e (A, n), 2. et au nombre de comparaisons d el ements du tableau c (A, n)

Tri par insertion (co ut)


En d esignant par e (A, i ) et c (A, i ) les nombres d echanges et de comparaisons dans laction inserer(A,i ), on a
n

e (A, n) =
i =2 n

e (A, i ) c (A, i )
i =2

c (A, n) =

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Exemple

Tri par insertion (co ut)


Comme on a vu que 0 e (A, i ) i 1 et 1 c (A, i ) i 1 on a 0=
i =2 n n n 1

Tri par insertion (conclusion)


Encadrements obtenus : 0 e (A, n) et
n(n 1) i= 2 n(n 1) 2

n(n 1) = (n2 ) 2 n(n 1) = (n2 ) 2

(n) = n 1 c (A, n) Bornes des encadrements atteintes

0 e (A, n)
i =2 n

i 1=
i =1 n

et n1=

n 1

borne inf erieure atteinte pour un tableau d ej` a tri e borne sup erieure atteinte pour un tableau tri e dans lordre inverse

1 c (A, n)
i =2 i =2

i 1=
i =1

i=

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Formules

Formules

Exemples de sommes
n

Lien entre sommes et int egrales


1=n

Soient a b deux entiers. Soit f : [a, b ] R une fonction croissante (resp. d ecroissante) et continue sur [a, b ]. Alors
b 1 b b

i =1

i=
i =1

n(n + 1) = (n2 ) 2

f (i )
i =a b a b

f (x )dx
i =a+1 b 1

f (i )

(1)

n i =1

n(n + 1)(2n + 1) i2 = = (n3 ) 6

resp.
i =a+1

f (i )
a

f (x )dx
i =a

f (i )

(2)

Plus g en eralement pour k N,


n

i k = (nk +1 )
i =1

Si q = 1
n

qi =
i =0

q n+1 1 = (q n ) q1
Licence ST-A, USTL - API2 Complexit e des algorithmes (2) Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Co ut dune boucle tant que


Dans la boucle t a n t que C (x ) f a i r e ACTION( x ) f i n t a n t que en notant x0 la valeur initiale de la donn ee x , et x1 , x2 , . . . , xk les valeurs quelle prend successivement ` a chaque etape, xk +1 la premi` ere valeur de la donn ee pour laquelle C (xk +1 ) nest pas satisfaite, g (xi ) le co ut de la condition C (xi ), et f (xi ) le co ut de laction ACTION(xi ), le co ut de la boucle est
k k +1

Multiplication de deux entiers


Le probl` eme
Donn ees : a et b deux entiers naturels But : calculer a b Plusieurs algorithmes variant selon les op erations el ementaires disponibles : 1. multiplication disponible : solution triviale 2. seule laddition des entiers est disponible : solution avec boucle pour (exercice) 3. addition et division par deux des entiers disponibles.

c=
i =0
Complexit e des algorithmes (2)

f (xi ) +
i =0

g (xi )

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Exemple

M ethode egyptienne
Calcul du produit de a = 67 v t u 67 21 0 67 134 10 268 5 67 335 536 2 1072 1 335 1407 1407 par b = 21.

Multiplication egyptienne : algo


Algo
Donn ees : a et b deux entiers naturels, b > 0 But : calculer a b Variables locales : t , u , v mult ( a , b ) : t := a ; u : = b ; v : = {t u + v = a b} t a n t que u > 1 f a i r e si u impair alors v := v + t ; fin si ; t := t + t ; u := u 2 ; {t u + v = a b} f i n t a n t que { t u + v = a b, u = 1 } retouner t + v ;
0;

op eration en cours
Les nombres ` a multiplier u = 1 t := t + t , u := u /2 u = 1 termin e suppression des lignes o` u u est pair somme des valeurs restantes dans la colonne t utilisation dune variable v pour le calcul de la somme u impair v := v + t

Conclusion
Complexit e des algorithmes (2) Licence ST-A, USTL - API2 67 21 = 1407 Seules op erations utilis ees :+ et 2 Complexit e des algorithmes (2) Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Exemple

Multiplication egyptienne : analyse

Multiplication egyptienne : analyse


` chaque A etape du tant que une ou deux additions selon la parit e de u

on sint eresse au nombre dadditions eectu ees ce co ut ne d epend que de b

meilleur des cas : 1 addition ` a chaque etape. Cest le cas si b est une puissance de 2 : b = 2p . Dans ce cas c (b ) = p + 1

c (b ) = nombre dadditions pour multiplier par b pire des cas : 2 additions ` a chaque etape. Cest le cas si b est une puissance de 2 moins un : b = 2p 1. Dans ce cas c (b ) = 2(p 1) + 1= 2p 1
Complexit e des algorithmes (2) Licence ST-A, USTL - API2 Complexit e des algorithmes (2) Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple

Exemple 1 : factorielle

Multiplication egyptienne : analyse


Dans tous les cas, si 2p1 b 2p 1 on a p c (b ) 2p 1 En tenant compte du fait que p = (log2 (b )), on a c (b ) = (p ) = (log2 (b ))

Cas de base

Algo
f a c t (n) : si n = 0 alors f a c t := 1 sinon f a c t := n f a c t ( n 1 ) fin si c (0) = 0

Cas r ecursif n 1 c (n) = 1 + c (n 1)

co ut recherch e = nbre de multiplications d epend de n c (n) = nbre de mult pour calculer n! c (n ) = n

Conclusion
cet algorithme est logarithmique en fonction de la valeur de b ou bien lin eaire en fonction de la taille p de b

Conclusion
Algorithme lin eaire en la valeur de n Algorithme exponentiel en la taille de n

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Complexit e des algorithmes (2)

Licence ST-A, USTL - API2

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Plan

Analyse des boucles Pour

Analyse des boucles Tant Que

Analyse de sch emas r ecursifs

Exemple 2 : Tours de Hano

Principe g en eral

Algo
H( n , D , A , I ) : si n = 1 alors d e p l a c e r de D v e r s A sinon H( n 1 , D , I , A ) ; d e p l a c e r de D v e r s A ; H( n 1 , I , A , D ) ; fin si

Cas de base c (1) = 1

Sch ema danalyse r ecursive


Le co ut dun algorithme r ecursif peut toujours sexprimer sous forme dune equation de r ecurrence. la r esolution des equations de r ecurrence peut sav erer parfois d elicate

Cas r ecursif n 1 c (n) = 1 + 2c (n 1)

co ut recherch e = nbre de d eplacements d epend de n c (n) = nbre de d eplacements


Complexit e des algorithmes (2)

c (n) = 2n 1

mais peut toujours etre programm ee

Conclusion
Algorithme exponentiel en la valeur de n
Licence ST-A, USTL - API2 Complexit e des algorithmes (2) Licence ST-A, USTL - API2