• Aucun résultat trouvé

Pr´edicatsetconstructionsMoniqueTeillaud Arrangements

N/A
N/A
Protected

Academic year: 2022

Partager "Pr´edicatsetconstructionsMoniqueTeillaud Arrangements"

Copied!
33
0
0

Texte intégral

(1)

Arrangements

Pr´ edicats et constructions

Monique Teillaud

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions

(2)

Balayage de segments

(3)

Bentley-Ottmann et robustesse

Connu pendant longtemps comme un algorithme

• tr`es instable en pratique,

• d’int´erˆet purement th´eorique, historique.

Impr´ecision des calculs −→ ´echec.

Utiliser des pr´edicats exacts, si possible pas de constructions.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 2

(4)

Variantes

S ensemble de n segments dans le plan R2.

• Pb1. Calculer les paires de segments de S qui se coupent.

• Pb2. Calculer l’arrangement A de S.

• Pb3. Calculer la carte des trap`ezes T de S.

Cellules de taille constante.

(5)

k = nb de points d’intersection : ≤ nb de paires qui se coupent.

nb d’arˆetes de A : ≤ n + 2k.

nb de murs de T : ≤ 2(n + k).

Tailles de A et T : O(n + k).

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 4

(6)

Probl`emes et pr´edicats

Pb1. Θ(n2) tests d’intersection

[p0p1] ∩ [p2p3] 6= ∅ Pb2. Description de A utilise

[p0p1] ∩ [p2p3] <x [p0p1] ∩ [p4p5]

Pb3. Description de T utilise

[p0p1] ∩ [p2p3] <x [p4p5] ∩ [p6p7]

(7)

Pr´ edicats et degr´ es

Pr´edicats utilis´es par B-O.

Pr´edicat1 : p0 <x p1

Pr´edicat2 : p0 <y (p1p2)

Pr´edicat2’: [p0p1] ∩ [p2p3] 6= ∅ Pr´edicat3 : p0 <x [p1p2] ∩ [p3p4]

Pr´edicat4 : [p0p1] ∩ [p2p3] <x [p0p1] ∩ [p4p5] Pr´edicat5 : [p0p1] ∩ [p2p3] <x [p4p5] ∩ [p6p7]

Les pr´edicats i, i0 sont des signes d’expressions polynomiales de degr´e i en les coordonn´ees des points pj.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 6

(8)

Pr´edicat1 : p0 <x p1

x0 < x1

degr´e 1

(9)

Pr´edicat2 : p0 <y (p1p2)

Test d’orientation.

orient(p0p1p2) =

x0 x1 x2 y0 y1 y2

1 1 1

=

x1 − x0 x2 − x0 y1 − y0 y2 − y0

degr´e 2

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 8

(10)

Pr´edicat2’: [p0p1] ∩ [p2p3] 6= ∅

Si p0 <x p2 if p3 <x p1

if orient(p0p1p2) × orient(p0p1p3) < 0 then return true

else return false else

if orient(p0p1p2) × orient(p2p3p1) > 0 then return true

else return false

sinon on ´echange [p0p1] et [p2p3].

Pr´edicat2’ 7→ Pr´edicat2.

degr´e 2

(11)

I = [pipj] ∩ [pkpl]

I = pi + (pj − pi)NI DI

o`u

NI = orient(pipkpl) DI =

xj − xi xk − xl yj − yi yk − yl

= orient(pipjpk) − orient(pipjpl)

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 10

(12)

Pr´edicat3 : p0 <x [p1p2] ∩ [p3p4]

Pr´edicat4 : [p0p1] ∩ [p2p3] <x [p0p1] ∩ [p4p5]

Pr´edicat5 : [p0p1] ∩ [p2p3] <x [p4p5] ∩ [p6p7]

Formules explicites donn´ees par les coordonn´ees des points d’intersection.

(Reste un peu de travail pour montrer que le degr´e est le bon...)

(13)

Bentley-Ottmann est de degr´e 5.

