Computational geometry From theory to practice, From linear - - PowerPoint PPT Presentation

computational geometry from theory to practice from
SMART_READER_LITE
LIVE PREVIEW

Computational geometry From theory to practice, From linear - - PowerPoint PPT Presentation

Computational geometry From theory to practice, From linear objects to curved objects Monique Teillaud Overall message Synergy between implementation theory (mathematics/algorithmics) Overall message Synergy between implementation


slide-1
SLIDE 1

– Computational geometry – From theory to practice, From linear objects to curved objects

Monique Teillaud

slide-2
SLIDE 2

Overall message

Synergy between implementation theory (mathematics/algorithmics)

slide-3
SLIDE 3

Overall message

Synergy between implementation theory (mathematics/algorithmics)

  • no good software is possible

without a clean theoretical background

  • implementation is raising new good theoretical questions
slide-4
SLIDE 4

Overall message

Synergy between implementation in theory (mathematics/algorithmics)

  • no good software is possible

without a clean theoretical background

  • implementation is raising new good theoretical questions

C++ concepts mathematical concepts can converge in

slide-5
SLIDE 5

Outline

I - Triangulations II - Curved objects

Thanks to Pierre Alliez for the beautiful pictures.

III - Current and future work

slide-6
SLIDE 6

Outline

Overview of some of the links of the chain leading to reliable and largely distributed software: mathematical background algorithmic and combinatorial study representation of objects and structures robustness issues design choices efficient programming . . .

slide-7
SLIDE 7

Part I Triangulations

slide-8
SLIDE 8

Triangulations

mathematical background algorithmic and combinatorial study representation of objects and structures robustness issues design choices efficient programming

slide-9
SLIDE 9

Triangulations Background

Delaunay triangulation in Rd All balls circumscribing simplices are empty. Well known properties Size O

  • n⌈ d

2 ⌉

(linear in R2, worst-case quadratic in R3)

slide-10
SLIDE 10

Triangulations Algorithmic study

Randomization

Randomized Incremental Algorithms General Data Structure: the History graph.

slide-11
SLIDE 11

Triangulations Algorithmic study

Randomization

Randomized Incremental Algorithms General Data Structure: the History graph. Case of Delaunay triangulations: Fully dynamic algorithm Optimal expected computation O

  • n⌊ d+1

2 ⌋

(d ≥ 3) O(n log n) (d = 2)

Bernhard Geiger

slide-12
SLIDE 12

Triangulations Algorithmic study

Randomization

Randomized Incremental Algorithms General Data Structure: the History graph. Case of Delaunay triangulations: Fully dynamic algorithm Optimal expected computation O

  • n⌊ d+1

2 ⌋

(d ≥ 3) O(n log n) (d = 2)

Bernhard Geiger

Practical framework: Realistic analysis (no assumption on input data) Implemented algorithms (Pascal, then C, . . . )

slide-13
SLIDE 13

Triangulations Algorithmic study

Randomization

Randomized Incremental Algorithms General Data Structure: the History graph.

Boissonnat, Devillers, T., Yvinec

≤’93

PhD Thesis

’91

Case of Delaunay triangulations:

Devillers

’02

better in practice Practical framework: Realistic analysis (no assumption on input data) Implemented algorithms (Pascal, then C, then C++. . . )

slide-14
SLIDE 14

Triangulations Algorithmic study

Point location

?

slide-15
SLIDE 15

Triangulations Algorithmic study

Point location

2D: worst-case 2n triangles Delaunay, random pts |pq|√n

Devroye...

2 orient. tests per triangle 3D: worst-case O(n2) tetrahedra Delaunay, random pts? 3 orient. tests per tetrahedron

slide-16
SLIDE 16

Triangulations Algorithmic study

Point location

Handling degeneracies: worse in 3D...

slide-17
SLIDE 17

Triangulations Algorithmic study

Point location

Visibility walk

slide-18
SLIDE 18

Triangulations Algorithmic study

Point location

Delaunay 2D: worst case 2n random points? ≤ 1.5 orient. tests per triangle Delaunay 3D: worst-case O(n2) tetrahedra random points? ≤ 2 orient. tests per tetra.

slide-19
SLIDE 19

Triangulations Algorithmic study

Point location

May loop for non Delaunay tr.

slide-20
SLIDE 20

