Robustness in Geometric Computation Vikram Sharma 1 1 Institute of - - PowerPoint PPT Presentation

robustness in geometric computation
SMART_READER_LITE
LIVE PREVIEW

Robustness in Geometric Computation Vikram Sharma 1 1 Institute of - - PowerPoint PPT Presentation

Nonrobustness Real Root Isolation Robustness in Geometric Computation Vikram Sharma 1 1 Institute of Mathematical Sciences, Chennai, India. Mysore Park Workshop, August, 2013 Nonrobustness Real Root Isolation Outline Nonrobustness 1 In


slide-1
SLIDE 1

Nonrobustness Real Root Isolation

Robustness in Geometric Computation

Vikram Sharma1

1Institute of Mathematical Sciences, Chennai, India.

Mysore Park Workshop, August, 2013

slide-2
SLIDE 2

Nonrobustness Real Root Isolation

Outline

1

Nonrobustness In Computational Geometry: Example The Exact Geometric Computation (EGC) Approach Open Problems & Further Directions

2

Real Root Isolation Two Algorithms & Their Analysis Open Problems & Further Directions

slide-3
SLIDE 3

Nonrobustness Real Root Isolation

What is Non-robustness?

Behaviour of a program Inconsistent results, Infinite loops, “Crashes” (Segmentation Fault). Implications Disasters caused by malfunctioning of software (e.g., Ariane crash in 1996). Reduces programmer’s effectiveness – time spent in debugging programs.

slide-4
SLIDE 4

Nonrobustness Real Root Isolation

Computational Geometry Early Days – Theory People: Shamos, Preparata, Graham, Fortune ... Efficient algorithms for Convex Hulls, Voronoi Diagrams, Delaunay Triangulations ...

slide-5
SLIDE 5

Nonrobustness Real Root Isolation

Computational Geometry Early Days – Theory People: Shamos, Preparata, Graham, Fortune ... Efficient algorithms for Convex Hulls, Voronoi Diagrams, Delaunay Triangulations ... BCKO, Computational Geometry, Algo. and Appl. “Robustness problems are often a cause of frustration when implementing geometric algorithms.”

slide-6
SLIDE 6

Nonrobustness Real Root Isolation

Computational Geometry Early Days – Theory People: Shamos, Preparata, Graham, Fortune ... Efficient algorithms for Convex Hulls, Voronoi Diagrams, Delaunay Triangulations ... BCKO, Computational Geometry, Algo. and Appl. “Robustness problems are often a cause of frustration when implementing geometric algorithms.” But haven’t the Numerical Analysts addressed nonrobustness? Backward stability, Forward-error analysis.

slide-7
SLIDE 7

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

slide-8
SLIDE 8

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

slide-9
SLIDE 9

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

slide-10
SLIDE 10

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

slide-11
SLIDE 11

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

4

Check if p5 is in the convex hull.

slide-12
SLIDE 12

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

4

Check if p5 is in the convex hull.

5

Update, and continue...

slide-13
SLIDE 13

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

4

Check if p5 is in the convex hull.

5

Update, and continue...

slide-14
SLIDE 14

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

4

Check if p5 is in the convex hull.

5

Update, and continue... Orientation: orient(p,q,r) ∈ {L,R,S}.

  • rient(p,q,r) = L iff (p,q,r) is left turn.
slide-15
SLIDE 15

Nonrobustness Real Root Isolation

Computing Convex Hull – An Incremental Algorithm

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

1

Three non-collinear points.

2

Is p4 is in ∆(p1,p2,p3)?

3

Update convex hull to p1,p2,p3,p4.

4

Check if p5 is in the convex hull.

5

Update, and continue... Orientation: orient(p,q,r) ∈ {L,R,S}.

  • rient(p,q,r) = L iff (p,q,r) is left turn.

Given CH(p1,...,pk) and p. If ∀i,

  • rient(pi,pi+1,p) = L then p is in CH.
slide-16
SLIDE 16

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

slide-17
SLIDE 17

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

slide-18
SLIDE 18

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

slide-19
SLIDE 19

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

slide-20
SLIDE 20

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

slide-21
SLIDE 21

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

slide-22
SLIDE 22

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

6

Is p5 in ∆(p1,p2,p3)? No.

slide-23
SLIDE 23

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

6

Is p5 in ∆(p1,p2,p3)? No.

7

Update, and continue...

slide-24
SLIDE 24

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

6

Is p5 in ∆(p1,p2,p3)? No.

7

Update, and continue...

slide-25
SLIDE 25

Nonrobustness Real Root Isolation

