• Aucun résultat trouvé

2 Estimation de complexité : norme de l’inverse.

N/A
N/A
Protected

Academic year: 2022

Partager "2 Estimation de complexité : norme de l’inverse."

Copied!
19
0
0

Texte intégral

(1)

Rapport de stage :

Estimations de complexité en calcul certifié.

Ivan MOREL janvier - juin 2007

1 Introduction au calcul certifié

En analyse numérique, un algorithme en précision finie retourne un résultat approché. Le problème qui nous concerne alors est celui du calcul d’une borne d’erreur précisant dans quel domaine autour du résultat exact l’approximation se situe. Ce problème de validation du calcul présente deux contraintes majeures : tout d’abord, la borne obtenue se doit d’etre pertinente, de manière à ce que le résultat approximatif obtenu soit effectivement validé (i.e. l’erreur relative maxi- male commise est faible). Ensuite, cette borne doit être obtenue rapidement. En effet, si le certificat n’est pas obtenu en un temps raisonnable devant le temps de calcul de l’approximation, il eut peut-être été plus judicieux de calculer un résul- tat approché avec une précision plus grande. C’est ce problème qui nous intéresse plus particulièrement : en effet, si la complexité algorithmique des problèmes de calcul scientifiques est un domaine très étudié, en revanche la complexité du pro- blème de validation du calcul reste un domaine encore peu exploré. C’est pourquoi dans ce rapport on étudiera différentes approches de ce problème :

Demmel, Diament et Malajovitch [2] étudient ainsi la complexité du calcul de bornes d’erreur (même approximatives) pour la résolution de systèmes linéaires : Soit un système linéaire A·x=b, et xˆ une solution approchée de ce système.

Alors :

kx−xkˆ =kA−1A(x−x)kˆ

=kA−1(b−Aˆx)k

≤ kA−1k · kb−Aˆxk et donc

kx−xkˆ

kˆxk ≤ kA−1k · kAk · kb−Aˆxk kAk · kˆxk

(2)

Ainsi puisque kAk·kˆkb−Aˆxkxk peut aisément être calculé en O(n2), il est possible de majorer l’erreur relative commise si on parvient à estimer le conditionnement κ(A) =kA−1k · kAk de A. kAkétant calculable en O(n2), on considérera comme équivalent l’estimation du conditionnement κ(A) et l’estimation de kA−1k. La question se pose alors de réduire ce problème à d’autres dont les complexités sont connues, afin de mesurer l’effet de la réduction de la précision recherchée sur le temps de calcul. L’objectif de Demmel est ainsi de réduire le problème à celui de la multiplication de matrices, lui même équivalent en complexité à l’inversion de matrices, la décomposition LU et au calcul de déterminants (asymptotique- ment, il semble logique que le calcul dekA−1k soit aussi coûteux que de calculer effectivement A−1). Néanmoins à défaut de pouvoir prouver un tel résultat, il démontre que le problème du calcul de la norme de l’inverse est plus dur de celui de tester le produit de matrices (i.e. vérifier qu’un produit de deux matrices est nul), conjecturé comme étant de complexité équivalente au produit de matrices ([1]). On s’intéressera ainsi à la validité des hypothèses émises par ces auteurs ainsi qu’à la pertinence de la réduction présentée.

Ce problème de complexité peut aussi être abordé comme faisant partie inté- grale du problème initial de calcul numérique, en effet, comme le montre S. Rump [10, 7], il est courant qu’un algorithme numérique de résolution d’un problème fournisse des éléments facilitant le calcul d’une borne d’erreur. On parle alors d’algorithmes self-validating (algorithmes qui certifient eux même leur résultats ). Il classifie alors les certificats en deux catégories : ceux dont la complexité est du même ordre que celle du problème initial, appelés ’Fast’, et ceux dont la complexité est négligeable devant celle du problème initial, appelés ’Super-fast’.

Rump [10] présente ainsi un algorithme de validation de résolution de systèmes linéaires pour les matrices symétriques définies positives en O(n2) utilisant une décomposition de Cholesky déjà effectuée lors du calcul de la solution approchée, algorithme que l’on étudiera en exemple d’algorithmeself validating.

Dans cette optique d’étude de la complexité du calcul de bornes d’erreur, on s’intéresse au certificat développé par G. Villard [13] pour vérifier le caractère LLL-réduit ([6]) d’une base deZn. Ce certificat repose sur l’étude de bornes d’er- reurs sur le facteurR de la décompositionQR de matrices afin de pouvoir verifier les conditions de réduction de la base. On présentera ainsi une implementation du calcul de borne d’erreur sur le facteurR et on discutera les résultats obtenus par cet algorithme, tant au niveau du temps de calcul que des performances obtenues.

