• Aucun résultat trouvé

Le cas des variétés définies par un système d’équations

3.7 Résolution certifiée de systèmes zéro-dimensionnels

4.1.2 Le cas des variétés définies par un système d’équations

Si l’on revient sur le problème de la section précédente, le constat est que la situation est bloquée, d’un point de vue calcul, dès lors que V (P ) admet une infinité de points singuliers.

L’idée, développée et généralisée dans cette section, est d’utiliser le fait que V (J ) = V (hP , ∂P

∂X1,, ∂X∂P

ni) est une variété algébrique de dimension strictement inférieure à celle de V (P ) (si P est irréductible) et que V (C(A)) = {M ∈ Cn, P(M ) = 0 ∧ gradM(P )//AM} est l’union de V(hP ,∂X∂P1,,∂X∂P

ni) et d’un nombre fini de points. Le principe de base consiste alors à calculer V(C(A)) \ V (J ) (en résolvant un système zéro-dimensionnel) puis à calculer un point par com-posante semi algébriquement connexe de la variété définie par les zéros de J , qui est de dimen-sion plus petite.

Une première remarque est que, même si l’entrée est une variété définie par un unique poly-nôme, on se retrouve dans le cas général dès lors que l’on doit étudier V (J ). Dans [7], le pre-mier travail a donc été de modéliser les points critiques de la fonction distance à un point dans de cas d’une variété définie par un nombre arbitraire d’équations.

Notation 4.9. Soit S = {p1,, pr} ⊂ Q[X1,, Xn] tel que dim(V (hS i)) = d et A ∈ Qn. On note :

• V = V (hS i) ⊂ Cn

• V(C(A)) = {M ∈ V (hS i), rank(gradM(p1),gradM(pr), AM)} ≤ n − d; • V(J ) = {M ∈ V (hS i), rank(gradM(p1),gradM(pr))} < n − d.

Les ensembles V (C(A)) et V (J ) se construisent simplement à partir de mineurs de la matrice jacobienne du système, éventuellement augmentée d’une colonne contenant les coordonnées de AM :

Notation 4.10. Pour B ∈ Cn et {Q1, , Qs} ⊂ C[X1, , Xn], on note MB(Q) =  ∂Qj ∂Xi  i=1s j=1n | BM 

et on définit, pour tout entier k :

• ∆B ,k(Q), l’ensemble des mineurs d’ordre n− k + 1 de MB(Q) contenant des coordonnées

de BM;

• ΓB ,k(Q), l’ensemble des mineurs d’ordre n− k de MB(Q) ne contenant pas de

coordon-nées de BM.

Avec ces notations, on peut par exemple définir C(A) = S ∪ ∆B ,det J = S ∪ ΓB ,d.

L’ensemble V (C(A)) contient clairement les points critiques de la fonction « distance au point A ». En plus du problème de généricité de A, qui ne doit être ni sur la variété, ni équi-dis-tant d’une infinité de points de V , un écueil supplémentaire est que V (J ) peut ne pas contenir tous les points singuliers de V (par exemple ceux contenues dans des composantes irréductibles de petite dimension). Même en supposant V équi-dimensionnelle, V (J ) peut contenir beaucoup d’autres points comme par exemple certains points de certaines composantes immergées (ça n’est pas parce que V est une variété équi-dimensionnelle que hp1, , psi est un idéal équi-dimensionnel) au point de pouvoir être de la même dimension que V (par exemple si tous les pi sont des carrés). Modulo quelques conditions supplémentaires, les résultats obtenus dans le cas d’une hyper-surface se généralisent bien :

Théorème 4.11. [ 7] Si on suppose que hp1,, pri est équi-dimensionnel et radical, alors, il

existe un entier D et un point A ∈ {1,, D}ntels que :

• V(C(A)) intersecte chaque composante semi-algébriquement connexe de V ∩ Rn;

• V(C(A)) = V (J ) ∪ V0,A avec #V0,A<∞;dim(V (J )) < dim(V );

