• Aucun résultat trouvé

2.3 Conclusion sur les m´ ethodes de r´ eduction lin´ eaires

3.1.2 Acc´ el´ eration du calcul des termes non lin´ eaires

3.1.3.3 S´ election des composantes S-(D)EIM

Avec la S-(D)EIM [7], il s’agit de trouver Z qui minimise G(Z), l’erreur d’approximation entre G(U) et ˜G(U), somm´e sur l’ensemble des valeurs de U possibles

G(Z) = Z RN ˜ G(U) − G(U) 2 dU (3.70) = Z RN Π (Π|Z) −1 G|Z(U) − G(U) 2 dU. (3.71)

Le probl`eme pr´ec´edent est dans le cas g´en´eral insoluble, du fait de l’int´egrale sur RN du terme non lin´eaire. Une premi`ere approximation consiste `a remplacer l’int´egrale par une somme discr`ete sur quelques valeurs repr´esentatives de G(U). Or on dispose d´ej`a de ce type de quantit´es, `a savoir les s snapshots non lin´eaires concat´en´es dans T. On remplace donc G(Z) par son approximation ˜G(Z) d´efinie par ˜ G(Z) = Π (Π|Z) −1 T|Z−T 2 (3.72)

Cette erreur permet ainsi de mesure l’erreur entre les snapshots non lin´eaires T, et leur reconstruction (D)EIM Π (Π|Z)−1T|Z. Le jeu d’indice contenu dans Z est donc solution du probl`eme de minimisation suivant :

Trouver Z ∈ Rg×N tel que

Z = arg min ¯ Z Π ¯ZΠ −1 ¯ ZT − T 2 . (3.73)

Cette fois-ci la solution est calculable, mais reste cependant dure `a trouver. En effet, il s’agit de r´esoudre un probl`eme d’optimisation discret (car on recherche des indices parmi {1, . . . ,N }). Ainsi, les algorithmes classiques par gradients ne sont pas disponibles.

L’id´ee apport´ee par Barrault [6] et Chaturantabut [7] est donc de remplacer (3.73) par une suite de probl`emes (3.76) pour lesquels la solution est rapidement calculable. On parle alors de solution sous- optimale au probl`eme de d´epart (3.73), dans le sens o`u rien n’indique que celle-ci est la meilleure. Dans ce contexte, on suppose `a l’it´eration k ≤ g que l’on dispose d’une approximation (D)EIM tronqu´ee `

a l’ordre k ˜Gk(·). Celle-ci ne prend en compte que les k premiers vecteurs de base dans Π et les k premiers indices dans Z. Ainsi, l’approximation (D)EIM `a l’ordre k s’´ecrit

˜

Gk(·) = Π:k(Π:k|Z:k)−1G|Z:k(·), (3.74)

avec Z:k ∈ Rk×N la matrice de masque contenant les k premiers indices, et Π

:k ∈ RN ×k, les k ≤ g premiers vecteurs de la base non lin´eaire Ψ ∈ RN ×g. Il s’agit alors de regarder l’erreur d’approximation

R´eduction des probl`emes non lin´eaires 115

Ek

G ∈ RN de Πk+1 par la (D)EIM `a l’ordre k : EkG= Π:k(Π:k|Z:k) −1 Πk+1|Z:k−Πk+1 (3.75)

L’indice zk+1 suivant est alors la composante du vecteur de RN maximisant l’erreur EkG. Finalement, le probl`eme (3.76) permettant de trouver l’indice zk+1 est d´efini par :

Trouver zk+1 ∈ {1, . . . ,N } \ {z1, . . . ,zk} tel que

zk+1= arg min i=1,...,N  EkG  i (3.76)

En pratique, la r´esolution successive des g probl`emes (3.76) revient `a s´electionner les indices du pivot de Gauss de la matrice Π (ou ´elimination de Gauss Jordan). Une fa¸con efficace de les ob- tenir avec les biblioth`eques d’alg`ebre lin´eaire classiques type LAPACK [40] est alors d’appliquer une d´ecomposition LU sur la matrice rectangulaire Π. Les indices z1, . . . ,zg sont alors les g premiers indices du vecteur de permutation LU.

