Projet Prisme

previous up next contents
Précédent : Présentation générale et objectifs Remonter : Projet PRISME, Géométrie, Algorithmes et Suivant : Grands domaines d'application



Fondements scientifiques

Géométrie Algorithmique

 Mots-clés : algorithme randomisé, algorithme adaptatif, triangulation, diagramme de Voronoï, triangulation de Delaunay, planification de trajectoires


Résumé : La géométrie algorithmique [11] a pour objet l'étude systématique des algorithmes géométriques, de leur conception et de leur analyse. C'est un domaine relativement récent né autour des années 1975. Le projet Prisme s'intéresse aux principales structures géométriques : triangulations, arrangements et diagrammes de Voronoï, étudie des techniques algorithmiques générales et efficaces, et cherche à résoudre quelques problèmes clés comme la planification de trajectoires de robots.

Géométrie combinatoire

  Élucider la combinatoire des objets géométriques est l'un des prérequis indispensables à la conception d'algorithmes efficaces pour résoudre les problèmes de nature géométrique. L'un des apports majeurs de la géométrie algorithmique est d'avoir mis en évidence le rôle central joué par un petit nombre de structures fondamentales : polytopes, triangulations, arrangements et diagrammes de Voronoï. Dans ce domaine les membres du projet Prisme ont par exemple étudié précisément la complexité des arrangements de demi-droites dans le plan, l'enveloppe convexe d'un ensemble de sphères en toutes dimensions ou encore différents diagrammes de Voronoï. Plus récemment, nous nous sommes intéressés à des problèmes combinatoires liés à certains problèmes d'optimisation géométrique (percement et couverture).

Techniques algorithmiques

 Algorithmes randomisés: Les algorithmes randomisés sont des algorithmes qui effectuent des choix aléatoires au cours de leur déroulement[MR95].

Contrairement aux algorithmes probabilistes (dits de Monte Carlo) les algorithmes randomisés (encore appelés algorithmes de Las Vegas) fournissent la solution exacte d'un problème déterministe et ne font aucune hypothèse statistique sur les données traitées. Seule leur complexité dépend des choix aléatoires effectués et s'analyse en moyenne. En conférant aux situations défavorables un poids statistique négligeable, la randomisation conduit à des algorithmes simples et efficaces, notamment en géométrie où elle a fait son apparition récemment [CS89]. La randomisation est aussi devenue une méthode de preuve permettant d'établir certains résultats combinatoires. Enfin, et ce n'est pas le moindre des paradoxes, la dérandomisation d'algorithmes randomisés permet, dans certains cas, d'établir des algorithmes déterministes optimaux.

Le projet Prisme s'est plus particulièrement spécialisé dans les algorithmes randomisés incrémentaux et a développé la méthode du graphe d'influence [4,11]. Le graphe d'influence est une structure de données qui retrace l'histoire de la construction d'un objet. L'utilisation d'une telle structure conduit à des algorithmes semi-dynamiques capables d'insérer en ligne des données qui ne sont pas connues au départ. Pour la plupart des problèmes fondamentaux, on peut même obtenir un algorithme dynamique traitant non seulement les insertions mais aussi les suppressions de données.


