113
Calcul de formes normales matricielles: de l’algorithmique à la mise en pratique Clément PERNET, LIG/INRIA-MOAIS, Université de Grenoble, France Séminaire SIESTE, ENS-Lyon 12 février 2013

Calcul de formes normales matricielles: de l'algorithmique

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Calcul de formes normales matricielles: de l'algorithmique

Calcul de formes normales matricielles: del’algorithmique à la mise en pratique

Clément PERNET,

LIG/INRIA-MOAIS, Université de Grenoble, France

Séminaire SIESTE, ENS-Lyon 12 février 2013

Page 2: Calcul de formes normales matricielles: de l'algorithmique

Introduction : formes normales matricielles

Étant donné une famille de transformations B = fU(A),I Identifier des invariantsI Représentant unique des classes d’équivalencesI Simplifier les calculs (forme structurée ou creuse)

Différent types:

Équivalence à gauche dans un corps: B = UA, où U estinversible

I Forme échelonnée réduite: E =

1 ∗ 0 ∗ ∗ 0 ∗

1 ∗ ∗ 0 ∗1 ∗

I Élimination de Gauss-Jordan

Page 3: Calcul de formes normales matricielles: de l'algorithmique

Introduction : formes normales matricielles

Étant donné une famille de transformations B = fU(A),I Identifier des invariantsI Représentant unique des classes d’équivalencesI Simplifier les calculs (forme structurée ou creuse)

Différent types:

Équivalence à gauche dans un anneau: B = UA, oùdet(U) = ±1

I Forme de Hermite: H =

p1 ∗ x1,2 ∗ ∗ x1,3 ∗

p2 ∗ ∗ x2,3 ∗p3 ∗

, avec

0 ≤ x∗,j < pj

Page 4: Calcul de formes normales matricielles: de l'algorithmique

Introduction : formes normales matriciellesÉtant donné une famille de transformations B = fU(A),

I Identifier des invariantsI Représentant unique des classes d’équivalencesI Simplifier les calculs (forme structurée ou creuse)

Différent types:

Similitude dans un corps: B = U−1AU

I Forme normale de Frobenius (ou forme canonique

rationnelle): F =

CP0

CP1

. . .CPk

, avec pi+1|pi et

P0 = MinPoly(A).

I Méthode de Krylov ou élimination ZigZag

Page 5: Calcul de formes normales matricielles: de l'algorithmique

Motivation

Équivalence dans un corps: élimination de Gauss

I Forme échelonnée réduite, profile de rang: résolution desystèmes polynomiaux par bases de Gröbner.

I Résolution de systèmes linéaires: crypto (cribles, calculd’index, ...)

Équivalence dans un anneau: réduction de réseaux

I Forme normale de Hermite: Z-modules et leur saturationI calcul de vecteurs courts:

I difficile (donc applications en crypto)I améliore les complexitésI théorie des codes: décodage en liste

Page 6: Calcul de formes normales matricielles: de l'algorithmique

ComplexitésProduit de matrices: accès aux algorithmes rapides

I dans un corps: O (nω). ω ∈]2.3727, 3] (exposant de l’algèbre lin.)I dans Z: O (nωM(log ‖A‖)) = O˜(nω log ‖A‖)

Équivalence dans un corps: forme echelonnée réduite

I Gauss-Jordan: O (nω)

Équivalence dans Z: forme normale de Hermite

I [Kannan & Bachem 79]: ∈ PI [Chou & Collins 82]: O˜

(n6 log ‖A‖

)I [Domich & Al. 87], [Illiopoulos 89]: O˜

(n4 log ‖A‖

)I [Micciancio & Warinschi01]: O˜

(n5 log ‖A‖2

),

O˜(n3 log ‖A‖

)heur.

I [Storjohann & Labahn 96]: O˜(nω+1 log ‖A‖

)Similitude dans un corps: forme normale de Frobenius

I [Storjohann00]: O˜(nω)I [P. & Storjohann07]: Las Vegas sans U O (nω)

Page 7: Calcul de formes normales matricielles: de l'algorithmique

ComplexitésProduit de matrices: accès aux algorithmes rapides

I dans un corps: O (nω). ω ∈]2.3727, 3] (exposant de l’algèbre lin.)I dans Z: O (nωM(log ‖A‖)) = O˜(nω log ‖A‖)

Équivalence dans un corps: forme echelonnée réduite

I Gauss-Jordan: O (nω)Équivalence dans Z: forme normale de Hermite

I [Kannan & Bachem 79]: ∈ PI [Chou & Collins 82]: O˜

(n6 log ‖A‖

)I [Domich & Al. 87], [Illiopoulos 89]: O˜

(n4 log ‖A‖

)I [Micciancio & Warinschi01]: O˜

(n5 log ‖A‖2

),

O˜(n3 log ‖A‖

)heur.

I [Storjohann & Labahn 96]: O˜(nω+1 log ‖A‖

)