(3)

2 Estimation de complexité : norme de l’inverse.

2.1 Réductions de problèmes.

Dans [2], Demmel, Diament et Malajovitch tentent d’évaluer la difficulté d’es- timer la norme de l’inverse d’une matrice A (nécessaire au calcul du conditionne- mentκ(A) =kA−1k·kAk). L’intérêt d’une telle évaluation réside dans l’utilisation du conditionnement pour majorer des bornes d’erreurs dans certains problèmes d’analyse numérique tel que la résolution de systèmes linéaire :

kx−xkˆ

kˆxk ≤κ(A)· kb−Aˆxk

kAk · kˆxk (1)

Ainsi l’erreur relative est proportionnelle à κ(A) (et donc à kA−1k). κ(A) est appelé le conditionnement du problème [4], et représente dans quelle mesure une perturbation des données du problème (donc ici de b) perturbe la solution. La question est alors de savoir dans quelles limites le compromis entre la vitesse de calcul et la précision désirée sur le calcul de kA−1k est efficace. En d’autres termes, si l’on diminue la précision demandée, le calcul devient-t-il plus rapide pour autant ?

Définition 1. Estimation de la norme de l’inverse (CE).

On dit qu’une machine résout le problème d’estimation de conditionnement avec une tolérance de f(n, k) si pour toute matrice A n×n inversible dont les coefficients sont de taille au plus k, l’estimation E retournée vérifie :

1

f(n, k) E

kA−1k ≤f(n, k) la norme k · k employée ici est la norme max :

kAk=maxi,j(|Ai,j|)

Le fait que la norme max soit utilisée ici peut poser problème à première vue : en effet, la norme max n’est pas une norme sub-multiplicative (i.e. elle ne vérifie pas la propriété kABk<kAk · kBk), par consequent, la majoration (1) n’est pas valable pour la norme max. Il est donc nécessaire, pour utiliser l’estimation, de convertirkA−1kmax par utilisation des formules d’équivalences des normes. On a en effet :

∀A∈Rn×n :kAkmax ≤ kAk2 ≤nkAkmax

et donc si

1

f(n, k) E

kA−1kmax ≤f(n, k)

(4)

alors

1

n∗f(n, k) E

kA−1k2 ≤f(n, k)

nétant négligeable devant les fonctionsf(n, k)considérées ici, on peut considérer une estimation dekA−1kmax comme étant une estimation de kA−1k2.

Définition 2. Test du produit de matrices (ZT).

Une machine résout le test du produit de matrices avec pour paramètres n et k (ZT), si pour toutes matrices carrée B et C de taille n dont les coefficients sont de taille au plus k, la machine décide si le produit BC est nul

Cet article présente une méthode montrant que que résoudre ce problème avec une tolérance raisonnable (f(n, k) = 2δk+τ(n), avec 0≤δ < 12 et τ borné polyno- mialement.) est plus long (à une constante multiplicative près) que de tester la nullité d’un produit de matrice (ZT) (théorème 2.1) : le but de cette réduction est double : d’une part prouver que le calcul de la norme de l’inverse est aussi dur que de calculer l’inverse (ou du moins un résultat s’en approchant), d’autre part réduire l’interet du compromis entre la vitesse et la précision pour le calcul du conditionnement.

Théorème 2.1. (J.Demmel, B. Diament, and G. Malajovich) [2]

Soit

τ : N N une fonction croissante calculable sur une machine RAM en O(n2).

0≤δ < 12 une constante.

CEτ une machine RAM qui :

1. résout le problème d’estimation de conditionnement avec une tolérance de 2δk+τ(n).

2. utilise chaque entrée de la matrice dans une opération arithmétique ou une comparaison.

Alors il existe une constanteC > 0et une machine RAM ZT qui résout le test de nullité telle que pour tout(n0;k0)N×N, il existe(n;k)∈N×N, n≥n0, k ≥k0 tels que :

T imeCEτ(n, k)> C·T imeZT(n, k)