p1 = (7.3000000000000194, 7.3000000000000167) p2 = (24.000000000000068, 24.000000000000071) p3 = (24.00000000000005, 24.000000000000053) p4 = (0.50000000000001621, 0.50000000000001243) p5 = (8, 4) p6 = (4, 9) p7 = (15, 27) p8 = (19, 11). p4 p5 p6 p8 p3 p2 p7 p1

Algebraic form of orient Sign of

((qx − px)(ry − py)−(qy − py)(rx − px)).

“L ” is +1, “R” is −1, “S” is 0. In practice, fl_orient(p,q,r).

1

Is p4 in ∆(p1,p2,p3)?

2

Is fl_orient(p1,p2,p4) = L? Yes.

3

Is fl_orient(p2,p3,p4) = L? Yes.

4

Is fl_orient(p3,p1,p4) = L?

5

Yes.

6

Is p5 in ∆(p1,p2,p3)? No.

7

Update, and continue... p1,p2,p3,p4 are almost collinear.

slide-26
SLIDE 26

Nonrobustness Real Root Isolation

Geometry of fl_orient

p = (0.5,0.5),q = (12,12),r =

(24,24).

fl_orient((px + iu,py + ju),q,r), 0 ≤ i,j ≤ 255. u = 2−53. Left turn Right turn Collinear Kettner et al.’06 Classroom Examples of Robustness Problems in Geom. Comp.

slide-27
SLIDE 27

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

slide-28
SLIDE 28

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

Geometric Algorithms [Yap’94] Combinatorial structure representing discrete relations amongst geometric objects. E.g., a point is to the left, right or on a line.

slide-29
SLIDE 29

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

Geometric Algorithms [Yap’94] Combinatorial structure representing discrete relations amongst geometric objects. E.g., a point is to the left, right or on a line. Numerical representation of the geometric objects. E.g., floating-point representation of coordinates.

slide-30
SLIDE 30

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

Geometric Algorithms [Yap’94] Combinatorial structure representing discrete relations amongst geometric objects. E.g., a point is to the left, right or on a line. Numerical representation of the geometric objects. E.g., floating-point representation of coordinates. Characterize the combinatorial structure by verifying the discrete relations using numerical computations. E.g., using the orientation predicate.

slide-31
SLIDE 31

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

Geometric Algorithms [Yap’94] Combinatorial structure representing discrete relations amongst geometric objects. E.g., a point is to the left, right or on a line. Numerical representation of the geometric objects. E.g., floating-point representation of coordinates. Characterize the combinatorial structure by verifying the discrete relations using numerical computations. E.g., using the orientation predicate. Cause of Non-robustness Numerical errors may give incorrect characterization.

slide-32
SLIDE 32

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

The EGC solution Compute correct discrete relations between geometric objects. Correct sign evaluation of geometric predicates. What are geometric predicates?

slide-33
SLIDE 33

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

p q r

Orientation predicate Whether r is to the left, right, or collinear with (p,q)?

slide-34
SLIDE 34

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

A(X, Y ) B(X, Y )

Whether two algebraic curves intersect?

slide-35
SLIDE 35

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

√ 1000001 √ 1000025 √ 1000031 √ 1000084 √ 1000087 √ 10000134 √ 10000158 √ 1000182 √ 1000198 √ 1000199 √ 1000175 √ 1000169 √ 1000116 √ 1000018 √ 1000002 √ 1000113 √ 1000066 √ 1000042

p q

Which is the shorter path? Almost equal – difference is smaller than 10−36.

slide-36
SLIDE 36

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

Geometric Predicates Sign of (multivariate) polynomials evaluated at real algebraic numbers Real Algebraic Numbers Real roots of integer polynomials in one variable. E.g. ±√ n, for positive integer n, 1+

5 2

, but not π, e.

slide-37
SLIDE 37

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / + / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α).

slide-38
SLIDE 38

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / + / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Internal nodes – algebraic operations.

slide-39
SLIDE 39

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Internal nodes – algebraic operations. Leaves – integers or real algebraic numbers.

slide-40
SLIDE 40

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Internal nodes – algebraic operations. Leaves – integers or real algebraic numbers. Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots (conjugates) of A(X).

slide-41
SLIDE 41

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Internal nodes – algebraic operations. Leaves – integers or real algebraic numbers. Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots (conjugates) of A(X).

Arithmetic is manipulating DAGs.

slide-42
SLIDE 42

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Comparing two numbers: α = β? Input G(α) and G(β).

slide-43
SLIDE 43

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-44
SLIDE 44

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-45
SLIDE 45

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-46
SLIDE 46

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-47
SLIDE 47

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

|α| > 2−b

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-48
SLIDE 48

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0. Construct zero bound for G(α) ⊖ G(β) to get b s.t. |α −β| > 2−b, if α = β.