Similitude dans un corps: forme normale de Frobenius

I [Storjohann00]: O˜(nω)I [P. & Storjohann07]: Las Vegas sans U O (nω)

Page 8: Calcul de formes normales matricielles: de l'algorithmique

ComplexitésProduit de matrices: accès aux algorithmes rapides

I dans un corps: O (nω). ω ∈]2.3727, 3] (exposant de l’algèbre lin.)I dans Z: O (nωM(log ‖A‖)) = O˜(nω log ‖A‖)

Équivalence dans un corps: forme echelonnée réduite

I Gauss-Jordan: O (nω)Équivalence dans Z: forme normale de Hermite

I [Kannan & Bachem 79]: ∈ PI [Chou & Collins 82]: O˜

(n6 log ‖A‖

)I [Domich & Al. 87], [Illiopoulos 89]: O˜

(n4 log ‖A‖

)I [Micciancio & Warinschi01]: O˜

(n5 log ‖A‖2

),

O˜(n3 log ‖A‖

)heur.

I [Storjohann & Labahn 96]: O˜(nω+1 log ‖A‖

)Similitude dans un corps: forme normale de Frobenius

I [Storjohann00]: O˜(nω)I [P. & Storjohann07]: Las Vegas sans U O (nω)

Page 9: Calcul de formes normales matricielles: de l'algorithmique

ComplexitésProduit de matrices: accès aux algorithmes rapides

I dans un corps: O (nω). ω ∈]2.3727, 3] (exposant de l’algèbre lin.)I dans Z: O (nωM(log ‖A‖)) = O˜(nω log ‖A‖)

Équivalence dans un corps: forme echelonnée réduite

I Gauss-Jordan: O (nω)Équivalence dans Z: forme normale de Hermite

I [Kannan & Bachem 79]: ∈ PI [Chou & Collins 82]: O˜

(n6 log ‖A‖

)I [Domich & Al. 87], [Illiopoulos 89]: O˜

(n4 log ‖A‖

)I [Micciancio & Warinschi01]: O˜

(n5 log ‖A‖2

),

O˜(n3 log ‖A‖

)heur.

I [Storjohann & Labahn 96]: O˜(nω+1 log ‖A‖

)Similitude dans un corps: forme normale de Frobenius

I [Storjohann00]: O˜(nω)I [P. & Storjohann07]: Las Vegas sans U O (nω)

Page 10: Calcul de formes normales matricielles: de l'algorithmique

MotivationBriques de base algorithmique et logicielles pour le calcul

de formes normales en algèbre linéaire.

En brefRéductions à une brique de base

MatMul : bloc rec.∑log n

i=1 n( n

2i

)ω−1= O (nω) (Gauss)

MatMul : iteratif∑n

k=1 n( n

k

)ω−1= O (nω) (Frobenius)

Linear Sys: dans Z (Hermite)Compromis taille/dimension

Hermite : perturb. de rang 1 pour réduire le déterminantFrobenius : degré k, dimension n/k pour k = 1 . . . n

Mise en oeuvre dans les bibliothèquesI FFLAS-FFPACK: dense, Zp où p ≈ mot machine.I M4RI: dense, GF(2)I LinBox: dense/creux/boîte-noire dans Z, Zp

Page 11: Calcul de formes normales matricielles: de l'algorithmique

MotivationBriques de base algorithmique et logicielles pour le calcul

de formes normales en algèbre linéaire.

En brefRéductions à une brique de base

MatMul : bloc rec.∑log n

i=1 n( n

2i

)ω−1= O (nω) (Gauss)

MatMul : iteratif∑n

k=1 n( n

k

)ω−1= O (nω) (Frobenius)

Linear Sys: dans Z (Hermite)Compromis taille/dimension

Hermite : perturb. de rang 1 pour réduire le déterminantFrobenius : degré k, dimension n/k pour k = 1 . . . n

Mise en oeuvre dans les bibliothèquesI FFLAS-FFPACK: dense, Zp où p ≈ mot machine.I M4RI: dense, GF(2)I LinBox: dense/creux/boîte-noire dans Z, Zp

Page 12: Calcul de formes normales matricielles: de l'algorithmique

Le produit de matrices dans Z/pZPrincipe:

I Réductions modulaires différées ⇒plongement dans ZI Arithmétique flottante (fma, SSE2, avx ...)

I Optimisation de cache

⇒repose sur les BLAS existants

I Algorithme sous-cubique (Strassen-Winograd)

1000

1500

2000

2500

3000

3500

4000

4500

5000

5500

6000

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Vite

sse

(Mop

s)

Dimension

Produit matriciel : BLAS vs FFLAS Opteron 2.4Ghz 4Go RAM

BLAS dgemm (dans IR)FFLAS fgemm (dans Z/65521 Z)

Page 13: Calcul de formes normales matricielles: de l'algorithmique

Le produit de matrices dans Z/pZPrincipe:

I Réductions modulaires différées ⇒plongement dans ZI Arithmétique flottante (fma, SSE2, avx ...)I Optimisation de cache

⇒repose sur les BLAS existantsI Algorithme sous-cubique (Strassen-Winograd)

0

1000

2000

3000

4000

5000

6000

0 1000 2000 3000 4000 5000 6000 7000

Mfo

ps

n

Multiplication classique dans Z/65521Z sur un P4, 3.4 GHz

Standard Bloc-33

1000

1500

2000

2500

3000

3500

4000

4500

5000

5500

6000

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Vite

sse

(Mop

s)

Dimension

Produit matriciel : BLAS vs FFLAS Opteron 2.4Ghz 4Go RAM

BLAS dgemm (dans IR)FFLAS fgemm (dans Z/65521 Z)

Page 14: Calcul de formes normales matricielles: de l'algorithmique

Le produit de matrices dans Z/pZPrincipe:

I Réductions modulaires différées ⇒plongement dans ZI Arithmétique flottante (fma, SSE2, avx ...)I Optimisation de cache⇒repose sur les BLAS existants

I Algorithme sous-cubique (Strassen-Winograd)

0

1000

2000

3000

4000

5000

6000

0 1000 2000 3000 4000 5000 6000 7000

Mfo

ps

n

Multiplication classique dans Z/65521Z sur un P4, 3.4 GHz

dgemm fgemm Standard Bloc-33

1000

1500

2000

2500

3000

3500

4000

4500

5000

5500

6000

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Vite

sse

(Mop

s)

Dimension

Produit matriciel : BLAS vs FFLAS Opteron 2.4Ghz 4Go RAM

BLAS dgemm (dans IR)FFLAS fgemm (dans Z/65521 Z)

Page 15: Calcul de formes normales matricielles: de l'algorithmique

Le produit de matrices dans Z/pZPrincipe:

I Réductions modulaires différées ⇒plongement dans ZI Arithmétique flottante (fma, SSE2, avx ...)I Optimisation de cache⇒repose sur les BLAS existants

I Algorithme sous-cubique (Strassen-Winograd)

1000

1500

2000

2500

3000

3500

4000

4500

5000

5500

6000

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Vite

sse

(Mop

s)

Dimension

Produit matriciel : BLAS vs FFLAS Opteron 2.4Ghz 4Go RAM

BLAS dgemm (dans IR)FFLAS fgemm (dans Z/65521 Z)

Page 16: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 17: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 18: Calcul de formes normales matricielles: de l'algorithmique

Élimination de Gauss pour la forme échelonnéeréduite

Élimination de Gauss < Forme échelonnée réduite

I Complétement étudiée pour le calcul numériqueI Spécificités du calcul exact:

