• 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

Concepts pour la manipulation Op´ erateurs de base Op´ erateurs d´ eriv´ es Langage Les arbres alg´ ebriques FT

Elles ne reconnaissent pas la distinction cruciale entr pr´ edicats et noms et ne nous permettent pas de formaliser des inf´ erences telles que “Marie est mon amie ; donc j’ai

Mots cl´ es : Courbes alg´ ebriques munies d’une action d’un groupe fini, th´ eor` eme de Riemann-Roch ´ equivariant, K-th´ eorie ´ equivariante, groupe de diviseurs ` a

La validation exp´ erimentale d´ emontre l’aptitude des es- timateurs alg´ ebriques ` a reconstruire avec pr´ ecision, ` a la fois les ´ etats dynamiques du v´ ehicule (comme

Une place importante est occup´ ee par la th´ eorie de Hodge, outil pr´ ecieux pour ´ etudier la topologie des vari´ et´ es alg´ ebriques complexes, mais mes principales

Il existe alors des crit`eres (alg´ebriques ou graphiques) permettant de d´eterminer la stabilit´e d’un syst`eme en boucle ferm´ee ` a partir de l’´etude en fr´equence en

Invariants, cohomologie et repr´ esentations fonctorielles des groupes alg´ ebriques.. Antoine

On peut consid´ erer que l’histoire des ´ equations alg´ ebriques s’arrˆ ete l` a; ce qui continue, c’est le d´ eveloppement de la th´ eorie de Galois, qui est