Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Avril 2008
Pr. Mohsine Eleuldj Dpartement Gnie Informatique Ecole Mohammadia dIngnieurs Universit Mohammed V Agdal eleuldj@emi.ac.ma
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 1
Complexit de calcul
Classification :
Linaire Quadratique Polynomial
NP NP-complet
Chapitre I : Prliminaires
Contenu 1 Notion dalgorithme 2 Efficacit des algorithmes 3 Nature de lanalyse 4 Pourquoi des algorithmes efficaces 5 Calcul des nombres de Fibonacci
1 Notion dalgorithme
Origine : le mot "algorithme" est associ au clbre auteur Perce Abou Jaafar Mohammed Ibn Moussa Al Khawarizmi connu pour son livre "Al Jabr oua El Mokabala" crit l'an 825. Dfinition : un algorithme est une mthode systmatique pour rsoudre un problme donn. L'excution ne doit pas laisser la place l'interprtation, lintuition ni la crativit. Definition : lAlgorithmique est ltude des techniques de conception et danalyse des algorithmes Exemples : Multiplication des nombres entiers Division Calcul du PGCD Certaines recettes de cuisines
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 5
Analyse des ressources Mthode classique : tables de multiplications + addition Mthode russe : multiplication par 2 et division par 2 (dcalages droite et gauche dans une reprsentation en base 2) + addition
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 6
Langue naturelle
Pseudo-code
Langage de programmation
Langue naturelle : ambigut Langage de programmation : complexit de lecture (dtails de programmation Pseudo-code : description des algorithmes
3 Nature de lanalyse
Efficacit dun algorithme dpend - taille de lexemplaire - espace mmoire - Comparaison des algorithmes selon diffrentes analyses - meilleur cas (optimiste) - moyenne - pire cas (pessimiste)
13
14
Trace de insert(T)
i 2 3 4 x 1 4 0 j 1 0 2 3 2 1 0 5 5 4 j > 0 et T[j] > x oui non non oui oui oui non non 13045 10345 01345 01345
15
T 31405 13405
V 96430
69 430
64930 46930
Trace de select(T)
i 1 j 2 3 4 5 2 3 4 5 3 4 5 4 5 minj 1 2 2 4 4 2 2 2 2 3 4 4 4 4 minx 3 1 1 0 0 1 1 1 1 4 3 3 4 4 01345
18
T 31405
01435
01435
01345
V 96430
06439
03469
96430
20
Application numrique
t(n) = 10-4 x 2n s t'(n) = t(n) x 10-2 = 10-6 x 2n s t"(n) = 10-2 x n3 s (M 100 plus rapide que M) (A plus efficace que A)
temps de calcul(s) 10 10 10 10 10 10
6 5 4 3 2
t(n) t'(n)
n 10 20 30 38 45 200 1500
1 minute
Taille de l'exemplaire
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 22
23
24
10 8 ms 1/6 ms 1/3 ms
20 1s 1/3 ms 2/5 ms
30 2 mn 1/2 m 1/2 ms
50 21 j 3/4 ms 1/2 ms
26
Contenu 1 Notations asymptotiques 2 Analyse des algorithmes itratifs 3 Rsolution dquations de rcurrences 4 Analyse des algorithmes rcursifs
27
1 Notations asymptotiques
Remarque : L'analyse thorique de l'efficacit d'un algorithme se fait une constante prs pour ne pas tenir compte de : - langage de programmation - compilateur et systme d'exploitation - puissance de lordinateur Notation "l'ordre de" Soit f : N ---> R* O(f(n)) = {t : N R* / ( c R+) ( n0 N) ( n n0) [t(n) c f(n)]} Dfinitions O(f(n)) est appel l'ordre de f(n) t(n) O(f(n)) t(n) est dans l'ordre de f(n) t(n) : temps d'excution d'un algorithme algorithme est de l'ordre de f(n)
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 28
t(n) O(f(n))
temps
c f(n) t(n)
n0
29
Exercices
a) Quel est lordre de lalgorithme qui prend un temps born suprieurement par : t(n) = 3 s - 18n ms + 27n2 s b) Prouver que : f(n) O(g(n)) et g(n) O(h(x)) f(n) O(h(n)) c) Dduire que g(n) O(h(n)) O(g(n)) O(h(n)) d) Soient f, g : N R+, montrer que : O(f(n) + g(n)) = O(max(f(n) , g(n))) e) Soient f et g: N R+, prouver que : limn f(n) / g(n) = c R+ O(f(n)) = O(g(n)) limn f(n) / g(n) = 0 O(f(n)) O(g(n)) f) Prouver que : log n O(n) et n O(log n) g) Soit x R / 0 < x < 1. Utiliser et = pour mettre en rang les ordres des fonctions suivantes: n log n, n8, n1+x, (1 + x)n, (n2 + 8n + log3n)4 et n2/log n
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 30
Rponse (1/3)
Exemple 1 : Soit un algorithme qui prend un temps born suprieurement par : t(n) = 3 s - 18n ms + 27n2 s. Trouvons une fonction f aussi simple que possible tel que cet algorithme prenne un temps dans l'ordre de f(n). Prenons c = 27 x 10-6 et n0 = 500/3 Soit n > n0 _ n > 500/3 _ 18n > 3000 _ 18n x 10-3 > 3 _ 3 - 18n x 10-3 < 0 _ 3 - 18n x 10-3 + 27n2 x 10-6 _ 27n2 x 10-6 = cn2.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 31
Rponse (2/3)
Exemple 2 : a) Prouver que : f(n) O(g(n)) et g(n) O(h(x)) _ f(n) O(h(n)) b) Dduire que g(n) O(h(n)) _ O(g(n)) C O(h(n)) Preuve : f(n) O(g(n)) _ ($ c' R+) ($ n' N) (" n > n') (f(n) _ c'g(n)) g(n) O(h(x)) _ ($ c" R+) ($ n" N) (" n > n") (g(n) _ c"h(n)) Soit c = c'c" et n0 = sup(n',n") alors (" n > n0) f(n) _ c'g(n) _ c'c"h(n) donc f(n) O(h(n)). Soit f(n) O(g(n)) d'aprs (a) f(n) O(h(n)) donc f(n) O(h(n)). Exemple 3 : Soient f, g : N --> R+, montrer que : O(f(n) + g(n)) = O(max(f(n) , g(n))).
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 32
Rponse (3/3)
Applications : n3+ 3n2+ n + 8 O(n3 + (3n2 + n + 8)) = O(max(n3 , 3n2 + n + 8)) = O(n3). Il faut s'assurer que f(n) et g(n) soient positives car sinon on trouvera la contradiction suivante : O(n2) = O(n3 + (n2 - n3)) = O(max(n3 , n2 - n3))) = O(n3). Montrer que O(n2) _ O(n3). Exercice 1: Soient f et g: N ---> R+. Prouver que : limn-->_ f(n) / g(n) = l R+ _ O(f(n)) = O(g(n)) limn-->_ f(n) / g(n) = 0 _ O(f(n)) C O(g(n)) Exercice 2 : Prouver que log n O( _n) et _n O(log n) Exercice 3 : Soit x R / 0 < x <1. Utiliser C (inclusion) et = pour mettre en rang les ordres des fonctions suivantes: n log n, n8, n1+x, (1 + x)n, (n2 + 8n + log3n)4 et n2/log n.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 33
34
temps
n0
35
36
Analyse de fib2
fonction fib2(n) i 1, j 0 pour k 1 jusqu' n faire ji+j b ij-i retourner j
a
c d
Analyse de fib3
fonction fib3(n) i 1, ... tant que n > 0 faire ... n n div 2 retourner j
a
c d
t(n) = a + c + d = a + bk + d
o k est le nombre d'itrations k = nombre de bits dans la reprsentation binaire de n k = log2 n + 1 t(n) O(log n)
38
Analyse de select
Procdure select (T[1...n]) pour i 1 jusqu' n-1 faire minj i, minx T[i] pour j i+1 jusqu' n faire si T[j] < minx alors minj j b minx T[j] T[minj] T[i] T[i] minx
c e d
Analyse de fib1
fonction fib1(n) si n < 2 alors retourner n sinon retourner fib1(n-1) + fib1(n-2)
t(n) est la solution du systme de rcurrence : t(0) = t(1) = a t(n) = t(n-1) + t(n-2)
41
cherchons une solution de la forme tn = xn (quation caractristique) a0xn + a1xn-1 + .. + akxn-k = 0 (2) cherchons une solution non nulle (2) devient : a0xk + a1xk-1 + .. + ak = 0 supposons que les k racines : r1, r2, ..., rk (relles ou complexes) sont distinctes alors : tn = 1 i k ci(ri)n o ci (1 i k) constantes dtermines par les conditions initiales
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 42
Posons fn = xn, alors (2) devient : xn = xn-1 + xn-2 x2 - x - 1 = 0 = 1 + 4 = 5 r1 = (1- 5)/2 et r2 = (1+ 5)/2 fn = c1 r1n + c2 r2n En utilisant les conditions initiales (1) on trouve : c1 + c2 = 0 c1r1 + c2r2 = 0 c1 = -1/5 et c2 = 1/5 fn = 1/5 [-((1- 5)/2)n + ((1+5)/2)n] (Mthode de Moivre)
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 43
Analyse de fib1
t(0) = t(1) = a t(n) = t(n - 1) + (n - 2) (1) (2)
D'aprs le calcul prcdent on dduit que : t(n) = c1 r1n + c2 r2n o r1 = (1 - 5)/2 et r2 = (1 + 5)/2 En utilisant les conditions initiales (1), on trouve le systme : c1 + c2 = 0 c1r1 + c2r2 = 0 c1 = -a (1 + 5)/25 et c2 = a (1 + 35)/25 t(n) O(c2n) o |c2| > 1 algorithme exponentiel
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 44
Tours de Hano
Problme Soint trois aiguilles (1, 2 et 3) et m disques, tous de taille diffrente. Au dpart tous les disques sont placs du plus grand au plus petit dans laiguille 1. Comment dplacer les disques laiguille 2 sans jamais mettre de disque pardessus un disque plus petit dans les aiguilles ?
Exercice 1 Comment allez-vous faire pour dplacer 3 disques ? 2 Dcrire un algorithme de la solution. 3 Faire la trace pour m = 3. 4 Dterminer le nombre de dplacements en fonction de m. 5 Dduire lefficacit de lalgorithme. 6 Estimer le temps si m = 64 et si un dplacement prend 1 seconde. 7 Dmontrer loptimalit de lalgorithme.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 47
Trace pour m = 3
3
48
Tours de Hano
procdure Hano (m,i,j) si m > 0 alors Hano (m-1,i,6-i-j) crire (i,"-->",j) Hano (m-1,6-i-j,j) Soit t(m) le temps dexcution t(1) = 1 t(m) = 2 t(m-1) + 1
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 49
Tours de Hano
Soit t(m) : temps d'excution de l'algorithme sur un exemplaire de taille m. t(1) = 1 t(m) = 2t(m-1) + 1 Calculons t(m) t(m)
= 2[ 2 t(m-1) + 1 ] + 1 = 22 t(m-2) + 2 + 1 = 22[ 2 t(m-3) + 1 ] + 2 + 1 = 23 t(m-3) + 22 + 2 + 1 = .......... = 2k t(m-k) + 2k-1 + ... + 2 + 1 = .......... = 2m-1 t(1) + 2m-2 + ... + 2 + 1 = 2m-1 + 2m-2 + ... + 21 + 20 = (2m - 1) / (2 - 1) = 2m - 1 donc t(m) O(2m). Exercice : Trouver une version non rcursive de la procdure Hano. Trouver l'ordre de l'algorithme.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 50
Hanoi(3,1,2) Hanoi(2,1,3) Hanoi(1,1,2) Hanoi(0,1,3) 1 2 Hanoi(0,3,2) 1 3 Hanoi(1,2,3) Hanoi(0,2,1) 2 3 Hanoi(0,1,3) 1 2 Hanoi(2,3,2) Hanoi(1,3,1) Hanoi(0,3,2) 3 1 Hanoi(0,2,1) 3 2 Hanoi(1,1,2) Hanoi(0,1,3) 1 2 Hanoianoi(0,3,2)
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
51
H(2,1,3)
1 2
H(2,3,2)
H(1,1,2)
1 3
H(1,3,1)
H(1,3,1)
3 2
H(1,1,2)
H(0,1,3) 1 2 H(0,3,2)
H(0,2,1) 2 3 H(0,1,3)
H(0,3,2) 3 1 H(0,2,1)
H(0,1,3) 1 2 H(0,3,1)
52
Chapitre 3 : Diviser-pour-rgner
diviser-pour-regner (Divide and conquer) est une technique de conception d'algorithme compose de trois tapes : - Dcomposition de l'exemplaire en sous-exemplaires plus petits, - Rsolution des sous-exemplaires et - Combinaison des sous-solutions. Plan 1 Fouille dichotomique 2 Multiplication des grands nombres 3 Multiplication matricielle 4 Exponentiation discrte
53
fonction DPR(x) si x est suffisamment petit alors retourner ADHOC(x) dcomposer x en sous-exemplaires x1, x2, ..., xk pour i 1 jusqu' k faire yi <-- DPR(xi) combiner les yi pour obtenir une solution y retourner y
54
T(n) = est :
Fouille dichotomique
Problme : localisation de la valeur x dans un tableau T[1..n] tri (dictionnaire ou annuaire tlphonique) fonction squentielle (T[1..n],x) pour i 1 jusqu' n faire si T[i] > x alors retourner i-1 retourner n fonction dichotomique(T[i..j],x) si i = j alors retourner i k (i+j+1) div 2 si x < T[k] alors retourner dichotomique(T[i..k-1],x) sinon retourner dichotomique(T[k..j],x) Exercice : Montrer que t(n) O(log n)
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 56
57
n/2 x
n/2 z
u = 10sw + x v = 10sy + z
58
60
Bahia
B / B alatoire B<p b = gB mod p y = aB mod p
ag
Remarque : xy mod p = ((x mod p) (y mod p)) mod p fonction expod2(g,A,p) a 1 pour i 1 jusqu' A faire a retourner a
a g mod p
Exercice : Analyser et comparer le temps d'excution de expod1 et expod2 en fonction de A et p. Pour simplifier supposer que g=p/2.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 64
fonction expodrec(x,n) si n = 0 alors retourner 1 si n est impair alors a expodrec(x,n-1) retourner a x sinon a expodrec(x,n/2) retourner a2
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
fonction expod3(g,A,p) si A = 0 alors retourner 1 si A est impair alors a expod3(g,A-1,p) retourner a g mod p sinon a expod3(g,A/2,p) retourner a2 mod p
66
Exercice
Soit la matrice a) Montrer que
F= Fn =
1 [0 11 ]
fn-1 fn fn fn+1
o fn est le nime nombre de Fibonacci. b) Dduire un algorithme de type diviser-pour-rgner pour le calcul de Fn. c) comparer cet algorithme avec fib3 en prenant comme matrices intermdiaires : . i j k h A = j i+j et B = h h+k
]
67
20 Kg 15 Kg
10 Kg
Capacit = 40 Kg 8 Kg
71
Exercice : Dcrire un algorithme vorace. Montrer quil fournit toujours une solution optimale lorsqu'elle existe
72
Soit C = C {12} = {1, 5, 10, 12, 20, 50, 100} Montant = 16 =12 + 1 + 1 + 1 + 1 (5 pices) = 10 + 5 + 1 (3 pices) solution non optimale est la solution optimale
Soit C" = C - {1} = {5, 10, 12, 20, 50, 100} Montant = 15 = 12 + ??? = 10 + 5 pas de solution une solution existe
74
Solution optimale
Algorithme vorace
75
fonction Dijkstra(L[1..n,1..n]) : tableau [2..n] C {2,3,..,n} pour i 2 jusqu' n faire D[i] L[1,i] rpter n-2 fois v l'lment de C qui minimise D[v] C C - {v} pour chaque lment w de C faire D[w] min (D[w] , D[v] + L[v,w]) retourner D
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 76
2 5 3
20 50
tape 2 2 3
v 5 4 3
Exercice : Dterminer lordre de lalgorithme de Dijkstra. Modifier le afin de trouver le chemin le plus court entre tous les couples de sommets.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 77
Exercice : Montrer que lalgorithme exhaustif O(n!). Dcrire l'algorithme vorace et analyser son efficacit. Dmontrer que sa solution est optimale.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 78
79
Comme b - a > 0 et tia - tib > 0, on dduit que : T(I) - T(I') > 0 et par consquent T(I) > T(I').
Nous pouvons amliorer tout ordre de service o un client est servi avant un autre ncessitant moins de temps optimalit de lalgorithme
81
- Considrer les autres sommets et essayer de les colorer par cette couleur - Lorsqu'on ne peut plus faire de progrs choisir une nouvelle couleur et un nouveau point de dpart non color - Colorer tout ce qui est possible avec cette deuxime couleur
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
- ainsi de suite.
82
2-coloration
3-coloration
Remarques Un algorithme bas sur une heuristique vorace permet la possibilit de trouver une "bonne" solution mais pas la certitude lalgorithme exhaustif qui produit une solution optimale est exponentiel
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 83
Considrons 5 artres : A, B, C, D et E. D et E sont des artres sens unique Changements de direction (13) AB, AC, AD, BA, BC, BD, DA, DB, DC, EA, EB, EC et ED
B C A
AB et EC sont possibles alors que AD et EB peuvent provoquer une collision Modlisation laide dun graphe sommets correspondent aux changements de direction artes joignent les couples de sommets dont les itinraires se croisent
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 84
BA
BC
BD
AC
DA
DA
DB
DC
BD
EA EB EC ED
EB
4-colorable
Graphe complet
Solution optimale car le sous-graphe compos des sommets AC, DA, BD et EB est un graphe complet de 4 sommets et ncessite par consquent quatre couleurs. Les sommets de la mme couleur correspondent aux itinraires sans collision. Les quatre couleurs correspondent aux quatre phases ncessaires du systme de signalisation
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 85
Exercices
Exercice 1 : Rsoudre le problme de signalisation pour le carrefour suivant :
D
C B
Exercice 2 : Trouver un algorithme vorace pour rsoudre le problme du commis voyageur en supposons que le graphe est complet.
86
Contenu Coefficient du binme Principe doptimalit Multiplication chane de matrices Plus courts chemins
87
fonction C(n,k) si k=0 ou k=n alors retourner 1 sinon retourner C(n-1 , k-1) + C(n-1 , k)
88
C(3,0)
C(3,1)
C(3,1)
C(3,2)
C(2,0) C(2,1)
C(2,0)
C(2,1)
C(2,1) C(2,2)
C(1,0) C(1,1)
Remarques : beaucoup de valeurs C(i,j) sont calcules plusieurs fois. Exercice : Montrer que le nombre d'appels rcursifs provoqus par C(n,k) est gal : 2
( )-2
n k
89
...
k-1
1 3 6 10 1 4 10 1 5
. .
n-1 n 1 1 C(n-1,k-1) C(n-1,k) C(n,k)
Exercice : Dcrire cet algorithme. Montrer quil demande un espace dans O(k) et un temps dans O(nk) si on compte chaque addition cot unitaire. Exercice : Parmi les algorithmes du calcul des nombres de Fibonacci, lequel est un algorithme de programme dynamique ?
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 90
Principe doptimalit
La programmation dynamique est souvent utilise pour rsoudre des problmes d'optimisation qui satisfont le principe d'optimalit suivant : Principe d'optimalit : Dans une squence optimale de dcisions ou de choix, chaque sous-squence doit tre optimale. Exemple : le problme du plus court chemin vrifie le principe doptimalit Exercice : Le principe d'optimalit s'applique-t-il au problme du plus long chemin simple entre deux villes ? Un chemin simple va directement de ville en ville sans passer deux fois par la mme ville (sans cycle).
91
92
Exemple 2 : Application
Exemple : Soient quatre matrices A, B, C et D d'ordre (13x5), (5x89), (89,3) et (3, 34) respectivement. Il y a cinq manires diffrentes de calculer ABCD : ((AB)C)D (AB)(CD) (A(BC))D A((BC)D) A(B(CD)) qui ncessite " " " " " " " " 10582 54201 2856 4055 26418 multiplications " " " "
La mthode la plus efficace est 9,5 fois plus rapide que la plus lente
93
2n 1 n1
94
Le troisime cas reprsente le fait que pour calculer (Mi Mi+1...Mi+s) on essaye toutes les possibilits(Mi...Mk)(Mk+1...Mi+s) pour en choisir la meilleure.
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 95
j=2 5785 0
Exercices
Exercice 1 : Ecrire l'algorithme qui calcule m1n. Comment peut-on modifier l'algorithme si l'on veut savoir comment calculer M de faon optimale ? Exercice 2 : Montrer que lalgorithme (n3).
97
D0 = L =
0 50 30 15
5 0
15 5 0 15 5 0
et
D4 =
0 5 15 10 20 0 10 5 30 35 0 15 15 20 5 0
99
Contenu Multiplication symbolique de deux polynmes Transforme de Fourrier Transforme de Fourier inverse
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 100
Addition en reprsentation romaine (XVI + CIV) Changement de coordonnes (cartsiennes/ polaires) Calcul dans un ordinateur (E/S en dcimal et calcul en binaire) Calcul diffrentiel (transforme de Laplace).
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 101
Transformation du domaine f : multiplication symbolique : valuation en 2d - 1 points O(d2) g : multiplication ponctuelle) F-1 : interpolation
p (x ),q (x )
r(x )
p ( x i) ,q ( x i) i= 0 ,1 ,...,2 d - 2
r ( x i) = p ( x i) q ( x i) i= 0 ,1 ,...,2 d - 2
102
p et q peuvent tre reprsentes l'aide de leur coefficients ou en 2 valeurs p = (-1,1) et q = (-1,0) r = pq = (1,0)
r(x) nest pas compltement dfini r est de degr 2 il doit tre dfini de faon unique l'aide de 3 valeurs p = (-1,1,3) et q = (-1,0,1) r = pq = (1,0,3)
par la mthode de Lagrange (ou rsolution dun systme linaire ou ) on trouve : r (x) = 2x2 3x + 1
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 103
104
Algorithme FFT
fonction FFT (a[0...n-1] , w) : tableau [0...n-1] tableau A[0...n-1] {pour recevoir le rsultat} si n=1 alors A[0] <-- a [0] sinon t <-- n/2 tableaux b, c, B, C[0...t-1] pour i <-- 0 t-1 faire b[i] <-- a[2i] , c[i] <-- a[2i+1] B <-- FFT(b , w2) C <-- FFT(c , w2) b <-- 1 pour i <-- 0 t-1 faire A[i] <-- B[i] + b C[i] A[t+i] <-- B[i] - b C[i] b <-- bw retourner A
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
106
Trace de FFT
a = (1,-1,-5,3), w=i FFT(a,i) t=2, b = (1,-5) et c = (-1,3) B=FFT(1,5) t=1, b=(1) et c=(-5) B=FFT(b,1)=(1) C=FFT(c,1)=(-5) A=(-4,6) C=FFT(c,-1) t=1, b=(-1) et c=(3) B=FFT(b,1)=(-1) C=FFT(c,1)=(3) A=(2,-4) A=(-2, 6-4i, -6, 6+4i)
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 107
109
Trace de lexemple
p(x) = 3x3 - 5x2 - x + 1 et q(x) = x3 - 4x2 + 6x 2 On choisit n=8 et on sait que w=4 est une racine principale de l'unit dans larithmtique modulo 257. Soit a = (1,-1,-5,3,0,0,0,0), b = (-2,6,-4,1,0,0,0,0). Fw(a) = (255,109,199,29,251,247,70,133) et Fw(b) = (1,22,82,193,244,103,179,188). Le produit point par point modulo 257 donne C = (255,85,127,200,78,255,194,75) Comme F-1w(C) = (-2, 8, 0, -31, 37, -17, 3, 0). alors : r(x) = 3x6 - 17x5 + 37x4 - 31x3 + 8x - 2
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 112
Trsor ?
5 jours
Exemple 2 : Calcul de
k : nombre des points lintrieur du cercle n : nombre total de points
x
2r
x x x x x x x x x x x x x
S1 = r2 : surface du cercle S2 = (2r)2 = 4 r2 : sUrface du carr S1/S2 = r2/4r2 = /4 = 4 S1/S2 4 k/n fonction (n) k0 pour i = 1 n faire x uniforme(0,1) y uniforme(0,1) si (x2 + y2 <1) alors k k + 1 retourner 4k/n
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
115
116
117
118
119
Chapitre 8 : Pr-conditionnement
I : ensemble des exemplaires J, K I tel que i I, i=<j,k> i est la solution de i
k
Algorithme A
Algorithme Bj
Exemples Ralisation dune application = Compilation + excution Recherche dans un ensemble = Construction du tas + recherche binaire en O(log n) Evaluation rpte dun polynme = forme pr-conditionne + valuation
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008 120
Mthode de pr-conditionnement
Soit p(x) un polynme unitaire de degr 2k 1 k-1 p(x) = (x2 + a)(q(x) + r(x)) avec a une constante et q et r deux polynmes unitaires de degr 2k-1 -1 la mme procdure est applique rcursivement q et r p appele est la forme pr-conditionne de p Exercice : trouver p pour x7 + 2x6 5x4 + 2x3 6x2 + 6x 32 et x7 Soit M(k) : nombre de multiplications pour valuer p(x) k-1 M(k) = M(k) k + 1 Si on ne compte pas les multiplications pour x2, x4, , x2 M(k) = 0 si k = 0 = 2 M(k 1) + 1 si k 2 M(k) = 2k 1 1 M(k) = 2k 1 + k 2
Algorithmique et complexit de calcul, M. Eleuldj, EMI, Avril 2008
Do il suffit de faire :
122
Horner Pr-conditionnement
6 5
n1 (n 3)/2 + log(n + 1)
123