Optimal en degr´e pour calculer la carte des trap`ezes T .

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 12

(14)

Compromis : complexit´ e combinatoire/alg´ ebrique

Pb1.

Calculer les paires de segments de S qui se coupent.

Algorithme naif en Θ(n2)

• optimal en degr´e,

• optimal en complexit´e dans le cas le pire.

Borne inf´erieure Ω(nlogn + k).

Il existe des algorithmes optimaux, et en degr´e 3.

(15)

Un balayage en degr´e 3 pour Pb1.

Entre deux extr´emit´es,

l’ordre entre points d’intersection est indiff´erent.

Pr´edicat3 : p0 <x [p1p2] ∩ [p3p4] doit ˆetre exact, pas les pr´edicats de plus haut degr´e.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 14

(16)

Compromis : complexit´ e combinatoire/alg´ ebrique

Pb2.

Calculer l’arrangement A.

Algorithme simple :

• R´esoudre Pb1

• Trier les points d’intersection sur chaque segment.

O((n + k) log n), degr´e 4.

Borne inf´erieure Ω(nlogn + k).

(17)

Un balayage en degr´e 4 pour Pb2 ?

Intuition :

Entre deux intersections sur un mˆeme segment,

la pr´esence de points d’intersection d’autres segments est indiff´erente.

Pr´edicat4 : [p0p1] ∩ [p2p3] <x [p0p1] ∩ [p4p5] doit ˆetre exact, pas les pr´edicats de plus haut degr´e.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 16

(18)

Les courbes

(19)

Des petits pas

G´eom´etrie algorithmique pour les courbes et les surfaces : travaux r´ecents.

Projet europ´een ECG, 2001-2004 Effective Computational Geometry for Curves and Surfaces

Progr`es incr´ementaux : arcs de cercles, arcs de coniques, . . .

• G´en´eraliser les algorithmes,

deux courbes se coupent plus d’une fois

• Etude des pr´´ edicats/constructions encore plus cruciale, aspects alg´ebriques

• Programmation...

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 18

(20)

Arcs de cercles

Id´ee de base :

garder les donn´ees initiales pour faire les calculs, ´eviter de “cascader”.

Cercle : centre (α, β), carr´e du rayon r

C(x, y) = (x − α)2 + (y − β)2 − r = 0

α, β de degr´e 1, r de degr´e 2.

(21)

Repr´esentation des arcs

Une mˆeme repr´esentation pour les arcs en entr´ee et en sortie.

Observation : C ∩ C0 = C ∩ L,

L = axe radical de C et C0. L(x, y) = C(x, y) − C0(x, y) L(x, y) = px + qy + s

Degr´e des coefficients de L = degr´e des coefficients donn´es en entr´ee : p, q degr´e 1, s degr´e 2.

Extr´emit´e ou point d’intersection : mˆeme repr´esentation (cercle,droite).

Coordonn´ees = nombres alg´ebriques de degr´e 2.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 20

(22)

Comparaison de nombres alg´ebriques

Pr´edicat5 : [p0p1] ∩ [p2p3] <x [p4p5] ∩ [p6p7]

Cas des segments : signes d’expressions polynomiales en les donn´ees.

degr´e = degr´e des expressions polynomiales dont on ´evalue le signe.

Cas des courbes : comparaison de nombres alg´ebriques.

degr´e = degr´e des polynˆomes dont on compare les racines.

M´ethode naive : Calculer les racines, comparer.

• racines carr´ees...

• comparaison exacte, arithm´etique coˆuteuse (leda::real, core)

(23)

Deux m´ ethodes alg´ ebriques

Notations :

x

i

= L

i

∩ C

i

∈ {l

i

, r

i

}

l

1

r

1

l

2

r

2

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 22

(24)

A base de r´` esultants

l

2

l

1

t

A

2

A

t2

A

1

signe de t ?

t tq





C1(x + t, y) = 0 L1(x + t, y) = 0 C2(x, z) = 0 L2(x, z) = 0

a une solution x, y, z

• 1er ingr´edient alg´ebrique : r´esultant.

(25)

R´esultant

P(t) = P0t4 + P1t3 + P2t2 + P3t + P4

Pi polynˆomes en les donne´es αj, βj, rj, pj, qj, sj degr´es 8 `a 12

