Plan du cours - uliege.beJohann Peter Gustav Lejeune Dirichlet (1805-1859) ~ 1850. Dimension...

of 27 /27
1 Géométrie Algorithmique Plan du cours Introduction Arrangements dans le plan Triangulation de polygones Diagrammes de Voronoï Triangulation de Delaunay Recherche/localisation Arbres de partition binaire

Embed Size (px)

Transcript of Plan du cours - uliege.beJohann Peter Gustav Lejeune Dirichlet (1805-1859) ~ 1850. Dimension...

  • 1

    Géométrie AlgorithmiquePlan du cours

    Introduction Arrangements dans le plan Triangulation de polygones Diagrammes de Voronoï Triangulation de Delaunay Recherche/localisation Arbres de partition binaire

  • 2

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Diagrammes de Voronoï ou Tessellation de Dirichlet

    En dimension 2 / 3Johann Peter Gustav Lejeune Dirichlet (1805-1859) ~ 1850.

    Dimension quelconque : Georgy Feodosevich Voronoy (1868-1908) ~ 1908

    G.F. Voronoï (1908). "Nouvelles applications des paramètres continus à la théorie des formes quadratiques". Journal für die reine und angewandte Mathematik 134: 198–287.

  • 3

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Soit P={ p0, p1, … , pn-1 } un ensemble de points du plan Le diagramme de Voronoi Vor(P) est une

    décomposition du plan en n cellules V( pi ).

    À l'intérieur de la cellule V( pi ), le point le plus proche appartenant à P est le point pi .

    On s'intéresse ici à la distance euclidienne entre deux points :

    Un point q est dans la cellule correspondant au point pi ssi

    Dist p , q= p x−q x2 p y−q y2

    Dist q , piDist q , p j ∀ p j∈P , j≠i

  • 4

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Structure du diagramme de Voronoï Le bisecteur d'une paire de point p et q délimite le plan en deux demi

    plans Soit h(p,q) le demi plan ouvert contenant p On a alors

    et V( pi) est l'intersection de n-1 demi-plans, une région polygonale ouverte

    éventuellement non bornée, limitée par au plus n-1 arêtes et n-1 sommets. Celle ci est nécessairement convexe.

    p

    q

    r∈h p , q ssi Dist r , pDist r , q

    h(p,q)

    V pi= ∩j≠i h pi , p j

    v(pi) Vor(P) est a) soit un ensemble délimité par n-1 droites parallèlesb) soit un ensemble connecté de segments et/ou de demi-droites.

  • 5

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Démonstration Cas a) évident Cas b) : Considérer qu'une arête a délimitant

    deux cellules V(pi) et V(pj) est une droite : elle sépare le plan en deux parties. Soit un troisième point pk non colinéaire avec pipj : nécessairement l'arête a' délimitant V(pj) et V(pk) n'est pas parallèle à a ; et donc l'intersecte. La partie de a qui est dans h(pk,pj) ne peut être à la frontière de V(pj) ; car elle est plus proche de pk que de pj .

    Donc les arêtes du diagramme sont soit des demi-droites, soit des segments de droite

    n-1 droites parallèles

    pi pj

    pk

    a

    a'

  • 6

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Reste à prouver que le diagramme de Voronoi forme un graphe connecté.Admettons que ce n'est pas le cas. Alors au moins une cellule de Voronoï séparerait le plan en deux parties. Comme les cellules de Voronoï sont convexes, ses frontières sont nécessairement des droites « complètes », une contradiction avec ce qui précède.

  • 7

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Complexité du diagramme de VoronoïQuel est le nombre de cellules, d'arêtes, de sommets ?

    Il y a n sites dans P ; et au pire, une cellule peut avoir n-1 arrêtes et sommets. En tout, la complexité de Vor(P) pourrait être quadratique. En fait, ce n'est pas le cas:

    Formule d'Euler pour un graphe plan (y compris la face « infinie ») : s – a + f = 2Ici, on considère un sommet supplémentaire à l'infini ; on a doncns +1 – na + n = 2 → 2ns – 2na + 2n = 2

    Chaque arrête a deux sommets ; la somme des degrés de chaque sommet donne le doubledu nombre d'arêtes. En outre, le degréest au minimum de 3.

    s

    2 na≥3n s12ns−3ns12 n≥2 ns≤2n−5

    2n−51−nan≥2 na≤3n−6

  • 8

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Le nombre de bissectrices est quadratique, mais seules une partie (nombre linéaire en fonction de n) fait effectivement partie du diagramme de Voronoï.

    Lesquelles ?On définit CP(q) comme étant le plus grand cercle de centre q et ne contenant aucun des points pi de P dans son intérieur. Il possède au moins un point de P sur son pourtour. Alors :

    Un point q est un sommet de Vor(P) ssi CP(q) possède au moins trois points de P sur son pourtour.

    Une bissectrice des points pi et pj existe sous forme d'une arrête dans Vor(P) ssi il y a un point q sur celle-ci tel que CP(q) possède pi et pj sur son pourtour mais aucun autre point de P. q

    CP(q)

  • 9

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Démonstration 3 points ou plus sur le bord → Centre du cercle

    est un sommet 2 sommets → Centre du cercle sur une arête du

    DDV 1 seul sommet → Centre situé dans une cellule

    de Voronoï

  • 10

    Géométrie AlgorithmiqueDiagrammes de Voronoï

    Calcul du diagramme de voronoï Pour chaque cellule V(pi), calculer l'intersection des demi-plans

    h(pi,pj) avec j≠i en utilisant l'algorithme du cours n°2 (arrangements dans le plan)Complexité : en nlog n pour chaque cellule (on ne sait pas à l'avance quelles intersections vont effectivement intervenir dans la forme finale de la cellule)

    Il y a n cellules → n²log n en tout. Alors que la complexité de la décomposition est en O(n)...

    Peut on faire mieux → oui ! Optimum : Ω(nlog n) Cf suite du cours.

  • 11

    Géométrie Algorithmique

    Triangulation de Delaunay

  • 12

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Boris Nicolaïevich Delaunay (Delone)(1890 - 1980)

    Fut un étudiant de Voronoï Développe une étude théorique des

    triangulation portant son nomdans les années 1930

    B. Delaunay: Sur la sphère vide, Izvestia Akademii Nauk SSSR, Otdelenie Matematicheskikh i Estestvennykh Nauk, 7:793–800, 1934

  • 13

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Problématique de l'interpolation

    À droite, l'interpolation est faite sur des échantillons éloignés (géométriquement parlant)

    Il existe donc des triangulations « meilleures » que d'autres. La triangulation de Delaunay est une triangulation parmi d'autres, elle possède des caractéristiques intéressantes (justement lorsque la triangulation sert de base pour l'interpolation )

    3

    0

    1

    5

    2

    17

    8

    80

    79

    91

    8975

    85

    90 (valeur raisonnable)

    3

    0

    1

    5

    2

    1

    7

    8

    80

    79

    91

    8975

    85

    3 (manifestement faux)

  • 14

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Caractéristiques d'une triangulation Soit P un ensemble de sommets {p0 … pn-1}, non tous colinéaires On note par S une subdivision maximale du plan telle que aucune

    nouvelle arête ne peut relier deux sommets sans intersecter une arête existante dans S.

    Une triangulation de P est précisément cette subdivision S pour laquelle les sommets de la subdivision sont ceux de P.

    Les cellules sont bien triangulaires, car on a vu que tout polygone peut être triangulé avec un nombre constant de triangles.

    Complexité de la triangulation (toute triangulation)Soit k le nombre de points de P situés sur l'enveloppe convexe de P. Alors toute triangulation de P a 2n–k–2 triangles, et 3n–k–3 arêtes.

  • 15

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Caractéristiques d'une triangulation Soit k le nombre de points de P situés sur l'enveloppe convexe de P.

    Alors toute triangulation de P a 2n–k–2 triangles, et 3n–k–3 arêtes. Preuve : Soit m le nombre de triangles. Dans le graphe plan, on a

    donc nf=m+1 faces en comptant la face infinie. Chaque triangle a trois arêtes, et la face infinie en a k. Chaque arête est incidente à exactement deux faces (y compris la face infinie)Le nombre total d'arêtes est donc na=(3m+k)/2

    La formule d'Euler doit être vérifiée (il s'agit d'un graphe plan)n–na+nf= 2

    En remplaçant na,et nf on trouve m=2n–k–2 et donc na=3n–k–3 . Bornes valables en 2D. En 3D, ces bornes sont quadratiques.

  • 16

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Caractéristiques d'une triangulation Cas 3D : bornes quadratiques

    En tout il y a 2n sommets, et (n–1)² cellules (tétraèdres)

    n sommets

    n sommets

  • 17

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Caractéristiques d'une triangulation Soit T la triangulation, supposons qu'elle est formée de m triangles

    Considérons les 3m angles aux sommets des triangles de T classés par ordre croissant.Soit 0,1,... ,3m-1 la séquence d'angles. On a ici i ≤ j pour i < j.

    On note A(T) le vecteur des angles dans cet ordre. Soit T' une autre triangulation de P (donc avec autant de triangles),

    et soit A(T') son vecteur des angles.On dit que A(T) > A(T') (plus grand lexicographiquement) si :j=j' pour j < i < 3m, et i > i'.

    Une triangulation T est dite angulairement optimale si pour toute autre triangulation T' on a A(T) ≥ A(T')

  • 18

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Théorème de Thalès (l'autre ...) Soit une ligne l intersectant un cercle en deux

    points a et b. Soient r un point intérieur au cercle, p et q deux points sur le cercle et s un point extérieurAlors

    Preuve : par la construction du lieu des points q tels que (cercle)

    Ca

    b

    s

    r

    q

    p

    l

    arbapb=aqbasb

    âqb=cte

  • 19

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Retournement d'arête Considérons une arête a = pipj d'une triangulation T de P. Si cette

    arête est interne , alors elle est voisine de deux triangles pipjpk et pjpipl . Si ces triangles forment un polygone convexe ; alors on peut obtenir une nouvelle triangulation T' en retournant l'arête a.

    La seule différence dans le vecteur angle est que les six angles 0 .... 6 de A(T) sont remplacés par 0' .... 6' de A(T').

    On appelle a = pipj une arête illégale si En d'autre termes, une arête est illégale si on peut améliorer l'angle

    minimal en effectuant un retournement d'arête.

    pi

    pjpk

    pl

    a1

    2 3

    4

    5

    6pi

    pjpk

    pl

    a'1'

    2'3'

    4'

    5'

    6'

    mini≤i≤6

    i mini≤i≤6

    i '

  • 20

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Retournement d'arête. Soit T une triangulation avec une arête illégale a. Soit T' la

    triangulation obtenue en retournant l'arête a. Alors A(T') ≥ A(T) En fait il n'est pas nécessaire de calculer tous les 12 angles pour

    vérifier qu'une arête est illégale, grâce au second théorème de Thalès. Soit une arête pipj incidente aux triangles pipjpk et pipjpl , et C le cercle passant par pipjpk. L'arête pipj est illégale si pl est à l'intérieur du cercle C. De plus, si pi, pj , pk et pl forment un quadrilatère convexe, et ne sont pas situés sur un même cercle, alors seulement une des deux arêtes pipj ou pkpl est illégale.

    pi

    pjpk

    pl

    a

    C

  • 21

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Triangulation légale C'est une triangulation pour laquelle toutes les arêtes sont légales. L'algorithme pour obtenir une telle triangulation légale à partir de

    n'importe quelle triangulation est le suivant :

    Cette triangulation existe car il est toujours possible d'inverser une arête non légale pour la rendre légale (et améliorer A(T) au passage). Chaque inversion d'arête améliore A(T) ; donc on n'obtient jamais deux fois la même triangulation (pas de cycles), et le nombre de triangulations possibles, bien que très élevé , est fini.

    TriangulationLegale(T)En entrée : une triangulation quelconque T de PEn sortie : une triangulation légale de P { Tant que T contient une arête illégale pipj { Soit pipjpk et pjpipl les deux triangles adjacents à pipj supprimer pipj et ajouter pkpl } Renvoyer T.}

  • 22

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Graphe de Delaunay Soit G le graphe dual du diagramme de Voronoï Vor(P)

    Les sommets de G sont les cellules de Vor(P) ; les cellules de G sont les sommets de Vor(P) . Un arc relie deux sommets de G si les deux cellules correspondantes partagent une arête de Vor(P).

    Soit DG le graphe de Delaunay, soit G pour lequel la position des sommets est fixée par la position des points de P. Les arêtes sont des segments de droite reliant ces points.

    G

    Vor(P)

    DG

    Vor(P)

  • 23

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Propriétés du graphe de Delaunay Si P est un ensemble de points du plan, alors il s'agit d'un graphe

    plan – i.e. aucune des arêtes n'en intersecte une autre.Preuve : à partir des propriétés des sommets et des arêtes de Vor(P) :

    Une bissectrice des points pi et pj existe sous forme d'une arête dans Vor(P) ssi il y a un point q sur celle-ci tel que CP(q) possède pi et pj sur son pourtour mais aucun autre point de P.

    Dans le cas du graphe de Delaunay, on peut reformuler Une arête pipj fait partie de DG(P) ssi il existe un cercle passant par pi et

    pj et ne contenant aucun autre point pk de P

    Il est donc évident que deux arêtes de DG(P) nes'intersectent pas car dans le cas contraire,au moins un des points (sur 4) est situé dans le cercle passant par pipj.

    q

    CP(q)

    Vor(P)

    pi

    pj

  • 24

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Propriétés du graphe de DelaunayReformulation des propriétés de Vor(P)

    Trois points pi, pj, pk de P sont sommets d'une même cellule de DG(P) si le cercle passant par pi,pj,pk ne contient aucun autre point de P

    Deux points pi,pj de P forment une arête de DG(P) si et seulement si il existe un cercle passant par pi et pj tel que son intérieur ne contient pas d'autre point de P

    Ceci implique le critère de Delaunay (sous réserve de la généralité des positions des pi) :

    T est une triangulation de Delaunay de P ssi le cercle circonscrit de tout triangle de T ne contient aucun autre point de P en son intérieur.

  • 25

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Propriétés du graphe de Delaunay Question des configurations non générales de pi (k points

    cocycliques) Un sommet du DDV est de valence k Le graphe de Delaunay contient des faces à k cotés (convexes!). On peut trianguler ces cellules arbitrairement (tous les points étant

    cocycliques, tous les triangles créés respecteront le critère de Delaunay)

    En définitive, on appelle triangulation de Delaunay toute triangulation vérifiant le critère de Delaunay (dit de la sphère vide)- celle ci n'est pas nécessairement unique.

    Vor(P)

    s

  • 26

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Propriétés de la triangulation de Delaunay Une triangulation T de P est légale si et seulement si c'est une

    triangulation de DelaunayPreuve : il est évident qu'une triangulation de Delaunay est légale (cf p 20). Toute triangulation légale est elle de Delaunay ?

    Oui - preuve par contradictionSupposons que T soit une triangulation légale, mais non Delaunay. Alors elle contient un triangle pipjpk dont le cercle circonscrit contient un autre point pl de la triangulation. On choisit ici le triangle et le point tels que l'angle est maximal.Soit e l'arrête telle que plpjpi n'intersecte pas pipjpk, et elle appartient à T, donc elle est légale. pm n'est donc pas dans le cercle circonscrit à pipjpk .Le cercle circonscrit à pmpjpi contient pl car il contient l'arc du cercle circonscrit à pipjpk situé du même côté de e que pl. Posons que pipm soit l'arête a telle que pmpjpi n'intersecte pas plpmpi. Alors par le second théorème de Thalès. Ceci contredit le choix de pl, donc pl n'existe pas : nécessairement la triangulation est de Delaunay.

    pl

    pj

    pk pi

    pm

    e

    a p̂ i p l pm> p̂i p l p j

    p̂ i p l p j

  • 27

    Géométrie AlgorithmiqueTriangulation de Delaunay

    Propriétés de la triangulation de Delaunay

    Une triangulation de Delaunay de P est angulairement optimale , i.e. elle maximise l'angle minimum parmi toutes les triangulations de P . Toute triangulation angulairement optimale de P est une triangulation de Delaunay de P.