Il n’existe pas de méthode connue pour tester le produit de matrices plus ra- pidement qu’en calculant effectivement le produit et en comparant le résultat à zéro. C’est pourquoi il est conjecturé que les complexités de ces deux problèmes sont équivalentes [1]. Néanmoins il existe une méthode probabiliste simple pour résoudre ZT ([5, 3]) : il suffit de générer un vecteur x aléatoire et calculer le produitB(Cx). Si le produit BC est non nul,B(Cx)l’est aussi avec une grande probabilité. Ainsi il existe un algorithme probabiliste efficace qui travaille en

(5)

O(n2)pour résoudre ZT, ce qui n’est pas le cas de la multiplication de matrices.

C’est pourquoi la réduction fournie par le théorème 2.1 peut être remise en ques- tion : le but étant de déterminer la complexité de CE, l’objectif est de trouver un problème dont la complexité est comparable à CE. Comme il semble douteux que la norme de l’inverse puisse être estimée, même de manière probabiliste, en O(n2) (actuellement, Higham ([4]) présente une méthode probabiliste en O(n2) utilisant la décompositionQR de A comme oracle), CE semble appartenir à une autre classe de complexité que ZT.

Un autre problème qui se pose dans cet article est la question de la validité des conditions imposées àδ etτ dans le théorème 2.1. Est-t-il concevable d’envisager un estimateur de conditionnement avec une tolérance supérieure (tout en restant acceptable) mais qui soit plus rapide ? La borne surτ ne pose pas de problème, puisqu’une tolérance en2τ(n) avecτ non bornée par les polynômes présente peu d’intérêt. En revanche, une tolérance de2k2 n’est pas déraisonnable dans certains cas, et on peut donc se demander s’il existe un algorithme rapide qui permette d’estimer la norme de l’inverse avec une telle tolérance. Ce facteur 12 est du à un aspect technique de la preuve, et semble ne pas pouvoir être amélioré sans un profond remaniement de la réduction.

3 Calculs rapides de bornes d’erreurs.

Même si le théorème 2.1 semble proscrire tout algorithme de certification rapide, Rump [10, 7] présente une autre approche qui permet de masquer le coût de cette certification. En effet il présente des algorithmes self-validating pour lesquels le sur-coût engendré par la certification est largement diminué par la réutilisation de calculs effectués pour la génération du résultat approché. Il s’intéresse ainsi au problème de la complexité de la génération de bornes d’erreurs dans le cas de la résolution de systèmes linéaires : On considère donc un système Ax = b et on cherche donc à majorer l’erreur commise par une approximation du résultat. Il considère plus particulièrement le sur-coût engendré par le calcul du certificat lors du calcul de la solution approché. Il présente ainsi ([7]) un algorithme calculant une solution approchée et certifiant cette solution ainsi que le caractère inversible deAenO(n3), pour laquelle le coût de la certification est en O(n3). Il qualifie un tel algorithme (un algorithme ou le coût de la certification est comparable au coût de génération de l’approximation) de ’Fast’. Toutefois il ne parvient pas à fournir de certification avec un sur-coût en O(n2) pour le cas général, mais seulement pour des classes précises de matrices, ce qui tend a montrer que le problème de l’estimation d’erreur pour les systèmes linéaires est bien un problème difficile. Il cherche donc ([10]) des classes de matrices pour

(6)

lesquelles le coût de la certification peut être rendu négligeable devant le coût de calcul d’une approximation, rendant ainsi la validation du calcul virtuellement gratuite : de tels algorithmes sont alors qualifiés de ’Super-Fast’.

Par exemple, pour les matrices symétriques définies positives, l’algorithme 1 calcule un intervalle de la forme [xm−xr, xm+xr], où xm est la solution appro- chée, etxrla borne d’erreur calculée, tout en vérifiant que la matrice en entrée est effectivement définie positive. Le résultat xm ainsi est donc certifié par le même algorithme qui l’a produit.

Algorithm 1 algorithme de certification pour A =ai,j symétrique définie posi- tive.

Require: A=ATavecajj >0

1: if max(amin(ajjjj)) > n then

2: D:=diag(dj) with dj = 2−round(0,5∗log2(ajj))

3: A=DAD;b=Db;scale= 1

4: else

5: scale= 0

6: end if

7: setround(+1) ; α=Pn

j=1φj+1ajj, avec φk= (1−γγkk) etγk= (1−ku)ku

8: setround(-1) ; B =A−2αI

9: setround(0) ;

10: R =chol(B);

11: x=R\(RT\b);

12: itérer x = x+R\(RT\dot(b−Ax)); jusqu’a ce que la précision désirée soit atteinte.

13: [res;res] =dot<>(b−Ax)