Triangulations Algorithmic study

Point location

Stochastic walk random choice Always terminates Average complexity ≤ exponential Exponential example

slide-21
SLIDE 21

Triangulations Algorithmic study

Point location

Easy to code, even in 3D no degeneracies... Efficient in practice

Devillers, Pion, T.

SoCG’01, Int. J. Found. Comp. Sc.’02

slide-22
SLIDE 22

Triangulations Representation

Combinatorial triangulation of the sphere

∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

Devillers, T., Yvinec

slide-23
SLIDE 23

Triangulations Representation

Degenerate dimensions geometric ∞ ∞ v(∞) Increasing the dimension combinatorial

T.

EuroCG’99

slide-24
SLIDE 24

Triangulations Representation

Degenerate dimensions geometric ∞ ∞ ∞ ∞ ∞ p ∞ v(p) v(∞) Increasing the dimension combinatorial

T.

EuroCG’99

slide-25
SLIDE 25

Triangulations Robustness

Arithmetic questions

Algorithms rely on predicates = elementary operations evaluated numerically. Typically, signs of determinants (small degree polynomial expressions) Exact Geometric Computing framework

Yap

Filtered exact computations

Yap...Mehlhorn...Pion...

slide-26
SLIDE 26

Triangulations Robustness

Degenerate cases

Delaunay triangulation depends on the sign of

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y

1 + q2

x + q2 y

1 + r 2

x + r 2 y

1 + s2

x + s2 y

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛

slide-27
SLIDE 27

Triangulations Robustness

Degenerate cases

Delaunay triangulation depends on the sign of

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y

1 + q2

x + q2 y

1 + r 2

x + r 2 y

1 + s2

x + s2 y

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛

slide-28
SLIDE 28

Triangulations Robustness

Degenerate cases

Degenerate configurations handled explicitely. Cospherical points Delaunay triangulation not uniquely defined

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y

1 + q2

x + q2 y

1 + r 2

x + r 2 y

1 + s2

x + s2 y

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ = 0

Unique definition? Required: consistent choice of sign.

slide-29
SLIDE 29

Triangulations Robustness

Degenerate cases

Degenerate configurations handled explicitely. Cospherical points Delaunay triangulation not uniquely defined

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y

1 + q2

x + q2 y

1 + r 2

x + r 2 y

1 + s2

x + s2 y

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ = 0

Unique definition? Required: consistent choice of sign.

slide-30
SLIDE 30

Triangulations Robustness

Degenerate cases

Symbolic perturbation of the predicate

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y + εi

1 + q2

x + q2 y + εj

1 + r 2

x + r 2 y + εk

1 + s2

x + s2 y + εl

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ = P(ε)

coefficients =

  • rientation predicates of the non-perturbed points

Sign = sign of the first non-null coefficient.

slide-31
SLIDE 31

Triangulations Robustness

Degenerate cases

Symbolic perturbation of the predicate

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ 1 1 1 1 px qx rx sx py qy ry sy 1 + p2

x + p2 y + εi

1 + q2

x + q2 y + εj

1 + r 2

x + r 2 y + εk

1 + s2

x + s2 y + εl

˛ ˛ ˛ ˛ ˛ ˛ ˛ ˛ = P(ε)

coefficients =

  • rientation predicates of the non-perturbed points

Sign = sign of the first non-null coefficient. Delaunay triangulation uniquely defined by indexing the points e.g. lexicographic ordering.

slide-32
SLIDE 32

Triangulations Robustness

Degenerate cases

This perturbation Does not create any flat tetrahedron Easy to code Allows implementation of vertex removal in 3D Generalizes to regular triangulations

Devillers, T.

SODA’03

Devillers, T.

RR INRIA’07

slide-33
SLIDE 33

Triangulations Implementation

Design

Enforced decoupling between geometry and combinatorics

Kettner

CGAL Polyhedron

Triangulation_3 < Traits_3, TrDataStructure_3 > Triangulation_3: point location. . . TrDataStructure_3: insertion. . .

T.

EuroCG’99

slide-34
SLIDE 34

Triangulations Implementation

3D Triangulation package Fully dynamic (insertion, removal) Robust Efficient (∼ 30, 000 pts/sec) Generic Flexible Publicly available (QPL) Documented

T.

CGAL 2.1 - 2.2, ’00

