Skip to content. | Skip to navigation

Emergences

Lettre d'information n° 36

Image emergences pour impression
Personal tools
You are here: Home 2015 Lettre d'information n° 36 Garantir la fiabilité de calculs numériques
Document Actions

Garantir la fiabilité de calculs numériques

Développée par des chercheurs académiques, Ibex est une bibliothèque C++ basée sur la programmation par contracteurs, un formalisme qui facilite la résolution efficace et garantie de problèmes non-linéaires. Cette spécificité permet d'envisager des applications en automatique et en robotique, comme l'explique Gilles Chabert, coordinateur du projet et membre de Tasc, une équipe-projet Inria, École des Mines de Nantes et Université de Nantes, commune au Laboratoire d'Informatique de Nantes Atlantique (Lina).

Développée par des chercheurs académiques, Ibex est une bibliothèque C++ basée sur la programmation par contracteurs, un formalisme qui facilite la résolution efficace et garantie de problèmes non-linéaires. Cette spécificité permet d'envisager des applications en automatique et en robotique, comme l'explique Gilles Chabert, coordinateur du projet et membre de Tasc, une équipe-projet Inria, École des Mines de Nantes et Université de Nantes, commune au Laboratoire d'Informatique de Nantes Atlantique (Lina).

 

Tout d'abord, à qui s'adresse cette librairie ?

Gilles Chabert : À toute personne de formation scientifique ayant besoin de faire des calculs dits "ensemblistes". Mais elle n'est pas réservée au monde des chercheurs. Elle intéresse aussi le secteur industriel. Elle a d'ailleurs été ponctuellement intégrée dans des projets pour une filiale d'un constructeur aéronautique. Le but était alors de prouver la stabilité de robots ou l'absence de risque de collision.

Doit-on posséder une très forte compétence mathématique pour l'utiliser ?

Non. Une culture mathématique de 1er cycle universitaire est largement suffisante.

La librairie propose des outils de résolution de problèmes.

En effet, Ibex permet de résoudre des problèmes standards : trouver le minimum d'une fonction, résoudre un système d'équations... Mais, en tant que librairie, c'est aussi et surtout une boîte à outils qui permet de programmer une solution spécifique à un problème spécifique.

Ce problème, Ibex ne le résout pas mieux, mais différemment...

Oui. Sa particularité est de raisonner sur des ensembles. Cela entraîne deux conséquences concrètes. La première est d'apporter une garantie numérique, une sorte de "preuve". Si je reprends l'exemple de la fonction à minimiser, Ibex ne fournit pas seulement une valeur. Elle prouve que cette valeur est suffisamment proche du minimum théorique, selon une métrique définie par l'utilisateur. Si l'utilisateur fixe une précision de 1%, Ibex donne alors une valeur du minimum avec une erreur au plus de 1%. C'est ce qu'on entend par "garantie numérique".  Certains domaines en sont friands. C'est le cas de la conception et l'analyse de mécanisme.  Quant à la précision, évidemment, il y a toujours des limites. On ne peut pas descendre à 0%. Mais sur beaucoup d'exemples, nous sommes capables de descendre à des valeurs remarquablement petites.

Quel est le deuxième avantage résultant d'un raisonnement ensembliste ?

Le fait de pouvoir mélanger différents types de contraintes (algébriques, différentielles, combinatoires, liées au traitement de données, etc.). Chaque contrainte est vue comme un opérateur sur les ensembles (représentés par des boîtes), typiquement, un contracteur. Ils peuvent être facilement combinés via une structure commune. Cette hétérogénéité des contraintes joue un rôle-clef dans un domaine comme la robotique autonome et plus généralement l'intelligence artificielle (IA).

Vous venez d'évoquer le concept de programmation par contracteurs, dont Ibex est d'ailleurs à l'origine. Pourriez-vous en expliquer sa singularité ?

Nous en sommes à l'origine, certes, mais elle n'est pas restreinte au projet Ibex. Cette sorte de variante de la programmation par contraintes commence à se diffuser dans la communauté du calcul par intervalles.  Comme je le disais, dans Ibex, de nombreux algorithmes peuvent être vus comme des opérateurs réduisant une boîte à une boîte plus petite. Ils éliminent "ce qui ne nous intéresse pas". Autrement dit : ce qui n'est pas solution du problème. Ce sont ces algorithmes que l'on appelle des contracteurs. Le fait qu'ils possèdent tous la même interface permet de les combiner, de les composer. Ils deviennent ainsi la brique de base d'un langage de construction de stratégies de résolution.

L'arithmétique des intervalles est d'ailleurs un outil bien commode pour effectuer des calculs sur des ensembles. Quelle en est sa philosophie?

Les mathématiques appliquées traditionnelles travaillent avec des nombres. Ils constituent  leur ingrédient de base. Nous, notre ingrédient de base est un ensemble de nombres, représenté par un intervalle. La philosophie est donc, au cœur de chaque calcul, de ne pas manipuler des valeurs uniques supposées exactes mais une infinité de valeurs possibles. On peut voir aussi un intervalle comme une valeur incertaine, bornée par 2 extrémités. On peut donc ainsi propager au fil des calculs ces incertitudes. Au bout du compte, cela permet d'obtenir cette garantie numérique que j'évoquais à l'instant : aucun résultat possible n'a pu nous échapper.