14: y =R\(RT\res)

15: y =y+R\(RT\dot(res−Ay))

16: xm =x

17: xr =|y|+kAy−[res,res]k2e α

18: if scale then

19: xm =Dxm;xr =Dxr;

20: end if

L’algorithme 1 se décompose en 4 phases :

1. Les lignes 1 à 6 servent à manipuler le conditionnement de la matrice.

Van der Sluis [11] a en effet prouvé que qu’un tel redimensionnement de la matrice était quasi-optimal pour réduire le conditionnement (utilisantk·k2) de A. Le problème utilisant la matrice ainsi redimensionnée est alors moins

(7)

sujette aux perturbations, et les performances de l’algorithme seront donc meilleures.

2. Les lignes 7 à 9 décalent la matrice A en calculant B = A 2αI. Ce décalage permet de garantir le caractère défini positif de A : en effet le fait que l’algorithme de décomposition de choleski termine sur Ane garanti pas nécessairement que A est définie positive. Utiliser B (avec α bien choisi) permet d’obtenir des bornes sur les valeurs propres de Aet donc de certifier l’algorithme.

3. La ligne 10 calcule une décomposition de Choleski de B. Si cette décompo- sition termine correctement, alors grâce aux lemmes 3.1 et 3.2 :

Lemme 3.1. Rump [10]

Soit A =AT telle que l’algorithme de choleski termine, alors la matrice R˜ calculée vérifie :

R˜TR =A+ ∆A with k∆Ak ≤ Xn

j=1

φj+1ajj

Lemme 3.2. Rump [10]

Si l’algorithme de choleski est appliqué à une matrice symétrique dont les coefficients diagonaux sont positifs, alors pour une execution en précision finie :

(a) Si λmin(A)Pn

j=1φj+1ajj alors choleski termine correctement (b) Si λmin(A)<−Pn

j=1φj+1ajj alors choleski termine prematurement.

On obtient les inégalités suivantes :

R˜TR =B + ∆B with k∆Bk ≤ Xn

j=1

φj+1bjj

et

λmin(B)≥ − Xn

j=1

φj+1bjj

(8)

d’où

λmin(A)≥ − Xn

j=1

φj+1bjj

≥ − Xn

j=1

φj+1bjj

≥ − Xn

j=1

φj+1(ajj2α)

≥ − Xn

j=1

φj+1ajj

≥ −α λmin(A)≥α

Ce qui prouve a posteriori le caractère défini positif de la matrice A.

4. Les lignes 11 à 20 calculent l’approximation xm et la borne d’erreur xr désirés, à partir de la décomposition QR de B obtenue précédemment. La fonction ’dot’ désigne un calcul effectué avec une grande précision, et la fonction ’dot<>’ désigne une fonction qui calcule une inclusion du résultat.

La question qui se pose alors est de savoir s’il existe des cas où A est définie positive et l’algorithme de Choleski ne termine pas pourB, autrement dit des cas ou l’algorithme échoue. Grâce au lemme suivant 3.3, on peut établir une borne supérieure sur le conditionnement de A en dessous de laquelle le programme s’execute correctement.

Lemme 3.3. En posant c = λλmax(A)

min(A), Si c < 3∗n∗(n+1)∗u1 , alors la décomposition de Choleski sur B =A−2αI termine correctement.

Démonstration. On a :

3∗α= 3X

φj+1ajj <3X

(j + 1)u∗ajj

3∗α <3(n+ 1)uX ajj 3∗α <3(n+ 1)uX

λj 3∗α <3(n+ 1)u∗n∗λmax 3∗α <3(n+ 1)u∗n∗c∗λmin Sic < 3∗n∗(n+1)∗u1 , on a alors :

3∗α < λmin on peut alors conclure en utilisant le lemme 3.2.

(9)

dimension cmax 10 2,71013 100 2,91011 1000 3109

Fig. 1 – cmax en fonction den. On utilise u= 2−53

La figure 1 montre la valeur maximale de c pour laquelle la condition du lemme 3.3 est vérifiée pour différentes dimensions. On remarque que les valeurs decmax sont particulièrement élevées, surtout après un éventuel redimensionnement deA dans la première partie de l’algorithme.

Ainsi les étapes nécessaires au calcul dexr sont négligeables par rapport à celle nécessaires au calcul dexm et on obtient la certification du calcul ’gratuitement’, contournant ainsi la restriction sur la complexité de l’estimation de l’erreur pré- sentée précédemment.