slide-49
SLIDE 49

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0. Construct zero bound for G(α) ⊖ G(β) to get b s.t. |α −β| > 2−b, if α = β.

(b + 1)-bit approximations α, β ∈ Q.

slide-50
SLIDE 50

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Comparing two numbers: α = β? Input G(α) and G(β). Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0. Construct zero bound for G(α) ⊖ G(β) to get b s.t. |α −β| > 2−b, if α = β.

(b + 1)-bit approximations α, β ∈ Q.

If |

α − β| < 2−b−1 then α = β.

slide-51
SLIDE 51

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Numerical Representation of α Data Structure – Rooted DAG, G(α).

1

Internal nodes – algebraic

  • perations.

2

Leaves – integers or real algebraic numbers.

Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Arithmetic is manipulating DAGs. Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-52
SLIDE 52

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Numerical Representation of α Data Structure – Rooted DAG, G(α).

1

Internal nodes – algebraic

  • perations.

2

Leaves – integers or real algebraic numbers.

Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Arithmetic is manipulating DAGs. Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-53
SLIDE 53

Nonrobustness Real Root Isolation

The Exact Geometric Computation (EGC) Approach

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Recursive rules, e.g.

|a/b + c/d| ≥ 1/|cd|,

if a > 2−b then

| k √

a| > 2−bk. Burnikel et al.’99, Li-Yap’00 etc. Numerical Representation of α Data Structure – Rooted DAG, G(α).

1

Internal nodes – algebraic

  • perations.

2

Leaves – integers or real algebraic numbers.

Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Arithmetic is manipulating DAGs. Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-54
SLIDE 54

Nonrobustness Real Root Isolation

The Exact Geometric Computation Approach

Implementations Leda reals – http://www.mpi-inf.mpg.de/LEDA/ Core Library – http://www.cs.nyu.edu/exact/core Used in CGAL – www.cgal.org

slide-55
SLIDE 55

Nonrobustness Real Root Isolation

Theoretical Foundations of EGC

Ideal World Algorithms in Real RAM model. Computes a function f : R → R.

slide-56
SLIDE 56

Nonrobustness Real Root Isolation

Theoretical Foundations of EGC

Ideal World Algorithms in Real RAM model. Computes a function f : R → R. The EGC World, [Yap, 2003]

  • f is f implemented in EGC model.

Input to f is a dense subset (say Q) of R and precision p. For x ∈ Q, f computes a relative approx. to f i.e. f(x) = f(x)(1± 2−p). What class of functions are EGC-computable?

slide-57
SLIDE 57

Nonrobustness Real Root Isolation

Theoretical Foundations of EGC

Ideal World Algorithms in Real RAM model. Computes a function f : R → R. The EGC World, [Yap, 2003]

  • f is f implemented in EGC model.

Input to f is a dense subset (say Q) of R and precision p. For x ∈ Q, f computes a relative approx. to f i.e. f(x) = f(x)(1± 2−p). What class of functions are EGC-computable?

slide-58
SLIDE 58

Nonrobustness Real Root Isolation

Fundamental Problem

Zero Problem Are two real numbers α, β equal?

slide-59
SLIDE 59

Nonrobustness Real Root Isolation

Fundamental Problem

Zero Problem Are two real numbers α, β equal?

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0.

slide-60
SLIDE 60

Nonrobustness Real Root Isolation

Fundamental Problem

Zero Problem Are two real numbers α, β equal?

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0. Transcendental Functions Interior nodes were exp, log, sin, cos etc., or leaves e, π?

slide-61
SLIDE 61

Nonrobustness Real Root Isolation

Fundamental Problem

Zero Problem Are two real numbers α, β equal?

k

√ − / 23 4 5 12

1+ √ 5 2

+ / ∗

Numerical Representation of α Data Structure – Rooted DAG, G(α). Isolating interval representation:

1

A(X) ∈ Z[X], A(α) = 0,

2

Interval separating α from other roots of A(X).

Constructive Zero Bounds: G(α), constructs b s.t. |α| > 2−b if α = 0. Transcendental Functions Interior nodes were exp, log, sin, cos etc., or leaves e, π?

slide-62
SLIDE 62

Nonrobustness Real Root Isolation

Zero Problem for exp, log Expressions, Richardson’07

exp, log Expressions Interior nodes are {+,−,∗,/, k

√}∪{exp,log}

slide-63
SLIDE 63

Nonrobustness Real Root Isolation

Zero Problem for exp, log Expressions, Richardson’07

exp, log Expressions Interior nodes are {+,−,∗,/, k

√}∪{exp,log}

Schanuel’s Conjecture Given n complex numbers z1,...,zn linearly independent over Q. At least n transcendental numbers in {z1,...,zn,ez1,...,ezn}. Generalizes Lindemann-Weierstrass Theorem z1,...,zn are n linearly independent algebraic numbers.