I pas de contrainte de stabilité (pivotage partiel ou totalI Défaut de rang, profil de rang

I Éventuellement: taille des coefficients (Z ou GF(2))

Definition (Profil de rang en ligne)

Sous séquence lexico. minimale de r = rang(A) indices delignes ∈ {1, 2, . . . , n} linéaires indépendantes.

Definition (Profil de rang générique)

Les r = rang(A) mineurs dominants principaux sont non nuls.

Page 19: Calcul de formes normales matricielles: de l'algorithmique

Élimination de Gauss pour la forme échelonnéeréduite

Élimination de Gauss < Forme échelonnée réduite

I Complétement étudiée pour le calcul numériqueI Spécificités du calcul exact:

I pas de contrainte de stabilité (pivotage partiel ou totalI Défaut de rang, profil de rang

I Éventuellement: taille des coefficients (Z ou GF(2))

Definition (Profil de rang en ligne)

Sous séquence lexico. minimale de r = rang(A) indices delignes ∈ {1, 2, . . . , n} linéaires indépendantes.

Definition (Profil de rang générique)

Les r = rang(A) mineurs dominants principaux sont non nuls.

Page 20: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 21: Calcul de formes normales matricielles: de l'algorithmique

Décomposition LU

= LAU

I L: triangulaire inf. unitaireI U: triangulaire sup. inversible

Existe pourI les matrices ayant un profil de rang générique (tout mineur

principal dominant est non nul)

Page 22: Calcul de formes normales matricielles: de l'algorithmique

Décomposition LUP

= L PAU

I L: triangulaire inf. unitaireI U: triangulaire sup. inversibleI P: matrice de permutation

Existe pourI toute matrice régulièreI ou toute matrice avec profil de rang en ligne générique

Page 23: Calcul de formes normales matricielles: de l'algorithmique

Décomposition PLUQ

UP Q=A L

I L: triangulaire inf. unitaireI U: triangulaire sup. inversibleI P: matrice de permutationI Q: matrice de permutation

Existe pourI toute matrice m× n

Page 24: Calcul de formes normales matricielles: de l'algorithmique

Décompositions CUP et PLE

A =U

PC

A E= P L

I C: forme échelonnée colonneI E: forme échelonnée ligne

Existe pourI toute matrice m× n

Definition

I Profil de rang en ligne: indice des pivots dans CI Profil de rang en colonne: indice des pivots dans E

Page 25: Calcul de formes normales matricielles: de l'algorithmique

Décompositions CUP et PLE

A =U

PC

A E= P L

I C: forme échelonnée colonneI E: forme échelonnée ligne

Existe pourI toute matrice m× n

Definition

I Profil de rang en ligne: indice des pivots dans CI Profil de rang en colonne: indice des pivots dans E

Page 26: Calcul de formes normales matricielles: de l'algorithmique

Décompositions CUP et PLE

A =U

PC

A E= P L

I C: forme échelonnée colonneI E: forme échelonnée ligne

Existe pourI toute matrice m× n

Definition

I Profil de rang en ligne: indice des pivots dans CI Profil de rang en colonne: indice des pivots dans E

Page 27: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 28: Calcul de formes normales matricielles: de l'algorithmique

Type d’algorithmes

Localité des données: algorithmes par blocsI cache aware: itératif par blocsI cache oblivious: récursif par blocs

Efficacité du cas de base: itératif simpleComplexité asymptotique: récursif par blocsParallélisation:

I processor aware: itératif par blocsI processor oblivious: récursif par blocs

Page 29: Calcul de formes normales matricielles: de l'algorithmique

Type d’algorithmes

Localité des données: algorithmes par blocsI cache aware: itératif par blocsI cache oblivious: récursif par blocs

Efficacité du cas de base: itératif simpleComplexité asymptotique: récursif par blocsParallélisation:

I processor aware: itératif par blocsI processor oblivious: récursif par blocs

Page 30: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]

F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

E

D

I O (nω)I En place

Page 31: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

E

D

I O (nω)I En place

Page 32: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

F

D

I O (nω)I En place

Page 33: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

F

G

I O (nω)I En place

Page 34: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

F

H

I O (nω)I En place

Page 35: Calcul de formes normales matricielles: de l'algorithmique

Préliminaires

TRSM: TRiangular Solve with Matrix

[A B

C

]−1 [DE

]=

[A−1

I

] [I −B

I

] [I

C−1

] [DE

]F = C−1E (appel récursif)G = D− BF (MM)H = A−1G (appel récursif)

Return[

HF

]

A

C

B

F

HI O (nω)I En place

Page 36: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

A1

A2

1. Partage A en deux sur les lignes

2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 37: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

V

A

1

1U

C

21A

22

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 38: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

V

A

1

1U

C

22G

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 39: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

V

H

1

1U

C

G

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)

5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 40: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

GC

C

U

1

1

2

U2

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 41: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

GC

C U

U

1

1

2

2

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignes

I Les créneaux de C indiquent le profil de rang en ligne de A.

Page 42: Calcul de formes normales matricielles: de l'algorithmique

La décomposition CUP

GC

C U

U

1

1

2

2

1. Partage A en deux sur les lignes2. Appel récursif sur A1

3. G← A21U−11 (trsm)

4. H ← A22 − G× V (MM)5. Appel récursif sur H

6. Permutations de lignesI Les créneaux de C indiquent le profil de rang en ligne de A.

Page 43: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

Page 44: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

0

Page 45: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

0

Page 46: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

00

Page 47: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

00

0

Page 48: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

0

0

0

Page 49: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

0

0

0

0

Page 50: Calcul de formes normales matricielles: de l'algorithmique

Algorithme PLUQ Quad-recursifPrincipe:

I découpe récursive selon lignes et colonnesI il existe une façon de permuter les blocs qui révèle les

profils de rang en ligne et en colonne à la fois.

0

00

0

Page 51: Calcul de formes normales matricielles: de l'algorithmique

Comparaisons CUP vs PLUQ

I les algorithmes CUP et PLUQ ont une complexitésous-cubique sensible au rang: O

(mnrω−2

)I la constant du O () est identique et vaut 2/3 quand ω = 3.I ils sont en-place

Profil de rang

I CUP révèle le profil de rang en ligneI PLUQ révèle les profils de rang en ligne et colonne (ainsi

que ceux de toute sous-matrice dominante)

Page 52: Calcul de formes normales matricielles: de l'algorithmique

Applications

AL

U2/3

UL-1 L-1

U-1

1/31/3A

-1

2/3

LU decompA=LU

Echelon form decomp(TA=E)

Reduced Echelon form decompTA=R

LUDecomp TRTRI TRTRI TRTRM

Gauss1

GaussJordan

2

- Det- Rank- RankProfile- Solve

- Echelon- Nullspace basis

- Reduced Echelon form- Inverse

Page 53: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 54: Calcul de formes normales matricielles: de l'algorithmique

Calcul de la forme normale de HermiteÉquivalence dans un anneau: H = UA, où det(U) = ±1

Forme de Hermite: H =