4 Implementation d’un certificat : la décomposi- tion QR.

4.1 Problématique

Dans [13], G. Villard développe un certificat pour tester si une base vectorielle donnée est LLL réduite ou non. Ce certificat repose sur la décomposition QR de la matrice A formée par les vecteurs de la base vectorielle : Il est connu que pour toute matrice A inversible il existe un unique couple (Q, R) (au signe des coefficients diagonaux de R près) tel que A = Q R avec Q orthogonale et R triangulaire supérieure. Un algorithme classique (en utilisant Gram-Shmidt) exécuté en précision finie retourne en 2n3 +O(n2) opérations R˜ (triangulaire supérieure) et Q˜ (orthogonale) tels que A Q˜ R. Pour prouver (dans un˜ maximum de cas) que les colonnes de A sont LLL-réduites, l’algorithme majore en 10n3 +O(n2) opérations l’erreur |R−R|˜ commise sur le facteur R, dans le but de vérifier si les conditions de Lovász [6] sont vérifiées. Pour cela, on utilise le théorème suivant [12] :

Théorème 4.1. (JI-GUANG SUN)[12]

SoientB etB˜ deux matrices symétriques définies positives.R etR˜ les facteurs de Cholesky de B et B˜ respectivement. En posant E = ˜B −B, et G=|R˜−TER˜−1|, si :

ρ(G)<1

(10)

Alors :

|R˜−R| ≤tril(G(I−G)−1)|R|˜

En appliquant ce théorème à B˜ = ˜RTR˜ et B =ATA, on obtient :

|R−R| ≤˜ triu(G(I−G)−1)∗ |R|˜

Majorer l’erreur commise passe donc par la majoration du terme G :

G=|R˜−TATAR˜−1−I|

=|W−T(VTATAV −WTW)W−1|

≤ |W−T| ∗ |VTATAV −WTW| ∗ |W−1|