slide-64
SLIDE 64

Nonrobustness Real Root Isolation

Complexity of Algebraic Numbers

Which algebraic numbers can be relatively approximated in poly time?

√ 1000001 √ 1000025 √ 1000031 √ 1000084 √ 1000087 √ 10000134 √ 10000158 √ 1000182 √ 1000198 √ 1000199 √ 1000175 √ 1000169 √ 1000116 √ 1000018 √ 1000002 √ 1000113 √ 1000066 √ 1000042 p q

Sum of Square Roots

∑k

i=1

√ai −∑k

i=1

bi,

|ai|,|bi| ≤ N.

S(N,k), the minimum positive absolute value

  • f the sum.

Current bounds: S(N,k) N−2k . Hope: S(N,k) N−k.

slide-65
SLIDE 65

Nonrobustness Real Root Isolation

Real Root Isolation

The Problem Given A(X) ∈ Z[X], degree d.

A(X)

slide-66
SLIDE 66

Nonrobustness Real Root Isolation

Real Root Isolation

The Problem Given A(X) ∈ Z[X], degree d.

A(X)

slide-67
SLIDE 67

Nonrobustness Real Root Isolation

Real Root Isolation

The Problem Given A(X) ∈ Z[X], degree d.

A(X)

slide-68
SLIDE 68

Nonrobustness Real Root Isolation

Real Root Isolation

The Problem Given A(X) ∈ Z[X], degree d.

A(X)

Assumption All the roots are of multiplicity one, i.e. GCD(A(X),A′(X)) = 1.

slide-69
SLIDE 69

Nonrobustness Real Root Isolation

Selective History

Classical Work Descartes, Newton, Fourier, Sturm, Vincent, Weierstrass, Obreshkoff, Ostrowski, Weyl, Henrici, ... Modern Work – Complexity and Implementation Schönhage, Smale, Pan (optimal complexity results), ... Collins, Johnson, Krandick, Bini, Mehlhorn, Sagraloff, ... Relevance Fundamental problem in computational algebra, used in Cylindrical Algebraic Decomposition, in Ray Tracing, Computer Aided Design, for verifying conjectures, ...

slide-70
SLIDE 70

Nonrobustness Real Root Isolation

A General Subdivision Algorithm

Input: A(X) ∈ Z[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0.

slide-71
SLIDE 71

Nonrobustness Real Root Isolation

A General Subdivision Algorithm

Input: A(X) ∈ Z[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0. The Real Root Counting function Count(A,I) = number of real roots of A(X) in I.

slide-72
SLIDE 72

Nonrobustness Real Root Isolation

A General Subdivision Algorithm

Input: A(X) ∈ Z[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0. The Real Root Counting function Count(A,I) = number of real roots of A(X) in I. RootIsol(A(X),I)

1

If Count(A,I) = 0 then return.

2

If Count(A,I) = 1 then output I and return.

3

Let m be the midpoint of I = (Il,Ir).

4

Recurse on (A(X),(Il,m)) and (A(X),(m,Ir)).

slide-73
SLIDE 73

Nonrobustness Real Root Isolation

Illustration

I0 7

slide-74
SLIDE 74

Nonrobustness Real Root Isolation

Illustration

I0 7 4 3

slide-75
SLIDE 75

Nonrobustness Real Root Isolation

Illustration

I0 7 4 3 4 1 2

slide-76
SLIDE 76

Nonrobustness Real Root Isolation

Illustration

I0 7 4 3 4 1 2

slide-77
SLIDE 77

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 :=

rem(Ai−1,Ai).

slide-78
SLIDE 78

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai).

slide-79
SLIDE 79

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai). A(x) = (x2 − x − 1), A′(x) = 2x − 1 x2 − x − 1 = (2x − 1) (2x−1)

4

− 5

4 = 4x2−4x+1 4

− 5

4.

A = (x2 − x − 1,2x − 1,− 5

4).

slide-80
SLIDE 80

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai). A(x) = (x2 − x − 1), A′(x) = 2x − 1 x2 − x − 1 = (2x − 1) (2x−1)

4

− 5

4 = 4x2−4x+1 4

− 5

4.

A = (x2 − x − 1,2x − 1,+ 5

4).

slide-81
SLIDE 81

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai). A(x) = (x2 − x − 1), A′(x) = 2x − 1 x2 − x − 1 = (2x − 1) (2x−1)

4

− 5

4 = 4x2−4x+1 4

− 5

4.

A = (x2 − x − 1,2x − 1,+ 5

4).