Pion, T.

CGAL 2.3 - 3.3, ’01-’07 Participation of C.Delage, O.Devillers, A. Fabri,. . .

2D: Yvinec CGAL 0.9-... Pion, Yvinec

slide-35
SLIDE 35

Triangulations Implementation

3D Triangulation package Many users CGAL packages (meshing, reconstruction)

Rineau, Yvinec

academic users

Dey, Giesen, Oudot, Chaine, Amenta, Levy, Bernauer, Robbins...

commercial users (through GeometryFactory)

Midland Valley Exploration, Total, BSAP, British Telecom, France Telecom

slide-36
SLIDE 36

Part II Curved Objects

slide-37
SLIDE 37

Curved Objects Motivation

Curves already appear for linear input Bisecting curve

slide-38
SLIDE 38

Curved Objects Motivation

Curves already appear for linear input

Karavelas, CGAL

Voronoi diagram 2D line segments arcs of parabolas

slide-39
SLIDE 39

Curved Objects Motivation

Curves already appear for linear input Voronoi diagram 3D line segments patches of quadric surfaces

slide-40
SLIDE 40

Curved Objects Motivation

Mostly linear objects handled in computational geometry literature software, CGAL. Start with low degree algebraic objects (circles, spheres)

slide-41
SLIDE 41

Curved Objects

mathematical background

  • algorithmic and combinatorial study

and

  • robustness issues

design choices representation of objects and structures efficient programming

slide-42
SLIDE 42

Curved Objects Algorithmic study

Arrangements of 3D quadrics

Sweeping plane approach Computes the so-called vertical decomposition volumic approach Comparisons of algebraic numbers of degree 16...

Mourrain, Técourt, T.

CGTA ’05

Complexity O(n log2 n + V log n), V = O(n3.2α(n)16)

Halperin et al Chazelle, Edelsbrunner, Guibas, Sharir

slide-43
SLIDE 43

Curved Objects Algorithmic study

Arrangements of 3D quadrics

Sweeping plane approach Computes the so-called vertical decomposition volumic approach Comparisons of algebraic numbers of degree 16...

Mourrain, Técourt, T.

CGTA ’05

Complexity O(n log2 n + V log n), V = O(n3.2α(n)16)

Halperin et al Chazelle, Edelsbrunner, Guibas, Sharir

Case of spheres: algebraic numbers of degree 4 New decomposition: degree 2 only + Degenerate cases

Russel, T.

in progress

CGAL implementation Russel

in progress

uses CGAL 3D cellular data structure

Bru, T.

in progress

slide-44
SLIDE 44

Curved Objects Algorithmic study

Algebraic numbers

Comparing intersection points signs of polynomial expressions

slide-45
SLIDE 45

Curved Objects Algorithmic study

Algebraic numbers

Comparing intersection points signs of polynomial expressions comparison of algebraic numbers

slide-46
SLIDE 46

Curved Objects Algorithmic study

Algebraic numbers

Comparing intersection points signs of polynomial expressions comparison of algebraic numbers Algebraic tools − → signs of polynomial expressions

slide-47
SLIDE 47

Curved Objects Algorithmic study

Algebraic numbers

Comparing algebraic numbers of degree 2 Measure of complexity degree of polynomials number of arithmetic operations

slide-48
SLIDE 48

Curved Objects Algorithmic study

Algebraic numbers

Comparing algebraic numbers of degree 2

J + − P1 > 0

Case 1,2,3

P1 < 0

Case 3,4,5

K + − P3 > 0

Case 3,4

D + − P2 > 0; P3 < 0

Case 4,5 Case 3b4

+ − P4 > 0 l1 > l2

Case 3a

+ −

Case 4

P4

Case 3a,4

l1 > l2 l1 < l2 l1 > l2 K + − P2, P3 > 0 l1 < l2

Case 1,2

D + − P3 < 0

Case 2,3

l1 < l2

Case 2,3a

+ − P4 > 0 l1 > l2

Case 3b

+ −

Case 3b Case 2

P4

Case 2,3b

l1 > l2 l1 < l2 l1 < l2

Case 3a 21 5 28 6 13 10 3 7 4 12 6 10 7 12 28 13 3 4

J′ J′

Polynomial expressions pre-computed + arithmetic filtering

Devillers, Fronville, Mourrain, T.