659 monˆomes...

signe d’une racine t ? Simplifications n´ecessaires...

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 24

(26)

Remarque

(mais connaitre la configuration pr´ecise n’est pas toujours n´ecessaire)

(27)

• 2`eme ingr´edient alg´ebrique : r`egle de Descartes

nombre de racines positives

=

nombre de changements de signes dans la suite P0, . . . , P4 De nouveau, des signes d’expressions polynomiales !

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 26

(28)

A base de suites de Sturm`

P0, P1 ∈ R[x]

Suite de Sturm = suite P0, P1, . . . , Pn ∈ R[x], n ≥ 1 tq

aiPi−1 = QPi + biPi+1, i = 1, . . . , n − 1,

pour Q ∈ R[x], ai, bi ∈ R, et aibi < 0.

(29)

Th´eor`eme de Tarski Hypoth`eses :

• f0, f1 ∈ R[x] premiers entre eux

• f0 sans facteurs carr´es,

• p < q ne sont pas des racines de f0.

Alors pour toute suite de Sturm P = (f0, f00f1, . . .)

VP(p) − VP(q) = X

f0(ρ)=0, p<ρ<q

sign(f1(ρ)),

o`u VP(p) : nb de variations de signes dans l’´evaluation de la suite de Sturm en p.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 28

(30)

p < q non racines de f ∈ R[x],

nombre de racines distinctes r´eelles de f dans [p, q] :

Vf,f0(p) − Vf,f0(q).

(prendre f0 = f, f1 = 1 dans le th de Tarski) Th´eor`eme de Schwartz et Sharir

f0, f1 ∈ R[x] sans facteurs carr´es, p < q non racines de f0,

Vf0,f1(p) − Vf0,f1(q) = X

f0(ρ)=0, p<ρ<q

sign(f00(ρ)f1(ρ)).

(31)

Il suffit de calculer

S(P) = sign(f2(x2)), S(P) = sign(f2(x1)) S(P) = sign(f20(x2)), S(P) = sign(f20(x1))

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 30

(32)

R´esultats des deux m´ethodes

Donnent (`a peu de choses pr`es) les mˆemes signes d’expressions polynomiales pour la comparaison des nombres alg´ebriques.

(33)

Arcs de coniques

Conique donn´ee par un polynˆome de degr´e 2 en x, y.

Arc de conique ?

Pas d’axe radical pour deux coniques, mˆeme pas de droite rationnelle passant par C ∩ C0. . .

Extr´emit´e ou point d’intersection : (conique,conique).

Coordonn´ees = nombres alg´ebriques de degr´e 4.

Comparaison : suites de Sturm plus faciles `a g´en´eraliser que r´esultants.

Petits degr´es : suites de Sturm statiques.

Grands degr´es : calcul dynamique.

Dijon - octobre 2005 Arrangements - Pr´edicats et constructions 32

Références

Documents relatifs

[r]

compter et associer une quantité à une main de comptage (1à4) consigne: compte les tigres et colle la bonne compte les tigres et colle la bonne compte les tigres et colle la bonne

consigne: trouve les cases trouve les cases trouve les cases trouve les cases ooooù ù ù ù Sambo et le tigre porte la m Sambo et le tigre porte la m Sambo et le tigre porte

consigne: donne autant de cr donne autant de cr donne autant de cr donne autant de crêêêêpes aux trois personnages de l'histoire pes aux trois personnages de l'histoire pes

consigne: repasse le titre puis essaie de l' repasse le titre puis essaie de l' repasse le titre puis essaie de l' repasse le titre puis essaie de l'éééécrire tout seul dans le

boucle d'or fait des rencontres dans la for boucle d'or fait des rencontres dans la for t, retrouve dans quel ordre.. t, retrouve dans

consigne: relie chaque couronne relie chaque couronne relie chaque couronne relie chaque couronne à à à à son ombre (avec le doigt puis avec un feutre) son ombre (avec

[r]