The Variation Given c ∈ R, evaluate A at c, i.e., (A0(c),A1(c),...,Ak(c)). Drop all the zeros from the sequence (A0(c),A1(c),...,Ak(c)). Var(A;c) := no. of sign flips from + to − or vice versa.

slide-82
SLIDE 82

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai). A(x) = (x2 − x − 1), A′(x) = 2x − 1 x2 − x − 1 = (2x − 1) (2x−1)

4

− 5

4 = 4x2−4x+1 4

− 5

4.

A = (x2 − x − 1,2x − 1,+ 5

4).

Var(A;1) = #(−,+,+) = 1, Var(A;2) = #(+,+,+) = 0. The Variation Given c ∈ R, evaluate A at c, i.e., (A0(c),A1(c),...,Ak(c)). Drop all the zeros from the sequence (A0(c),A1(c),...,Ak(c)). Var(A;c) := no. of sign flips from + to − or vice versa.

slide-83
SLIDE 83

Nonrobustness Real Root Isolation

Sturm Sequences

The Sequence A := (A0 = A,A1 = A′,...,Ak), Ai+1 := −rem(Ai−1,Ai). A(x) = (x2 − x − 1), A′(x) = 2x − 1 x2 − x − 1 = (2x − 1) (2x−1)

4

− 5

4 = 4x2−4x+1 4

− 5

4.

A = (x2 − x − 1,2x − 1,+ 5

4).

Var(A;1) = #(−,+,+) = 1, Var(A;2) = #(+,+,+) = 0. The Variation Given c ∈ R, evaluate A at c, i.e., (A0(c),A1(c),...,Ak(c)). Drop all the zeros from the sequence (A0(c),A1(c),...,Ak(c)). Var(A;c) := no. of sign flips from + to − or vice versa. Sturm’s Theorem, 1829

  • No. of real roots of A(x) in (c,d) = Var(A;c)− Var(A;d).
slide-84
SLIDE 84

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm, Davenport’85

I0 7 4 3 4 1 2 3 1 1 2 1 1 1 1 1

Size of the subdivision tree, |T|.

2

Worst case complexity at every node.

slide-85
SLIDE 85

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm, Davenport’85

I0 7 4 3 4 1 2 3 1 1 2 1 1 1 1 1

Size of the subdivision tree, |T|.

2

Worst case complexity at every node.

slide-86
SLIDE 86

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

Measure of Complexity Root Separation of A, sep(A) := min{|α −β| : α,β ∈ Z(A) ⊆ C}.

slide-87
SLIDE 87

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

Measure of Complexity Root Separation of A, sep(A) := min{|α −β| : α,β ∈ Z(A) ⊆ C}. Bounds A(x) = ∑d

i=0 aixi ∈ Z[x], degree d, |ai| ≤ 2L, i = 0,...,d.

−logsep(A) = O(dL+ d logd).

w(I0) < 2L.

slide-88
SLIDE 88

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 1 2 3 1 1 2 1 1 1 1

slide-89
SLIDE 89

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 1 2 3 1 1 2 1 1 1 1

T ′

slide-90
SLIDE 90

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 1 2 3 1 1 2 1 1 1 1

|T| ≤ 2|T ′|

slide-91
SLIDE 91

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

slide-92
SLIDE 92

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ

slide-93
SLIDE 93

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

slide-94
SLIDE 94

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

slide-95
SLIDE 95

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

|T ′| ≤ ∑J log

w(I0)

|αJ−βJ|

slide-96
SLIDE 96

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

|T ′| ≤ ∑J log

w(I0)

|αJ−βJ| = O(d logw(I0))−∑J log|αJ −βJ|

slide-97
SLIDE 97

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

|T ′| ≤ ∑J log

w(I0)

|αJ−βJ| = O(d logw(I0))−∑J log|αJ −βJ|

−∑J log|αJ −βJ|

slide-98
SLIDE 98

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

|T ′| ≤ ∑J log

w(I0)

|αJ−βJ| = O(d logw(I0))−∑J log|αJ −βJ|

−∑J log|αJ −βJ| = O(−d logsep(A)) = O(d(dL+ d logd))

slide-99
SLIDE 99

Nonrobustness Real Root Isolation

Complexity Analysis – Sturm’s Algorithm

I0 7 4 3 4 2 3 2

J αJ βJ log

w(I0) |αJ−βJ|

|T ′| ≤ ∑J log

w(I0)

|αJ−βJ| = O(d logw(I0))−∑J log|αJ −βJ|

−∑J log|αJ −βJ| = O(−d logsep(A)) = O(d(dL+ d logd)) −∑J log|αJ −βJ| = O(dL+ d logd), Davenport-Mahler.

slide-100
SLIDE 100

Nonrobustness Real Root Isolation

Some Remarks on Sturm’s Algorithm

