Triangulations de Steiner

publicité
Triangulations de Steiner
Mathieu Brévilliers
Séminaire du LMIA
26 octobre et 9 novembre 2006
1. Origine de la notion de point de Steiner
La notion de point de Steiner est introduite dans le problème de l’arbre de Steiner (en référence au
mathématicien Jakob Steiner, 19ème siècle). C’est un problème très proche de celui de l’arbre
recouvrant minimal.
Soit un ensemble V de sommets dans le plan. Il faut trouver un arbre A qui relie tous les sommets
de V.
Il existe deux manières d’aborder le problème pour le résoudre : soit tous les sommets de A sont
dans V, soit A peut contenir d’autres points que ceux de V, ce sont les points de Steiner.
Dans les deux cas, chaque arête a un coût, et il faut trouver l’arbre de coût minimal.
Exemple :
Arbre recouvrant minimal : L = 2
Arbre de Steiner : L = sqrt(3)
Les arêtes forment des angles de 120° en 2D
Et de 109° en 3D (cf molécule de méthane)
Arbre recouvrant minimal : L = 3
Avec 1 point de Steiner : L = 2,828
Arbre de Steiner minimal : L = 2,732
2
2. Triangulations de Steiner
a) Définitions
En géométrie algorithmique, un point de Steiner est un point qui n’appartient pas à l’ensemble de
départ.
Une triangulation de Steiner est une triangulation de la réunion de l’ensemble de départ et des
points de Steiner.
Dans le cas d’un ensemble de points, les données forment un sous-ensemble des sommets de la
triangulation de Steiner : sa frontière peut être plus « large » que l’enveloppe convexe de l’ensemble
de départ.
Dans le cas d’un polygone, une triangulation de Steiner aura des sommets supplémentaires à
l’intérieur et sur le polygone. Un côté du polygone pourra être subdivisé en plusieurs arêtes
colinéaires.
Dans le cas d’un PSLG, les points de Steiner sur les segments doivent être les mêmes des « deux
côtés » des segments.
De plus, dans ces deux derniers cas, les arêtes initiales doivent être incluses dans la triangulation de
Steiner.
Exemple de triangulation de Steiner :
b) Problématique
Globalement il s’agit d’optimiser un critère sur la forme des éléments, tout en minimisant le nombre
de ces éléments.
Soit on fixe le nombre de points de Steiner et on calcule la triangulation optimale, soit on fixe la
qualité requise pour le critère d’optimalité, et on minimise le nombre de points de Steiner pour y
parvenir.
3
3. Intérêts
Les triangulations de Steiner sont adaptées pour les simulations qui utilisent les méthodes des
éléments finis.
Ces méthodes discrétisent le domaine de simulation (ex. : l’air autour d’une aile) en le subdivisant
en plein de petits éléments (triangles ou quadrilatères en 2D, tétraèdres ou hexaèdres en 3D).
L’ensemble de tous ces éléments forme un maillage.
Pour que ces méthodes donnent de bons résultats (vitesse de calcul + précision), il faut générer des
maillages qui satisfont des contraintes :
- forme des éléments (bornes sur les angles)
- complexité raisonnable (nombre d’éléments)
- orientation des éléments (dans le sens d’un flux par exemple)
Dans une approximation à l’aide des éléments finis, l’erreur est liée à l’angle minimal, et encore
plus fortement liée à l’angle maximal. La hauteur minimale d’un triangle influence la qualité d’une
approximation de surface courbe.
4
4. Problème de maximisation de l’angle minimal
a) « Uniform square mesh », par Baker
B.S. Baker, E. Grosse, and C.S. Rafferty. Nonobtuse triangulation of polygons. Disc. and
Comp. Geometry 3 (1988) 147-168.
Globalement, il y a 3 étapes:
- raffiner le maillage carré uniforme jusqu’à ce que chaque carré contiennent une partie
suffisamment petite des données de départ,
- déformer les carrés pour s’aligner sur les arêtes de départ,
- trianguler les carrés, en utilisant une étude de cas spéciaux.
Il s’agit de placer un maillage carré uniforme sur l’ensemble de départ : le maillage doit être
suffisamment fin pour que deux sommets de départ soient séparés par plusieurs carrés. Baker insère
les arêtes et les sommets de départ en retriangulant le maillage carré autour (à une petite distance)
de ces éléments initiaux.
Résultat: triangulations de régions polygonales et de PSLG avec des angles compris entre 13° et 90°
(si les angles de départ sont supérieurs à 13°).
Remarque : cet algorithme répond aussi au problème de triangulation non obtuse.
b) Algorithme avec des quadtree, par Bern
M. Bern, D. Eppstein, and J.R. Gilbert. Provably good mesh generation. In Proc. 31st IEEE
Symp. Foundations of Computer Science (1990) 231-241. To appear in J. Comp. System
Science. 48:384-409, 1994.
Il s’agit d’une amélioration de l’algorithme proposé par Baker. Les quadtree rendent l’algorithme
adaptatif : il place beaucoup de petits triangles aux endroits intéressants (risque d’erreur important,
donc on a besoin de plus de précision) et moins de triangles (qui sont plus grands) aux endroits
moins intéressants (là où la précision n’a pas d’importance, ce qui permet d’accélérer les calculs).
Quadtree : il s’agit d’une partition récursive d’une région du plan. Un carré (la racine) recouvre
toute la région. Un carré peut être subdivisé en quatre carrés fils en faisant passer des lignes
horizontales et verticales par son centre. L’ensemble des carrés forme un arbre avec les carrés les
plus petits aux niveaux les plus bas de l’arbre.
« Balance condition » : le côté d’un carré est subdivisé en au plus 2 parties par les carrés adjacents.
5
« well separated » : chaque point de départ doit se trouver au centre d’une grille de 5*5 carrés qui
ne contiennent aucun autre point de départ en leurs intérieurs.
Déformation du maillage : chaque sommet de départ remplace le sommet du quadtree le plus
proche, et les arêtes incidentes au sommet supprimés sont connectées au point de départ.
Les carrés non déformés peuvent être triangulés en tenant compte de la subdivision de leurs côtés
tel qu’aucun angle n’est inférieur à arctan(0,5)=26,5°. Les carrés déformés peuvent être triangulés
en ajoutant une diagonale tel qu’aucun angle n’est inférieur à 20°.
6
Lemme : le nombre de carré produit par l’algorithme est O(nlogA), tel que A est l’« aspect ratio »
maximal dans la triangulation de Delaunay de l’ensemble de points initial.
Théorème : l’algorithme utilise O(k) triangles, tel que k est le nombre de triangles dans une
triangulation de Steiner minimale de l’ensemble de points initial, qui est telle que tous les angles
sont supérieurs à 20°.
Remarques :
-
ça marche aussi avec une borne plus petite que 20°, mais plus la borne est petite, plus la
constante cachée dans le O(k) est grande
-
en renforçant la « balance condition » et en remplaçant les carrés par des « tuiles », on peut
garantir des angles compris entre 36° et 80°
-
d’après Bern on peut peut-être obtenir des angles entre 51° et 72° mais tout autre
amélioration ferait tendre le maillage vers un maillage topologiquement égal à un maillage
de triangles équilatéraux, ce qui nécessite un très grand nombre de points de Steiner.
-
On peut adapter l’algorithme pour la triangulation de polygone à trous : on obtient aucun
nouvel angle supérieur à 18,4°. Le théorème s’étend au cas des polygones à trous. Le lemme
est plus faible : O(nA) carrés tel que A est l’« aspect ratio » maximal de la triangulation de
Delaunay contrainte.
-
L’algorithme peut s’étendre aux PSLG, cf Mitchell et Vavasis [157].
c) CDT based algorithm, par Chew
L.P. Chew. Guaranteed-quality triangular meshes. Tech. Rep. TR-89-983, Comp. Science
Dept., Cornell University, 1989.
L.P. Chew. Guaranteed-quality mesh generation for curved surfaces. In Proc. 9th ACM
Symp. Comp. Geometry (1993) 274-280.
7
Soit h un paramètre fixé par l’utilisateur.
Supposons que la distance entre deux points de départ quelconques est supérieure à h.
Supposons que les arêtes de départ soient de taille supérieure à h et inférieur à sqrt(3)h. Si ce n’est
pas le cas, il suffit de subdiviser les arêtes.
On calcule la CDT de l’ensemble de départ.
Tant qu’il existe un triangle dont le rayon du cercle circonscrit est supérieur à h, on ajoute un point
de Steiner au centre du cercle et on recalcule la CDT.
Théorème : La triangulation qui résulte de l’algorithme est telle que :
(1) la distance entre 2 sommets est supérieure ou égale à h,
(2) les cercles circonscrits aux triangles ont un rayon inférieur ou égal à h.
Corollaire : La triangulation qui résulte de l’algorithme est telle que :
(3) tous les angles sont compris entre 30° et 120°,
(4) la longueur des arêtes est comprise entre h et 2h.
Remarques :
-
l’algorithme est en O(n²) dans le pire des cas, tel que n est le nombre de triangles dans la
triangulation résultante,
-
l’algorithme peu être modifié pour être linéaire dans le pire des cas : on insère les points et
arête initiale dans un maillage de triangle équilatéraux et on retriangule autour (distance<4h)
pour maintenir la CDT => le nombre de point affecté par la modification peut être borné car
il sont à une distance h les uns des autres => temps constant pour insérer un nouveau point
=> O(n).
-
tel quel, l’algorithme produit un maillage final uniforme, ce qui signifie qu’on utilise de
toute façon trop de points de Steiner pour satisfaire le critère de qualité fixé.
-
on peut permettre à l’algorithme de raffiner certaines régions pour obtenir plus de précision
dans une simulation.
8
-
Amélioration de l’algo avec l’« Input feature size » (c’est la distance minimale entre deux
sites) à la place de h.
-
L’algorithme de 1993 permet d’ajouter un paramètre pour rendre l’algorithme adaptatif, càd
qu’il place plus de petits triangles là où c’est le plus important, et moins ailleurs.
d) CDT based algorithm, par Ruppert
J. Ruppert. A new and simple algorithm for quality 2-dimensional mesh generation. In Proc.
4th ACM-SIAM Symp. on Disc. Algorithms (1993) 83-92.
J. Ruppert. A Delaunay Refinement Algorithm for Quality 2-Dimensional Mesh Generation.
Journal of Algorithms 18(3):548–585, May 1995.
Il s’agit d’une extension de l’algorithme de Chew dans la mesure où Ruppert ne génère pas un
maillage uniforme : le nombre de triangle est plus faible tout en satisfaisant le même critère de
qualité.
Exemples :
Ruppert définit plusieurs opérations qu’il utilise dans son algorithme :
-
Scinder ou Diviser une arête du PSLG : c’est rajouter un sommet au milieu de l’arête, et la
remplacer par 2 nouvelles arêtes qui joignent le nouveau point aux extrémité de l’ancienne
arête, puis enfin mettre à jour la DT.
-
Scinder ou Diviser un triangle : c’est ajouter le centre du cercle circonscrit, puis mettre à
jour la DT.
-
Réparation : il s’agit de supprimer les arêtes de Delaunay qui ont une intersection avec les
arêtes du PSLG : il suffit de Scinder les arêtes du PSLG qui posent problème, et de
recalculer la DT. On recommence jusqu’à ce que la DT soit conforme au PSLG.
9
L’algorithme maintient une triangulation de Delaunay des sommets d’un PSLG :
-
On commence par une étape de Réparation.
-
Tant qu’il reste un mauvais triangle (càd avec un angle inférieure à la borne fixée) : Scinder
un mauvais triangle, si le nouveaux point ne convient pas (càd s’il est inclus dans le cercle
diamétral d’au moins une arête du PSLG), l’enlever puis Scinder les arêtes du PSLG qui
gênent et refaire une réparation pour maintenir une DT conforme au PSLG.
10
11
Remarques :
-
l’algorithme fonctionne pour une borne sur l’angle minimal inférieure à 30°.
-
Cette version de l’algorithme suppose que le PSLG de départ n’a pas d’angle inférieur à 90°.
Ruppert présente une amélioration qui permet de se passer de cette hypothèse.
-
Il n’y a pas d’ordre pour traiter les mauvais triangles.
Ruppert donne un borne supérieure pour le nombre de triangles : cette borne dépend de la « local
feature size » du PSLG de départ. La lfs d’un point p du plan est le rayon du disque centré sur p tel
que ce disque intersecte deux sommets ou segments (non incidents au même sommet).
Théorème : le nombre de sommets du maillage est au plus :
Tel que B est la région incluse dans la boîte englobante, et C1 est une constante.
Théorème : (idem que Bern => O(k) triangles avec une constante cachée)
Soient a<=20°, S un ensemble de départ, T une triangulation de X avec a comme angle minimal. Il
existe une constante Ca telle que si T a n triangles, alors le raffinement de Delaunay proposé a au
plus Ca*n triangles. Si on suppose que T est la triangulation qui satisfait la borne a avec le moins de
triangles possible, alors le raffinement de Delaunay proposé est optimal à la constante Ca près.
12
5. Problème de minimisation de l’angle maximal
a) Ensemble de points
M. Bern, D. Eppstein, and J.R. Gilbert. Provably good mesh generation. In Proc. 31st IEEE
Symp. Foundations of Computer Science (1990) 231-241. To appear in J. Comp. System
Science. 48:384-409, 1994.
Résultat : la triangulation d’un ensemble de n points du plan avec aucun angle obtus a une taille en
O(n).
Remarque : minimiser l’angle maximal semble plus intéressant que maximiser l’angle minimal,
c’est-à-dire qu’on génère moins de points de Steiner, et le résulta t est plus approprié pour limité les
erreurs d’approximation dans les méthodes des éléments finis.
b) Polygones
M. Bern, S. Mitchell, and J. Ruppert. Linear-size nonobtuse triangulation of polygons. In
Proc. 10th ACM Symp. Comp. Geometry (1994) 221-230.
Résultat : un polygone peut être triangulé avec O(n) triangles rectangles, en temps O(nlogn) pour
les polygones simples, et en temps O(nlog²n) pour les polygones à trous.
13
c) PSLG
S.A. Mitchell. Refining a triangulation of a planar straight-line graph to eliminate large
angles. In Proc. 34th IEEE Symp. on Foundations of Comp. Science (1993) 583-591.
Résultat: Un PSLG à v sommets peut être triangulé avec aucun angle supérieur à 7pi/8, avec
O(v²logv) points de Steiner, et en temps O(v²log²v).
T.-S. Tan. An optimal bound for conforming quality triangulations. In Proc. 10th ACM
Symp. Comp. Geometry (1994) 240-249.
Résultat: Un PSLG à n sommets peut être triangulé avec aucun angle supérieur à 11pi/15, avec
O(n²) points de Steiner, et en temps O(n²logn).
14
6. Triangulations de Delaunay conformes
a) Définition
L’ensemble de départ est un PSLG. Une triangulation de Delaunay conforme à un PSLG est telle
que chaque arête du graphe est une réunion d’arête de la DT des sommets du graphe et des points de
Steiner
Autrement dit, la triangulation de Delaunay de l’ensemble (sommets du graphe + points de Steiner)
doit contenir les arêtes du graphe initial.
Exemple de différents types de triangulations :
un PSLG
Triangulation de Delaunay conforme
Triangulation contrainte du PSLG
Triangulation de Delaunay contrainte et conforme
15
Intérêts :
Dans le cas de la génération de maillage d’un ensemble de points, la DT peut être une solution
intéressante, ou un point de départ privilégié pour un algorithme de raffinement. En effet elle
optimise plusieurs critères :
- elle maximise l’angle minimal
- elle minimise le cercle circonscrit maximal
- elle minimise le « min-containment circle » maximal (càd le plus petit cercle qui contient le
triangle considéré)
Mais en général dans la génération de maillage, le domaine n’est pas un ensemble de points, mais
une région polygonale. Et en général, la DT des sommets d’une région polygonale non-convexe
pose problème : les arêtes de la DT coupent les frontières du domaine. Il y a 2 solutions pour régler
ce problème :
- les DT contraintes
- les DT conformes (ajout de points de Steiner)
Remarque :
Il existe deux approches distinctes pour la génération de DT conformes :
- soit on ajoute des points de Steiner n’importe où, càd sur les arêtes du PSLG et dans le reste
du plan : cf l’algorithme de Ruppert par exemple.
- soit on ajoute des points de Steiner que sur les arêtes du PSLG : c’est cette méthode qui se
rapproche le plus des triangulations de Delaunay de segments que nous avons définies.
b) Algorithme de Saalfeld
A. Saalfeld. Delaunay edge refinements. In Proc. 3rd Canadian Conf. Comp. Geometry
(1991) 33-36.
Théorème : pour chaque chaque triangulation, il existe un « Delaunay triangulation-edge
refinement ».
Théorème : il existe un algorithme itératif qui construit en un nombre fini d’étapes un tel
raffinement.
Soit G un graphe planaire tel que G = G(V,E) avec V l’ensemble des sommets du graphe et E un
ensemble d’arêtes.
Soit V’ = V l’ensemble des sommets de départ et des points de Steiner.
Algo :
1. Construire la DT T de V’.
2. Superposer G et T, calculer l’ensemble P des intersections des arêtes de G et T.
3. Si P n’est pas dans V’, ajouter P dans V’ et retourner en 1.
Sinon, la solution est la DT T de V’.
Remarque : on n’a aucune garantie sur le nombre de triangles, et on n’a aucune borne sur les angles.
On sait juste que la triangulation finale est de Delaunay.
16
c) Algorithme de Nackman & Srinivasan
L.R. Nackman and V. Srinivasan. Point placement for Delaunay triangulation of polygonal
domains. In Proc. 3rd Canadian Conf. Comp. Geometry (1991) 37-40.
Il s’agit de trianguler l’intérieur d’un polygone simple, éventuellement à trous, en ajoutant des
points de Steiner sur la frontière du polygone de sorte que les arêtes de la frontière soient des arêtes
de Delaunay.
On parcourt chaque arête de la frontière du polygone en la subdivisant à l’aide de disques qui
couvrent l’arête sans en recouvrir aucune autre.
Résultat :
-
l’algorithme place le moins de points possible tout en maintenant la propriété du « edge-free
circle »
l’algorithme s’exécute en un temps O(K+NlogK) où N est le nombre de sommets du
polygone et K le nombre de points de Steiner.
Le nombre de points de Steiner dépend de la géométrie du polygone, et pas de sa complexité
(cf exemple de Nackman : un U avec des barres plus ou moins longues, mais avec le même
écart entre les deux barres).
17
d) Algorithme de Edelsbrunner & Tan
H. Edelsbrunner and T.S. Tan. An upper bound for conforming Delaunay triangulations.
Disc. and Comp. Geometry 10 (1993) 197-213.
Il s’agit de trouver une triangulation de Delaunay conforme pour un PSLG.
L’algorithme se déroule en 2 étapes :
-
Blocking phase :
Il faut trouver des cercles qui recourent les sommets du graphe. Les cercles ont au plus un piont
d’intersection.
On ajoute les points de Steiner suivants : les points d’intersection des cercles avec les arêtes de
départ, et les points d’intersections des cercles entre eux.
Les parties des arêtes contraintes qui sont à l’intérieur des cercles sont « protected », et les autres
sont dites « unprotected ».
- Propagation phase :
Dans cette phase on s’occupe de subdiviser les intervalles « unprotected » de sorte que ces arêtes
soient de Delaunay (propriété du cercle vide).
Si le cercle diamétral d’une arête « unprotected » contient un point visible du graphe augmenté,
alors on subdivise l’arête en projetant ce point orthogonalement sur l’arête.
On recommence jusqu’à ce que les cercles diamétraux des intervalles non protégés soient tous
vides.
Résultats :
-
Le nombre de sommet de la triangulation de Delaunay conforme est en O(m²n) tel que m est
le nombre d’arêtes de départ et n le nombre de sommets du graphe de départ.
-
Une telle triangulation peut être calculée en temps O(m²n+n²).
18
Remarque : c’est la première fois qu’on donne une borne polynomiale (en n, nombre d’éléments
initiaux) pour le nombre de points de Steiner pour parvenir à calculer une triangulation de Delaunay
conforme, càd une borne qui ne dépend pas de la géométrie de la configuration initiale.
e) Algorithme de Ruppert
J. Ruppert. A new and simple algorithm for quality 2-dimensional mesh generation. In Proc.
4th ACM-SIAM Symp. on Disc. Algorithms (1993) 83-92.
Déjà traité dans une précédente partie.
19
7. Résultats plus récents
J.R. Shewchuk. Delaunay Refinement Mesh Generation. Ph.D. thesis, Carnegie Mellon
University, 1997.
Il prouve qu’avec l’algorithme de Chew (celui de 1993, qui est adaptatif), il est possible d’avoir une
garantie sur la qualité de la taille des triangles et sur la taille du maillage (optimalité), si la borne
pour l’angle minimal est inférieure à 26,5°. Si la borne de l’angle minimal est entre 26,5° et 30°, on
observe que les tailles des triangles sont de bonne qualité, mais ça n’est pas prouvé.
Les algorithmes de Chew et Ruppert ne finissent pas toujours si les angles initiaux sont trop petits.
Dans le cas où les angles initiaux sont petits, on aimerait pouvoir trianguler sans ajouter d’angle
inférieure à la borne fixée. Il a prouvé que ça n’est pas toujours possible de faire ça. Il a proposé une
modification de l’algorithme de sorte qu’il s’arrête même si les angles initiaux sont trop petits. Il est
cependant obligé d’insérer quelques angles inférieurs à la borne fixée, mais seulement à proximité
des angles initiaux trop petits. Cette modification ne change en rien le comportement de
l’algorithme dans le cas général.
Enfin il a généralisé l’algorithme de raffinement de Delaunay en 3D.
Edelsbrunner, Sink insertion for mesh improvement, 2001-2002
Edelsbrunner propose un algorithme de raffinement de Delaunay à base de « sink insertion » : ce
choix est justifié par la qualité du maillage obtenue, sa robustesse, son temps d’exécution, et la
facilité à le paralléliser.
Un « sink » est le centre du cercle circonscrit à un triangle tel que ce centre soit à l’intérieur du
triangle. A chaque itération, l’algorithme insère tous les « sink » des triangles qui sont tels que le
ratio r/l est supérieur à une valeur fixée qui est elle-même supérieure ou égale à 1 (r est le rayon du
cercle circonscrit et l est la longueur du plus petit côté).
Il montre que l’algorithme s’arrête et il donne des exemples pour montrer que les « sink insertion »
donnent des résultats meilleurs que les autres algorithmes connus (Chew, Ruppert).
20
Ungor, Off-centers: A new type of Steiner points for computing size-optimal qualityguaranteed Delaunay triangulations, 2004
Har-Peled, Ungor, A Time-Optimal Delaunay Refinement Algorithm in Two Dimensions,
2005
Ils introduisent un nouveau type de points de Steiner à la place des centres des cercles circonscrits
aux triangles, ce sont les « off-centers ». Ils proposent un algorithme qui a les mêmes garanties que
les meilleurs algorithmes connus, en terme de qualité et de taille optimale. L’avantage est que, en
pratique, cet algorithme génère environ 40% de points de Steiner en moins, et environ 30% de
triangles en moins que ces prédécesseurs.
Radius-edge ratio = beta >= sqrt(2).
Si le ratio d’un triangle est < beta, alors le off-center est le centre du cercle circonscrit. Sinon, le
off-center est le point p de la médiatrice du côté le plus petit qr qui est tel que le ratio du triangle pqr
vaut exactement beta.
Pour le reste c’est identique à l’algorithme de Ruppert (on retire un point s’il est dans le cercle
diamétral d’une arête et on insère le milieu de l’arête à la place).
Ungor prouve que l’algorithme termine et le nombre de sommets est proportionnel à l’optimal :
mêmes résultat que Ruppert. En pratique on constate un nombre de points nettement inférieur.
21
22
Téléchargement