Précédent : Présentation
générale et objectifs Remonter : Projet
SAFIR, Systèmes Algébriques et Suivant : Grands domaines d'application
Mots-clés : algèbre linéaire, géométrie effective,
fiabilité, lien symbolique-numérique, matrice structurée,
résolution de systèmes polynomiaux, précision limitée, preuve de
programme
Résumé : La géométrie algébrique effective joue un rôle important dans un éventail très large d'applications, allant de la chimie à l'infographie en passant par la robotique et la vision. L'algèbre commutative, l'algorithmique des polynômes, la géométrie des monômes, l'analyse de complexité et de stabilité, les matrices structurées, les liens entre calcul symbolique et numérique sont des ingrédients importants de ce domaine.
Dans le projet SAFIR, depuis sa création en 1991, se sont
développées des compétences solides en algorithmique et en
programmation dans le domaine de la résolution algébrique de
problèmes géométriques. Ces compétences se sont traduites à la
fois par des résultats théoriques, des applications, et dans la
visibilité du projet dans la communauté scientifique
internationale.
Une des originalités de la communauté du calcul formel en France est de se focaliser sur l'algorithmique des mathématiques, par opposition au développement de logiciels. La tradition française en géométrie algébrique y est pour beaucoup. L'INRIA occupe néanmoins une place particulière dans ce contexte, et le projet SAFIR a eu parmi ses buts initiaux de développer des activités de recherche et de développement sur les logiciels de calcul formel.
Les choses ont pourtant évolué ces dernières années, et, par exemple à l'occasion de projets européens comme PoSSo, des logiciels spécialisés et efficaces ont été produits implémentant des résultats fondamentaux d'algorithmique. Des développements de bibliothèques d'algorithmes spécialisés dans les systèmes Maple, Reduce, ont aussi eu lieu. Le projet SAFIR a participé à son niveau à ce mouvement, avec les logiciels MixedVolume et Bastat, et actuellement avec la bibliothèque ALP.
Par l'évolution parallèle des machines et des algorithmes, des applications pratiques possibles du calcul formel ont trouvé ces dernières années un écho dans la communauté (par exemple, la robotique). Le projet européen FRISCO rassemble les efforts de plusieurs équipes dans cette direction. Dans ce mouvement, les logiciels tiennent un rôle central. En outre, la vulgarisation des outils de calcul formel, difficile dans le milieu industriel, a eu plus de succès dans l'enseignement (Maple intervient maintenant dans la formation des futurs ingénieurs). SAFIR a oeuvré dans ce sens, avec l'organisation d'écoles destinées aux ingénieurs et aux chercheurs.
Dans beaucoup de domaines appliqués, le traitement d'un problème passe souvent par des étapes de modélisation, d'analyse du modèle, et de résolution. Ainsi la mise en équation produit un problème mathématique, dont la résolution amène à concevoir à la fois un algorithme, puis son implémentation et son application.
Notre démarche s'attache donc à dégager, dans des domaines où la géométrie, l'algèbre et l'algorithmique jouent un rôle important, des méthodes basées sur le calcul formel pour le traitement de ces différentes étapes. Notre démarche est ainsi motivée à la fois par des considérations théoriques en géométrie algébrique effective, mais aussi par leurs applications en robotique, en vision artificielle, en géométrie algorithmique et leurs réalisations pratiques.
Analyser les propriétés des objets mathématiques qui apparaissent dans ces problèmes à partir d'exemples suffisamment génériques (par leurs occurrences pratiques et les problèmes qu'ils illustrent), rechercher des méthodes puissantes pour les exploiter, développer à la fois les méthodes effectives en mathématiques et les logiciels qui les rendent utilisables sont donc des points sur lesquels nous nous penchons.
Dans l'étape de modélisation, notre approche s'appuie sur la théorie des invariants et le calcul formel en géométrie. Ainsi le formalisme de Grassmann-Cayley fournit des outils pour analyser les correspondances dans les images, l'étude des lieux critiques des mécanismes à plusieurs corps fait intervenir des calculs dans la Grassmannienne des droites.
Dans la phase d'analyse, la géométrie algébrique effective
fournit des méthodes et outils, permettant de mieux comprendre la
géométrie des solutions, leur dimension, leur degré, ... La
structure des équations et plus particulièrement des monômes dans
ces équations soulèvent des problèmes liés à la géométrie des
polytopes convexes (une autre manière de voir la programmation
linéaire, entière ou non), et conduit à des calculs sur les cônes
et sous-réseaux de .
La résolution explicite des problèmes quant à elle, fait appel à une analyse des structures des objets manipulés (matrice de Toeplitz, Hankel, ...) et soulève des questions de complexité théorique, mais aussi de stabilité numérique, devant prendre en compte l'incertitude sur les données. Dans ces problèmes à la frontière entre le calcul numérique et symbolique, les polynômes et les matrices jouent un rôle central.
Les problèmes étudiés en algèbre linéaire ne se limitent pas à ceux qui proviennent de l'étude de systèmes polynomiaux. Les algorithmes de calcul des réductions de Hermite et de Smith sont étudiés avec un souci de contrôle de complexité incluant la taille des objets élémentaires manipulés [LLM96].
Mots-clés : interface homme-machine, éditeur de
formules, reconnaissance de formules, base de formules, base de
données déductives, communication, protocole
L'objectif général de ce thème est l'amélioration des systèmes de calcul formel. Trois directions ont été choisies : les interfaces homme-machine, la conception de bases de données de formules mathématiques et la coopération entre systèmes (échange d'objets mathématiques).
Dans le domaine des interfaces, un objectif serait de réaliser une interface qui puisse faire abandonner l'interface « papier-crayon » au mathématicien ou à l'ingénieur. Nous sommes encore bien éloigné de ce résultat. Plusieurs problèmes difficiles se posent : les systèmes de calcul formel insistent pour imposer une forme particulière aux résultats et même aux expressions rentrées par l'utilisateur alors que la compréhension d'une formule passe souvent par lui donner une forme particulière, leur interface se fait à travers un langage de commande qui est aussi un langage de programmation, pas vraiment adapté à une interaction « graphique », et pour finir, peu d'idées ont pu être réellement expérimentées dans ce domaine. L'expérience de l'utilisation des systèmes de calcul formel que nous avons acquise dans différents contextes (de l'enseignement en premier et second cycles universitaires à la résolution de problèmes industriels) nous amène naturellement à proposer quelques solutions intéressantes dans le domaine des interfaces. Nous nous sommes donc engagés dans le projet de conception d'une interface de qualité, tant au niveau de l'ergonomie que de l'affichage des formules, qui soit conçue comme une plate-forme d'expérimentation pour pouvoir aisément tester nos idées. En complément du mode de saisie traditionnel dans ce type d'interface (au clavier), nous étudions également le problème de la reconnaissance de formules mathématiques imprimées ou saisies directement par l'utilisateur au moyen d'une tablette graphique (par des techniques de grammaires de graphes avec résolution des ambiguïtés).
La plupart des systèmes de calcul formel intègrent tout un ensemble de connaissances non algorithmiques, que l'on peut aussi qualifier de déclaratives, directement dans leur code comme des intégrales ou des sommes particulières. Une idée naturelle est de regrouper ces connaissances dans une base de données pour pouvoir en rajouter facilement et les partager entre plusieurs systèmes. Les bases de données classiques ne conviennent évidemment pas, car elles n'ont pas la connaissance mathématique indispensable : prise en compte de la commutativité, des éléments neutres, déterminations d'instances de formules, etc. La réalisation d'une telle base qui soit à la fois suffisamment efficace pour être utilisable en pratique et suffisamment puissante dans son mécanisme de recherche et de reconnaissance, pose divers problèmes qui se situent au carrefour entre les techniques et outils du calcul formel et ceux de la déduction automatique.
La communauté de calcul formel a reconnu depuis quelques années l'importance de définir un standard pour la communication d'objets mathématiques (communication inter-processus, par courrier électronique, par archivage dans des bases de données etc). Un effort international, OpenMath, a été initié dans ce sens et nous y participons très activement. Les problèmes sont multiples : trouver le bon niveau de définition des objets, prendre en compte la variété des applications qui peuvent utiliser un tel standard ou encore intégrer OpenMath avec les standards actuels ou à venir pour les documents électroniques ou la communication entre applications (SGML, XML, CORBA, OLE ..., cf. aussi notre travail dans le groupe de travail HTML-Math du Consortium Web). Un standard dans ce domaine est aussi un premier pas vers la mise au point d'une nouvelle architecture pour les systèmes de calcul formel (et plus généralement pour les systèmes de calcul scientifique au sens le plus large) à base de composants OpenMath qui pourrait permettre de résoudre les difficiles problèmes rencontrés aujourd'hui pour réaliser et maintenir un système de calcul formel.
Mots-clés : différentiation automatique, transformation
de code, code adjoint, dérivée
La Différentiation Automatique est une technique qui permet
d'ajouter aux calculs effectués par un code des calculs de
dérivées. Cette technique est basée sur la modélisation d'un code
par une composition de fonctions élémentaires. La différentiation
du code revient alors à l'application de la règle de dérivation
des fonctions composées.
La méthode dite de l'adjoint consiste à discrétiser un nouveau problème dont les inconnues sont les dérivées cherchées, elle donne de bons résultats mais n'est applicable que dans les cas où le modèle est mathématiquement adéquat, elle ne permet donc pas de traiter de nombreux problèmes industriels plus complexes. De plus, les variables supplémentaires qui apparaissent ne sont pas des dérivées, mais des variables duales et n'ont donc aucune signification physique. Un code adjoint est donc très difficile et très long à mettre au point (plusieurs années). Le mode inverse de Différentiation Automatique correspond à l'écriture automatique de code adjoints.
La Différentiation Automatique est une technique très puissante, car elle permet d'obtenir des dérivées exactes (aux erreurs machine près) même si le problème n'est pas décrit par des équations. De plus, les codes scientifiques sont en perpétuelle évolution pour raffiner les modèles, la Différentiation Automatique permet alors de ne maintenir qu'un code (celui du modèle) au lieu de deux (celui du modèle et de sa dérivée).
Deux modes de Différentiation Automatique ont été définis suivant la façon dont la dérivation est effectuée : le mode inverse (dérivées calculées dans le sens inverse du code initial) et le mode direct (dérivées calculées dans le sens du code initial).
Le lien entre un programme numérique et une composition de
fonctions peut être vu de la façon suivante. Dans le programme
numérique, il y a variables d'entrée,
variables de
sortie et
variables auxiliaires. Chaque instruction
correspond à une fonction
Chaque fonction modifie peu de variables, sa matrice
jacobienne
(formée par les dérivées partielles)
se calcule facilement en utilisant les règles élémentaires de
dérivations d'expression, telles que << la dérivée d'une
somme est la somme des dérivées >>.
Pour donné, on pose
D'après la règle de dérivation des fonctions composées, on a
et en transposant toutes ces matrices
La formule () permet d'obtenir le mode direct
de calcul de la matrice jacobienne (du gradient si
).
La difficulté essentielle consiste à bien optimiser le programme
ainsi obtenu pour éviter tous les calculs inutiles, notamment
ceux qui aboutissent à des contributions nulles.
Le mode inverse ou adjoint correspond à l'application de
l'identité () ; il peut être beaucoup plus
performant pour certains calculs de gradients, mais nécessite en
général de grandes capacités de stockage en mémoire afin de
conserver les valeurs des
qui sont utilisés dans
l'ordre inverse, de
à
. Sa mise en
oeuvre optimisée est délicate et nécessite des stratégies
combinant stockage et recalcul.
Il existe deux classes de systèmes de Différentiation
Automatique : ceux qui fonctionnent par transformation de
programme, et ceux qui fonctionnent par surcharge d'opérateurs.
Les premiers, en générant un nouveau code, permettent une très
grande flexibilité ; les seconds sont plus rapides à développer
et à diffuser car ils sont constitués d'une simple bibliothèque.
Une liste de tous les systèmes actuels est visible à l'adresse
:
http://www.mcs.anl.gov/Projects/autodiff/AD_Tools/
Mots-clés : base de formules, génération de code,
modélisation, simulation
Résumé : Une des préoccupations quotidiennes du monde industriel, la modélisation et la simulation de systèmes physiques est un domaine d'application naturel du calcul formel. Notre activité consiste à concevoir et à implémenter un environnement pour la modélisation et la simulation basé sur les techniques de calcul formel.
Un problème de modélisation-simulation comporte plusieurs étapes,
il s'agit de :
Les techniques de calcul formel sont naturellement très adaptées pour résoudre ce genre de problème puisque :
Néanmoins, la résolution de tels problèmes n'est pas réalisable directement avec les logiciels de calcul formel existants, trop généraux et qui ne possèdent ni toutes les fonctionnalités nécessaires, ni la capacité de traiter les problèmes de grande taille issus du monde industriel. La volonté d'améliorer les possibilités d'utilisation du calcul formel pour la modélisation et la simulation industrielle nous amène à travailler à la conception et à la réalisation d'un ensemble de composants spécifiques, communiquant entre eux pour composer un environnement dédié.
Plus spécifiquement, les axes de développement que nous poursuivons sont :
En liaison avec les travaux du projet sur la communication d'objets mathématiques, une préoccupation importante est la communication entre ces applications et leur interface avec des logiciels déjà existants afin de produire des outils réellement utilisables et utilisés.