The subdivision tree size is optimal (Mignotte’s polynomials).

slide-101
SLIDE 101

Nonrobustness Real Root Isolation

Some Remarks on Sturm’s Algorithm

The subdivision tree size is optimal (Mignotte’s polynomials). (Almost) Never used in practice nowadays. Prefer weaker estimates.

Estimate(A;I) ≥ number of real roots of A in I. If Estimate(A;I) ≤ 1 then exact number.

E.g., Descartes’s rule of signs.

slide-102
SLIDE 102

Nonrobustness Real Root Isolation

Some Remarks on Sturm’s Algorithm

The subdivision tree size is optimal (Mignotte’s polynomials). (Almost) Never used in practice nowadays. Prefer weaker estimates.

Estimate(A;I) ≥ number of real roots of A in I. If Estimate(A;I) ≤ 1 then exact number.

E.g., Descartes’s rule of signs. It’s not the first algorithm that comes to mind.

slide-103
SLIDE 103

Nonrobustness Real Root Isolation

An Idea For Real Root Isolation

A(x) I

slide-104
SLIDE 104

Nonrobustness Real Root Isolation

An Idea For Real Root Isolation

slide-105
SLIDE 105

Nonrobustness Real Root Isolation

An Idea For Real Root Isolation

0 ∈ A(I) 0 ∈ A(I)

  • A(I) ⊂ R range of values A(x) takes on I.
slide-106
SLIDE 106

Nonrobustness Real Root Isolation

An Idea For Real Root Isolation

0 ∈ A(I) If 0 ∈ A(I) ⇓ ⇑ A(I) ⊂ R range of values A(x) takes on I. Box-function: Given I, compute A(I) s.t. A(I) ⊆ A(I).

slide-107
SLIDE 107

Nonrobustness Real Root Isolation

An Idea For Real Root Isolation

If 0 ∈ A′(I) ⇑ A(I) ⊂ R range of values A(x) takes on I. Box-function: Given I, compute A(I) s.t. A(I) ⊆ A(I).

slide-108
SLIDE 108

Nonrobustness Real Root Isolation

The Algorithm, Mitchell’90

Input: A(X) ∈ R[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0. EVAL Algorithm 1. Initialize a queue Q ← {I0}. 2. While Q is not empty do 3. Remove an interval I from Q. 4. If 0 ∈ A(I) or 0 ∈ A′(I) then stop. 5. Else Subdivide I into two halves and push them on Q. Assumption A(x) is square-free, no multiple roots.

slide-109
SLIDE 109

Nonrobustness Real Root Isolation

Implementing the Box-function

Let A(x) = ∑n

i=0 aixi, ai ∈ R.

Interval Arithmetic

[a,b]+[c,d] := [a+ c,b + d]. [a,b]∗[c,d] := [min{ac,ad,bc,bd},max{ac,ad,bc,bd}].

slide-110
SLIDE 110

Nonrobustness Real Root Isolation

Implementing the Box-function

Let A(x) = ∑n

i=0 aixi, ai ∈ R.

Interval Arithmetic

[a,b]+[c,d] := [a+ c,b + d]. [a,b]∗[c,d] := [min{ac,ad,bc,bd},max{ac,ad,bc,bd}].

Implementing A(I) Compute ∑n

k=0 akIk.

slide-111
SLIDE 111

Nonrobustness Real Root Isolation

Implementing the Box-function

Let A(x) = ∑n

i=0 aixi, ai ∈ R.

Interval Arithmetic

[a,b]+[c,d] := [a+ c,b + d]. [a,b]∗[c,d] := [min{ac,ad,bc,bd},max{ac,ad,bc,bd}].

Implementing A(I) Compute ∑n

k=0 akIk.

Horner’s evaluation: ((anI + an−1)∗ I +...+ a1)∗ I + a0.

slide-112
SLIDE 112

Nonrobustness Real Root Isolation

Implementing the Box-function

Let A(x) = ∑n

i=0 aixi, ai ∈ R.

Interval Arithmetic

[a,b]+[c,d] := [a+ c,b + d]. [a,b]∗[c,d] := [min{ac,ad,bc,bd},max{ac,ad,bc,bd}].

Implementing A(I) Compute ∑n

k=0 akIk.

Horner’s evaluation: ((anI + an−1)∗ I +...+ a1)∗ I + a0. Centered Form: A(I) :=

  • A(m(I))±∑k>0 |A(k)(m)|

k!

  • w(I)

2

k .

slide-113
SLIDE 113

Nonrobustness Real Root Isolation

Implementing the Box-function

Let A(x) = ∑n

i=0 aixi, ai ∈ R.

Interval Arithmetic

[a,b]+[c,d] := [a+ c,b + d]. [a,b]∗[c,d] := [min{ac,ad,bc,bd},max{ac,ad,bc,bd}].

Implementing A(I) Compute ∑n

k=0 akIk.

Horner’s evaluation: ((anI + an−1)∗ I +...+ a1)∗ I + a0. Centered Form: A(I) :=

  • A(m(I))±∑k>0 |A(k)(m)|

k!

  • w(I)

2

k .

Two Properties of Box-functions Conservative: A(I) ⊆ A(I). Convergent: I1 ⊃ I2 ⊃ I3 ⊃ ··· ⊃ {x} then A(Ij) → A(x).

slide-114
SLIDE 114

Nonrobustness Real Root Isolation

EVAL: Bounds on Recursion Tree Size

Goal – Real Root Isolation A ∈ Z[x] square-free, degree d, with L-bit coefficients. Aim: O(d(L+ logd)) Similar bounds for Sturm’s method.

slide-115
SLIDE 115

Nonrobustness Real Root Isolation

EVAL: Bounds on Recursion Tree Size

Goal – Real Root Isolation A ∈ Z[x] square-free, degree d, with L-bit coefficients. Aim: O(d(L+ logd)) Similar bounds for Sturm’s method. Result O(d(L+ r)), where r is the number of real roots in input interval.

slide-116
SLIDE 116

Nonrobustness Real Root Isolation

The EVAL Algorithm

Input: A(X) ∈ R[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0. EVAL Algorithm: EVAL(A,I0) 1. Initialize a queue Q ← {I0}. 2. While Q is not empty do 3. Remove an interval I from Q. 4. If 0 ∈ A(I) or 0 ∈ A′(I) then stop. 5. Else Subdivide I into two halves and push them on Q.

slide-117
SLIDE 117

Nonrobustness Real Root Isolation

The EVAL Algorithm

Input: A(X) ∈ R[X] of degree d, and I0. Output: Isolating intervals for roots of A(X) in I0. EVAL Algorithm: EVAL(A,I0) 1. Initialize a queue Q ← {I0}. 2. While Q is not empty do 3. Remove an interval I from Q. 4. If 0 ∈ A(I) or 0 ∈ A′(I) then stop. 5. Else Subdivide I into two halves and push them on Q. Definition P(I0) – partition of I0 at the leaves of the subdivision tree EVAL(A,I0).

slide-118
SLIDE 118

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I).

slide-119
SLIDE 119

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I). Lemma