p1 ∗ x1,2 ∗ ∗ x1,3 ∗

p2 ∗ ∗ x2,3 ∗p3 ∗

, avec 0 ≤ x∗,j < pj

Forme échelonnée réduite dans un anneau

Amélioration de l’algorithme de Micciancio-Warinshi

I O˜(n5 log ‖A‖

)(heuristiquement: O˜

(n3 log ‖A‖

))

I espace: O(n2 log ‖A‖

)⇒Bon comportement avec les matrices aléatoires (uniforme),

fréquentes en théorie des nombres

Implantation, réduction à des briques de base:I SysLin dans Z,I PLUQ et MatMul dans Zp

Page 55: Calcul de formes normales matricielles: de l'algorithmique

Calcul de la forme normale de HermiteÉquivalence dans un anneau: H = UA, où det(U) = ±1

Forme de Hermite: H =

p1 ∗ x1,2 ∗ ∗ x1,3 ∗

p2 ∗ ∗ x2,3 ∗p3 ∗

, avec 0 ≤ x∗,j < pj

Forme échelonnée réduite dans un anneau

Amélioration de l’algorithme de Micciancio-Warinshi

I O˜(n5 log ‖A‖

)(heuristiquement: O˜

(n3 log ‖A‖

))

I espace: O(n2 log ‖A‖

)⇒Bon comportement avec les matrices aléatoires (uniforme),

fréquentes en théorie des nombresImplantation, réduction à des briques de base:

I SysLin dans Z,I PLUQ et MatMul dans Zp

Page 56: Calcul de formes normales matricielles: de l'algorithmique

Algorithme naïf

1 begin2 foreach i do3 (g, ti, . . . , tn) = xgcd(Ai,i,Ai+1,i, . . . ,An,i);4 Li ←

∑nj=i+1 tjLj;

5 for j = i + 1 . . . n do6 Lj ← Lj − Aj,i

g Li ; /* élimine */

7 for j = 1 . . . i− 1 do8 Lj ← Lj − b Aj,i

g cLi ; /* réduit */

p1 ∗ x1,2 ∗ ∗ x1,3 ∗

p2 ∗ ∗ x2,3 ∗p3 ∗

Page 57: Calcul de formes normales matricielles: de l'algorithmique

Calcul modulo le déterminant [Domich & Al. 87]

Propriété

Pour A inversible: maxi∑

j Hij ≤ det H

Exemple

A =

−5 8 −3 −9 5 5−2 8 −2 −2 8 57 −5 −8 4 3 −41 −1 6 0 8 −3

,H =

1 0 3 237 −299 900 1 1 103 −130 400 0 4 352 −450 1350 0 0 486 −627 188

det A = 1944

De plus, tous les calculs peuvent être faits modulo d = det A:

U′[

AdIn In

]=

[H

In

]⇒O

(n3)×M(n(log n + log ‖A‖)) = O˜

(n4 log ‖A‖

)

Page 58: Calcul de formes normales matricielles: de l'algorithmique

Calcul modulo le déterminant [Domich & Al. 87]

Propriété

Pour A inversible: maxi∑

j Hij ≤ det H

Exemple

A =

−5 8 −3 −9 5 5−2 8 −2 −2 8 57 −5 −8 4 3 −41 −1 6 0 8 −3

,H =

1 0 3 237 −299 900 1 1 103 −130 400 0 4 352 −450 1350 0 0 486 −627 188

det A = 1944

De plus, tous les calculs peuvent être faits modulo d = det A:

U′[

AdIn In

]=

[H

In

]⇒O

(n3)×M(n(log n + log ‖A‖)) = O˜

(n4 log ‖A‖

)

Page 59: Calcul de formes normales matricielles: de l'algorithmique

Calcul modulo le déterminant

I Estimation pessimiste sur l’arithmétiqueI d grand mais la plupart des coefficients de H sont petitsI En moyenne : seules les dernières colonnes sont grandes

⇒Calculer H′ proche de H mais de petit déterminant

[Micciancio & Warinschi 01]

A =

B bcT an−1,n

dT an,n

d1 = det

([BcT

]), d2 = det

([BdT

])g = pgcd(d1, d2) = sd1 + td2 Alors

det([

BscT + tdT

])= g

Page 60: Calcul de formes normales matricielles: de l'algorithmique

Calcul modulo le déterminant

I Estimation pessimiste sur l’arithmétiqueI d grand mais la plupart des coefficients de H sont petitsI En moyenne : seules les dernières colonnes sont grandes

⇒Calculer H′ proche de H mais de petit déterminant[Micciancio & Warinschi 01]

A =

B bcT an−1,n

dT an,n

d1 = det

([BcT

]), d2 = det

([BdT

])g = pgcd(d1, d2) = sd1 + td2 Alors

det([

BscT + tdT

])= g

Page 61: Calcul de formes normales matricielles: de l'algorithmique

