• Aucun résultat trouvé

De la g´eom´etrie algorithmique au calcul g´eom´etrique l’exemple de la triangulation de Delaunay

N/A
N/A
Protected

Academic year: 2022

Partager "De la g´eom´etrie algorithmique au calcul g´eom´etrique l’exemple de la triangulation de Delaunay"

Copied!
198
0
0

Texte intégral

(1)

De la g´eom´etrie algorithmique au calcul g´eom´etrique

l’exemple

de la triangulation de Delaunay

Les grands classiques

(2)

G´eom´etrie algorithmique Probl`eme g´eom´etrique Analyse des performances

Borne inf´erieure Borne sup´erieure

Complexit´e asymptotique Analyse dans le cas le pire Analyse en moyenne

(3)

Borne inf´erieure pour

la triangulation de Delaunay

(4)

Ω (f(n))

r´esolvant toutes

les instances du probl`eme avec moins de f(n) op´erations

d’algorithme Il n’existe pas

(5)

Borne inf´erieure pour le tri

(6)

Borne inf´erieure pour le tri

Trier ⇐⇒ trouver une permutation

(7)

Borne inf´erieure pour le tri

Trier ⇐⇒ trouver une permutation

Ordre 6= =⇒ ex´ecution 6=

(8)

Borne inf´erieure pour le tri

Arbre des executions

d´ecision

resultat (permutation)

(9)

Borne inf´erieure pour le tri

Arbre des executions Arbre binaire

n! feuilles

hauteur ≥ log2 n! ' n log n

(10)

Borne inf´erieure pour le tri

Ω(n log n)

(11)

Borne inf´erieure pour Delaunay

Delaunay sert `a trier

(12)

Borne inf´erieure pour Delaunay

Delaunay sert `a trier

Prendre un probl`eme de tri

Supposer que l’on sait faire Delaunay Utiliser Delaunay pour trier

(13)

Borne inf´erieure pour Delaunay

x1, x2, . . . , xn `a trier

xi

(14)

Borne inf´erieure pour Delaunay

x1, x2, . . . , xn `a trier

xi

(xi, x2i)

(x1, x21), . . . ,(xn, x2n) n points

(15)

Borne inf´erieure pour Delaunay

x1, x2, . . . , xn `a trier

xi

(x1, x21), . . . ,(xn, x2n) n points

Delaunay

ordre en x

(16)

Borne inf´erieure pour Delaunay

x1, x2, . . . , xn `a trier

xi

(x1, x21), . . . ,(xn, x2n) n points

Delaunay

ordre en x

O(n)

O(n) f(n)

O(n) + f(n) ∈ O(n log n)

(17)

Borne inf´erieure pour Delaunay

x1, x2, . . . , xn `a trier

xi Ω(n log n)

(18)

Algorithmes optimaux pour la triangulation de Delaunay

(19)

Produire des algorithmes optimaux

Complexit´e asymptotique Dans le cas le pire

Algorithme de balayage Division-fusion

(20)

Algorithmes optimaux pour la triangulation de Delaunay

Balayage

(21)

Couper le probl`eme 2D par un objet 1D D´eplacer l’objet

Voronoi [Fortune]

Pr´esentation duale sur Delaunay Balayage

(22)
(23)
(24)
(25)
(26)
(27)
(28)

Dessiner une arˆete quand elle est sure

(29)
(30)

Ev`enements cercle´

(31)

Front de balayage

(32)

q p

r

t

Ev`enement cercle´

(33)

q p

r

t

Ev`enement cercle´

(34)

q p

r

t

Ev`enement cercle´

(35)

q p

r

t

Ev`enement cercle´

(36)

q p

r

t

Ev`enement cercle´

Triangulation Evenements´

Front

+ 1 triangle +1 arˆete

- 1 cercle -2 cercles ?

2 arˆetes 1 arˆete +2 cercles ?

(37)

q p v

u

Ev`enement point´

(38)

q p v

u

Ev`enement point´

(39)

q p v

u

Ev`enement point´

(40)

q p v

u

Ev`enement point´

(41)

q p v

u

Ev`enement point´

Triangulation Evenements´

Front

+ 1 sommet +1 arˆete

- 1 point -1 cercle1 ?

+ 2 arˆetes +2 cercles ?

(42)

Front de balayage

(43)

Front de balayage

(44)

Front de balayage Localisation

(45)

Front de balayage

(46)

Algorithme de balayage Complexit´e

Triangulation Front

O(n) (taille) O(n) (taille)

O(n) (taille)

O(logn) insertion, suppression, requˆete

O(logn) insertion, suppression, requˆete