#P(I0) ≤ 2

  • I0 G(x)dx.
slide-120
SLIDE 120

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I). Lemma

#P(I0) ≤ 2

  • I0 G(x)dx.

Proof Let I ∈ P(I0) and J be the interval associated with its parent.

slide-121
SLIDE 121

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I). Lemma

#P(I0) ≤ 2

  • I0 G(x)dx.

Proof Let I ∈ P(I0) and J be the interval associated with its parent.

∀x ∈ J, w(J)G(x) > 1.

slide-122
SLIDE 122

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I). Lemma

#P(I0) ≤ 2

  • I0 G(x)dx.

Proof Let I ∈ P(I0) and J be the interval associated with its parent.

∀x ∈ J, w(J)G(x) > 1. ∀x ∈ I, 2w(I)G(x) > 1 (since I ⊆ J).

slide-123
SLIDE 123

Nonrobustness Real Root Isolation

EVAL: An Integral Bound on Tree Size

Stopping Function, Burr-Krahmer-Yap’09 G : R → R≥0. If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Terminal means either 0 ∈ A(I) or 0 ∈ A(I). Lemma

#P(I0) ≤ 2

  • I0 G(x)dx.

Proof Let I ∈ P(I0) and J be the interval associated with its parent.

∀x ∈ J, w(J)G(x) > 1. ∀x ∈ I, 2w(I)G(x) > 1 (since I ⊆ J).

2

  • I0 G(x)dx = ∑I∈P(I0) 2
  • I G(x)dx ≥ ∑I∈P(I0) 1 = #P(I0).
slide-124
SLIDE 124

Nonrobustness Real Root Isolation

EVAL: What choice of Stopping Function?

Stopping Function G : R → R≥0 If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal.

slide-125
SLIDE 125

Nonrobustness Real Root Isolation

EVAL: What choice of Stopping Function?

Stopping Function G : R → R≥0 If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. Intuitively, we expect G(x) ∼ 2min

  • 1

|x−Z(A)|,

1

|x−Z(A′)|

  • .

∼ 2w(I) I x

slide-126
SLIDE 126

Nonrobustness Real Root Isolation

EVAL: What choice of Stopping Function?

Stopping Function G : R → R≥0 If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. The Stopping Function (Burr-Krahmer, 2012) S(x) := ∑α∈Z(A)

