UNIONS OF ONIONS Maarten L offler Wolfgang Mulzer Universiteit - - PowerPoint PPT Presentation

unions of onions maarten l offler wolfgang mulzer
SMART_READER_LITE
LIVE PREVIEW

UNIONS OF ONIONS Maarten L offler Wolfgang Mulzer Universiteit - - PowerPoint PPT Presentation

UNIONS OF ONIONS Maarten L offler Wolfgang Mulzer Universiteit Utrecht Freie Universit at Berlin 1 CHAPTER I THE PROBLEM 2 PREPROCESSING PARADIGM 3 PREPROCESSING PARADIGM Once upon a time, we were given R . 3 PREPROCESSING


slide-1
SLIDE 1

1

UNIONS OF ONIONS Maarten L¨

  • ffler

Wolfgang Mulzer

Freie Universit¨ at Berlin Universiteit Utrecht

slide-2
SLIDE 2

2

CHAPTER I THE PROBLEM

slide-3
SLIDE 3

3

PREPROCESSING PARADIGM

slide-4
SLIDE 4

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

slide-5
SLIDE 5

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

slide-6
SLIDE 6

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

Soon, we get P:

  • ne point per region of R.
slide-7
SLIDE 7

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

Soon, we get P:

  • ne point per region of R.

P

slide-8
SLIDE 8

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

Soon, we get P:

  • ne point per region of R.

P

What we really want is some structure S(P).

slide-9
SLIDE 9

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

Soon, we get P:

  • ne point per region of R.

P

What we really want is some structure S(P).

S(P)

slide-10
SLIDE 10

3

PREPROCESSING PARADIGM

Once upon a time, we were given R.

R

Soon, we get P:

  • ne point per region of R.

P

What we really want is some structure S(P).

S(P)

But time is precious!

slide-11
SLIDE 11

3

PREPROCESSING PARADIGM

R P S(P)

QUESTION: Can we do some of the computation of S(P) before we know P?

slide-12
SLIDE 12

3

PREPROCESSING PARADIGM

R P S(P)

QUESTION: Can we do some of the computation of S(P) before we know P? First, compute an intermediary structure H(R).

slide-13
SLIDE 13

3

PREPROCESSING PARADIGM

R P S(P)

QUESTION: Can we do some of the computation of S(P) before we know P? First, compute an intermediary structure H(R).

H(R)

slide-14
SLIDE 14

3

PREPROCESSING PARADIGM

R P S(P)

QUESTION: Can we do some of the computation of S(P) before we know P? First, compute an intermediary structure H(R).

H(R)

Then, once we get P, compute S(P) using H(R).

slide-15
SLIDE 15

3

PREPROCESSING PARADIGM

R P S(P)

QUESTION: Can we do some of the computation of S(P) before we know P? First, compute an intermediary structure H(R).

H(R)

Then, once we get P, compute S(P) using H(R).

slide-16
SLIDE 16

3

PREPROCESSING PARADIGM

R P S(P) H(R)

Linear time algorithms are known for:

[Held & Mitchell] [L & Snoeyink] [Ezra & Mulzer]

  • Triangulations
  • Delaunay triangulations

Superlinear, but o(n log n):

  • Convex hull (lines)
slide-17
SLIDE 17

4

ONIONS

slide-18
SLIDE 18

4

ONIONS

Let P be a set of n points in the plane.

slide-19
SLIDE 19

4

ONIONS

Let P be a set of n points in the plane.

P

slide-20
SLIDE 20

4

ONIONS

Let P be a set of n points in the plane. DEFINITION: The onion of P is the convex hull

  • f P, plus the onion of the rest of the points.

P

slide-21
SLIDE 21

4

ONIONS

Let P be a set of n points in the plane. DEFINITION: The onion of P is the convex hull

  • f P, plus the onion of the rest of the points.

P

slide-22
SLIDE 22

4

ONIONS

Let P be a set of n points in the plane. DEFINITION: The onion of P is the convex hull

  • f P, plus the onion of the rest of the points.

P

slide-23
SLIDE 23

4

ONIONS

Let P be a set of n points in the plane. DEFINITION: The onion of P is the convex hull

  • f P, plus the onion of the rest of the points.

P

slide-24
SLIDE 24

4

ONIONS

Let P be a set of n points in the plane. DEFINITION: The onion of P is the convex hull

  • f P, plus the onion of the rest of the points.

P

Onions have many useful and tasty applications.

slide-25
SLIDE 25

5

THE ONION PREPROCESSING PROBLEM

slide-26
SLIDE 26

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks.

slide-27
SLIDE 27

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks.

slide-28
SLIDE 28

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R).

slide-29
SLIDE 29

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R).

slide-30
SLIDE 30

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R). Reconstruction algorithm: given P and H(R), compute the onion of P.

slide-31
SLIDE 31

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R). Reconstruction algorithm: given P and H(R), compute the onion of P.

slide-32
SLIDE 32

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R). Reconstruction algorithm: given P and H(R), compute the onion of P.

slide-33
SLIDE 33

5

THE ONION PREPROCESSING PROBLEM

Let R be a set of n disjoint unit disks. Preprocessing algorithm: compute some magical structure H(R). Reconstruction algorithm: given P and H(R), compute the onion of P.

slide-34
SLIDE 34

6

CHAPTER II THE SOLUTION

slide-35
SLIDE 35

7

PREPROCESSING ALGORITHM

slide-36
SLIDE 36

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks.

slide-37
SLIDE 37

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks.