Algorithmes adaptatifs: Algorithmes dont la complexité est fonction de la valeur effective de certains paramètres significatifs (la taille de l'objet calculé, par exemple) et non de la valeur de ces paramètres dans le pire des cas.

Pour la plupart des problèmes géométriques, la taille du résultat est très variable non seulement en fonction du nombre de données traitées mais aussi en fonction du jeu de données lui-même. Par exemple, l'enveloppe convexe d'un ensemble de n points en dimension d est un polytope dont le nombre de faces peut varier de $(d+1)!$ (pour un (d+1)-simplexe) à $\Omega (n^ { \lfloor {\frac{d+1}{2}} \rfloor }) $ (pour un polytope maximal à n sommets), le nombre d'intersections d'un ensemble de n segments du plan peut varier de 0 à $\frac{n(n-1)}{2}$. Pour ces exemples, il est donc particulièrement intéressant de disposer d'algorithmes adaptatifs dont la complexité dépend de la taille du résultat. Dans d'autres problèmes, ce sont d'autres paramètres qui peuvent jouer un rôle crucial. La contribution du projet Prisme dans ce domaine concerne essentiellement les problèmes d'enveloppes convexes d'objets plans et de percement (ou, par dualité, de couverture).

Triangulations et diagrammes de Voronoï

 Diagramme de Voronoï: Soit ${{\cal S}}$ un ensemble de n sites de l'espace euclidien $E^d$. Pour chaque site p de ${{\cal S}}$, la cellule de Voronoï $V(p)$ de p est l'ensemble des points de $E^d$ qui sont plus proches de p que de tous les autres sites de ${{\cal S}}$.Le diagramme de Voronoï de ${{\cal S}}$ est la décomposition de $E^d$formée par les cellules de Voronoï des sites. Voir la figure [*].
Triangulation de Delaunay: Soit ${{\cal S}}$ un ensemble de n points de $E^d$. La triangulation de Delaunay de ${{\cal S}}$ est le dual géométrique du diagramme de Voronoï de ${{\cal S}}$ : deux points de ${{\cal S}}$ sont reliés par une arête dans la triangulation de Delaunay si et seulement si leurs cellules sont adjacentes dans le diagramme de Voronoï de ${{\cal S}}$.


  Figure: Diagramme de Voronoï (en traits pleins) et triangulation de Delaunay (en pointillés) d'un ensemble de points de $E^2$.  

\begin{figure} \begin{center} \includegraphics {voronoi.ipe} \end{center} \end{figure}


Les diagrammes de Voronoï sont des structures très utiles, rencontrées fréquemment car elles permettent de représenter des relations de distance entre objets et des phénomènes de croissance : il n'est pas étonnant de les voir utilisés pour modéliser des cristaux ou les grandes structures de l'univers, et de les trouver souvent dans la nature, par exemple sur la carapace d'une tortue ou sur le cou d'une girafe réticulée. Les diagrammes de Voronoï sont aussi des structures de données permettant de résoudre de nombreux problèmes : recherche de plus proches voisins et planification de mouvements notamment.

L'étude des diagrammes de Voronoï, de leurs propriétés mathématiques, de leur calcul et de leurs nombreuses variantes a été et reste un sujet d'importance majeure de la géométrie algorithmique [OBS92]. Les contributions du projet Prisme portent sur les aspects combinatoires et algorithmiques, l'extension à différentes métriques non-euclidiennes et l'application aux problèmes de reconstruction de formes (cf. section [*]) et d'approximation de surfaces.

Planification de trajectoires

 Une tâche fondamentale en robotique consiste à planifier des trajectoires sans collision dans un environnement encombré d'obstacles. Ce problème est très difficile puisque, même dans sa version la plus simple où les contraintes sur les déplacements du robot sont purement géométriques, sa complexité croît rapidement (de façon probablement exponentielle) avec le nombre de degrés de liberté du robot.

Dans les vingt dernières années, ce problème a suscité des recherches allant des mathématiques (géométrie algébrique, combinatoire, théorie de la complexité), à la programmation et l'implantation effective sur des robots en passant par la conception et l'analyse d'algorithmes performants. L'idée centrale de tous les algorithmes est néanmoins toujours la même : construire une représentation de l'ensemble des configurations du robot pour lesquelles il n'y a pas de collision, ce qu'on appelle l'espace libre du robot. On ramène ainsi le problème du déplacement du robot dans l'espace où celui-ci évolue au problème du déplacement d'un point dans un espace dit des configurations dont la dimension est en général élevée (six pour un manipulateur à six degrés de liberté). Moyennant une structuration appropriée de cet espace, on peut alors construire un chemin qui correspond à un déplacement sans collision du robot.

Dans un premier temps, nous avons proposé des méthodes approchées générales qui ont conduit au logiciel industriel ACT. Nous avons ensuite étudié les aspects combinatoires et algorithmiques de cas particuliers importants en pratique : robot mobile évoluant sur un sol plan ou sur un sol accidenté, robot à pattes. On peut obtenir dans ces cas particuliers des solutions analytiques exactes et des algorithmes de calcul très efficaces.

Plus récemment, nous avons abordé la planification de trajectoires de robots mobiles soumis à des contraintes cinématiques : on parle dans ce cas de systèmes non-holonômes. La grande différence de ces systèmes par rapport aux systèmes holonômes réside dans le fait que tout chemin de l'espace libre n'est pas exécutable par le robot : c'est le problème du créneau qui nécessite de faire des manoeuvres si la voiture ne peut pas se déplacer en crabe. Nous nous sommes plus particulièrement intéressés au calcul de trajectoires de courbure bornée correspondant à une voiture dont le rayon de braquage est minoré. Le contrôle optimal permet de caractériser les plus courts chemins de courbure bornée en l'absence d'obstacle. Il est alors possible d'obtenir des algorithmes efficaces en présence d'obstacles.

Ces travaux ont conduit à plusieurs applications industrielles.

Calcul géométrique

 Mots-clés : robustesse, dégénérescence, arithmétique, filtres, régularisation, programmation des algorithmes géométriques, recherche expérimentale


Résumé : Le calcul géométrique demande, au-delà de la conception et de l'analyse des algorithmes, de résoudre les questions délicates posées par leur programmation. Il s'agit tout d'abord de savoir représenter et organiser les structures géométriques, de façon cohérente et efficace. Il s'agit également de garantir un calcul fiable, ce qui est particulièrement délicat avec les objets géométriques dont la représentation est à la fois symbolique et numérique. [Hof89] Ces problèmes sont un des principaux obstacles à l'utilisation des résultats de la géométrie algorithmique.[C$^{+}$96] Nous détaillons dans la première section les problèmes posés par le calcul géométrique, puis nous décrivons un paradigme pour les résoudre. Finalement, nous présentons le projet CGAL, qui pose les fondements d'une bibliothèque d'algorithmes géométriques.

Robustesse et dégénérescences

  Les algorithmes sont généralement exprimés dans un modèle où chaque nombre réel est représentable de façon exacte. De plus, on fait souvent une hypothèse de position générale, par exemple que trois points ne sont jamais alignés.

En pratique, la représentation des nombres réels en machine pose de gros problèmes qui sont très vite observables. Le résultat des opérations arithmétiques pouvant être tronqué, certaines propriétés géométriques du plan euclidien ne sont pas vérifiées dans l'implantation. Par ailleurs, le traitement des cas dégénérés, souvent ignoré dans les articles, est fastidieux, allonge considérablement les programmes et constitue une source d'erreurs.


   Figure: Différents problèmes de robustesse : (a) Une méthode couramment utilisée pour localiser un point dans un polygone consiste à compter la parité du nombre d'intersections d'un rayon allant à l'infini. Ici, ce rayon passe par un sommet. Si les segments sont fermés, on compte deux intersections, aucune si les segments sont ouverts ; dans les deux cas, le point est placé incorrectement à l'extérieur du polygone. (b) Une méthode couramment employée pour construire l'intersection de deux polygones consiste à parcourir, à partir d'un sommet, la frontière de chacun des polygones alternativement jusqu'au point de départ. Ici, on peut arranger les segments de façon à ce que la deuxième intersection ne soit pas détectée par un calcul en virgule flottante ; l'algorithme fournit alors une solution erronée. (c) L'algorithme de Bentley-Ottmann, l'un des plus utilisés en géométrie algorithmique, calcule les intersections d'un ensemble de segments en balayant le plan et en s'arrêtant quand la droite passe par un sommet ou une intersection. Ici, on peut arranger les segments de façon à ce qu'un calcul flottant traite les événements dans le mauvais ordre : (1,2) avant 3. Alors l'intersection (1,3) n'est pas détectée.

\begin{figure} \includegraphics {robustesse.ipe} \begin{picture} (0,0)(144.152,... ...2.653,402.251){{\rm 4}} \put(445.215,391.122){{\rm 3}}\end{picture} \end{figure}


Plusieurs approches ont été suivies pour tenter de résoudre ces problèmes. En ce qui concerne les cas dégénérés, une méthode de perturbation symbolique a été développée et raffinée (voir section [*]). Pour les algorithmes incrémentaux randomisés, nous avons montré comment perturber la définition du problème pour prendre en compte les cas dégénérés (voir section [*]).

Pour ce qui concerne les problèmes d'arithmétique, une approche prometteuse consiste à utiliser une arithmétique exacte (voir prochaine section). Cependant, l'étude des algorithmes permet aussi de dégager une notion de robustesse : il s'agit du degré de l'algorithme (voir section [*]). On peut montrer que certains tests de degré d, comme les déterminants, peuvent s'évaluer en simple précision de manière fiable [13,18,20]. C'est une première voie qui conduit à réduire le degré des algorithmes à travers celui de leurs prédicats. On peut aussi reformuler certains algorithmes de façon à réduire leur degré. Il reste à étudier et reformuler de nombreux algorithmes en fonction de leur degré arithmétique.

Arithmétique et filtres

  Le calcul exact de prédicats[YD95] permet à l'implantation de vérifier et utiliser les résultats dans le plan euclidien, plutôt que dans le plan des réels flottants (qui en est une discrétisation). On peut pour cela utiliser soit des types arithmétiques exacts, soit des implantations correctes des prédicats qui sont supposés être la seule interface entre les parties numérique et combinatoire de l'algorithme.

Des types exacts ont été conçus dans des bibliothèques telles que GMP ou Leda. Le type résultant, même si on fait une première approximation en calcul flottant (rapide), reste assez lent. L'implantation de prédicats exacts a été étudiée et démontrée efficace en pratique par Fortune et van Wyk.[FvW96] Celle-ci se prête naturellement à l'approche filtrée, dans laquelle le résultat flottant est progressivement amélioré pour atteindre la fiabilité requise. En moyenne, le calcul flottant suffit et la perte de performance est donc minime.

Nous prévoyons donc de produire et automatiser ces outils de filtrage et de les intégrer dans la bibliothèque CGAL. Le but recherché est de libérer le programmeur de ces considérations de robustesse en lui procurant des prédicats exacts à coût très abordable. Des études préliminaires sur des algorithmes classiques ont montré que ce but est réaliste.

Régularisation

  Quand un algorithme termine avec un résultat combinatoire correct (carte planaire, diagramme de Voronoï, etc.), il reste le problème d'arrondir les coordonnées des objets géométriques sous une forme représentable en machine. Le calcul flottant ne garantit pas que la structure arrondie vérifie des propriétés comme la planarité ou la convexité. Bien que cela n'affecte pas la correction de l'algorithme en soi, cela peut avoir des incidences sur les algorithmes qui utilisent ensuite ce résultat. Des méthodes ont été étudiées pour régulariser certaines constructions. Elles supposent toutes qu'on peut arrondir les intersections ou autres constructions géométriques à un plus proche sommet d'une grille.

Nous avons développé une méthode permettant d'arrondir correctement des constructions géométriques à un point entier le plus proche [19]. Des outils d'automatisation pour la biliothèque CGAL sont en cours d'étude. Il faudra aussi évaluer le coût de cette approche. Il reste sur ce sujet beaucoup de recherches à effectuer, en particulier pour des structures plus complexes comme les diagrammes de Voronoï de segments ou les arrangements tridimensionnels.

Programmation et recherche expérimentale

  Comme on l'a vu, la programmation des algorithmes géométriques pose des problèmes difficiles qui ne relèvent pas seulement de l'ingéniérie. Ces problèmes se posent à tous ceux qui utilisent des algorithmes géométriques et il n'existe pas actuellement de solution simple. C'est pourquoi une bibliothèque d'algorithmes géométriques, baptisée CGAL, a été entreprise en collaboration avec sept équipes européennes dans le cadre d'un projet européen Esprit : Universiteit Utrecht (Pays-Bas), ETH Zürich (Suisse), Freie Universität Berlin (Allemagne), INRIA Sophia Antipolis (France), Max-Planck-Institüt Saarbrucken (Allemagne), RISC Linz (Autriche), et Tel Aviv University (Israël).

Cette bibliothèque est écrite en C++ et veut permettre une programmation facile, fiable et efficace d'applications nécessitant la mise en oeuvre d'algorithmes géométriques (voir aussi section [*]). La généricité est une des caractéristiques de cette bibliothèque. Les algorithmes peuvent utiliser différents types de données dès lors que certaines méthodes sont définies. Le code est donc très largement réutilisable. Cette approche contraste avec celle des perles utilisées par exemple en infographie qui doivent être adaptées à chaque nouveau besoin. La généricité doit aussi permettre de comparer les caractéristiques de différents algorithmes dans un même contexte et de conduire des recherches expérimentales.

Théorie des mécanismes

 Mots-clés : théorie des mécanismes, robot parallèle, robotique


Mécanisme à chaînes fermées: Se dit d'un mécanisme dont certains solides sont liés par des articulations à plusieurs autres solides du mécanisme.
Robot parallèle: Se dit d'un robot dont l'organe terminal est relié à la base par plusieurs chaînes : c'est un cas particulier de mécanisme à chaînes fermées.
Résumé : Trois types de problèmes sont rencontrés en théorie des mécanismes : modélisation, analyse et synthèse. La modélisation consiste à déterminer les relations entre les variables de commande du mécanisme (angle des actionneurs par exemple) et les variables de sortie (position et orientation d'un corps donné du mécanisme). L'analyse est la phase de détermination de différentes performances d'un mécanisme donné en prenant en compte les contraintes auxquelles il est soumis (par exemple des bornes sur les variables de commande) ainsi que celles imposées par l'utilisateur, qui pourra, par exemple, vouloir étudier les extremums d'une performance pour un ensemble donné des variables de sortie du mécanisme. La phase de synthèse est celle où l'on doit déterminer les dimensions d'un mécanisme, d'architecture mécanique donnée, afin qu'il satisfasse au mieux à un cahier des charges (on parle aussi de conception optimale).

De part la nature même de la théorie des mécanismes, la résolution des trois types de problèmes se ramènera le plus souvent à des problèmes de géométrie. Ainsi, pour la modélisation on sera amené à résoudre un système d'équations de contraintes qui seront algébriques (par exemple pour exprimer que la distance entre deux articulations est constante) alors que la détermination de l'ensemble des variables de sortie réalisables pour des variables de commandes contraintes se ramènera à des opérations comme union, intersection sur des objets géométriques (qui seront parfois simplement approximés par des objets linéaires à grand nombre de composantes, auquel cas des techniques de la géométrie algorithmique seront employées).

Pour étudier les problèmes rencontrés lors de la modélisation, de l'analyse et de la synthèse nous nous sommes concentrés sur les mécanismes à chaînes fermées : tout en ayant un potentiel d'applications important (qui débordent d'ailleurs largement du cadre de la mécanique puisque, par exemple, certains problèmes de chimie sont structurellement identiques), c'est ce type de mécanismes qui pose les problèmes les plus complexes. Nous nous sommes particulièrement intéressés à l'étude d'une classe de robots, appelés robots parallèles, en raison de leurs performances (précision, charge), de leur large champ d'utilisation (de la fraiseuse à la table chirurgicale) ainsi que de leur similarité avec des mécanismes très répandus (suspension automobile par exemple). Ces cinq dernières années, de très gros progrès sur la modélisation ont été réalisés [12] même si quelques problèmes sont encore à résoudre. Nous nous focalisons donc actuellement sur l'analyse et la synthèse, notre but étant, d'une part, de proposer des algorithmes efficaces d'analyse des performances et, d'autre part, de développer une méthodologie de conception optimale reposant sur une approche géométrique ainsi que sur les algorithmes d'analyse.



previous up next contents Précédent : Présentation générale et objectifs Remonter : Projet PRISME, Géométrie, Algorithmes et Suivant : Grands domaines d'application