la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon...

57
Introduction ` a la g´ eom´ etrie algorithmique ´ Ecole Jeunes Chercheurs Informatique Math´ ematique Xavier Goaoc 19 – 23 Mars 2007

Transcript of la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon...

Page 1: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Introduction a

la geometrie algorithmique

Ecole Jeunes Chercheurs Informatique Mathematique

Xavier Goaoc

19 – 23 Mars 2007

Page 2: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Geometrie algorithmique

Traitement algorithmique des problemes de nature geometrique.

Exemples de problemes :

Demenageur de piano

Ressource la plus proche

Reconstruction de surface

?

Page 3: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Objectifs

Determiner la complexite des problemes.

Mettre au point des solutions effectives.

Pour un modele de calcul (trad. Real RAM).

Complexite asymptotique dans le cas le pire.

Problemes souvent polynomiaux ⇒ ordre de grandeur precis ?

Sur des machines a arithmetique finie.

Solutions efficaces pour les cas pratiques.

Implantations robustes.

Page 4: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Exemples d’applications

Simuler la croissance de plantes (projet ISA).Reconstruction 3D (projet GEOMETRICA)Algorithmique moleculaire (projet GEOMETRICA).MaillagesSystemes d’information geographiquePrototypage virtuel (start-up VSP)Rendu (projet ISA)

Page 5: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Plan

I. Quelques principes generaux (1h)

II. Problemes de robustesse (1/2h)

? Structures de donnees geometriques

? Techniques algorithmiques classiques

? Pourquoi les algorithmes geometriques plantent-ils ?

? Intersection exacte et rapide de deux quadriques

? Geometrie des droites intersectant des spheres

III. Zoom sur... (1/2h)

? Comment y remedier ?

Page 6: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Quelques principes generaux

Page 7: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Deux problemes similaires

Demenageur de piano :

Lancer de rayon :

Page 8: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Deux problemes similaires

Demenageur de piano

Position du piano donnee par un point et un angle.

Espace des configurations ' Rd × Sd−1

Ti : ensemble des positions ou le piano est tangent a l’obstacle Oi.

Obstacles : O1, . . . , On

Ti est une hypersurface de Rd × Sd−1.

Positions possibles du piano ' certaines regions.

Le piano peut aller de (p1, θ1) a (p2, θ2)

⇔ (p1, θ1) et (p2, θ2) appartiennent a la meme region.

T1, . . . , Tn subdivisent Rd × Sd−1 en regions.

Page 9: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Deux problemes similaires

Lancer de rayon

Rayon determine par un point et un vecteur.

Ti : ensemble des rayons tangents a l’objet Oi.

Objets : O1, . . . , On

Rayons d’une meme region voient la meme chose.

La region de (p, ~u) determine ce que voit ce rayon.

Espace des rayons ' Rd × Sd−1

Ti est une hypersurface de Rd × Sd−1.

T1, . . . , Tn subdivisent Rd × Sd−1 en regions.

p~u

Page 10: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

F = H1, . . . , Hn une famille d’hypersurfaces de Rd.

Arrangement de F : decomposition de Rd induite par les hypersurfaces de F .

Exemple :

Une meme structure sous-jacente

Description combinatoire (incidences) et geometrique (plongement).

Page 11: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Discretise une partition continue en respectant sa structure.

Sous-jacent dans de nombreux problemes :

Une meme structure sous-jacente

Demenageur de piano

Lancer de rayon

Union d’objets

Problemes d’optimization

keme pente ?

Page 12: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Nombre de faces (toutes dimensions confondues)

Θ(nd

)pour un arrangement de n hyperplans dans Rd.

Etude des arrangements

AlgorithmesIncremental Ajouter les hypersurfaces une a une.

Complexite bornee via un Theoreme de la zone.

ComplexiteEtude plus difficile pour des objets autres que des hyperplans.

Ex: une face dans un arrangement de n segments du plan est de taille Θ(nα(n)).

Sous-structures Niveaux, enveloppes inferieures ou superieures, regions ”sandwich”...

Par balayage

Page 13: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Calcul des intersections d’une famille de n segments dans le plan.

Balayage : principe

1

2

3

4

5

Comment eviter une enumeration en Θ(n2

)?

Balayer le plan par une droite

Maintenir la liste triee des segments rencontres

Anticiper les evenements

Traiter les evenements dans l’ordre

Chercher les intersections entre segments voisins

Segments : 4, 2, 3 Evenements : 2 ∩ 4, f4, f2, f3, d5, f5 Sortie : 2 ∩ 4

Page 14: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Balayage : analyse

Analyse d’un balayage de n segments avec k intersections.

Algorithme de complexite O((n + k) log n).

O(n log n) pour l’initialisation (tri des extremites).

O(log n) pour chacun des 2n + k evenements.

Algorithme adaptatif.

Nombreuses generalisations

Balayage de Rd par une hypersurface.

Balayage topologique

Balayage dans des espaces non-Euclidiens.

Page 15: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Trois (autres) problemes similaires

Interpolation lisse d’une fonction Rd → R ?

Position optimale pour un nouveau magasin ?

Simuler la robe d’une girafe ?

Page 16: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Trois (autres) problemes similaires

? Position optimale pour un nouveau magasin ?

Critere : maximiser le nombre de clients dont ce sera le magasin le plus proche.

p1, . . . , pn les magasins existants.

Ri : ensemble des points plus proche de pi que de tout pj pour j 6= i

Soit une position p de nouveau magasin.

R(p) : ensemble des points plus proche de p que de p1, . . . , pn.

Le point p optimal maximise l’aire de R(p).

Page 17: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Trois (autres) problemes similaires

? Interpolation lisse d’une fonction φ : Rd → R ?

p1, . . . , pn points en lesquels on connait φ

p un point en lequel on interpole φ

φ(p) =∑

i

(aire(Ri∩R(p))

aire(R(p))

)φ(pi)

φ differentiable sur Rd \ F .

R(p) : ensemble des points plus proche de p que de p1, . . . , pn.

Ri : ensemble des points plus proche de pi que de tout pj pour j 6= i

Page 18: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Trois (autres) problemes similaires

? Simuler la robe d’une girafe

Phenomenes de croissance.

p1, . . . , pn un ensemble de sites.

Propage un front simultanement depuis chacun de ces sites.

Ri : l’ensemble des points atteints par l’extension de pi.

Ri : points plus proche de pi que de pj pour j 6= i.

Robe obtenue comme partition

selon les distances a p1, . . . , pn

Page 19: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Diagramme de Voronoı

F = p1, . . . , pn un ensemble d’objets de Rd

Diagramme de Voronoı de F : partition de Rd selon les distances aux pi.

Divers objets...

Diverses notions de distance...

points, droites, segments, cercles, plans, spheres, polygones, polyedres...

Euclidienne, L1, L∞, ponderee...

Page 20: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Diagramme de Voronoı - calcul

Triangulation de Delaunay.

F un ensemble de points du plan R2.

Caracterisee par la propriete du cercle vide.

abc ∈ DT ⇔ son cercle circonscrit est vide.

Ces triangles forment une triangulation.

Algorithme incremental randomise pour calculer cette triangulation.

Dual du diagramme de Voronoı.

Page 21: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Algorithme incremental aleatoire

Principe :

Inserer pi dans la triangulation de Delaunay Ti−1 de p1, . . . , pi−1.

1. Localisation : trouver le triangle de Ti−1 qui contient le point pi.

2. Subdivision : subdiviser ce triangle a partir de pi

3. Correction : rendre la nouvelle triangulation de Delaunay.

Ordre d’insertion aleatoire (limiter les comportements pathologiques).

Ti−1

Page 22: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Localisation

On utilise une structure de localisation.

Arbre de tous les triangles crees.

Feuilles = triangles existants et noeuds = triangles detruits.

Construction : ∆∆1 ∆2

α

β

γ

α

βγ β

α

βα

Localisation : parcours dans l’arbre.

Degre ≤ 3 ⇒ cout ' nombre de triangles traverses.

Page 23: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Correction

Arete legale : il existe un cercle vide passant par ses 2 extremites.

Triangulation de Delaunay : toutes les aretes sont legales.

Flip :

Corriger la triangulation par flips successifs.

Verifier les aretes opposees a pi dans les triangles contenant pi.

Propager apres chaque flip.

Chaque flip augmente le plus petit angle ⇒ terminaison.

Page 24: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Complexite

En moyenne, O(n) triangles crees.

L’insertion de pi cree au plus 2ki + 3 nouveaux triangles.

ki : degre de pi dans Ti.

Degre moyen dans Ti est au plus 2(3i−3)i ≤ 6.

E[Xi] ≤ 15

Complexite moyenne selon l’ordre d’insertion des points (aleatoire).

Xi : nombre de triangles crees a l’insertion de pi.

La complexite moyenne de l’algorithme est O(n log n).

Li : nombre d’operations pour localiser pi.

Amortisation : E [∑

i Li] = O(n log n)

2 par flip

3 a l’insertion.

arete flippee incidente a pi.

Page 25: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Conclusion

Structures geometriques recurrentes et generales.

Algorithmes tirant parti de la geometrie des objets.

Base de problemes bien compris.

Arrangements et leurs sous-structures : faces, niveaux, enveloppes...

ε-nets, cuttings...

Diagrammes de Voronoı / triangulations de Delaunay et leurs variations...

Balayage, amortisation...

Aleatoirisation d’algorithmes geometriques.

Optimisation type ”programmation lineaire”

Recherche multidimensionnelle

Implantations disponibles

CGAL, triangle, qhull, etc...

Page 26: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Problemes de robustesse

Page 27: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Un algorithme geometrique, ca plante souvent...

Exemple : calcul de l’enveloppe convexe de points du plan.

En theorie :

En pratique :

parfois

Page 28: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Pourquoi ?

Execution d’un algorithme ∼ parcours dans un arbre

Branchement ↔ predicat, evalue via un calcul numerique

orientation(p, q, r) = sign

∣∣∣∣∣∣xp xq xr

yp yq yr

1 1 1

∣∣∣∣∣∣ +1 ↔

0 ↔

−1 ↔

Exemple : orientation d’un triplet (ordonne) de points

P?

pq

r

Calcul a precision fixee ⇒ erreurs de prise de decision

Page 29: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

L’action au ralenti...Float xp,yp,xq,yq,xr,yr;

Orientation = sign((xq-xp)*(yr-yp)-(xr-xp)*(yq-yp));

Page 30: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Perte de coherence globale

Principal probleme : perte de coherence globale.

Exemple : localisation hierarchique d’un point dans une triangulation.

∈ au niveau i

au niveau i + 16∈

Les theoremes garantissant la correction de l’algorithme ne sont plus verifies.

Page 31: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Errare machinum est ?

Un code apparement correct peut prendre de mauvaises decisions.

Quelles consequences pour l’algorithme ?

Boucles infinies (→ plantage ou crash)

Resultats incorrects

Pas de message d’erreur.

Erreurs d’approximation, i.e. d’arrondis.

Page 32: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Calcul symbolique

Le calcul symbolique est neanmoins possible :

Comparer√

28 et 5√

43 revient a comparer 285 et 432

Est-ce simple de comparer e3 logπ(sin( 310) et 1 ?

Cette approche a ses limites.

Certaines formes du test a 0 sont NP-difficiles.

Un ordinateur calcule dans Z/2Z et pas dans R.

Page 33: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Nombres algebriques

Nombre algebrique ⇔ racine d’un polynome a coefficients entiers.

Nombre non-algebrique : transcendant.

Ex: π, e...

Proportionnellement, peu de nombres reels sont algebriques.

Suffisants pour traiter un grand nombre de problemes geometriques.

Droite, cercle, sphere, patchs de Bezier... −→ equations polynomiales.

Ex: intersections de 2 cercles de centres/rayons rationnels −→ points algebriques.

Page 34: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Representation symbolique simple :

x

y

y = P (x)

Nombre algebrique a.

Represente par (I, P ).

I : intervalle qui ne contient qu’une seule racine de P , a savoir a.

Ex:√

2 peut etre representee par ([1, 2], X2 − 2).

Representer des nombres algebriques

Variantes : (k, P ) et a est la keme racine de P (en partant de −∞).

Page 35: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Calcul sur des nombres algebriques

+, −, ∗, / et k√· peuvent etre calculees sur cette representation par intervalle.

Algorithmes implantes, par ex. dans la bibliotheque CORE.

Les ordinateurs peuvent calculer avec des nombres algebriques.

De tels calculs sont lents : Ralentissements d’un facteur 100 a 1000...

Techniques de filtrage :Faire du calcul approche en controlant l’erreur.

Si l’erreur est trop grande, basculer sur du calcul exact.

Core::Expr xp,yp,xq,yq,xr,yr;

Orientation = sign((xq-xp)*(yr-yp)-(xr-xp)*(yq-yp));

Page 36: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

En resume

Des solutions pratiques commencent a etre disponibles.

La gestion des erreurs numeriques pose des problemes theoriques.

Bornes de separation.

Strategies optimales pour l’evaluation de predicats.

Bibliotheques de calcul sur nombres algebriques (CORE).

Filtrage des predicats (CGAL).

D’autres problemes se posent...

Gestions des configurations degenerees.

Page 37: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Zoom sur...

? Intersection exacte et rapide de deux quadriques

Page 38: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

CSG-Brep

Modeles de CAO souvent concus par CSG.

Cavalier = ∩

V1 V2 V3

V4 V5

V1 ∩ V2 ∪ (V3 ∩ (V4 ∪ V5)) '

Utilisation : representation par bords.

Volumes elementaires

Pour convertir, il faut pouvoir intersecter les surfaces ∂Vi entre elles.

Page 39: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Intersection de quadriques

Input : deux equations de degre 2 en x, y et z a coefficients entiers.

Output : parametrisation de la courbe intersection (de degre 4).

Algorithme de Levin (1976) pour le cas general.

Quadriques naturelles etudiees plus finement.

Plans, cones droits, cylindres circulaires, spheres [SJ92] [MG 95]

Page 40: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Peu fiable.

Calcul approche

Crash a l’etape suivante (CSG-Brep par ex.) faute de coherence.

Prise en compte des situations degenerees incertaine.

Surfaces tangentes

La topologie de la courbe intersection peut etre fausse.

Peut detecter une intersection inexistante.

Peut rater une intersection existante...

Que donne une implantation numerique de l’algorithme de Levin ?

Page 41: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Calcul exact

Les expression manipulees comportent jusqu’a 5 niveaux de√

imbriquees.

Les calculs n’aboutissent pas toujours...

Decider le signe de 12−

√35 +

√18789− 15

√2890− 87

√193 + 45

√2623

Quand ils aboutissent, le resultat peut s’averer inexploitable.

Hyperboloide : x2 − y2 + z2 − xy − y + 1 = 0

Ellispoide : 2x2 + y2 + 20z2 − 4yz + 4y − 20z − 20 = 0

Resultat : fichier texte de 20 Mo...

Que donne une implantation symbolique (Maple) de l’algorithme de Levin ?

Page 42: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Etude fine du probleme

Catalogue complet des (55) types d’intersection.

Algorithme de detection du type d’intersection.

Dans chaque cas, parametrage ad hoc des composantes algebriques.

Nombre et type des quadriques singulieres du faisceau λP + µQ.

Via les racines du polynome caracteristique φ(λ, µ) = det (λMP + µMQ)

Selon le nombre de composantes algebriques et leur type.

Ex : une quartique lisse, deux coniques, deux droites et une conique, etc...

Parametrage utilisant un nombre quasi-optimal de√

.

Premiere solution correcte et efficace : QI [DLLP 04].

Clef : meilleure comprehension de la geometrie du probleme.

Premier catalogue complet.

Page 43: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Resultats

Hyperboloide : x2 − y2 + z2 − xy − y + 1 = 0

Ellispoide : 2x2 + y2 + 20z2 − 4yz + 4y − 20z − 20 = 0

x(u) = 1154880u3 + 1719900u2 − 117600u− 600250 + (513576u3 + 1351476u2 + 1250235u + 420175)√

10 + (−50u− 35u√

10)√

y(u) = −3082320u3 − 6150480u2 − 4604040u− 1440600 + (−786240u3 − 1307040u2 − 617400u)√

10− 120u√

z(u) = 492984u3 + 194040u2 − 638715u− 540225 + (57960u3 − 182700u2 − 231525u)√

10 + (248u + 245 + 35u√

10)√

w(u) = 117576u3 + 8820u2 − 208005u− 180075 + (12600u3 − 61740u2 − 77175u)√

10 + (278u + 245 + 35u√

10)√

∆ = 12229056u4 + 25048800u3 + 23972760u2 + 15126300u + 6242600 + (2540160u4 + 3245760u3 + 1481760u2 − 123480u− 840350)√

10

Avec :

→ quartique lisse, 2 composantes

Exemple de parametrage de composante :

Temps de calcul : 10ms (via le serveur web).

Page 44: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Intersection de quadriques

Difficulte : comprendre les questions mathematiques sous-jacentes.

Questions de base sur des objets non-lineaires de faible degre mal resolues.

La geometrie algorithmique non-lineaire reste a developper.

Page 45: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Zoom sur...

? Geometrie des droites intersectant des spheres

Page 46: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Droites transversales

B1, . . . , Bn des boules de R3.

Existe-t-il une droite qui intersecte toutes les Bi ?

Applications : analyse statistique, metrologie...

Algorithme de complexite O(n3) [AAS 97].

Peut-on faire mieux ?

Page 47: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Programmation lineaire

Programmation lineaire :Optimiser une fonction lineaire ϕ(x1, . . . , xd).

Tout en satisfaisant des contraintes lineaires : AX ≤ B

Interpretation geometrique :Trouver un point extremal d’un polytope pour une direction donnee.

Algorithme incremental randomise [Seidel 91]

Une solution est l’intersection de d contraintes.

Ajouter les contraintes une a une dans un ordre aleatoire en maintenant la solution.

Si la solution si−1 viole la contrainte (Ci)

(Ci) contribue a definir la nouvelle solution si.

On est ramene a resoudre un probleme de dimension d− 1.

Dimension d = nombre de variables.

Solution = sommet du polytope = intersection de d contraintes.

Complexite : O(n) en moyenne (exponentielle en d).

Page 48: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Programmation lineaire generalisee

Plus petit cercle contenant un ensemble de points du plan.

Probleme d’optimisation 6= programmation lineaire.

Algorithme de Seidel le resoud correctement.

Programmation lineaire generalisee (PLG).

Ensemble H et une fonction φ : 2H → Ω avec Ω ordonne.

Question : calculer f (H).

2 axiomes :

Monotonie : F ⊂ G ⊂ H → φ(F ) ≤ φ(G).

Localite : F ⊂ G ⊂ H et φ(F ) = φ(G) alors ∀h ∈ H, φ(F ∪ h) 6= φ(F ) ⇔ φ(G ∪ h) 6= φ(G)

Base de F : B ⊂ F minimal tel que φ(B) = φ(F ).

Dimension de (H, φ) : cardinalite maximale d’une base.

Page 49: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Proprietes observables sur les sous-parties de taille bornee.

Theoreme [Helly, 1923]. n convexes de Rd ont un point encommun ssi toute sous-famille de d+1 a un point en commun.

F satisfait P ssi ses sous-famille de taille (au plus) k satisfont P ′.

Nombreux theoremes similaires : theoremes a la Helly.

Theoremes a la Helly

Correspondance problemes PLG ↔ Theoremes a la Helly [Amenta 93].

φ(H) ≤ λ ⇔ φ(F ) ≤ λ pour toute |F | ≤ d + 1.

Inversement, theoremes a la Helly → formulations PLG de problemes.

Page 50: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Theorem [Danzer, 1957]. n disques unite disjoints de R2 ontune transversale ssi chaque famille de 5 a une transversale.

Theoremes a la Helly pour transversales

Conjecture : generalisable en dimension quelconque.

Theoreme [Hadwiger, 1957]. n convexes disjoints de R2 ont unetransversale ssi pour un ordre donne tout triplet a une transversale.

1 2

3

4

Pas de generalisation en dimension d ≥ 3 [HM04]

Page 51: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Cone des directions

`