Algorithme de Micciancio & Warinschi

1 begin

2 Compute d1 = det([

BcT

]), d2 = det

([BdT

]); /* Double Det */

3 (g, s, t) = xgcd(d1, d2);

4 Compute H1 the HNF of[

BscT + tdT

]mod g ; /* Modular HNF */

5 Recover H2 the HNF of[

B bscT + tdT san−1,n + tan,n

]; /* AddCol */

6 Recover H3 the HNF of

B bcT an−1,n

dT an,n

; /* AddRow */

Page 62: Calcul de formes normales matricielles: de l'algorithmique

Algorithme de Micciancio & Warinschi

1 begin

2 Compute d1 = det([

BcT

]), d2 = det

([BdT

]); /* Double Det */

3 (g, s, t) = xgcd(d1, d2);

4 Compute H1 the HNF of[

BscT + tdT

]mod g ; /* Modular HNF */

5 Recover H2 the HNF of[

B bscT + tdT san−1,n + tan,n

]; /* AddCol */

6 Recover H3 the HNF of

B bcT an−1,n

dT an,n

; /* AddRow */

Page 63: Calcul de formes normales matricielles: de l'algorithmique

Double Déterminant

Première approche: LU mod p1, . . . , pk + TRCI Une seule élimination pour les n− 2 premières lignesI 2 mises à jour pour les dernières ligne (remontée triang.)I k grand tel que

∏ki=1 pi > nn log ‖A‖n/2

Deuxième approche: [Abbott Bronstein Mulders 99]I Résoudre Ax = b.I δ = ppcm(q1, . . . , qn) tq xi = pi/qi

Alors δ est un grand diviseur de D = det A.I Calculer D/δ par LU mod p1, . . . , pk + TRCI k petit , tel que

∏ki=1 pi > nn log ‖A‖n/2/δ

Page 64: Calcul de formes normales matricielles: de l'algorithmique

Double Déterminant

Première approche: LU mod p1, . . . , pk + TRCI Une seule élimination pour les n− 2 premières lignesI 2 mises à jour pour les dernières ligne (remontée triang.)I k grand tel que

∏ki=1 pi > nn log ‖A‖n/2

Deuxième approche: [Abbott Bronstein Mulders 99]I Résoudre Ax = b.I δ = ppcm(q1, . . . , qn) tq xi = pi/qi

Alors δ est un grand diviseur de D = det A.I Calculer D/δ par LU mod p1, . . . , pk + TRCI k petit , tel que

∏ki=1 pi > nn log ‖A‖n/2/δ

Page 65: Calcul de formes normales matricielles: de l'algorithmique

Double Déterminant : amélioré

Propriété

Soit x = [x1, . . . , xn] la solution de[

A c]

x = d. Alorsy = [− x1

xn, . . . ,− xn−1

xn, 1

xn] est la solution de

[A d

]x = c.

I 1 résolution de systèmeI 1 seule LU par pi

⇒Calcul de d1, d2 pour le coût de 1 déterminant

Page 66: Calcul de formes normales matricielles: de l'algorithmique

AddCol

ProblèmeTrouver un vecteur e tq

[H1 e

]= U

[B b

scT + tdT san−1,n + tan,n

]

e = U[

bsan−1,n + tan,n

]= H1

[B

scT + tdT

]−1 [ bsan−1,n + tan,n

]⇒Résoudre un système.I n− 1 premières lignes petitesI dernière ligne grande

Page 67: Calcul de formes normales matricielles: de l'algorithmique

AddCol

Idée:

Remplacer la dernière ligne par une ligne aléatoire petite wT .

[B

wT

]y =

[b

an−1,n−1

]Soit k une base du noyau de B.Alors

x = y + αk.

α =an−1,n−1 − (scT + tdT) · y

(scT + tdT) · k⇒limite l’arithmétique chère à des produits scalaires

Page 68: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 69: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 70: Calcul de formes normales matricielles: de l'algorithmique

Méthode de KrylovDefinition (degree d Krylov matrix of one vector v)

K =[v Av . . . Ad−1v

]Propriété

A× K = K ×

0 ∗1 ∗

. . . ∗1 ∗

⇒if d = n,K−1AK = CPA

car

⇒[Keller-Gehrig, alg. 2] computes K in O (nω log n)

Page 71: Calcul de formes normales matricielles: de l'algorithmique

Méthode de KrylovDefinition (degree d Krylov matrix of one vector v)

K =[v Av . . . Ad−1v

]Propriété

A× K = K ×

0 ∗1 ∗

. . . ∗1 ∗

⇒if d = n,

K−1AK = CPAcar

⇒[Keller-Gehrig, alg. 2] computes K in O (nω log n)

Page 72: Calcul de formes normales matricielles: de l'algorithmique

Méthode de KrylovDefinition (degree d Krylov matrix of one vector v)

K =[v Av . . . Ad−1v

]Propriété

A× K = K ×