O(n log n) Ev`enements´

(47)

Pr´edicats

p1 q1

r1 = p2

q2

r2 6 points

polynˆome de degr´e 24

Pr´edicat : cercle le plus `a droite

(48)

Pr´edicats

p1

q p2

3 points

polynˆome de degr´e ??

Pr´edicat : q dessus/dessous ?

(49)

Algorithmes optimaux pour la triangulation de Delaunay

Dualit´e

(50)

Rappel

Π : x2 + y2 = z

(51)

Rappel

p = (xp, yp) p? = (xp, yp, x2p + yp2)

(52)

Rappel

C : x2 + y2 − 2ax − 2by + c = 0 C : z − 2ax − 2by + c = 0

(53)

Rappel

p ∈ C

p? au dessous de C

(54)

Rappel

p 6∈ C

p? au dessus de C

(55)

Rappel

p ∈ ∂C p? ∈ C

(56)

Rappel

Pr´edicat d’orientation 3D

Pr´edicat de cocyclicit´e

(57)

Delaunay et enveloppe convexe

(58)

Complexit´e

Retour sur la bascule de diagonales

(59)

Complexit´e

pas localement Delaunay Retour sur la bascule de diagonales

(60)

Complexit´e

pas localement Delaunay pas convexe

Retour sur la bascule de diagonales

(61)

Complexit´e

pas convexe

Flip

Retour sur la bascule de diagonales

(62)

Complexit´e

pas convexe

Flip

on colle un t´etrah`edre Retour sur la bascule de diagonales

(63)

Complexit´e

pas convexe

Flip

Retour sur la bascule de diagonales

(64)

Complexit´e

pas convexe

Flip

Retour sur la bascule de diagonales

(65)

Complexit´e

pas convexe

Flip

Retour sur la bascule de diagonales

(66)

Complexit´e

Flip

on colle un t´etrah`edre Retour sur la bascule de diagonales

(67)

Complexit´e

Flip

on colle un t´etrah`edre

Une arˆete bascul´ee n’est jamais reconstruite

(les nouvelles arˆetes sont toujours dessous)

Retour sur la bascule de diagonales

(68)

Complexit´e

Une arˆete bascul´ee n’est jamais reconstruite

(les nouvelles arˆetes sont toujours dessous)

Algorithme en O(n2)

Retour sur la bascule de diagonales

(69)

Algorithmes optimaux pour la triangulation de Delaunay

Division-Fusion

(70)

Division-Fusion

Technique classique exemple: tri Probl`eme de taille n

2 sous-probl`emes de taille n2 r´esolution r´ecursive

fusion

(71)

Division-Fusion

O(n)

Probl`eme de taille n

r´esolution r´ecursive fusion

2 sous-probl`emes de taille n2

O(n)

2 · f(n2) f(n)

(72)

Division-Fusion

O(n)

Probl`eme de taille n

r´esolution r´ecursive fusion

2 sous-probl`emes de taille n2

O(n)

2 · f(n2) f(n)

f(n) = O(n) + 2f(n2)

(73)

Division-Fusion

f(n) = O(n) + 2f(n2) f(n) =

log2 n f(n) = O(n log n)

n + 2f(n2)

n + 2 n2 + 2f(n4)!

n + 2 n2 + 2 n4 + 2f(n8)!!

n + 2n2 + 2.2n4 + . . .

(74)

Division

O(n)

Fusion facile !

Partition ´equilibr´ee

(75)

Division

O(n)

Fusion facile !

Partition ´equilibr´ee

Partition par une droite

Droite m´ediane M´edian lin´eaire ? Pr´etraitement

(76)

Division

(77)

Division

Tri en x

(78)

Division

Tri en x

tous les m´edians

(79)
(80)

Triangles monocolores `a ´eliminer

(81)