SoCG ’00 CGTA ’02

slide-49
SLIDE 49

Curved Objects Algorithmic study

Algebraic numbers

Polynomial expressions have an intrinsic geometric meaning B1 A1

y x

  • C1

q2

1

√I1 A1 J A1 A2

l1 r1 l2 r2

K = 0 ⇐ ⇒ l1, r1, l2, r2 harmonic division geometric reasoning?

slide-50
SLIDE 50

Curved Objects Implementation

Design

Enforced decoupling between geometry and algebra

Curved_kernel < LinearKernel, AlgebraicKernel >

“Kernel”: basic geometric objects and manipulations allows to

  • interchange algebraic kernels
  • compare different approaches

Definition of the AlgebraicKernel C++ concept

= identification of mathematical concepts underlying the computations

slide-51
SLIDE 51

Curved Objects Implementation

Design

Enforced decoupling between geometry and algebra Careful definition

  • f the interface

AK::Root of system 2 2 CK::Circular point 2 CK::Intersect CK::Get equation CK::Get equation AK::Solve CK::Circle 2 CK::Circle 2 AK::Polynomial 2 2 AK::Polynomial 2 2

slide-52
SLIDE 52

Curved Objects Implementation

Design

Enforced decoupling between geometry and algebra High-level interface for the algebraic kernel Solve polynomial system Sign_at of polynomial at the roots of a system . . .

Emiris, Kakargias, Pion, Tsigaridas, T.

SoCG ’04

Full specifications, general degree:

Berberich, Hemmer, Karavelas, T.

CGAL, submitted

why not: non-algebraic curves...?

slide-53
SLIDE 53

Curved Objects Implementation

Experiments

Circular arcs in 2D Benchmarking on industrial VLSI data with CGAL Arrangement_2 package

slide-54
SLIDE 54

Curved Objects Implementation

Experiments

Circular arcs in 2D Benchmarking on industrial VLSI data with CGAL Arrangement_2 package Efficiency improved: caching reference counting

  • ptimization of special cases (rational intersections)

arithmetic filtering in algebraic numbers representation of algebraic numbers to reduce length of multi-precision coefficients geometric filtering

de Castro, Pion, T.

EuroCG ’07

slide-55
SLIDE 55

Curved Objects Implementation

packages 2D Circular Kernel

Pion, T.

CGAL 3.2-3.3 ’06-’07

Research license Dassault Systèmes

3D Spherical Kernel

de Castro, T.

CGAL, Submitted

Extension in progress

de Castro, Cazals, Loriot, T.

RR INRIA’07

Used by Russel, Loriot

slide-56
SLIDE 56

Curved Objects Open Questions

Minimality of the set of predicates necessary to run an algorithm or compute a structure Degree measure of precision

slide-57
SLIDE 57

Curved Objects Open Questions

Minimality of the set of predicates necessary to run an algorithm or compute a structure number of predicates complexity of predicates Degree measure of precision

slide-58
SLIDE 58

Curved Objects Open Questions

Minimality of the set of predicates necessary to run an algorithm or compute a structure number of predicates complexity of predicates Degree measure of precision

  • f a given geometric predicate
  • f an algorithm
  • f a geometric problem
slide-59
SLIDE 59

Part III Future? More Triangulations!

c

  • S. Popescu

c

  • A. Burbanks
slide-60
SLIDE 60

Future? More Triangulations!

Most of the computational geometry literature in Rd Implementations R2 or R3 Other geometries? hyperbolic projective periodic . . . ?

slide-61
SLIDE 61

Future? More Triangulations! Hyperbolic

The space of spheres Rd − → Rd+1 S : (C, r) → s = (C, C2 − r 2) Unified framework for the [mostly known] duality results: various generalized Voronoi diagrams ← → lower envelopes

slide-62
SLIDE 62

Future? More Triangulations! Hyperbolic

The space of spheres Rd − → Rd+1 S : (C, r) → s = (C, C2 − r 2) Unified framework for the [mostly known] duality results: various generalized Voronoi diagrams ← → lower envelopes

slide-63
SLIDE 63

Future? More Triangulations! Hyperbolic

The space of spheres Rd − → Rd+1 S : (C, r) → s = (C, C2 − r 2) Unified framework for the [mostly known] duality results: various generalized Voronoi diagrams ← → lower envelopes

