Arrangements Enveloppes inférieures
Monique Teillaud
novembre 2008
Plan
Arrangements : Définition - Complexité
Enveloppes inférieures : Définition - Complexité Algorithmes
incrémental - arrangements balayage - arrangements
division-fusion - enveloppes inférieures
Part I
Arrangements : Définition - Complexité
Arrangement
Partition du planR2en - faces
- arêtes - sommets
induite par unensemble de courbes.
Arrangement
Partition du planR2en - faces
- arêtes - sommets
induite par unensemble de courbes.
sommets
faces
arˆetes
Arrangement
Partition du planR2en - faces
- arêtes - sommets
induite par unensemble de courbes.
Partition de l’espaceRd en -k-cellules,k =0, . . . ,d
induite par unensemble d’hypersurfaces.
Arrangement d’hyperplans
•ndroites dansR2:
Les droites se coupent 2 à 2 n(n−1)2 sommets Chaque droite est découpée ennarêtes n2arêtes
Relation d’Euler . . . faces
Taille de l’arrangementO(n2).
Arrangement d’hyperplans
•ndroites dansR2:
Les droites se coupent 2 à 2 n(n−1)2 sommets Chaque droite est découpée ennarêtes n2arêtes
Relation d’Euler . . . faces
Taille de l’arrangementO(n2).
•nhyperplans dansRd : Taille de l’arrangementO(nd).
ArrangementsimpleΘ(nd).
d hyperplans se coupent en un point, l’intersection ded+1 hyperplans est vide.
•Taille d’une cellule : Θ(nbd/2c).
Arrangement d’arcs
•narcs de courbes dansR2.
Hypothèses :
- courbes monotones enx,
- 2 courbes se coupent en au plusspoints.
sn(n−1)2 sommets (s+1)n(n−1)arêtes
(relation d’Euler) . . . faces
TailleΘ(n2).
Théorème de la zone
Arrangement de droites
Taille de la zone :O(n).
Théorème de la zone
Arrangement d’hyperplans
Zone d’un hyperplan = ensemble des cellules coupées par l’hyperplan.
Taille de la zone :O(nd−1).
Théorème de la zone - Démonstration
plancher murs
plafond
plancher
1 arête par face
ciel
2 arêtes par face murs
?
Théorème de la zone - Démonstration
droitecontenant un mur gauche
mur gauche le plus à gauche sur ladroite
⇒ murs
2n taille de la zone≤5n=O(n)
Part II
Enveloppes inférieures : Définition -
Complexité
Enveloppe inférieure
Minimum denfonctionsR→R
Enveloppe inférieure
V
B B
R R
V
N
suite de lettresRVBNRVB
Séquences de Davenport Schinzel
Alphabet ànlettres
Séquence de Davenport Schinzel d’ordres= mot tq.
2 lettres consécutives sont6=
pas de sous suiteabababde longueurs+2 Uneséquencede Davenport Schinzel
est une séquence de DS d’ordre 5
longueur ? λs(n)
Séquences de Davenport Schinzel d’ordre 1
λ1(n) =n
évident : abcdefghijkl
Séquences de Davenport Schinzel d’ordre 2
λ2(n) =2n−1
par récurrence S=aS0
sia6∈S0 |S| ≤1+λ2(n−1) =2n−2 sia∈S0 S=aS1aS2,a6∈S1
S1utilisek lettres
|S| ≤1+λ2(k) +λ2(n−k) =2n−1 abacadaeafagahaiaja
Séquences de Davenport Schinzel d’ordre 2
λ2(n) =2n−1
par récurrence S=aS0
sia6∈S0 |S| ≤1+λ2(n−1) =2n−2 sia∈S0 S=aS1aS2,a6∈S1
S1utilisek lettres
|S| ≤1+λ2(k) +λ2(n−k) =2n−1 abacadaeafagahaiaja
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n))
α= pseudo-inverse de la fonction d’Ackermann
Fonction d’Ackermann
1 2 2 2 2
2 2 2 2
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Fonction d’Ackermann
1 2 2 2 2
2 4
3 6
4 8
n 2n
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Fonction d’Ackermann
1 2 2 2 2
2 4 4
3 6 8
4 8 16
n 2n 2n
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Fonction d’Ackermann
1 2 2 2 2
2 4 4 4
3 6 8 16
4 8 16 65536 n 2n 2n 22··
2
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Fonction d’Ackermann
1 2 2 2 2
2 4 4 4 4
3 6 8 16 65536
4 8 16 65536 22··
2
(h=65536) n 2n 2n 22··
2
(h =n)
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Fonction d’Ackermann
1 2 2 2 2
2 4 4 4 4
3 6 8 16 65536
4 8 16 65536 22··
2
(h=65536) n 2n 2n 22··
2
(h =n) - - -
α(n)= inverse de la diagonaleA(n,n) α(n)≤5
A(p,1) =2 A(1,n) =2n A(p,n) =
A(p−1,A(p,n−1))
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n)) =O(nlogn)
Mséquence maximale avecνafois la lettrea M=. . .a. . .a. . .a. . .a. . .a. . .
M=. . .6a. . .6a. . .6a. . .6a. . .6a. . . on enlève lesa doublons ?
. . .b6ab. . .6a. . .6a. . .6a. . .6a. . .
. . .6a. . .d6ad. . .6a. . .6a. . .6a. . .impossible : adadalongueur 5
|M| ≤νa+2+λ3(n−1)
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n)) =O(nlogn)
Mséquence maximale avecνafois la lettrea M=. . .a. . .a. . .a. . .a. . .a. . .
M=. . .6a. . .6a. . .6a. . .6a. . .6a. . . on enlève lesa doublons ?
. . .b6ab. . .6a. . .6a. . .6a. . .6a. . .
. . .6a. . .d6ad. . .6a. . .6a. . .6a. . .impossible : adadalongueur 5
|M| ≤νa+2+λ3(n−1)
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n)) =O(nlogn)
Mséquence maximale avecνafois la lettrea M=. . .a. . .a. . .a. . .a. . .a. . .
M=. . .6a. . .6a. . .6a. . .6a. . .6a. . . on enlève lesa
doublons ?
. . .b6ab. . .6a. . .6a. . .6a. . .6a. . .
. . .6a. . .d6ad. . .6a. . .6a. . .6a. . .impossible : adadalongueur 5
|M| ≤νa+2+λ3(n−1)
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n)) =O(nlogn)
Mséquence maximale avecνafois la lettrea M=. . .a. . .a. . .a. . .a. . .a. . .
M=. . .6a. . .6a. . .6a. . .6a. . .6a. . . on enlève lesa doublons ?
. . .b6ab. . .6a. . .6a. . .6a. . .6a. . .
. . .6a. . .d6ad. . .6a. . .6a. . .6a. . .impossible : adadalongueur 5
|M| ≤νa+2+λ3(n−1)
Séquences de Davenport Schinzel d’ordre 3
λ3(n) = Θ(nα(n)) =O(nlogn)
Mséquence maximale avecνafois la lettrea M=. . .a. . .a. . .a. . .a. . .a. . .
M=. . .6a. . .6a. . .6a. . .6a. . .6a. . . on enlève lesa doublons ?
. . .b6ab. . .6a. . .6a. . .6a. . .6a. . .
. . .6a. . .d6ad. . .6a. . .6a. . .6a. . .impossible : adadalongueur 5
|M| ≤νa+2+λ3(n−1)
Séquences de Davenport Schinzel d’ordre 3
|M| ≤ νa+2+λ3(n−1)
|M| ≤ νb+2+λ3(n−1)
. . . .
n|M| ≤ |M|+2n+nλ3(n−1)
(n−1)λ3(n) ≤ 2n+nλ3(n−1)
λ3(n)
n ≤ n−12 + λ3n−1(n−1)
≤ n−12 + n−22 +. . .'2 logn
Séquences de Davenport Schinzel d’ordre 3
|M| ≤ νa+2+λ3(n−1)
|M| ≤ νb+2+λ3(n−1)
. . . .
n|M| ≤ |M|+2n+nλ3(n−1) (n−1)λ3(n) ≤ 2n+nλ3(n−1)
λ3(n)
n ≤ n−12 + λ3n−1(n−1)
≤ n−12 + n−22 +. . .'2 logn
Séquences de Davenport Schinzel d’ordre 3
|M| ≤ νa+2+λ3(n−1)
|M| ≤ νb+2+λ3(n−1)
. . . .
n|M| ≤ |M|+2n+nλ3(n−1) (n−1)λ3(n) ≤ 2n+nλ3(n−1)
λ3(n)
n ≤ n−12 + λ3n−1(n−1)
≤ n−12 + n−22 +. . .'2 logn
Séquences de Davenport Schinzel d’ordre 3
|M| ≤ νa+2+λ3(n−1)
|M| ≤ νb+2+λ3(n−1)
. . . .
n|M| ≤ |M|+2n+nλ3(n−1) (n−1)λ3(n) ≤ 2n+nλ3(n−1)
λ3(n)
n ≤ n−12 + λ3n−1(n−1)
≤ n−12 + n−22 +. . .'2 logn
Séquences de Davenport Schinzel d’ordre s
λs(n) =n2O(α(n))
Enveloppe inférieure
V
B B
R R
V
N
suite de lettres RVBNRVB
Enveloppe inférieure
B B
R R
au plusspoints d’intersection
⇒séquenceRBRBde longueur<s+2
Enveloppe inférieure
B B
R R
au plusspoints d’intersection
⇒séquence de Davenport Schinzel d’ordres
Enveloppe inférieure
Enveloppe inférieure de courbes se coupant 2 à 2 en au plusspoints
tailleλs(n)
Hyperplans
ndroites dansR2
Taille de l’enveloppe inférieureλ1(n) =n nhyperplans dansRd.
Taille de l’enveloppe inférieureΘ(nbd/2c)
Arcs de courbes
ex: segments de droites
Arcs de courbes
prolonger les segments ne modifie pas la séquence
Arcs de courbes
deux segments : au plus 1 point d’intersection
enveloppe inférieure de segments tailleλ3(n) =nα(n)
Arcs de courbes
deux segments étendus : au plus 3 points d’intersection
enveloppe inférieure de segments tailleλ3(n) =nα(n)
Arcs de courbes
deux segments étendus : au plus 3 points d’intersection enveloppe inférieure de segments
tailleλ3(n) =nα(n)
Arcs de courbes
Arcs se coupant en au pluss points enveloppe inférieure
tailleλs+2(n)
Part III
Algorithmes
Algorithme incrémental arrangements de droites
Stockage
4 pointeurs sur les sommets adjacents Sommet = deux droites
coordonnées(x,y)
Algorithme incrémental arrangements de droites
Ajout d’une droite
Algorithme incrémental arrangements de droites
Ajout d’une droite
Tri par pentes
droite immédiatement supérieure
Algorithme incrémental arrangements de droites
Ajout d’une droite
Parcours de la face
→
1er sommet
Algorithme incrémental arrangements de droites
Ajout d’une droite
Parcours de la face
→
2ème sommet
Algorithme incrémental arrangements de droites
Ajout d’une droite
Parcours de la face
→
3ème sommet etc
Complexité = taille de la zone
Algorithme incrémental arrangements
nhyperplans deRd, calcul enΘ(nd).
narcs de courbes (hypothèses) dansR2, calcul en O(nλs+2(n)).
Algorithme incrémental randomisé arrangements
Analyse en moyenne sur l’ordre d’insertiondes données.
Pas d’hypothèse sur la distribution des données.
narcs (cf hypothèses) dansR2. Calcul de l’arrangement
en temps optimalO(nlogn+k)en moyenne, espaceO(n+k),
oùk= nb de points d’intersection.
Algorithme de balayage arrangements
transparents BO
narcs (cf hypothèses) dansR2. Calcul
tempsO((n+k)logn), espaceO(n+k),
oùk= nb de points d’intersection.
Division-fusion enveloppe inférieure
Division
quelconque, équilibrée Fusion
balayage
Division-fusion enveloppe inférieure
Division
Appel récursif
Division-fusion enveloppe inférieure
Division
Appel récursif
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage 3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Fusion par balayage
3 possibilités
Division-fusion enveloppe inférieure
Analyse
Prochain événement :O(1)
nombre d’événements•:≤nrα(nr) (taille env. inf.) nombre d’événements•:≤nbα(nb)
nombre d’événements•:≤nα(n) Fusion :O(nα(n))
Division-fusion enveloppe inférieure
Analyse
Prochain événement :O(1)
nombre d’événements•:≤nrα(nr) (taille env. inf.)
nombre d’événements•:≤nbα(nb) nombre d’événements•:≤nα(n) Fusion :O(nα(n))
Division-fusion enveloppe inférieure
Analyse
Prochain événement :O(1)
nombre d’événements•:≤nrα(nr) (taille env. inf.) nombre d’événements•:≤nbα(nb)
nombre d’événements•:≤nα(n) Fusion :O(nα(n))
Division-fusion enveloppe inférieure
Analyse
Prochain événement :O(1)
nombre d’événements•:≤nrα(nr) (taille env. inf.) nombre d’événements•:≤nbα(nb)
nombre d’événements•:≤nα(n)
Fusion :O(nα(n))
Division-fusion enveloppe inférieure
Analyse
Prochain événement :O(1)
nombre d’événements•:≤nrα(nr) (taille env. inf.) nombre d’événements•:≤nbα(nb)
nombre d’événements•:≤nα(n) Fusion :O(nα(n))
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n))
nα(n) +2f n2
nα(n) +2 n2α(n) +2 n4α(n) +2f n8 α(n) n+2n2+2.2n4 +. . .
log2ntermes f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n)) nα(n) +2f n2 nα(n) +2 n2α n2
+2f n4
nα(n) +2 n2α(n) +2 n4α(n) +2f n8 α(n) n+2n2+2.2n4 +. . .
log2ntermes f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n)) nα(n) +2f n2 nα(n) +2
n 2α
n 62
+2f n4
nα(n) +2 n2α(n) +2 n4α(n) +2f n8 α(n) n+2n2+2.2n4 +. . .
log2ntermes f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n)) nα(n) +2f n2 nα(n) +2
n 2α
n 62
+2f n4
nα(n) +2 n2α(n) +2 n4α(n) +2f n8
α(n) n+2n2+2.2n4 +. . .
log2ntermes f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n)) nα(n) +2f n2 nα(n) +2
n 2α
n 62
+2f n4
nα(n) +2 n2α(n) +2 n4α(n) +2f n8 α(n) n+2n2+2.2n4 +. . .
log2ntermes
f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Analyse Division-Fusion
f(n) =2f(n2)+O(nα(n)) nα(n) +2f n2 nα(n) +2
n 2α
n 62
+2f n4
nα(n) +2 n2α(n) +2 n4α(n) +2f n8 α(n) n+2n2+2.2n4 +. . .
log2ntermes f(n) =O(nα(n)logn)
Division-fusion enveloppe inférieure
Arcs de courbes
taille de l’enveloppe inférieureλs+2(n) calcul enλs+2(n)logn
(améliorable enλs+1(n)logn)