![Page 1: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/1.jpg)
1
Exemples pour démarrer (tri insertion, tri fusion)Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de casAutres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude
V. Complexité
![Page 2: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/2.jpg)
2
Complexité algorithmique
Rappel de l’équifinalité 1 problème, plusieurs algorithmes (façons de le
résoudre) Equivalence fonctionnelle… … mais différence en termes de performance
Temps de réalisation Nombre et durée des opérations de production de la solution Complexité temporelle
Ressources mobilisées Nombre et taille des variables et SDD (résultats
intermédiaires) Complexité spatiale
Complexité Principe
![Page 3: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/3.jpg)
3
Analyse algorithmique
Besoin de pouvoir Connaître a priori les performances d’un algorithme En fonction de la taille (et de la nature) de l’entrée
Analyse algorithmique But : évaluer la complexité d’un algorithme Moyen
Méthodes et techniques de mathématiques Dénombrement, comportements asymptotiques, récurrences, …
Le premier à systématiser la démarche Don Knuth dans TAOCP
Dans la suite du chapitre Focalisation sur l’analyse de la complexité temporelle
Transposable sans difficulté à l’analyse de la complexité spatiale
Complexité Evaluation
![Page 4: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/4.jpg)
4
Tri par insertion
But Trier en ordre croissant un tableau A
d’entiers Principe
On positionne le 2nd élément par rapport au 1er
Puis on positionne le 3ème par rapport aux 2 premiers
Et ainsi de suite…
Complexité Evaluation Exemple 1
![Page 5: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/5.jpg)
5
Algorithme
Complexité Evaluation Exemple 1
![Page 6: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/6.jpg)
6
Temps d’exécution
Temps d’exécution de l’algorithme Somme sur l’ensembles des instructions i
élémentaires Du temps constant ai pour l’instruction
Multiplié par Le nombre ki de répétitions de cette instruction
Qui va naturellement dépendre de la taille n de l’entrée
Ici la taille du tableau à trier Mais aussi de la nature de l’entrée
Est-il déjà, au moins partiellement, trié ?
Complexité Evaluation Exemple 1
i ii I
T n a k
![Page 7: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/7.jpg)
7
Application au cas
Instruction indexée d’après le numéro de ligne Instructions 2, 3, 4, 5, 6, 7, 9
Par exemple L’affectation j i – 1
Prend un temps constant a4
Est répétée k4 = n – 1 fois
L’évaluation de l’expression j > 0 et A[j] > e Prend un temps constant a5
Elle est répétée un nombre de fois qui varie suivant i 1 ≤ k5(i) ≤ i Notons ti = k5(i)
Complexité Evaluation Exemple 1
![Page 8: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/8.jpg)
8
Bilan
Bilan
Impact de la nature de l’entrée Si le tableau est déjà trié (meilleur des cas)
Si le tableau est trié en ordre inverse (pire des cas)
Cas général
Complexité Evaluation Exemple 1
2 3 4 9 5 6 72 2
1 1n n
i ii i
T n a a a a n a t a a t
min 2 3 4 6 7 91 1it T n a a a a a a n an b
2maxit i T n cn dn e
min maxT n T n T n
![Page 9: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/9.jpg)
9
Meilleur et pire des cas
Si le tableau est déjà trié (meilleur des cas) Le temps d’exécution est
asymptotiquement proportionnel à n Complexité linéaire
Si le tableau est trié en ordre inverse (pire des cas) Le temps d’exécution est
asymptotiquement proportionnel à n² Complexité quadratique
Complexité Evaluation Exemple 1
![Page 10: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/10.jpg)
10
Le pire des cas fait référence Cas moyen
Même ordre de grandeur que le pire des cas Pire des cas
borne supérieure quelque soit l’entrée Pas de mauvaise surprise
On s’intéresse surtout au pire des cas On s’intéresse surtout à l’ordre de grandeur
Constantes et termes non dominants peu significatif Le tri par insertion est de complexité quadratique
dans le pire des cas, ce que l’on note
Complexité Evaluation Exemple 1
22i
it T n fn gn h
2n
![Page 11: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/11.jpg)
11
Tri-fusion
But Trier en ordre croissant un tableau A d’entiers
Stratégie Paradigme « diviser pour régner » Descente
Divisions successives du tableau en parties Remontée
Fusion des parties triée (Procédure auxiliaire Fusionner en )
Terminaison de la descente récursive Une partie à un seul élément est naturellement triée
Complexité Evaluation Exemple 2
n
![Page 12: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/12.jpg)
12
Algorithme
Complexité Evaluation Exemple 2
![Page 13: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/13.jpg)
13
Temps d’exécution
Temps d’exécution de l’algorithme On distingue
T(n) : temps d’exécution sur une entrée de taille n
D(n) : temps passé à diviser le problème en a sous-problèmes de taille n/b (la plupart du
temps a = b) S(n) : temps passé à synthétiser la solution
À partir des solutions aux sous-problèmes
Il existe un seuil ε : n < ε T(n) constant Traduction formelle :
Complexité Evaluation Exemple 2
1 si
sinonnb
nT n
aT D n S n
![Page 14: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/14.jpg)
14
Application au cas
D(n) : division du tableau en deux parties : a = b = 2 S(n) : Procédure fusion : n < 1 T(1) = Expression du temps d’exécution du tri-
fusion
Cette récurrence se résout en En attendant de savoir le démontrer : …
Complexité Evaluation Exemple 2
2
1 si 1
2 sinonn
nT n
T n
1
n 1
2logT n n n
![Page 15: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/15.jpg)
15
Application au cas
Montrer par induction que :
Complexité Evaluation Exemple 2
22
2 si 2log
2 si 2kn
nT n T n n n
T n n
![Page 16: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/16.jpg)
16
Comparaison
Le tri-fusion est, dans le pire des cas, bien plus performant que le tri par insertion n = 109
Machine qui effectue 109 opérations par seconde Tri par insertion : ~30 ans Tri-fusion : ~30 secondes
Complexité Evaluation Exemple 2
![Page 17: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/17.jpg)
17
Exemples pour démarrer (tri insertion, tri fusion)Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de casAutres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude
V. Complexité
![Page 18: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/18.jpg)
18
Borne approchée
Définition formelle de
Si alors on dit que est une borne approchée asymptotiquement pour
est une classe d’équivalence doit être asymptotiquement positive
Complexité Nota. Asympt. Borne approchée
0 min max
0 min max
|
, /
0
f n
g n n c c
n n c g n f n c g n
f n g n g n
f n
g n
g n
![Page 19: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/19.jpg)
19
Borne approchée
Exercice Soit une fonction polynomiale Montrer que Indice
On note abusivement pour Si vous vous demandiez encore en L1 à
quoi peut bien vous servir concrètement l’analyse en informatique, vous avez là un début de réponse
Complexité Nota. Asympt. Borne approchée
2T n n
2 , 0T n an bn c a
f n g n f n g n
2 2 2min maxc n an bn c c n
![Page 20: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/20.jpg)
20
Borne supérieure
Définition formelle
Si alors on dit que est une borne asymptotique supérieure pour
est une classe d’équivalence La borne peut être asymptotiquement
approchée
Complexité Nota. Asympt.
Borne supérieure
0
0
|
/
0
f n
g n n c
n n f n cg n
f n g n g n
f n
g n
![Page 21: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/21.jpg)
21
Borne inférieure
Définition formelle
Si alors on dit que est une borne asymptotique inférieure pour
est une classe d’équivalence
Complexité Nota. Asympt.
Borne inférieure
0
0
|
/
0
f n
g n n c
n n cg n f n
f n g n g n
f n
g n
g n g n g n
![Page 22: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/22.jpg)
22
Borne strictement supérieure Définition formelle
Si alors on dit que est asymptotiquement négligeable devant
Classe usuelle en analyse (développements limités)
Complexité Nota.
Asympt. Borne >
0
0
|
/
0
f n
g n c n
n n f n cg n
f n g n f n
g n
| lim 0f n
g nng n f n
![Page 23: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/23.jpg)
23
Borne strictement inférieure
Définition formelle
Si alors on dit que est asymptotiquement négligeable devant
Complexité Nota. Asympt. Borne <
0
0
|
/
0
f n
g n c n
n n cg n f n
f n g n g n
f n
| lim f n
g nng n f n
f n g n g n f n
![Page 24: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/24.jpg)
24
Illustrations
Classes d’équivalence, i.e.
Relation d’équivalence Transitivité Réflexivité Symétrie
Valable pour les 5 notations
Complexité Nota. Asympt. Exemples, propriétés
2 2 2 3n n n n n
2n n n n
2 2n n n n
x y x y
![Page 25: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/25.jpg)
25
Exemples pour démarrer (tri insertion, tri fusion)Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études casAutres cas Euclide Exponentiation rapideClasses de complexité, NP-Complétude
V. Complexité
![Page 26: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/26.jpg)
26
Problématique
Algorithmes conçus cf. diviser pour régner Ne conduisent pas directement à T(n) en
fonction de n Mais à une récurrence, i.e. T(n) en fonction
de T(n – 1) Rappel pour tri-fusion
Comment établir que ? Complexité Récurrences Problématiq
ue
2
1 si 1
2 sinonn
nT n
T n
2logT n n n
![Page 27: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/27.jpg)
27
3 méthodes de résolution
Des récurrences de la forme 1. Inductive
On connait l’expression fonction de n a priori (conject.)
On utilise un argument de récurrence 2. Itérative
On transforme la récurrence en sommations que l’on peut ensuite borner (pour les fans de Faulhaber)
3. Méthode (quasi) générale de résolution Un théorème à appréhender en profondeur Trois cas à envisager en pratique Reste quelques cas irrésolubles (avec cette méthode)
Complexité Récurrences Méthodes
nbT n aT f n
![Page 28: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/28.jpg)
28
Méthode générale
Soit deux constantes a ≥ 1 et b ≥ 1, une fonction f(n) définie pour les entiers positifs par la récurrence
Alors T(n) peut être borné asymptotiquement comme suit : 1. 2. 3.
Récurrences Méth. générale Théorème
nbT n aT f n
log log0 / b ba af n n T n n log log lnb ba af n n T n n n
log0 00 / 1 / :b a n
bf n n c n n n af cf
T n f n
![Page 29: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/29.jpg)
29
Interprétation
Comparaison asymptotique de f(n) et Si l’une des deux domine l’autre (cas 1 et 3)
Elle fixe la complexité de T(n) Cas 1 : Cas 3 :
Sinon (cas 2), si elle sont équivalentes La complexité de T(n) est leur complexité fois
ln n Cas 2 :
Mais attention aux conditions !! Certains cas ne peuvent être résolus
Récurrences Méth. générale
Intuitivement
logb an
logb aT n n T n f n
logln lnb aT n f n n n n
![Page 30: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/30.jpg)
30
Exemples d’application
Tri-fusion Karatsuba
Récurrences Méth. générale Exemples
39 nT n T n
23 1nT n T
43 lnnT n T n n
22 lnnT n T n n
![Page 31: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/31.jpg)
31
Exemple d’application 1
est naturellement dominée par Formellement : Le cas 1 s’applique et par conséquent :
Récurrences Méth. générale Exemple 1
39 nT n T n
9, 3,a b f n n
3log log 9 2 2b an n n n
f n n n
f n 2n
log , 1b af n n n
log 2b aT n n n
![Page 32: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/32.jpg)
32
Exemple d’application 2
est du même ordre que Formellement : Le cas 2 s’applique et par conséquent :
Récurrences Méth. générale Exemple 2
23 1nT n T
321, , 1a b f n
32
log 1log 0 1b an n n
1 1f n
f n
logb af n n
ln lnT n f n n n
logb an
![Page 33: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/33.jpg)
33
Exemple d’application 3
domine : Pour : Le cas 3 s’applique et par conséquent :
Récurrences Méth. générale Exemple 3
43 lnnT n T n n
3, 4, lna b f n n n
4log log 3 0,793b an n n
lnf n n n
f n log , 0, 207b af n n n
lnT n f n n n
logb an
n 3 34 4 4ln ln , 1n n n
baf n n cf n c
![Page 34: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/34.jpg)
34
Exemple d’application 4
domine : On pourrait s’attendre à pouvoir appliquer le
cas 3 Mais : Donc, pour tout , Par conséquent, le théorème ne peut
s’appliquerRécurrences Méth.
générale Exemple 3
22 lnnT n T n n
2, 2, lna b f n n n
2log log 2b an n n
lnf n n n
f n f n nlogb an
log ln
b a
f nn
n
0 log lnb a
f nn n
n
![Page 35: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/35.jpg)
35
Application au tri-fusion
est du même ordre que Formellement : Le cas 2 s’applique et par conséquent :
Récurrences Méth. générale Tri-fusion
22 nT n T n
2, 2,a b f n n
logb an n
f n n
f n
logb af n n
ln lnT n f n n n n
logb an
![Page 36: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/36.jpg)
36
Multiplication de deux nombres en numération de position Nombres de 2n chiffres Décomposition en deux moitiés
Représentation algébrique de la multiplication naïve
Les multiplications sont plus coûteuses que les additions Version naïve : 4 multiplications intermédiaires
Forme équivalente de Karatsuba Complexification
Mémorisation et réutilisation de résultats intermédiaires Ajout de 3 opérations additives supplémentaires
On tombe à 3 multiplications ! Application récursive du procédé : O(n2) O(n1,58)
Application à Karatsuba
Récurrences Méth. générale Karatsuba
nM m
nM m
A A b A
B B b B
2n n n nM m M m M M M m m M m mAB A b A B b B A B b A B A B b A B
2n nM M M m M m M M m m m mAB A B b A A B B A B A B b A B
![Page 37: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/37.jpg)
37
Application à Karatsuba
est dominée d’un exposant 0,58 par Formellement : Le cas 1 s’applique et par conséquent :
Récurrences Méth. générale Karatsuba
23 nT n T n
3, 2,a b f n n
2log log 3 1,58b an n n
f n n
f n
log , 0,58b af n n n
log 1,58b aT n n n
logb an
![Page 38: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/38.jpg)
38
Exemples pour démarrer (tri insertion, tri fusion)Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas Autres cas Euclide Exponentiation rapideClasses de complexité, NP-Complétude
V. Complexité
![Page 39: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/39.jpg)
39
Complexité de l’algorithme d’Euclide
Quelle complexité ? Réponse
au + 5 fois le nombre de chiffre en base 10 du plus petit de a et b.
Pas facile d’appliquer ce qui a été vu plus haut Nous allons démontrer le théorème de Lamé Les nombres de Fibonacci s’invitent dans la partie Au tableau, avec la participation des volontaires
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
![Page 40: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/40.jpg)
40
Complexité de l’algorithme d’Euclide
Temps d’exécution T(n) de l’algorithme d’Euclide Grosso modo le nombre k d’appels récursifs
Premier point : soit le PGCD(a, b) On force la convention a > b ≥ 0
Raisonnable Si b > a ≥ 0 alors un seul appel récursif supplémentaire
a mod b = a et donc le 1er appel récursif est PGCD(b, a) Si a = b ≥ 0 alors un seul appel récursif
a mod b = 0 et donc le 1er appel PGCD(b, 0) retourne b Si cet ordre est vérifié pour un appel récursif
Elle sera alors vérifiée pour tous les appels suivants
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
![Page 41: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/41.jpg)
41
Fibonacci (Léonard de Pise, dit)
Suite de Fibonacci Suite de nombres entiers Etude de la reproduction des lapins Interviennent dans la nature vivante
Définition
Premiers termes : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
0
1
1 2
0
1
, 2 : n n nn n
F
F
F F F
![Page 42: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/42.jpg)
42
Propriétés de la suite de Fibonacci
Strictement croissante à partir du rang 2 Reliée au nombre d’or (phi)
D’où
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
1 52
1 52
1,618, avec
5 0,618
nn
n
F
5
n
n
F
![Page 43: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/43.jpg)
43
Lemme
Si a > b ≥ 0 et si PGCD(a, b) effectue k appels récursifs alors et
Preuve par récurrence P(1) : Supposons P(k)
Soit a > b ≥ 0 tq PGCD(a, b) effectue k + 1 appels récursifs
Alors PGCD(a, b) appelle PGCD(b, a mod b) qui effectue k appels récursifs et donc, d’après P(k) : et
Or, de Il vient Et donc , soit P(k + 1)
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
2ka a F 1kb a F
20 0 1 1k b k b a F 32a b a a F
2kb a F 1mod ka b a Fmod et 0, i.e. 1a a
b ba b a b a b a
mod 1 abb a b a b a a
2 1 3mod k k ka b a b a F F F
![Page 44: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/44.jpg)
44
Théorème de Lamé
Si a > b ≥ 0 et si alors PGCD(a, b) effectue moins de k appels récursifs
Preuve : contraposée du lemme Propriété : la borne de Lamé est optimale
Preuve : elle peut être atteinte Cas où a et b sont deux nombres de Fibonacci
successifs un seul appel récursif Soit k ≥ 2, on vérifie aisément que Par conséquent appelle C’est-à-dire que effectue k – 1 appels
récursifs
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
1kb a F
3 2, 2,1PGCD PGCDa F F
1 1modk k k F F F
1,k kPGCD a F F 1,k kPGCD a F F 1,k kPGCD a F F
![Page 45: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/45.jpg)
45
Conséquences
Borne de Lamé : La complexité de l’algorithme d’Euclide est
linéaire par rapport à la longueur de son plus petit opérande
La règle empirique :
D’où la règle empirique bien connue : Le nombre d’appels récursifs de l’algorithme
d’Euclide est au + 5 fois le nombre de chiffre en base 10 du plus petit de a et b
Exemple : PGCD(144, 89) : 10 appelsComplexité Cas
spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
ln 5 ln log5
k
b b k k b b
10
ln10 ln ln5 5 5log
ln ln10 ln
b bk b
![Page 46: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/46.jpg)
46
Complexité de l’expon. rapide
Voir corrigé du DE L2 2015, exo 6 En tirer un argument pour affirmer la complexité en log2 n Corrigé détaillé dans « Exercices et problèmes d’algorithmique
numérique » p 191
Complexité Cas spéciaux Euclide
ND
LR :
Eucl
ide é
tait
un m
art
ien
![Page 47: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/47.jpg)
47
Exemples pour démarrer (tri insertion, tri fusion)Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de casAutres cas Euclide Exponentiation rapide Classes de complexité, NP-Complétude
V. Complexité
![Page 48: Exemples pour démarrer (tri insertion, tri fusion) Maths appliquées Notations asymptotiques (Knuth) Récurrences T(n) = aT(n/b) + f(n) et études de cas](https://reader038.vdocuments.pub/reader038/viewer/2022110305/551d9ddd497959293b8e8e99/html5/thumbnails/48.jpg)
48
De quoi est-il question ? Exemples de problèmes NP-complets Le problème ouvert : P = NP ? Consultation de la littérature pour les
plus motivés
NP-complétude
Complexité Classes NP-Complétude