slide-64
SLIDE 64

Future? More Triangulations! Hyperbolic

The space of spheres Rd − → Rd+1 S : (C, r) → s = (C, C2 − r 2) Unified framework for the [mostly known] duality results: various generalized Voronoi diagrams ← → lower envelopes

slide-65
SLIDE 65

Future? More Triangulations! Hyperbolic

Poincaré model of the hyperbolic plane:

D∞ p line (qr) bisector(q, r) q r

Hyperbolic line = Half Euclidean circle

  • rthogonal to D∞

Hyperbolic circle centered at p = Euclidean circle of the pencil with limit point p and radical axis D∞

slide-66
SLIDE 66

Future? More Triangulations! Hyperbolic

Rd Pencil of circles with given radical axis ← → Rd+1 Line with given direction

silhouette

slide-67
SLIDE 67

Future? More Triangulations! Hyperbolic

Rd Pencil of circles with given radical axis ← → Rd+1 Line with given direction

slide-68
SLIDE 68

Future? More Triangulations! Hyperbolic

Rd Pencil of circles with given radical axis ← → Rd+1 Line with given direction

slide-69
SLIDE 69

Future? More Triangulations! Hyperbolic

Rd Pencil of circles with given radical axis ← → Rd+1 Line with given direction

slide-70
SLIDE 70

Future? More Triangulations! Hyperbolic

Berger

’77 ’87

Boissonnat, Cérézo, Devillers, T.

CCCG’91 IJCGA’96

Devillers, Meiser, T.

RR INRIA’92

Perspectives CGAL implementation and arising issues Applications (study of cristalline structures. . . ?)

slide-71
SLIDE 71

Future? More Triangulations! Projective

Triangulation of the projective plane mostly studied from a graph-theoretic perspective. In computational geometry: algorithms in Rd based on orientation predicates

  • riented projective plane

Stolfi

slide-72
SLIDE 72

Future? More Triangulations! Projective

Projective plane non-orientable

p q r p r q V(p)

V(q) V(r)

P2 = R3 − {0} / ∼ p ∼ p′ : p = λp′, λ ∈ R⋆

slide-73
SLIDE 73

Future? More Triangulations! Projective

Projective plane non-orientable

p q r p r q V(p)

V(q) V(r)

P2 = R3 − {0} / ∼ p ∼ p′ : p = λp′, λ ∈ R⋆

slide-74
SLIDE 74

Future? More Triangulations! Projective

Projective plane non-orientable

p q r p r q V(p)

V(q) V(r)

P2 = R3 − {0} / ∼ p ∼ p′ : p = λp′, λ ∈ R⋆

slide-75
SLIDE 75

Future? More Triangulations! Projective

Projective plane non-orientable

p q r p r q V(p)

V(q) V(r)

P2 = R3 − {0} / ∼ p ∼ p′ : p = λp′, λ ∈ R⋆

slide-76
SLIDE 76

Future? More Triangulations! Projective

Projective plane non-orientable

p q r p r q V(p)

V(q) V(r)

Still: interior of a closed curve well defined. Incremental algorithm

Aanjaneya, T.

RR INRIA’07

Perspectives Definition of a Delaunay-like triangulation Generalization to 3D (dD) CGAL implementation

slide-77
SLIDE 77

Future? More Triangulations! Periodic

Periodic triangulations (2D and 3D) widely used for simulations Parameter space : torus 2D: b b a a

slide-78
SLIDE 78

Future? More Triangulations! Periodic

Periodic triangulations (2D and 3D) widely used for simulations Parameter space : torus Few points: the “triangulation” is not a simplicial complex. 2D:

slide-79
SLIDE 79

Future? More Triangulations! Periodic

Method

  • Compute first in a 3-sheeted covering (27 copies in 3D),
  • Switch to the 1-sheeted covering as soon as simplicial

complex. Implementation

  • Redesign the CGAL triangulation package,

Allow one more level of genericity.

Triangulation_3 < Traits_3, TrDataStructure_3, Space >

Kruithof, T. Caroli, T.

in progress

Perspectives Other periodic spaces (cylinders) Meshes in periodic spaces. . .

slide-80
SLIDE 80

Conclusion

Implementing mathematical structures has a good future, many applications.

André Cérézo ’91