1

|x−α|.

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

G(x) := min{S(x),T(x)}.

slide-127
SLIDE 127

Nonrobustness Real Root Isolation

EVAL: What choice of Stopping Function?

Stopping Function G : R → R≥0 If ∃x ∈ I such that w(I)G(x) ≤ 1 then I is terminal. The Stopping Function (Burr-Krahmer, 2012) S(x) := ∑α∈Z(A)

1

|x−α|.

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

G(x) := min{S(x),T(x)}. Key Property

  • A′(x)

A(x)

  • ≤ S(x),
  • A′′(x)

A(x)

  • ≤ S2(x),...,
  • A(k)(x)

A(x)

  • ≤ Sk(x),....

∑k>0

  • A(k)(x)

k!A(x)

  • w(I)

2

k ≤ ∑k>0

1 k!

  • S(x)w(I)

2

k < 1.

slide-128
SLIDE 128

Nonrobustness Real Root Isolation

EVAL: Bounding the Integral, S.-Yap’12

S(x) := ∑α∈Z(A)

1

|x−α|

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

#P(I0) ≤

  • I0 min{S(x),T(x)}dx

I0

slide-129
SLIDE 129

Nonrobustness Real Root Isolation

EVAL: Bounding the Integral, S.-Yap’12

S(x) := ∑α∈Z(A)

1

|x−α|

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

#P(I0) ≤

  • I0 min{S(x),T(x)}dx

I0

slide-130
SLIDE 130

Nonrobustness Real Root Isolation

EVAL: Bounding the Integral, S.-Yap’12

S(x) := ∑α∈Z(A)

1

|x−α|

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

#P(I0) ≤

  • I0 min{S(x),T(x)}dx

I0

slide-131
SLIDE 131

Nonrobustness Real Root Isolation

EVAL: Bounding the Integral, S.-Yap’12

S(x) := ∑α∈Z(A)

1

|x−α|

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

#P(I0) ≤

  • I0 min{S(x),T(x)}dx ≤
  • I1 T(x)dx +
  • I0\I1 S(x)dx

I0

slide-132
SLIDE 132

Nonrobustness Real Root Isolation

EVAL: Bounding the Integral, S.-Yap’12

S(x) := ∑α∈Z(A)

1

|x−α|

T(x) := ∑α′∈Z(A′)

1

|x−α′|.

#P(I0) ≤

  • I0 min{S(x),T(x)}dx ≤
  • I1 T(x)dx +
  • I0\I1 S(x)dx

I0

  • I1 T(x)dx = O(dr) and
  • I0\I1 S(x)dx = O(d(L+ logd)).
slide-133
SLIDE 133

Nonrobustness Real Root Isolation

Real Root Isolation – Beyond Polynomials

Remarks on EVAL For differentiable functions f as long as f(I), f ′(I).

slide-134
SLIDE 134

Nonrobustness Real Root Isolation

Real Root Isolation – Beyond Polynomials

Remarks on EVAL For differentiable functions f as long as f(I), f ′(I). Assume f has no multiple roots.

slide-135
SLIDE 135

Nonrobustness Real Root Isolation

Real Root Isolation – Beyond Polynomials

Remarks on EVAL For differentiable functions f as long as f(I), f ′(I). Assume f has no multiple roots. To handle multiplicity we have to go to C.

slide-136
SLIDE 136

Nonrobustness Real Root Isolation

Real Root Isolation – Beyond Polynomials

Remarks on EVAL For differentiable functions f as long as f(I), f ′(I). Assume f has no multiple roots. To handle multiplicity we have to go to C. Root Clustering of Holomorphic Functions, Sagraloff-S.-Yap’13 Pellet’s Theorem: Disc D(m,r) ⊆ C and

|fk(m)r k| > ∑j=k |fj(m)|r j then D(m,r) contains k roots.

Darboux’s theorem. Soft-predicates: Given ε ≥ 0, if x ≤ ε then treat x as 0.

slide-137
SLIDE 137

Nonrobustness Real Root Isolation

The Subdivision Paradigm

In Other Contexts Root Isolation of Zero Dimensional Systems [Moore (1966), Kearfott (1987), Stahl (1995)]. Isotopic meshing of curves and surfaces [Snyder (1992), Plantinga-Vegter (2004), Lin-Yap (2011)]. Marching cube algorithms [Lorensen-Cline (1987)]. Robot Motion Planning [Brooks and Lozano-Perez (1983), Zhu-Latombe (1991)]. Voronoi Diagrams of Polytopes, Polyhedron. [Vleugel-Overmars (1995), Li-S.-Yap (2012)].

slide-138
SLIDE 138

Nonrobustness Real Root Isolation

Thank You!