−→` ∈ K ⇔ les projections selon

−→` s’intersectent.

K(B1 . . . Bn) : directions of transversales a B1 ≺ . . . ≺ Bn

⇒ K(B1 . . . Bn) =⋂

i<j<kK(BiBjBk)

−→` ∈ ∂K ⇔ les projections selon

−→` s’intersectent en un seul point.

Theoreme [Borcea, G., Petitjean 07] : K(B1, . . . , Bn) est convexe.

B1, . . . , Bn : boules disjointes de Rd.

Page 52: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Identifier les arcs exterieurs.

Prouver que la Hessienne ne les rencontre pas.

⇒ le bord est localement convexe.

Par ailleurs, montrer que le cone est contractible.

Cone des directions - preuve

Page 53: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Consequences

Theoreme [Cheong, G., Holmsen, Petitjean, 2006]. n boules unite disjointesde Rd ont une transversale ssi chaque famille de 4d− 1 a une transversale.

Theoreme [CGHP 2006 + BGP 07]. n boules disjointes de Rd ont unetransversale dans un ordre donne ssi toute famille de 2d a une transversaledans cet ordre.

⇒ tester en O(n) si des boules unite disjointes admettent une transversale.

⇒ tester en O(n) si des boules disjointes admettent une transversale dans un ordre donne.

Page 54: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Transversales a des boules

Difficulte : comprendre les questions mathematiques sous-jacentes.

Questions elementaires sur des objets non-lineaires de faible degre mal resolues.

La geometrie algorithmique non-lineaire reste a developper.

Page 55: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

References

Page 56: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Geometrie algorithmique classique

Computational geometry, algorithms and applications.

de Berg, Van Kreveld, Overmars, Shwarzkopf/Cheong

Page 57: la g´eom´etrie algorithmique Introduction a · 2007. 3. 25. · Lancer de rayon Rayon d´etermin´e par un point et un vecteur. T i: ensemble des rayons tangents a l’objet O i.

Problemes de robustesse

Des arithmetiques pour la geometrie, Sylvain Pion (Interstices).

Un joli algorithme geometrique et ses vilains problemes numeriques,

Olivier Devillers (Interstices).

Classroom Examples of Robustness Problems in Geometric Computations

Lutz Kettner, Kurt Mehlhorn, Sylvain Pion, Stefan Schirra et Chee Yap.

Interstices : http://interstices.info

Computational geometry: theory and applications.

Sources des illustrations utilisees.