Chapitre II.Rappels mathématiques et complexité Outils mathématiques - Notations asymptotiques - Séries - Dénombrements - Equations de récurrence
Chapitre II.Rappels mathématiques et complexité
Outils mathématiques
- Notations asymptotiques
- Séries
- Dénombrements
- Equations de récurrence
Comparaisons de complexités
• Comparer sur un ensemble des données très grand;
• « Ordre de grandeur », « Comportement asymptotique »
Notation asymptotique
• Pour caractériser le comportement asymptotique en terme de complexité d’un algorithme on utilisera les fonctions dont le domaine est N
• Notations : ,,,, oO
Notation
• Pour une fonction donnée g(n), on note
L’ensemble de fonctions:
L’écriture simplifiée :
g(n) s’appelle borne approchée asymptotique pour f(n)
Chaque fonction utilisée à l’intérieur de la notation doit être positive asymptotiquement
ng
)()()(:00,0:)( 210021 ngcnfngcnnnetccnfng
ngnf )(
Exemples en (1)
•
)(32
1 22 nnn
22
221 3
2
1ncnnnc
0nn
0nn 2n 21
3
2
1c
nc
2
3
2
1c
n
03
2
11 c
n
72/1,14/1 021 netcc
22 32
1nnn
Exemples en (2)
•
)()())(),(max( ngnfngnf
Exemples en (3) •
Considérons la partie gauche de cette inégalité
la partie gauche de cette inégalité est
Notation
Pour une fonction donnée g(n), on noteL’ensemble de fonctions:
L’écriture simplifiée :
g(n) s’appelle borne asymptotique supérieure pour f(n)Remarque 1: implique
Remarque 2: et
On dit que g et f ont un même ordre de grandeur asymptotique
O
ngO
)()(0:00:)( 00 ncgnfnnnetcnfngO
ngOnf )(
ngnf )( ngOnf )(
))(()()( ngOnfngnf ))(()( nfOng
Notation
Pour une fonction donnée g(n), on noteL’ensemble de fonctions:
La notation fournit une borne asymptotique inférieure
Théorème: pour deux fonctions quelconques et ,
si et seulement si et
ng
)()(0:00:)( 00 nfncgnnnetcnfng
)(nf
ngOnf )(
))(()( ngnf
)(ng
ngnf )(
Notations asymptotiques pour les bornes non-approchées
• La borne supérieure n’est pas asymptotiquement approchée
• La borne inférieure n’est pas asymptotiquement approchée
)()(0:00:)( 00 ncgnfnnnetcnfngo
)()(0:00:)( 00 nfncgnnnetcnfng
Notations asymptotiques
Notation
définition
exemple
Critères pour comparer les fonctions
• Soit f(n) et g(n) deux fonctions asymptotiquement positives
))(()(0)(
)(lim ngonf
ng
nf
n
))(()()(
)(lim ngnf
ng
nf
n
))(()(0)(
)(lim ngnfc
ng
nf
n
Notations standard et fonctions classiques (1)
(1) Polynômes
• On dit qu’une fonction f(n) a une borne polynomiale si , ce qui équivaut à dire que
• Complexité quadratique :• Complexité linéaire :
0,)(0
d
d
i
ii ananp
1)( Onnf 0,)( knOnf k
,)( 2nnT ,)( nnT
Notations standard et fonctions classiques (2)
• Exponentielles
• - par convention
Comparaison des vitesses de croissance des polynômes et des exponentielles
Ou
Cas particulier (rappel, réelles) :
,)()(/1,,1,,,0, 110 mnmnnm aaaaaaaanmaRa
nmnm aaa
100
0lim1:, n
b
n a
naba
nb aon
0
32
!...
!3!21
i
ix
i
xxxxe
Notations standard et fonctions classiques (3)
• Logarithmes - log binaire - log naturel• Pour tout réel
• etc..
• Comparaison des vitesses de croissance
• ou illustration graphique • Complexité logarithmique
nn 2loglg
nn elogln
abba
netbalog
0,0
0lg
lim a
b
n n
n
)(lg ab non nnT lg)(
Séries (1)
• Série arithmétique :
• Démonstration • =
+
)/2
=
Séries(2)
• Série géométrique ou exponentielle : • Pour • Raison • Démonstration • =
- )/()=
Dénombrements(1)• La théorie de dénombrements tente de répondre à la
question « Combien? » sans pour autant procéder à une numération.
• Ex. « Combien de mémoire faut-il réserver pour toutes les chaines binaires possibles de longueur n ?»
• (1). Règle de la somme : le nombre de façons de choisir un élément appartenant à un ensemble parmi deux ensembles disjoints est la somme des cardinaux de ces deux ensembles: =
• Ex. Etant donnés deux tableaux des entiers T1 et T2 de taille m et k respectivement combien d’éléments de mémoire faut-il réserver pour le tableau qui contiendra tous les éléments de T1 et de T2?
Dénombrements(2)• (2). Règle du produit: le nombre de façons de choisir
une paire ordonnée des éléments chacun appartenant à un ensemble est le nombre de fçons de choisir le premier élément multiplié par le nombre de façons de choisir un second élément=
• Ex. Sur le site d’une agence matrimoniale se sont inscrits k hommes et l femmes. Combien de couples potentiels faudrait-il constituer?
Dénombrements(3)• Chaînes. Une chaîne sur un ensemble fini est une
séquence d’éléments de . • Ex. Soit . Combien de chaînes binaires de longueur 3
existe-t-il? • Une chaîne de longueur k est appelée une k-chaine. • Il existe k-chaines sur un ensemble fini • Ex. Dans le système d’immatriculation des véhicules
(SIV, 2009) la numérotation des véhicules se fait de manière séquentielle (de AA-001-AA à ZZ-999-ZZ). Les lettres I,O,V sont exclues. Les sous-chaînes WW et SS sont exclues à gauche. La sous-chaîne SS est exclue à droite. Quelle est la quantité possible des numéros d’immatriculation en France ?((23x23)-2)x999x((23x23)-1)
Dénombrements(4)• Permutations. Une permutation d’un ensemble fini est
une séquence ordonnée de tous les éléments de chaque élément apparaissant exactement une fois.
• Ex. Soit . Combien de permutations existe-t-il?• Il existe de permutations d’un ensemble de n éléments. • Une k- permutation de est une séquence ordonnée de k
éléments de , sans qu’un élément apparaisse plus d’une fois dans la séquence.
• Ex. Un code produit d’une société de commerce électronique contient 4 chiffres décimales tous différents.
• Combien de slots faut-il réserver dans le catalogue électronique des produits?
• Le nombre de k-permutations d’un ensemble de n éléments :
Dénombrements(5)• Combinaisons. • Une k- combinaison d’un ensemble de n éléments est
un sous-ensemble de, composé de k éléments. • Le nombre de k-combinaisons d’un ensemble de n
éléments peut être exprimé en fonction du nombre de ses k-permutations. Pour chaque k-combinaison il existe exactement k! permutations de ses éléments.
• Le nombre de k-combinaisons d’un ensemble de n éléments:
• Coefficients binomiaux : • , =• Binôme de Newton : ,
Equations de récurrences
• Souvent pour évaluer le temps d’exécution d’un algorithme sur des données de taille n, on décompose le problème en sous-problèmes sur des données de tailles plus petites et on exprime T(n) en fonction de divers T(p) avec p<n :
• On obtient alors une équation de récurrence
nppTfnT ;)(
Les récurrences des partitions• On se limitera à ce type de récurrences.• Considérons l’algorithme de tri par fusion d’un tableau
• Principe
1. Diviser la séquence de n éléments à trier en deux sous-séquences de taille n/2 éléments
2. Trier les deux sous-séquences récursivement à l’aide de tri par fusion
3. Fusionner les deux sous-séquences triées pour produire la réponse triée.
Condition de sortie de récursion – une séquence d’un élément est déjà triée.
Algorithme de tri par fusion(1)
• Supposons que nous avons à notre disposition une procédure Fusionner(A,p,q,r). Elle fusionne deux séquences ordonnées A[p],…,A[q] et A[q+1],…, A[r].
• Exemple • A : 1 3 5 7 2 4 6 8, p=1, q=4, r=8• A trié : 1 2 3 4 5 6 7 8• Complexité de « Fusionner » est n
Algorithme de tri par fusion (2)
Procédure Tri-Fusion(val A,p,r)
Var q:entier
Début
Si p<r
Alors
Tri-Fusion(A,p,q)
Tri-Fusion(A,q+1,r)
Fusionner(A,p,q,r)
FinSi
Fin Tri-Fusion
2/: rpq
Complexité
• Temps d’exécution dans le pire des cas
)()2/(2
11)(
nnT
nsinT
Résolution de récurrence (1)
(1) Par substitution : substituer la solution pressentie à la fonction et appliquer l’induction mathématique.
• Considérons
• On suppose que
• Démontrer que
nnTnT )2/(2)(
)lg()( nnOnT
ncnnTnnnc lg)(:,0 00
Résolution de récurrence (2)
• On suppose la validité pour
• En substituant dans l’équation de récurrence
• pour c>1 on majore par
• donc• Il est maintenant nécessaire de vérifier pour les
premiers n ( pour n=1 – faux), mais on doit choisir n>n0,
• (n=2,3..)- choisir c suffisamment grande
2/n
2/lg2/)2/( nncnT
ncnncnncnncn
nncnnnncnT
lg2lglg
2/lg2/lg2/2)(
ncnncnncn lglg
ncnnT lg)(
Résolution de récurrence (3)
• L’inconvénient de la méthode par substitution : il faut « pressentir » la forme de la solution.
(2)Méthode itérative.
Principe : développer (itérer) la récurrence et de l’exprimer sous la forme d’une sommation en termes dépendant uniquement de n et de conditions initiales. Utiliser ensuite l’évaluation de sommations.
Résolution de récurrence (4)
• Considérons
• (Ici on se sert de la borne)• Combien de fois faut-il itérer la récurrence avant d’atteindre la
condition aux limites (n=1) ?
• L’itération atteint 1 quand • donc i = (ou dépasse)
nnTnT )2/(2)(
....8/222
4/)8/(2222/)4/(22)2/(2)(
nTnnn
nnTnnnnTnnnTnT
ii nn 2/2/
12/ innlg
nnOnnnnnnnnn
nnnnnT nn
lglglg1lg
12lg12...)( lglg
Résolution de récurrence (5)• (3) Théorème général• Soient et constantes, soit f(n) – une fonction et soit T(n) définie pour
les entiers positifs par la récurrence
• Où l’on interprète n/b soit comme soit comme • T(n) peut alors être borné asymptotiquement comme suit
• 1)Si pour une certaine constante ,alors • 2)Si , alors
• 3)Si pour une certaine constante et si • suffisamment grand, alors
)()/( nfbnaTnT bn / bn /
abnOnf log0 abnnT log
abnnf log nnnT ab lglog
abnnf log 0 netcncfbnaf ,1,/ )(nfnT
Exemple d’application du théorème général
• ss on a a=9, b=3, f(n)=n
• On peut appliquer le cas 1 du théorème général et donc
nnTnT )3/(9
1,9log3 oùnOnnf
2nnT