Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
melansari@gmail.com
Plan
1
Algorithmes Reprsentations des algorithmes e Codage dun algorithme Oprations lmentaires e ee Complexit e Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e Conclusion
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Algorithmes
Le mot algorithme vient du nom du mathmaticien arabe Al Khuwarizmi. Un algorithme est une suite de traitement lmentaires ee pouvant tre excutes automatiquement. e e e Un algorithme prend en entre des donnes et produit un e e rsultat. e Une recette de cuisine est un algorithme, lentre tant les e e ingrdients et la sortie le plat cuisin. e e Lalgorithme dEuclide: cest un algorithme permettant de dterminer le plus grand commun diviseur (P.G.C.D.) de deux entiers.
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Pseudo langage
Pseudo langage
Exemple
NB. Il nexiste pas de formalisme universel pour lcriture dun e pseudo programme.
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Organigramme
Un organigramme permet de reprsenter graphiquement un algorithme. e Organigramme de la factorielle
Oprations lmentaires e ee
Etant donn un algorithme, nous appelons oprations e e lmentaires: ee
1 2 3
un acc`s en mmoire pour lire ou crire la valeur dune variable; e e e une opration arithmtique entre deux variables: +,- ...etc; e e une comparaison entre deux variables.
Considrons par exemple linstruction c a + b. Elle fait e appel ` quatre oprations lmentaires: a e ee
1 2 3 4
lacc`s en mmoire pour lire la valeur de a, e e lacc`s en mmoire pour lire la valeur de b, e e laddition de a et b, lacc`s en mmoire pour crire la nouvelle valeur de c. e e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notions de complexit e
Plusieurs algorithmes permettent de rsoudre un mme e e probl`me. e Exemple: Pour trier les lments dun tableau il y a dirents ee e algorithmes:
1 2 3 4 5
tri par slection, e tri par insertion, tri rapide, tri par fusion, ....
Comment valuer les performances dun algorithme? e Sur quel crit`re il faut se baser pour choisir le meilleur e algorithme?
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notions de complexit e
La complexit dun algortithme est une valuation du cot de e e u lalgorithme en termes de:
1 2
temps dexcution (complexit temporelle) ou e e despace mmoire (complexit spatiale, encombrement en e e mmoire des donnes) e e
On va traiter dans la suite la complexit temporelle. Les e mmes notions permettent de traiter la complexit spatiale. e e La complexit permet de dterminer si un algorithme A et e e meilleur quun algorithme B.
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Complexit en temps e
Complexit = temps de calcul et mmoire requis pour obtenir e e un rsultat donn. e e Bonne ma trise de la complexit se traduit par: e
1 2
temps de calcul des applications prvisible, e mmoire occupe par lapplication est contrle. e e oe des latences importantes dans les temps de calcul, des dbordements mmoire, e e consquence : planter la machine. e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Complexit en temps e
Lvaluation exacte du temps de calcul dpend de nombreux e e param`tres: e
1 2 3 4 5
le langage utilis pour coder lalgorithme. e le compilateur utilis. e lordinateur sur lequel va tourner le programme (sa rapidit). e taille et structure de donnes. e ....
Objectif: comparer plusieurs algorithmes permettant de rsoudre un mme probl`me lorsque la taille des donnes e e e e manipules devient grande. e Nous sommes plus intresss par un comportement e e asymptotique: que se passe-til quand la taille des donnes e tend vers linni?
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Complexit en temps e
Dnitions e
Dnition de la complexit dun algorithme e e Soit A un algorithme et d une donne dentre de A. On appelle e e complexit de A pour d, note CA (d), le nombre doprations e e e lmentaires eectues lors de lexcution de A sur d. ee e e Le nombre doprations est exprim en fonction de param`tres e e e associs aux instances ` traiter. e a Exemple: la complexit dun tri est fonction du nombre de e donnes ` trier. La complexit nest pas la mme avec deux e a e e jeux de donnes dirents ` savoir: e e a
rapide si des donnes sont dj` tries. e ea e moins rapide si les donnes sont dsordonnes. e e e
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Types de complexit e
1
La complexit dans le pire des cas: on consid`re le plus grand e e nombre doprations lmentaires eectues sur les donnes. e ee e e On cherche un majorant de la complexit e (SupA (n) = sup{CA (d)/d de taille n}). Cest la mesure la plus utilise. e La complexit dans le meilleur des cas: on consid`re le plus e e petit nombre doprations lmentaires eectues sur les e ee e donnes (InfA (n) = inf {CA (d)/d de taille n}). e La complexit en moyenne: la moyenne des nombres e doprations lmentaires eectues sur tous les jeux des e ee e donnes. Ce calcul est gnralement dicile ` formuler car il e e e a faut conna la probabilit de chacun des jeux de donnes tre e e pour un calcul pertinent de cette moyenne (MoyA (n) = d de taille n p(d) CA (d)).
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
4. FinTantQue Supposons que (avec t1, t2, t3, et t4 sont des constantes): t1: temps dexcution des instructions 1-2. e t2: temps dexcution de linstruction 3 (comparaison). e t3: temps dexcution de linstructions a. e t4: temps dexcution de linstructions b. e
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notations en O
Domination asymptotique Soient f et g deux fonctions de N dans R+ , Si c R+ et n0 N tels que, pour tout n > n0 , f (n) c g (n) on dit que f est en O(g ) (f est asymptotiquement domine par g ) e Exemple f (n) = 3n + 1, g (n) = n alors 3n + 1 est en O(n). En eet pour n0 = 2 et c = 4 on a 3n + 1 4n pour n > n0
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notations en
Ordre de grandeur Soient f et g deux fonctions de N dans R+ , Si f est en O(g ) et g est en O(f ) alors on dit que f est en (g ) (f et g sont de mme e ordre de grandeur asymptotique) Exemple f (n) = 3n + 1, g (n) = n alors 3n + 1 est en (n). En eet dune part 3n + 1 est en O(n), dautre part pour n0 = 2 et c = 2 on a n 2 (3n + 1) pour n > n0 et donc n est en O(3n + 1)
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Proprits ee
f est en (g ) si et seulement si c R+ , d R+ , n0 N tels que n N , n > n0 d g (n) f (n) c g (n) La notation se ram`ne ` un encadrement (` partir dun e a a certain rang) de la quantit f . e Si Lim
n f (n) g (n) f (n) g (n) f (n) g (n)
= a = 0 f est en (g ) = 0 f est en O(g ) mais f nest pas en (g ) = f nest pas en O(g ) et donc f nest
Si Lim
n
Si Lim
n
pas en (g )
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Proprits ee
En pratique: La fonction f reprsente une quantit ` tudier (temps, e eae nombre doprations). e La fonction g fait partie dune chelle de fonctions simples e 2 , etc...) destine ` informer sur le (n, n log2 (n), n e a comportement asymptotique de f . Les proprits cites ci-dessus permettent dans la pluspart des ee e cas dvaluer f . On cherche lquivalent de f ` linni. e e a Exemple: f (n) = 3n + 1, 3n+1 3n et donc
Lim
n
3n+1 n
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
1+2+1+
2
n j=1
(1 + 3) + 1 +
FinTantQue
FinTantQue
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Solution:?
FinTantQue
I I+1 FinTantQue
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
sinon
retourner n*factorielle(n-1)
sinon
n
Pr. Mohamed EL ANSARI Complxit des algorithmes e e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Echelle de complexit e
Nous donnerons ici les ordres de grandeur et leur correspondance: O(1) : constante. une instruction simple ou nombre ni dinstructions. O(log (n)) : logarithmique. Quand on part dun grand probl`me ` un sous-probl`me plus petit par rduction. e a e e O(n) : linaire, e n log (n) O(n2 ), O(n3 ), O(np ) : polynomiales, O(p n ) : exponentielle.
Notions de complexit e Complexit en temps e Types de complexit e Notations en O Notations en Complexit dun algorithme rcursif e e Echelle de complexit e
Inuence de la complexit e
Le tableau ci-dessous donne le temps dexcution de cinq e algorithmes selon leur comportement et la taille des donnes; on e suppose que la dure dune instruction est de lordre de 1s. e Taille (n=) 10 100 1000 10000 100000 log(n) 3s 7s 10s 13s 17s n 10s 100s 1000s 1/100s 1/10s n*log(n) 30s 700s 1/100s 1/7s 2s n2 100s 1/100s 1s 1,7mn 2,8h 2n 1000s 1014 si`cles e astronomique astronomique astronomique
Conclusion
Probl`me Algorithme Programme Solution. e Quel algorithme? Quelle structure de donnes? e Comment juger un algorithme? Complexit? Comment la calculer? e