0 ∗1 ∗

. . . ∗1 ∗

⇒if d = n,

K−1AK = CPAcar

⇒[Keller-Gehrig, alg. 2] computes K in O (nω log n)

Page 73: Calcul de formes normales matricielles: de l'algorithmique

Definition (degree k Krylov matrix of several vectors vi)

K =[

v1 . . . Ak−1v1 v2 . . . Ak−1v2 . . . vl . . . Ak−1vl]

Propriété

0

1

1

0

1

1

0

1

1

k ≤ k

A× K = K×

k

Page 74: Calcul de formes normales matricielles: de l'algorithmique

Hessenberg poly-cyclic form

FactIf (d1, . . . dl) is lexicographically maximal such that

K =[

v1 . . . Ad1−1v1 . . . vl . . . Adl−1vl]

is non-singular, then

0

1

1

0

1

1

1

0

1

A× K = K×

d2d1 dl

Page 75: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 76: Calcul de formes normales matricielles: de l'algorithmique

Principle

k-shifted form:

1

0

1

0

1

1

0

1

1

k k ≤ k

Page 77: Calcul de formes normales matricielles: de l'algorithmique

Principle

k + 1-shifted form:

1

0

1

1

1

0

1

1

0

k + 1 k + 1 dl

Page 78: Calcul de formes normales matricielles: de l'algorithmique

Principle

I Compute iteratively from 1-shifted form to d1-shifted form

I each diagonal block appears in the increasing degreeI until the shifted Hessenberg form is obtained:

0

1

1

0

1

1

1

0

1

d2d1 dl

How to transform from k to k + 1-shifted form ?

Page 79: Calcul de formes normales matricielles: de l'algorithmique

Principle

I Compute iteratively from 1-shifted form to d1-shifted formI each diagonal block appears in the increasing degree

I until the shifted Hessenberg form is obtained:

0

1

1

0

1

1

1

0

1

d2d1 dl

How to transform from k to k + 1-shifted form ?

Page 80: Calcul de formes normales matricielles: de l'algorithmique

Principle

I Compute iteratively from 1-shifted form to d1-shifted formI each diagonal block appears in the increasing degreeI until the shifted Hessenberg form is obtained:

0

1

1

0

1

1

1

0

1

d2d1 dl

How to transform from k to k + 1-shifted form ?

Page 81: Calcul de formes normales matricielles: de l'algorithmique

Principle

I Compute iteratively from 1-shifted form to d1-shifted formI each diagonal block appears in the increasing degreeI until the shifted Hessenberg form is obtained:

0

1

1

0

1

1

1

0

1

d2d1 dl

How to transform from k to k + 1-shifted form ?

Page 82: Calcul de formes normales matricielles: de l'algorithmique

Krylov normal extension

for any k-shifted form

1

1

0

0

1

1

1

0

1

k k ≤ k

Ak = c2 c3c1

compute the n× (n + k) matrix

1

1

1

1

1

1

k kk

K = c1 c2 c3

and form K by picking its first linearly independent columns.

Page 83: Calcul de formes normales matricielles: de l'algorithmique

Krylov normal extension

for any k-shifted form

1

1

0

0

1

1

1

0

1

k k ≤ k

Ak = c2 c3c1

compute the n× (n + k) matrix

1

1

1

1

1

1

k kk

K = c1 c2 c3

and form K by picking its first linearly independent columns.

Page 84: Calcul de formes normales matricielles: de l'algorithmique

Krylov normal extension

for any k-shifted form

1

1

0

0

1

1

1

0

1

k k ≤ k

Ak = c2 c3c1

compute the n× (n + k) matrix

1

1

1

1

1

1

k kk

K = c1 c2 c3

and form K by picking its first linearly independent columns.

Page 85: Calcul de formes normales matricielles: de l'algorithmique

The algorithm

I Form K: just copy the columns of Ak

I Compute K: rank profile of KI Apply the similarity transformation K−1AkK

Page 86: Calcul de formes normales matricielles: de l'algorithmique

The algorithm

I Form K: just copy the columns of Ak

I Compute K: rank profile of K

I Apply the similarity transformation K−1AkK

Page 87: Calcul de formes normales matricielles: de l'algorithmique

The algorithm

I Form K: just copy the columns of Ak

I Compute K: rank profile of KI Apply the similarity transformation K−1AkK

Page 88: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 89: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 90: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 91: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 92: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 93: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 94: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 95: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 96: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 97: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 98: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 99: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 100: Calcul de formes normales matricielles: de l'algorithmique

Example

Page 101: Calcul de formes normales matricielles: de l'algorithmique

LemmeIf #F > 2n2, the transformation will succeed with highprobability. Failure is detected.

How to use fast matrix arithmetic ?

Page 102: Calcul de formes normales matricielles: de l'algorithmique

LemmeIf #F > 2n2, the transformation will succeed with highprobability. Failure is detected.

How to use fast matrix arithmetic ?