R

slide-38
SLIDE 38

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. LEMMA: There exists a line that intersects at most √n log n disks and has at most half of the disks completely on each side.

R

slide-39
SLIDE 39

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. LEMMA: There exists a line that intersects at most √n log n disks and has at most half of the disks completely on each side.

R

slide-40
SLIDE 40

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. LEMMA: There exists a line that intersects at most √n log n disks and has at most half of the disks completely on each side.

R [Alon et al.]

slide-41
SLIDE 41

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-42
SLIDE 42

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-43
SLIDE 43

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-44
SLIDE 44

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-45
SLIDE 45

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-46
SLIDE 46

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-47
SLIDE 47

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-48
SLIDE 48

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-49
SLIDE 49

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R

slide-50
SLIDE 50

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R T

slide-51
SLIDE 51

7

PREPROCESSING ALGORITHM

Consider a set R of n disjoint unit disks. We apply the lemma recursively, and get a binary space partition tree T.

R T

LEMMA: T has height log n + O(1).

slide-52
SLIDE 52

7

PREPROCESSING ALGORITHM

R T

HINT: T = H(R) is our magical structure!

slide-53
SLIDE 53

8

RECONSTRUCTION ALGORITHM

R T

slide-54
SLIDE 54

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T.

R T

slide-55
SLIDE 55

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T.

R P T

slide-56
SLIDE 56

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T.

P T

slide-57
SLIDE 57

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Remove any empty leaves of T.

P T

slide-58
SLIDE 58

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Remove any empty leaves of T.

T P

slide-59
SLIDE 59

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-60
SLIDE 60

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-61
SLIDE 61

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-62
SLIDE 62

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-63
SLIDE 63

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-64
SLIDE 64

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-65
SLIDE 65

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-66
SLIDE 66

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-67
SLIDE 67

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-68
SLIDE 68

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-69
SLIDE 69

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

T P

slide-70
SLIDE 70

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

P

slide-71
SLIDE 71

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

P

slide-72
SLIDE 72

8

RECONSTRUCTION ALGORITHM

First, locate P in R and T. Then, recursively unite the onions. Remove any empty leaves of T.

P

Done!

slide-73
SLIDE 73

9

BUT!

slide-74
SLIDE 74

9

BUT! ...how do you unite two onions?

slide-75
SLIDE 75

9

BUT! ...how do you unite two onions?

slide-76
SLIDE 76

9

BUT! ...how do you unite two onions?

OBSERVATION: We can find the convex hull of two

  • nions in O(log n) time.
slide-77
SLIDE 77

9

BUT! ...how do you unite two onions?

OBSERVATION: We can find the convex hull of two

  • nions in O(log n) time.
slide-78
SLIDE 78

9

BUT! ...how do you unite two onions?

OBSERVATION: We can find the convex hull of two

  • nions in O(log n) time.

Let’s remove it and recurse.

slide-79
SLIDE 79

9

BUT! ...how do you unite two onions?

OBSERVATION: We can find the convex hull of two

  • nions in O(log n) time.

Let’s remove it and recurse.

slide-80
SLIDE 80

9

BUT! ...how do you unite two onions?

OBSERVATION: We can find the convex hull of two

  • nions in O(log n) time.

Let’s remove it and recurse. Unfortunately, what is left are no longer proper onions...

slide-81
SLIDE 81

10

ONION RESTAURATION & UNIFICATION

slide-82
SLIDE 82

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions.

slide-83
SLIDE 83

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions.

slide-84
SLIDE 84

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions.

slide-85
SLIDE 85

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again.

slide-86
SLIDE 86

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again.

slide-87
SLIDE 87

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again.

slide-88
SLIDE 88

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again.

slide-89
SLIDE 89

10

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again.

slide-90
SLIDE 90

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-91
SLIDE 91

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-92
SLIDE 92

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-93
SLIDE 93

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-94
SLIDE 94

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-95
SLIDE 95

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-96
SLIDE 96

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-97
SLIDE 97

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-98
SLIDE 98

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-99
SLIDE 99

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-100
SLIDE 100

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-101
SLIDE 101

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-102
SLIDE 102

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-103
SLIDE 103

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-104
SLIDE 104

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-105
SLIDE 105

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-106
SLIDE 106

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-107
SLIDE 107

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-108
SLIDE 108

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-109
SLIDE 109

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-110
SLIDE 110

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-111
SLIDE 111

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc...

slide-112
SLIDE 112

11

ONION RESTAURATION & UNIFICATION

Compute convex hulls of the individual onions. Recurse once again. Etc... That took O(k2 log n) time to compute k layers.

slide-113
SLIDE 113

12

THE FINAL RESULT

slide-114
SLIDE 114

12

THE FINAL RESULT

We can split a set of n unit disks in O(n) time.

slide-115
SLIDE 115

12

THE FINAL RESULT

We can split a set of n unit disks in O(n) time. So, we can compute H(R) in (n log n) time.

slide-116
SLIDE 116

12

THE FINAL RESULT

We can split a set of n unit disks in O(n) time. So, we can compute H(R) in (n log n) time. We can unite a pair of onions in O(k2 log n) time.

slide-117
SLIDE 117

12

THE FINAL RESULT

We can split a set of n unit disks in O(n) time. So, we can compute H(R) in (n log n) time. We can unite a pair of onions in O(k2 log n) time. So, we can reconstruct an onion in O(n log k) time.

slide-118
SLIDE 118

13

THANK YOU! any questions?