Projet Eureca

previous up next contents
Précédent : Grands domaines d'application Remonter : Projet EURÉCA, Preuve, calcul symbolique Suivant : Résultats nouveaux



Logiciels

Développement du système MUPAD



Participants : Vladimir Grébinski , Fabrice Rouillier , Paul Zimmermann


En $1997$ a débuté une action intégrée Procope entre l'Inria Lorraine et l'Université de Paderborn sur le développement et l'implantation d'algorithmes efficaces en calcul symbolique et plus particulièrement en MUPAD. Les principales actions entreprises dans le cadre de cette action ont été l'organisation d'un workshop en janvier à Oberwolfach (Allemagne), du MuPAD User Workshop'97 en septembre à Paderborn, et plusieurs échanges bilatéraux de chercheurs.

Sur un plan scientifique, le nouvel algorithme dû à Barkatou [Bar97] pour trouver les solutions rationnelles d'équations différentielles linéaires à coefficients polynomiaux a été implanté en MUPAD, ainsi que la méthode de d'Alembert pour la réduction de telles équations :

>> Ln:=n*x*diff(y(x),x,x)-x*diff(y(x),x)+n^2*y(x):
>> time(ode::polynomialSolutions(subs(Ln,n=20),y(x)));

                                   3550

(MAPLE effectue le même calcul en 18 secondes , contre 3.6 secondes ici en MUPAD). Un algorithme de recherche des solutions polynomiales de récurrences linéaires a également été implanté :

>> solve(rec(n*u(n+2)-5*u(n+1)-(n+1)*u(n)=0, u(n)));

                         {    /        2      \ }
                         {    | n   3 n     3 | }
                         { a3 | - - ---- + n  | }
                         {    \ 2    2        / }

(MAPLE ne sait pas résoudre cette récurrence). P. Zimmermann a aussi encadré le travail d'un étudiant de Paderborn, Manfred Radimersky, qui a étendu le logiciel PARI (H. Cohen, Bordeaux) par des arrondis dirigés selon la norme IEEE 754, ce qui fournit une arithmétique d'intervalles fiable. Pendant sa visite à Nancy, A. Sorgatz a développé avec F. Rouillier une interface entre MUPAD et les systèmes GB et REALSOLVING de résolution de systèmes polynomiaux. Cette interface a été présentée au workshop Frisco en mars à Nice, et a déjà permis de résoudre plusieurs problèmes non triviaux, par exemple le calcul du polynôme minimal de la constante de Neville:

\begin{displaymath}1296\,{x}^{8}+2112\,{x}^{7}-3480\,{x}^{6}+1360\,{x}^{5}+1665\,{x}^{4}-1776\,{x}^{3}+22\,{x}^{2}-800\,x+625=0.\end{displaymath}

Avec l'aide de Pierre-Etienne Moreau (projet Prothéo), O. Kluge, pendant sa visite à Nancy, a interfacé avec MUPAD le programme de filtrage associatif-commutatif développé par Steven Eker :

>> ac_match(a+b, c+2+x, {}, {hold(_plus)}, {});

                            {b = 2, a = x + c}

Tracé de graphes.

 

Participants : François Bertault , Paul Zimmermann


Deux logiciels dédiés à la représentation automatique de structures combinatoires par des graphes ont été développés au cours de ces trois dernières années au sein de l'équipe Euréca. Le logiciel CGRAPH permet de saisir de façon interactive des graphes composés et de les dessiner de manière automatique. Ces graphes ont la particularité de posséder à la fois des liens d'adjacence et d'inclusion entre les noeuds. L'originalité principale de ce programme est de permettre l'emploi simultané sur un même graphe de plusieurs algorithmes classiques de tracé de graphes simples. L'ajout de la possibilité de représenter les liens d'inclusion ne se fait ainsi pas au détriment de la qualité de la représentation de graphes classiques. Le logiciel PADNON est lui dédié au tracé automatique de graphes simples, orientés ou non, en trois dimensions. Il permet de dessiner des graphes modifiés dynamiquement, sous forme d'animation. PADNON a été utilisé pour visualiser dynamiquement la structure de données sous-jacente au programme GRAPPE de recherche de motifs décrit dans la section [*].

Les deux logiciels CGRAPH et PADNON sont conçus avec le souci constant de permettre leur utilisation conjointement avec d'autres programmes, ce qui ouvre un large champ d'applications. Ils sont diffusés par ftp anonyme et une description de leurs caractéristiques est disponible sur le web.

REALSOLVING



Participant : Fabrice Rouillier