Triangles bicolores `a construire

(82)
(83)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(84)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(85)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(86)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(87)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(88)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(89)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(90)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(91)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(92)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(93)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(94)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(95)

Construction des arˆetes bicolores du haut vers le bas

suivante ?

(96)

p

(97)

p r b

(98)

p rnext

premier rouge rencontr´e par le faisceau de cercles

(99)

p

bnext

premier bleu rencontr´e par le faisceau de cercles

(100)

p

On garde le meilleur des deux

(101)

p r b

premier rouge rencontr´e par le faisceau de cercles

(102)

p r b

premier rouge rencontr´e par le faisceau de cercles

r1 r2

r2 ∈ Cercle(b, r, r1)

(103)

p r b

premier rouge rencontr´e par le faisceau de cercles

r1 r2

r3

r3 ∈ Cercle(b, r, r2)

(104)

p r r4 b

premier rouge rencontr´e par le faisceau de cercles

r1 r2

r3

r4 ∈ Cercle(b, r, r3)

(105)

p r r4 b

premier rouge rencontr´e par le faisceau de cercles

r1 r2

r3 r5

r5 6∈ Cercle(b, r, r4)

(106)

p r r4 b

premier rouge rencontr´e par le faisceau de cercles

r1 r2

r3 r5

= rnext

r5 6∈ Cercle(b, r, r4)

∀rouge, rouge 6∈ Cercle(b, r, r4)

(107)

p r b

premier bleu rencontr´e par le faisceau de cercles

rnext

(108)

p r b

premier bleu rencontr´e par le faisceau de cercles

b2 b2 ∈ Cercle(b, r, b1)

rnext

b1

(109)

p r b

premier bleu rencontr´e par le faisceau de cercles

b2 b3

b3 6∈ Cercle(b, r, b2)

rnext

b1

(110)

p r b

premier bleu rencontr´e par le faisceau de cercles

b2 b3 bnext =

b3 6∈ Cercle(b, r, b2)

∀bleu, bleu 6∈ Cercle(b, r, b2) rnext

b1

(111)

p r b

bnext

rnext

(112)

p r b

bnext

rnext pas de points

(113)

p r b

bnext

rnext pas de rouges

(114)

p r b

bnext

rnext pas de bleus

(115)

p r b

bnext

rnext pas de rougespas de pointspas de bleus

(116)

p r b

bnext

rnext

(117)

p r b

(118)

p r

b rnext

(119)

p r b

bnext

(120)

p r b

(121)

r p b

(122)

rnext r p b

(123)

r p b

bnext

(124)

r p b

(125)

r p b

(126)

rnext r

p b

(127)

r p b

(128)

r p b

bnext

(129)

r p b

(130)
(131)
(132)
(133)
(134)

Complexit´e

(135)

Complexit´e

A chaque ´etape de la recherche de rnext

(136)

Complexit´e

A chaque ´etape de la recherche de rnext

On efface une arˆete rouge

(137)

Complexit´e

A chaque ´etape de la recherche de rnext

On efface une arˆete rouge

A chaque ´etape de la recherche de bnext

(138)

Complexit´e

A chaque ´etape de la recherche de rnext

On efface une arˆete rouge

A chaque ´etape de la recherche de bnext

On efface une arˆete bleue

(139)

Complexit´e

A chaque ´etape de la recherche de rnext

On efface une arˆete rouge

A chaque ´etape de la recherche de bnext

On efface une arˆete bleue

Choisir entre rnext et bnext

(140)

Complexit´e

A chaque ´etape de la recherche de rnext

On efface une arˆete rouge

A chaque ´etape de la recherche de bnext

On efface une arˆete bleue

Choisir entre rnext et bnext

On trace une arˆete noire

(141)

Complexit´e

Complexit´e ≤

+] arˆetes bleues +] arˆetes noires ] arˆetes rouges

(142)

Complexit´e

Complexit´e ≤

+] arˆetes bleues +] arˆetes noires ] arˆetes rouges

≤ 3n + 3n = O(n) Division-Fusion =⇒ O(n log n)

(143)

Division

(144)

Division

(145)

Division

(146)

Division

(147)

Fusion Division

(148)

Fusion Division

(149)

Fusion Division

(150)

Fusion Division

(151)

Fusion Division

(152)

Division

(153)

Division

(154)

Division

(155)

Division

(156)

Fusion Division

(157)

Fusion Division

(158)

Fusion Division

(159)

Fusion Division

(160)

Fusion Division

(161)

Complexit´e

(162)

Complexit´e

Fusion

(163)

Complexit´e

Fusion O(n)

(164)

Complexit´e

Fusion O(n)

Division ?

(165)

Complexit´e

Fusion O(n)

Division ? m´edian ?

(166)

Complexit´e

Fusion O(n)

Division ? m´edian ? plus difficile

(167)

Complexit´e

Fusion O(n)

Division ? m´edian ? O(n)

(168)

Complexit´e

Fusion O(n)

Division ? m´edian ? O(n)

Points al´eatoires O(√

n)

O(1)

(169)

f(n) = O(√

n) + 2f(n2) f(n) =

log2 n

f(n) = O(n)

n + 2f(n2)

n + 2rn2 + f(n4)

n + 2rn2 + 2 rn4 + f(n8)

n + 2rn2 + . . . + n2

2 + n 1

f(n) ≤ n + 212n + . . . + 22in + . . .

(170)

M´edian lin´eaire

(171)

M´edian lin´eaire

n nombres

(172)

M´edian lin´eaire des paquets de 5

(173)

M´edian lin´eaire des paquets de 5

(174)

M´edian lin´eaire des paquets de 5

(175)

M´edian lin´eaire des paquets de 5

(176)

M´edian lin´eaire des paquets de 5

(177)

M´edian lin´eaire des paquets de 5

(178)

M´edian lin´eaire des paquets de 5

(179)

M´edian lin´eaire des paquets de 5

(180)

M´edian lin´eaire m´edian de 5

(181)

M´edian lin´eaire m´edian de 5

(182)

M´edian lin´eaire m´edian de 5

(183)

M´edian lin´eaire m´edian de 5

(184)

M´edian lin´eaire m´edian de 5

(185)

M´edian lin´eaire m´edian de n5

(186)

M´edian lin´eaire m´edian de n5

(187)

M´edian lin´eaire

(188)

M´edian lin´eaire

plus petits

(189)

M´edian lin´eaire

plus petits plus grands

(190)

M´edian lin´eaire

plus petits plus grands

entre 103 et 107

(191)

M´edian lin´eaire m´edian de n5

(192)

M´edian lin´eaire

(193)

M´edian lin´eaire plus petits

(194)

M´edian lin´eaire plus petits

plus grands

(195)

f(n) = O(n) + f(n5) + f(7n10) f(n) =

f(n) = O(n) n + f(n5) + f(7n10)

n + 109 n +109 2n +f(. . .) + f(. . .) + . . .

f(n) ≤ 10nα

n + n5 + 7n10 +f(25n ) + f(7n50) + f(7n50) + f(49n100)

(196)

f(n) = O(n) + f(n5) + f(7n10) f(n) =

f(n) = O(n) n + f(n5) + f(7n10)

n + 109 n +109 2n +f(. . .) + f(. . .) + . . .

f(n) ≤ 10nα

n + n5 + 7n10 +f(25n ) + f(7n50) + f(7n50) + f(49n100)

α m´edian de 5 s´eparation

(197)

f(n) = O(n) + f(n5) + f(7n10) f(n) =

f(n) = O(n) n + f(n5) + f(7n10)

n + 109 n +109 2n +f(. . .) + f(. . .) + . . .

f(n) ≤ 10nα

n + n5 + 7n10 +f(25n ) + f(7n50) + f(7n50) + f(49n100)

α m´edian de 5 s´eparation

log2(5!) = 7

(198)

C’est tout pour aujourd’hui

Références

Documents relatifs

ﻥﻴﺘﻴﻵﺍ ﻥﻴﺘﺎﻫ ﻲﻓ ﻰﻨﻌﻤﻟﺍﻭ ّلﻜ ﻪﻤﻠﻌﻴ ﷲﺍ ﻥﻴﺩ ﻥﻤ ﺎﻤﻠﻋ ﻡﺘﻜ ﻥﻤ ، ﻡﻠﻌﻟﺍ ﺀﺍﻭﺴ ﻱﺫﹼﻟﺍ ﻭـﻫ لﻬﺠﻟﺍ ﺩﻀ ﻭﺃ ، ﻤ ﻭﻫ ﺎﻤﻋ لﻴﺩﺒﻟﺍ ﻡﻠﻌﻟﺍ ﺭ ﻓ ﻪـﻨﺍﻭﻟﺃ ﻑـﻠﺘﺨﻤ ﺩﺎﺴﻓ ﻥﻤ ﻊﻗﺍﻭﻟﺍ

Vos historiques publiés sont accessibles à l’ensemble des utilisateurs loggés sur Galaxy (Shared Data / Published Histories). Les historiques partagés sont

Les probl´ ematiques li´ ees ` a l’analyse de donn´ ees g´ eom´ etriques sont en plein d´ eveloppement, aussi bien pour des applications en petite dimension (maillages ou nuages

Activation of the Constitutive Androstane Receptor induces hepatic lipogenesis and regulates Pnpla3 gene expression in a LXR-independent way...

std::cout << "Sorry, needs QT..." << std::endl; return

S'il y a dégénérescence, (par exemple, en dimension 2, si 4 points de I' sont sur un même cercle), on peut, en déplaçant arbitrairement peu les points de I' se placer dans le

– cercle, centre, rayon, tangente, point de tangence, position relative d’une droite et d’un cercle, position relative de deux cercles.. Enoncer les propri´et´es du produit

Exercice 1 : Soit P un ensemble et D un ensemble non vide de parties non vides, distinctes de P tout entier, de