Remarque 3.9. On peut citer notamment la Best Point Interpolation Method (BPIM) [79] qui modifie l’algorithme de s´election des composantes Z. L’id´ee est d’utiliser un algorithme d’optimisation pour r´esoudre (3.73), au lieu de simplifier ce-dernier en (3.76). Cette optimisation peut n´eanmoins ˆetre compliqu´ee lorsque la BPIM est appliqu´ee pour interpoler un vecteur EF (comme dans notre cas). En effet, (3.73) est alors un probl`eme d’optimisation discr`ete (`a savoir trouver g composantes parmi {1, . . . ,N }), et les m´ethodes classiques par gradients ne sont pas disponibles. N´eanmoins, dans [80], nous avons utilis´e un algorithme g´en´etique et montr´e que la BPIM offrait des r´esultats plus pr´ecis que ceux de la S-(D)EIM. N´eanmoins, comme bon nombre de probl`emes d’optimisation, l’efficacit´e de l’algorithme a une forte d´ependance dans les param`etres utilisateurs, et une heuristique g´en´erale s’appliquant `a tous les probl`emes EF peut ˆetre dure `a d´eterminer. Ainsi, la BPIM permet de gagner en pr´ecision, mais complexifie l’application de la m´ethode.

3.1.3.3.A S´election des composantes QDEIM associ´e `a Maxvol

On a donc vu ci-dessus que les indices s´electionn´es par la S-(D)EIM correspondent aux indices pivots dans l’´elimination de Gauss Jordan.

En d´ecomposant l’algorithme du Pivot de Gauss, on r´ealise que celui-ci permet de rechercher de fa¸con gloutonne (c’est-`a-dire une colonne apr`es l’autre) la sous-matrice carr´ee de taille g incluse dans Π ∈ RN ×g ayant un volume maximal : Π|Z. En effet, l’algorithme S-(D)EIM va it´erativement construire une matrice triangulaire inf´erieure en venant chercher `a l’it´eration k, la composante zk maximisant la valeur absolue de la diagonale de Π|Z. Or le volume d’une matrice carr´ee est la va- leur absolue de son d´eterminant, et le d´eterminant d’une matrice triangulaire inf´erieure est ´egale au produit de ses termes diagonaux. Ainsi, la S-(D)EIM (ou le pivot de Gauss) permet de s´electionner it´erativement des indices qui maximisent de fa¸con gloutonne, les termes diagonaux de Π|Z, et donc son volume |det Π|Z|.

Ceci nous montre donc que la maximisation du volume de la sous-matrice apparaˆıt comme un bon crit`ere pour s´electionner les composantes du masque Z, puisque la S-(D)EIM revient `a maximiser de fa¸con gloutonne ce volume. Malheureusement, le probl`eme associ´e `a la s´election d’une sous-matrice carr´ee maximisant son volume est combinatoire et donc tr`es compliqu´e `a r´esoudre. Cependant, des heuristiques ont ´et´e d´evelopp´ees r´ecemment afin de pallier ce probl`eme.

Ainsi, la QDEIM [81] permet d’obtenir de fa¸con tr`es simple un jeu de composantes g´en´erant une sous-matrice de volume plus grand que celui issu de la S-(D)EIM. En effet, l’algorithme sous-jacent n’est plus glouton mais global, ce qui permet d’obtenir un meilleur r´esultat. Pour ce faire, il suffit d’extraire les g premiers indices de permutation associ´ee `a la factorisation QR (rank revealing) [82].

En pratique de nombreuses biblioth`eques permettent d’obtenir de fa¸con efficace ces indices, notamment LAPACK [40]. Dans Matlab, ceux-ci s’obtiennent en une seule commande [81].

De plus, l’algorithme it´eratif Maxvol propos´e dans [78] permet d’am´eliorer la s´election des compo- santes `a partir d’une solution initiale (typiquement, on prend celle de la S-(D)EIM ou de la QDEIM). Bien qu’it´eratif, l’algorithme n’est ici plus glouton car la maximisation du volume se fait de fa¸con globale et non une colonne apr`es l’autre comme pour la S-(D)EIM. De plus, son impl´ementation peut ˆ

etre grandement acc´el´er´ee grˆace `a quelques optimisations [78]. L’algorithme Maxvol est ainsi pr´esent´e dans l’annexe E, et est disponible librement dans la librairie TT-Toolbox [83] disponible pour Python et Matlab.