Page 103: Calcul de formes normales matricielles: de l'algorithmique

Permutations: compressing the dense columns

0

1

1

0

1

1

1

0

1

0

1

1

×PAk = = Q×c2c3c3c1

c1 c2

1

1

1

1

1

1

1

1

0

×P′K = = Q′× c2c1c2c1

Page 104: Calcul de formes normales matricielles: de l'algorithmique

Permutations: compressing the dense columns

0

1

1

0

1

1

1

0

1

0

1

1

×PAk = = Q×c2c3c3c1

c1 c2

1

1

1

1

1

1

1

1

0

×P′K = = Q′× c2c1c2c1

Page 105: Calcul de formes normales matricielles: de l'algorithmique

Plan

Élimination de Gauss pour la forme échelonnée réduiteDécompositions à base d’éliminations de GaussAlgorithmes

Forme normale de Hermite

Forme normale de FrobeniusMéthode de KrylovAlgorithmeReduction au produit de matrices

Page 106: Calcul de formes normales matricielles: de l'algorithmique

Reduction to Matrix multiplication

Similarity transformation: parenthesing

K−1AK = Q′−1[

I ∗0 ∗

]P′−1Q

[I ∗0 ∗

]PQ′

[I ∗0 ∗

]P′

⇒O(k( n

k

)ω)Overall complexity: summing for each iteration:

n∑k=1

k(n

k

)ω= nω

n∑k=1

(1k

)ω−1

= ζ(ω − 1)nω = O (nω)

Page 107: Calcul de formes normales matricielles: de l'algorithmique

Reduction to Matrix multiplication

Similarity transformation: parenthesing

K−1AK = Q′−1([

I ∗0 ∗

](P′−1Q

([I ∗0 ∗

](PQ′

[I ∗0 ∗

]))))P′

⇒O(k( n

k

)ω)Overall complexity: summing for each iteration:

n∑k=1

k(n

k

)ω= nω

n∑k=1

(1k

)ω−1

= ζ(ω − 1)nω = O (nω)

Page 108: Calcul de formes normales matricielles: de l'algorithmique

Reduction to Matrix multiplication

Similarity transformation: parenthesing

K−1AK = Q′−1([

I ∗0 ∗

](P′−1Q

([I ∗0 ∗

](PQ′

[I ∗0 ∗

]))))P′

⇒O(k( n

k

)ω)

Overall complexity: summing for each iteration:

n∑k=1

k(n

k

)ω= nω

n∑k=1

(1k

)ω−1

= ζ(ω − 1)nω = O (nω)

Page 109: Calcul de formes normales matricielles: de l'algorithmique

Reduction to Matrix multiplication

Similarity transformation: parenthesing

K−1AK = Q′−1([

I ∗0 ∗

](P′−1Q

([I ∗0 ∗

](PQ′

[I ∗0 ∗

]))))P′

⇒O(k( n

k

)ω)Overall complexity: summing for each iteration:

n∑k=1

k(n

k

)ω= nω

n∑k=1

(1k

)ω−1

= ζ(ω − 1)nω = O (nω)

Page 110: Calcul de formes normales matricielles: de l'algorithmique

A new type of reduction

xIn − A

det(xIn − A)

dimension = 1degree = n

degree = 1dimension = n

Keller-Gehrig 2

1

1

0

1

1

0 dimension = n2i

degree = 2i

Progressionarithmétique

1

0

1

0

1

0

1

0

1

1

0

1

1

0

0

1

dimension = nk

degree = k

Page 111: Calcul de formes normales matricielles: de l'algorithmique

A new type of reduction

xIn − A

det(xIn − A)

dimension = 1degree = n

degree = 1dimension = n

Keller-Gehrig 2

1

1

0

1

1

0 dimension = n2i

degree = 2i

Progressionarithmétique

1

0

1

0

1

0

1

0

1

1

0

1

1

0

0

1

dimension = nk

degree = k

Page 112: Calcul de formes normales matricielles: de l'algorithmique

A new type of reduction

xIn − A

det(xIn − A)

dimension = 1degree = n

degree = 1dimension = n

Keller-Gehrig 2

1

1

0

1

1

0 dimension = n2i

degree = 2i

Progressionarithmétique

1

0

1

0

1

0

1

0

1

1

0

1

1

0

0

1

dimension = nk

degree = k

Page 113: Calcul de formes normales matricielles: de l'algorithmique

Conclusion

Réductions vers des briques de base

MatMul: récursif par bloc∑log n

i=1 n( n

2i

)ω−1= O (nω) (Gauss)

MatMul: Itératif∑n

k=1 n( n

k

)ω−1= O (nω) (Frobenius)

SysLin: over Z (forme de Hermite)

Compromis taille/dimension

I Forme de Hermite : perturbations de rang 1 pour réduire ledéterminant

I Forme de Frobenius : degré k, dimension n/k pourk = 1 . . . n