≤ |W−T| ∗(|(VTATAV −I (WTW −I)|)∗ |W−1|

G≤ |W−T| ∗(|(VTATAV −I)|+|(WTW −I)|)∗ |W−1| (2) Le calcul de la majoration deGs’effectue grâce à l’arithmétique d’intervalle. En effet, pour être sur de majorer correctement, il est nécessaire de calculer une borne inférieure et une borne supérieure sur les résultats intermédiaires avant de passer à la valeur absolue. Ainsi pour majorer un produit kABk on calcule l’intervalle dans lequel le produitAB se situe (cf algorithme 3), et pour majorer un produit de la formeABCD, il est nécessaire de calculer séparément les intervallesAB etCD avant de calculer la borne (avec l’algorithme 4). Pour calculer de tels intervalles, on utilise ’setround’, une routine qui permet de changer le mode d’arrondi, et pour laquelle le standard IEEE garanti que les bornes obtenues optimales dans F.

C’est pourquoi la majoration de G est effectuée dans le respect des recomman- dations données dans [8] pour le calcul d’intervalles :

– utiliser au maximum les données initiales (A) – utiliser des approximations flottantes (ici V)

– introduire autant que possible des termes ’petits’, pour réduire la taille des intervalles manipulés. Ici, dans (2), les termes|(VTATAV −I)|et|(WTW− I)| sont introduits dans cette optique. De plus ils permettent d’éviter un calcul de somme d’intervalles coûteux.

Une fois la majoration deGcalculée, il suffit de montrer la conditionρ(G)<1 pour pouvoir appliquer le théorème 4.1. Pour cela on montre quekGk <1 car ρ(G)≤ kGk, ce qui permet d’obtenir la majoration d’erreur désirée.

(11)

4.2 Protocole expérimental

Les calculs sont effectués en matlab, version (7.2.0.294 (R2006a)), et l’étude de l’erreur commise est effectuée coefficient par coefficient. Cette méthode per- met d’étudier l’erreur de manière plus précise, et par comparaison avec le résultat exact, d’analyser les différentes majorations effectuées. Le résultat exact (ou du moins calculé avec une plus grande précision) |R−R|˜ est calculé par un pro- gramme C compilé grâce en matlab grâce à la fonction mex. Ainsi le résultat est comparé au résultat obtenu H∗ |R|˜ par observation de la matrice suivante :

C(i, j) =

( (|R(i,j)−R(i,j)|−(H∗|˜ R|)(i,j))˜

R(i,j) si R(i, j)6= 0

NaN sinon

La qualité de la borne d’erreur est étudiée relativement à la taille des coefficients deR. Le problème réside dans le cas où un coefficient de la partie supérieure droite de R est nul, ce qui n’arrive pas en pratique.

Pour comparer les deux sorties R et R˜ fournies respectivement par le pro- gramme C et matlab se pose le problème des conventions. En effet le programme C renvoie une matrice R dont les coefficients diagonaux sont tous positifs, alors que matlab ne procède pas à ce genre de corrections. Pour les comparer il est donc nécessaire de procéder à une normalisation de la matriceR˜ fournie par mat- lab (algorithme 2). Le problème d’une telle normalisation réside dans les erreurs qu’elle peut engendrer. En effet l’objectif d’une telle manipulation est de faire coïncider les signes deR etR. Cependant, il peut arriver qu’une erreur de signe˜ soit apparue lors du calcul de R˜ sur la diagonale, auquel cas le signe de la ligne entière sera affecté par le processus. C’est pourquoi le programme vérifie que la normalisation s’effectue sans ajouter d’erreurs indésirable.

Algorithm 2 Algorithme de normalisation de R˜ for i= 1 to n do

if R(i, i)˜ <0then for j =i to n do

R(i, j) =˜ −R(i, j);˜ end for

end if end for

(12)

4.3 Résultats expérimentaux

4.3.1 Complexité et temps d’exécution

Les premières versions de cette implementation utilisaient IntLab [9], une bibliothèque de calcul d’intervalle pour Matlab. Néanmoins si cette méthode pré- sente l’avantage de simplifier le code en utilisant par exemple le produit de ma- trices d’intervalles fourni par IntLab, elle ralentit considérablement le calcul de la borne d’erreur, car elle calcule nombre de valeurs inutiles (telles que des bornes inférieures là où seules des bornes supérieures sont nécessaires.). C’est pourquoi le programme n’utilise désormais que le calcul flottant et la fonction ’setround’ de matlab permettant de changer le mode d’arrondi. Ainsi, les calculs d’intervalles sont réalisés en utilisant les algorithmes 3 et 4.

Algorithm 3 calcul de R tel que |A×B−C| ≤R setround(-1) ;

R =f l(A×B −C);

setround(1) ;

R =f l(A×B −C);

R =max(|R|,|R|);

Algorithm 4 calcul de R tel que |M ×N −I| ≤R.

Require: M, M,N et N tels que M [M, M]et N [N, N] setround(1) ;

mM =f l((M +M)/2);

rM =f l(mM −M);

mN =f l((N +N)/2);

rN =f l(mN −N);

setround(-1) ;

R =f l(mM ×mN −I);

setround(1) ;

R =f l(mM ×mN −I);

R =f l(max(|R|,|R|) +|mM| ×rN +rM ×(|mM +rN|));

Le coût du calcul du certificat est supposé être 10·n3+O(n2), contre2·n3+ O(n2) pour le calcul de la décomposition QR néanmoins matlab ne permet pas d’utiliser certaines caractéristiques du calcul telles que le caractère triangulaire de certaines matrices. MatLab fonctionne grâce à un module d’algèbre linéaire, une implementation de BLAS (Basic Linear Algebra Subroutines) nommée ATLAS [14], qui est utilisée ici pour des raisons de compatibilité avec Intlab. Néanmoins si ATLAS dispose de fonctions permettant de profiter de la structure de certaines

(13)

200 300 400 500 600 700 800 8.1

8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9 9.1

ratio temps de majoration sur temps de calcul de QR

dimension

ratio

Fig. 2 – ratio temps nécessaire au calcul de la borne sur temps de calcul de la décomposition QR. Test réalisé des matrices ’randsvd’ de conditionnement variable.

matrices dans le calcul de la borne d’erreur, Matlab ne les utilise pas et effectue donc des produits de matrices classiques, utilisant la routine GEMM fournie par ATLAS.

Ainsi dans la figure 2, qui présente le ratio de temps de calcul de la borne d’erreur sur le temps de calcul de la décomposition QR par matlab, on peut remarquer que ce facteur est égal à 9. Cet écart avec le résultat théorique es- compté est à mettre sur le compte des multiplications non optimisées effectuées par matlab.

(14)

200 300

400 500

600 700

800

2 4 6 8 10 12

−4

−2 0 2 4 6 8

dimension erreur relative maximale (par coefficient)

conditionnement (log10)

erreur relative maximale (log10)

Fig.3 – erreur relative maximale enregistrée (sur un coefficient). Test réalisé sur des matrices de type ’randsvd’.

4.3.2 Qualité de la borne.

Les figures 3, 4, 5 et 6 présentent les résultats d’un test réalisé avec des matrices de type ’randsvd’ (matrices aléatoires à valeurs propres assignées.) en faisant varier le conditionnement des matrices entre 102 et 1010 et la dimension de celles-ci entre 200 et 1000. Les résultats présentés sont de deux types : les figures 3 et 5 représentent, en fonction du conditionnement et de la dimension, la différence relative maximale entre la borne d’erreur calculée et la borne d’erreur réelle (la qualité de la borne d’erreur), tandis que les figures 4 et 6 représentent le maximum atteint par la borne d’erreur calculé (le nombre de chiffre garantis par la certification donc). Les figures 3 et 4 prennent l’ensemble de la matrice en considération, tandis que les figures 5 et 6 ne considèrent que les coefficients diagonaux.

Le premier constat qui peut être fait est que que les performances (tant ab- solues que relatives) se dégradent quand la dimension ou le conditionnement de A augmente. Néanmoins l’influence de la dimension est faible devant celle du conditionnement. De plus on remarque que la qualité de la borne est grandement meilleure sur la diagonale qu’en dehors (figures 3 et 5). Cependant même si la qualité de la borne devient vraiment discutable pour les grandes valeurs des para- mètres, celle-ci assure une précision de 10−1 dans le pire des cas, ce qui n’est pas négligeable. Une méthode envisageable pour améliorer les résultats est alors l’im- plementation d’une routine de redimensionnement de la matrice similaire à celle utilisée par Rump dans l’algorithme 1, dans le but de réduire le conditionnement

(15)

200 300

400 500

600 700

800

2 4 6 8 10

−10

−9

−8

−7

−6

−5

−4

−3

−2

−1

dimension erreur sur R maximale (par coefficient)

conditionnement (log10)

erreur maximale sur R (log10)

Fig. 4 – borne maximale enregistrée (sur un coefficient). Test réalisé sur des matrices de type ’randsvd’.

de la matrice.

(16)

200 300

400 500

600 700

800

2 4 6 8 10

−12

−10

−8

−6

−4

−2 0

dimension erreur relative diagonale maximale (par coefficient)

conditionnement (log10)

erreur relative maximale (log10)

Fig. 5 – erreur relative maximale enregistrée (sur un coefficient diagonal). Test réalisé sur des matrices de type ’randsvd’.

200 300

400 500

600 700

800

2 4 6 8 10

−11

−10

−9

−8

−7

−6

−5

−4

−3

−2

dimension erreur sur R diagonale maximale (par coefficient)

conditionnement (log10)

erreur maximale sur R (log10)

Fig.6 – borne maximale enregistrée (sur un coefficient diagonal). Test réalisé sur des matrices de type ’randsvd’.

(17)

Dimension 20 40 60 80

κ2 (log10) 3.4 6.9 10 14

erreur relative max (log10) -10 -6.7 -3.2 0.31 erreur relative diagonale max (log10) -11 -7.8 -4.4 -0.85 precision garantie (log10) -11 -7.1 -3.7 -0.13 precision diagonale garantie (log10) -11 -7.8 -4.4 -0.86

Fig. 7 – tableau récapitulatif des résultats obtenus pour le test effectué sur des matrices de type Kahan

Le tableau figure 7 présente les résultats obtenus sur des matrices de la forme Q∗A, avec Q orthogonale et K matrice de Kahan (triangulaire supérieure dont les coefficients vérifient : ai,i = sin(1.2)i−1, et ai,j = −sin(1.2)i−1cos(1.2), très mal conditionnées ) de taille n. Pour de petites taille de matrices, on obtient ainsi des matrices pour lesquelles l’algorithme a donc de mauvais résultats. La figure 8 présente ainsi l’erreur relative commise par coefficient pour une telle matrice de taille 80 (l’échelle en z étant logarithmique, les coefficients nuls sont remplacés par le coefficient non-nul le plus petit.). La symétrie par rapport à la diagonale non-principale est flagrante, ainsi que la dégradation progressive de la qualité de la borne au fur et a mesure que l’on s’éloigne de la diagonale. Ces deux faits permettent d’émettre l’hypothèse que les majorations effectuées pour calculer la borne sont mauvaises pour les coefficients supérieurs droit de la matrice, ce qui donne une piste pour une éventuelle amélioration de l’algorithme.

5 conclusion

Ce stage m’a permis de découvrir différentes approche au problème de cer- tification des algorithmes. Ce domaine riche et encore peu exploré présente de nombreuses difficultés à la fois théoriques (liées à des problèmes de complexités encore nouveaux et faussés par la dépendance du problème au problème du calcul numérique simple) et pratiques (liées aux difficultés des calculs en arithmétique standard ). L’aspect qualité de la borne obtenue, et le compromis entre vitesse et efficacité qu’il engendre (de manière similaire à l’étude de l’estimation de κ(A) présentée dans ce rapport) est un problème qui n’a pas été étudié de manière théorique dans ce stage, et qui présente un intérêt certain pour le développement d’algorithmes certifiés, et c’est pourquoi il fera probablement l’objet d’une etude plus approfondie par la suite.

(18)

0

20 40

60 80 0

20 40

60 80

−1

−0.8

−0.6

−0.4

−0.2 0 0.2 0.4

colonnes erreur relative, avec seuil, conditionnement 10~14

lignes

erreur relative (log10)

Fig. 8 – Erreur relative enregistrée par coefficient. Test réalisé sur une matrice de type Kahan de dimension 80.

(19)

Références

[1] P. Bürgisser, M. Clausen, and M.A. Shokrollahi. Algebraic Complexity Theory. Volume 315, Grundlehren der mathematischen Wissenschaften.

Springer-Verlag, 1997.

[2] J. Demmel, B. Diament, and G. Malajovich. On the Complexity of Compu- ting Error Bounds. Foundations of Computational Mathematics, 1(1) :101–

125, 2001.

[3] R. Freivalds. Fast probabilistic algorithms. In Proc. 8th Symposium on Ma- thematical Foundations of Computer Science, LNCS 74, pages 57–69. Sprin- ger Verlag, 1979.

[4] N.J. Higham. Accuracy and Stability of Numerical Algorithms SIAM, 2002.

[5] T. Kimbrel and R.K. Sinha. A Probabilistic Algorithm for Verifying Matrix Products Using O (n 2) Time and log.

[6] AK Lenstra, HW Lenstra, and L. Lovász. Factoring polynomials with ratio- nal coefficients. Mathematische Annalen, 261(4) :515–534, 1982.

[7] S.I. Oishi and S.M. Rump. Fast verification of solutions of matrix equations.

Numerische Mathematik, 90(4) :755–773, 2002.

[8] S.M. Rump. Computer-Assisted Proofs and Self-Validating Methods. Accu- racy and Reliability in Scientific Computating, pages 195–240.

[9] S.M. Rump. INTLAB-INTerval LABoratory.Developments in Reliable Com- puting, pages 77–104, 1999.

[10] S.M. Rump and T. Ogita. Super-fast validated solution of linear systems.

Journal of Computational and Applied Mathematics, 199(2) :199–206, 2007.

[11] A. Sluis. Condition numbers and equilibration of matrices. Numerische Mathematik, 14(1) :14–23, 1969.

[12] J.G. Sun. Componentwise perturbation bounds for some matrix decomposi- tions. BIT Numerical Mathematics, 32(4) :702–714, 1992.

[13] G. Villard. Certification of the QR factor R, and of lattice basis reducedness.

Arxiv preprint cs.SC/0701183, 2007.

[14] R.C. Whaley, A. Petitet, and J.J. Dongarra. Automated empirical optimiza- tions of software and the ATLAS project. Parallel Computing, 27(1-2) :3–35, 2001.

Références

Documents relatifs

E1 Réponse GRILLE de CORRECTION du

[r]

Pour chaque transformation exprimer le transfert thermique et le travail reçus par le gaz en fonction des différentes températures , n R et γ, regrouper les résultats dans un

Compléter les pointillés de la définition ci-dessus en choisissant le mot qui convient parmi les deux propositions suivantes1.

On remarque que les maxima de largeur de capture pour le syst` eme contrˆ ol´ e ont lieu pour des p´ eriodes apparentes de houle proches de la p´ eriode propre, ` a savoir 10

MI 201 Groupe A1 Correction du Contrôle Continu 1 : Suites numériques printemps 2014

6 [3ε sin(3ωt) sin 2 (ωt)] qui ne pouvait qu'être d'ordre supérieur à celui du présent calcul (pour les mêmes raisons) ; il est toutefois intéres- sant de

Ce filtre sélectionnera les signaux de fréquences les plus faibles :