La boîte à outils REALSOLVING est un logiciel dédié à l'étude des racines réelles des systèmes polynomiaux. La première version date de 1993, elle contenait un unique algorithme pour le comptage des racines réelles des systèmes polynomiaux admettant un nombre fini de solutions complexes.

Cette boîte à outils comporte maintenant une panoplie importante d'outils variés de calculs exacts destinés à la simplification des systèmes et au codage ou à l'encadrement des racines réelles.

Une enquête auprès des utilisateurs de REALSOLVING a été financée par le projet Européen FRISCO. Les conclusions sont très encourageantes puisqu'il est mentionné dans les points positifs la rapidité, la solidité et la facilité d'utilisation du logiciel. D'autre part, le groupe MUPAD propose de joindre ce logiciel à sa distribution Linux.

Le logiciel REALSOLVING a subi de profondes modifications pendant l'année 1997 (le noyau a été complètement réécrit). En particulier, un ramasse-miettes spécifique et des implantations de très bas niveau (arithmétique modulaire 32 bits) ont permis un gain en temps de calculs d'environ 60% en moyenne.

Il a de plus été porté sur les machines du centre Charles Hermite et des versions distribuées de certains algorithmes ont été développées (algorithme de traitement d'inégalités simultanées pour l'étude des zéros réels de systèmes polynomiaux ou de polynômes en une variable, permettant de dénombrer les racines vérifiant un nombre arbitraire d'égalités et d'inégalités). Un travail est actuellement en cours pour la parallélisation des algorithmes multi-modulaires.

Le protocole de communication de REALSOLVING, commun avec GB (logiciel de Jean-Charles Faugère (CNRS - LIP6) dédié au calcul de bases de Groebner), a été réactualisé afin de devenir accessible depuis quelques logiciels généraux de calcul formel : MUPAD, AXIOM, ALDOR. La réactualisation de ce protocole a permis en particulier d'établir des liens sérieux avec divers groupes actifs de développement logiciel (NAG, MuPAD).

Logiciel DESIGNER de construction de recouvrements

 

Participants : Vladimir Grébinski , Grégory Kucherov


Dans le cadre de notre travail sur la recherche combinatoire (cf section [*]) nous avons créé un logiciel, dénommé DESIGNER, qui résout le problème combinatoire suivant. Étant donné un ensemble $S$ de $n$ objets et un nombre $k<n$, construire un nombre minimal de parties de $S$ de cardinalité $l\leq k$ (qui forment ce que l'on appelle un recouvrement) telles que chaque couple $x,y\in S$ se trouve dans une et une seule de ces parties. DESIGNER est un programme qui accepte deux nombres, $n$ et $k$, et calcule un ensemble de parties de $\{1,\ldots,n\}$ chacune de cardinalité inférieure ou égale à $k$.

Ce problème relève de la branche classique de la combinatoire appelée en anglais Block Design Theory. Malgré la multitude de résultats mathématiques, on connaît peu de choses sur les algorithmes efficaces de construction de recouvrements, et encore moins sur les limites dans lesquelles les recouvrements proches de l'optimum sont réalisables. De plus, l'approche classique (voir par exemple La Jolla Covering Repository) porte sur les recouvrements exacts, quand la cardinalité de chaque partie est fixée à $k$ (ou à quelqu'autre valeur spécifiée) et en revanche, chaque couple peut être recouvert par plusieurs parties.

Deux implantations de DESIGNER ont été faites : une implantation prototype en MAPLE et une implantation optimisée en C++. La version MAPLE est disponible sur http://www.loria.fr/~kucherov/SOFTWARE/Designer/Designer et la version C++ sur http://www.loria.fr/~kucherov/SOFTWARE/Designer/cover.tar.gz.
Voici quelques résultats de calcul de la version C++ sur un Sparc-10.


\begin{tabular}{\vert\vert r\vert r\vert r\vert r\vert c\vert\vert}\hline$n$\... ...& 1.029 & 296.5 \\ 10000 & 16 & 435441 & 1.045 & 134.34 \\ \hline\end{tabular}

$\frac{n(n-1)}{k(k-1)}$ est le nombre minimal de parties que l'on puisse espérer et par conséquent la 4ème colonne contient un indice de la << qualité >> du recouvrement construit (lorsque cet indice est proche de 1, le recouvrement est proche de l'optimal). Notons cependant que cet indice est relatif, car le nombre $\frac{n(n-1)}{k(k-1)}$ est le mimimum absolu qu'il n'est pas toujours possible d'atteindre.




previous up next contents Précédent : Grands domaines d'application Remonter : Projet EURÉCA, Preuve, calcul symbolique Suivant : Résultats nouveaux