La condition de généricité pour le point A sous-entendue par ce théorème est similaire à celle de la section précédente : il suffit de s’assurer que dim(V (C(A)) < dim(V ).

Si on suppose que l’on dispose d’un algorithme permettant de décomposer n’importe quel idéal S de telle sorte que V (hSi) = ∪i=1k V(hSii), les Si étant des systèmes tels que hSii soient équi-dimensionnels et radicaux (en utilisant par exemple les algorithmes de décomposition pro-posés dans [16]), on a alors, en principe, un algorithme simple pour le calcul d’un point par com-posante semi-algébriquement connexe de V ∩ Rn :

Algorithm Critical

Input : I⊂ Q[X1,, Xn]

Output : a set of zero-dimensional systems Ii such that ∪i=1k V(Ii)∩ Rn meets each semi-algebraically connected component of V (I)

• Result4∅;

• Todo = Decompose(I); • while(Todo∅)

◦ I= First(Todo); Todo4Todo \ I; ◦ d= dim(I);

◦ if dim(I) = 0 Result4Result ∪ {I } ◦ else

− (*) Choose A ∈ {1,, D}n (start with D = 1 and increase D when all the choices failed)

− I=h∆A,di + I; − if dim(I) = d goto (*)

− else Result4Result ∪ Critical(I) • Return(Result);

Bien que cela n’apparaisse pas directement dans la description de l’algorithme, deux calculs peuvent être, en pratique, extrêmement coûteux :

• la décomposition de I; • le calcul de ∆A,d

La décomposition de I est de toute évidence une étape critique de l’algorithme de part son coût mais également parce qu’elle conditionne le calcul de ∆A,d. Si on utilise par exemple les algo-rithmes proposés dans [16], les composantes Ii, i= 1k seront données sous la forme de bases de Gröbner : le nombre de générateurs de chaque Ii n’a donc aucune raison d’être de de l’ordre de n− dim(Ii), entraînant un facteur combinatoire éventuellement important dans le nombre d’élé-ments de ∆A,d, puisque, si s est le nombre de générateurs de Ii, il faudra calculer  s n− d  n n− d + 1  mineurs.

Dans [7], les Ii, i= 1k sont calculés par une décomposition en ensembles triangulaires régu-liers et séparables [6].

Un ensemble triangulaire de Q[X1,, Xn] de dimension d est un ensemble de polynômes de la forme T = {fd+1(X1,, Xd+1),, fn(X1,, Xn)}. Il est dit régulier si le coefficient de tête de chaque fi en la variable Xi ne s’annule pas sur l’une des composantes irréductibles de V (f1,, fi−1). Il est dit séparable lorsque chaque ∂fi

∂Xi ne s’annule pas sur l’une des composantes irréduc-tibles de V (f1,, fi−1).

Sans rentrer dans les détails, toute variété V (I) de dimension d peut être vue comme une union ∪i=1k V(sat(Ti)), lesTi étant des ensembles triangulaires et sat(Ti) =hTi: hi, h étant le produit des coefficients de tête des fi en Xi. Lorsque les Ti sont réguliers et séparables, alors les idéaux sat(Ti) sont équi-dimensionnels et radicaux [6]. Une telle décomposition peut se calculer directement ou en utilisant des bases de Gröbner de manière efficace (en tout cas comparative-ment aux autres décompositions plus fines).

Théoriquement , la fonction Decompose doit calculer les idéaux sat(Ti), mais l’optimisation proposée dans [7] utilise plutôt directement les Tipour le calcul de C(A) :

Notation 4.12. Pour A = (a1,, an)∈ Cn, Q ⊂ Q[X1,, Xn] et T = {td+1,, tn} ⊂ C[X1,, Xn], un ensemble triangulaire tel que hQi = sat(T ), on note

MB (k) (Q) =  ∂tj ∂Xk  j=d+1n | Xk− ak  | −  ∂tj ∂Xk  j=d+1n i=d+1n | Xd+1− ad+1 Xn− an

et on définit, pour tout entier k, ∆A,d′ ={det(MB (k)

(Q), k = 1d}

L’idée utilisée dans [7] est de remplacer ∆A,d par ∆A,d dans l’algorithme Critical de sorte à accélérer les calculs : il n’y a que d mineurs à considérer et leur calcul est grandement simplifié par la structure triangulaire des systèmes utilisés. Le résultat qui suit montre que l’opération est possible, même si cette modification entraîne le calcul d’un peu plus de points :

Proposition 4.13. [ 7] Soient A = (a1,, an)∈ Cn, Q ⊂ Q[X1,, Xn] et T = {td+1,, tn} ⊂ C[X1, , Xn], un ensemble triangulaire tel que hQi = sat(T ). Si on note D(A) l’idéal hQi +A,d , et Sep(T ) = {∂ti

∂Xi, i= d + 1n}, alors : • V(C(A)) ⊂ V (D(A));

• V(D(A)) = V0,A′ ∪ V (hSep(T )i) avec #V0,A′ <∞ si A n’est pas équidistant d’une infinité

de points de V (hQi);

dim(hQi + hSep(T )i) < dim(Q);

En particulier, V (D(A)) ∩ Rn intersecte chaque composante semi-algébriquement connexe de

V(hQi).

Dans [7], diverses optimisations sont proposées dans le cas d’utilisation d’ensembles triangu-laires. Par exemple, il est courant dans les calculs d’avoir à faire à des ensembles du type T = {td+1,, tn} ou les ti, i= d + 2nsont linéaires en les Xi: l’astuce consiste on alors à « oublier » ces polynômes partout ou ils ne sont pas identiquement nuls.

Dans ce qui suit, on évalue sur quelques exemples les performances de deux variantes de l’algorithme Critical :

• Critical : une implantation de l’algorithme présenté dans cette section utilisant les ensembles triangulaires pour la fonction Decompose et basée sur la proposition 4.13. • IsEmpty : une variante de l’algorithme Critical se contentant de décider si une variété

algébrique admet des points réels ou non. Par exemple, le calcul s’arrête dès qu’un point réel est trouvé.

Ces variantes utilisent une implantation de la décomposition en ensembles triangulaires réguliers et séparables basée sur des calculs de bases de Gröbner ainsi qu’une implantation de l’algo-rithme ZeroDimSolve du chapitre 3 pour la résolution des systèmes zéro-dimensionnels générés.