35
Technische Universit¨ at M ¨ unchen Perlen der Informatik SpaceTrees and Space-Filling Curves Michael Bader Winter 2012/2013 Michael Bader: Perlen der Informatik SpaceTrees and Space-Filling Curves, Winter 2012/2013 1

Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Perlen der Informatik

SpaceTrees and Space-Filling Curves

Michael Bader

Winter 2012/2013

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 1

Page 2: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Part I

From Quadtrees to Space-FillingCurves

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 2

Page 3: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Quadtrees to Describe Geometric Objects

• start with an initial square (covering the entire domain)• recursive substructuring in four subsquares• adaptive refinement possible• terminate, if squares entirely within or outside domain

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 3

Page 4: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Storing a Quadtree – Sequentialisation

• sequentialise cell information according to depth-firsttraversal

• relative numbering of the child nodes determinessequential order

• here: leads to so-called Morton order

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 4

Page 5: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Morton Order

11

00

10

01 0000 0001

0010 0011

1000 1001

1010 1011

1100 1101

1110 1111

0100 0101

0110 0111

Relation to bit arithmetics:• odd digits: position in vertical direction• even digits: position in horizontal direction

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 5

Page 6: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Morton Order and Cantor’s Mapping

Georg Cantor (1877):

0.01111001 . . .→(

0.0110 . . .0.1101 . . .

)

• bijective mapping [0,1]→ [0,1]2

• proved identical cardinality of [0,1] and [0,1]2

• provoked the question: is there a continuous mapping?(i.e. a curve)

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 6

Page 7: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Preserving Neighbourship for a 2D Octree

Requirements:• consider a simple 4× 4-grid• uniformly refined• subsequently numbered cells should be neighbours in 2D

Leads to (more or less unique) numbering of children:

0 1

23

4

5 6

7 8

9 10

11

13

14

12

15. . .. . .0 1 2 3 4 7 8 11 12 13 14 15

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 7

Page 8: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Preserving Neighbourship for a 2D Octree (2)

• adaptive refinement possible• neighbours in sequential order remain neighbours in 2D• here: similar to the concept of Hilbert curves

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 8

Page 9: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Open Questions

Algorithmics:• How do we describe the sequential order algorithmically?• What kind of operations are possible?• Are there further “orderings” with the same or similar

properties?

Applications:• Can we quantify the “neighbour” property?• In what applications can this property be useful?• What further operations

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 9

Page 10: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Part II

Space-Filling Curves

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 10

Page 11: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Definition of a Space-filling Curve

Given a continuous, surjective mapping f : I → Q ⊂ Rn,then f∗(I) is called a space-filling curve, if |Q| > 0.

Comments:• a curve is defined as the image f∗(I) of a continuous

mapping f : I → Rn

• surjective: every element in Q occurs as a value of f ,i.e., Q = f∗(I)

• I ⊂ R and I is compact, typically I = [0,1]• if Q is a smooth manifold, then there can be no bijective

space-filling mapping f : I → Q ⊂ Rn

(theorem: E. Netto, 1879).

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 11

Page 12: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Example: Construction of the Hilbert curve

Iterations of the Hilbert curve:• start with an iterative numbering of 4 subsquares• combine four numbering patterns to obtain a twice-as-large

pattern• proceed with further iterations

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 12

Page 13: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Example: Construction of the Hilbert curve

Recursive construction of the iterations:• split the quadratic domain into 4 congruent subsquares• find a space-filling curve for each subdomain• join the four subcurves in a suitable way

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 12

Page 14: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

A Grammar for Describing the Hilbert Curve

Construction of the iterations of the Hilbert curve:

HH H

A BA

H A

AC

BB

B

H

C

CC C

A B

→ motivates a Grammar to generate the iterations

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 13

Page 15: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

A Grammar for Describing the Hilbert Curve

• Non-terminal symbols: {H,A,B,C}, start symbol H• terminal characters: {↑, ↓,←,→}• productions:

H ←− A ↑ H → H ↓ BA ←− H → A ↑ A← CB ←− C ← B ↓ B → HC ←− B ↓ C ← C ↑ A

• replacement rule: in any word, all non-terminals have tobe replaced at the same time→ L-System (Lindenmayer)

⇒ the arrows describe the iterations of the Hilbert curve in“turtle graphics”

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 14

Page 16: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Definition of the Hilbert Curve’s Mapping

Definition: (Hilbert curve)• each parameter t ∈ I := [0,1] is contained in a sequence

of intervals

I ⊃ [a1,b1] ⊃ . . . ⊃ [an,bn] ⊃ . . . ,

where each interval result from a division-by-four of theprevious interval.

• each such sequence of intervals can be uniquely mappedto a corresponding sequence of 2D intervals (subsquares)

• the 2D sequence of intervals converges to a unique point qin q ∈ Q := [0,1]× [0,1] – q is defined as h(t).

Theorem

h : I → Q defines a space-filling curve, the Hilbert curve.

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 15

Page 17: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Claim: h defines a Space-filling Curve

We need to prove:• h is a mapping, i.e. each t ∈ I has a unique function value

h(t)→ OK, if h(t) is independent of the choice of thesequence of intervals (proof skipped)

• h : I → Q is surjective:• for each point q ∈ Q, we can construct an appropriate

sequence of 2D-intervals• the 2D sequence corresponds in a unique way to a

sequence of intervals in I – this sequence defines anoriginal value of q⇒ every q ∈ Q occurs as an image point.

• h is continuous→ see proof of Holder continuity

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 16

Page 18: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

How to Compute the Mapping – Vertex Labelling

So far: grammar-based description• defines all iterations of the curve (“infinite construction”)• leads to so-called traversal algorithm: visit all subsquares

in SFC order• cannot directly provide value h(t) for a given parameter

(neither a parameter t that is mapped to a given h(t) . . . )

Vertex labelling algorithm:• pass an “oriented” subsquare as parameter• implemented as a list of subsquare vertices• order of vertices in the parameter list matters:

reflects the grammar patterns H, A, B, C• see implementation in Maple worksheethilbert map vertexlab.mw

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 17

Page 19: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

3D Hilbert Curves – Iterations

1st iteration 2nd iteration

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 18

Page 20: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Part III

Parallelisation UsingSpace-Filling Curves

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 19

Page 21: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Generic Space-filling Heuristic

Bartholdi & Platzman (1988):1. Transform the problem in the unit square, via a space-filling

curve, to a problem on the unit interval2. Solve the (easier) problem on the unit interval

For parallelisation: strategy to determine partitions1. use a space-filling curve to generate a sequential order on

the grid cells2. do a 1D partitioning on the list of cells

(cut into equal-sized pieces, or similar)

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 20

Page 22: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Hilbert-Curve Partitions on a Cartesian Grid

• Hilbert curve splits vertices into right/left (red/green) set• Hilbert order traversal provides boundary vertices in

sequential orderMichael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 21

Page 23: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Example: Hilbert-Curve Partitions on Quadtrees

• here: with ghost cells(processed in identical order in both partitions)

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 22

Page 24: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Recall: Grammar to Describe the Hilbert Curve

Construction of the iterations of the Hilbert curve:

HH H

A BA

H A

AC

BB

B

H

C

CC C

A B

Can this grammar be used to generate adaptive Hilbert orders?

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 23

Page 25: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

A Grammar for Hilbert Orders on Quadtrees

• Non-terminal symbols: {H,A,B,C}, start symbol H• terminal characters: {↑, ↓,←,→, (, )}• productions:

H ←− (A ↑ H → H ↓ B)

A ←− (H → A ↑ A← C)

B ←− (C ← B ↓ B → H)

C ←− (B ↓ C ← C ↑ A)

⇒ arrows describe the iterations of the Hilbert curve in “turtlegraphics”

⇒ terminals ( and ) mark change of levels: “up” and “down”

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 24

Page 26: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Holder Continuity

A function f : I → Rn is (uniformly) continuous, iffor each ε > 0 there is a δ > 0, such that:for all t1, t2 ∈ I with |t1 − t2| < δ,the image points have a distance of ‖f (t1)− f (t2)‖2 < ε

Holder Continuity:f is called Holder continuous with exponent r on I,if a constant C > 0 exists, such that for all t1, t2 ∈ I:

‖f (t1)− f (t2)‖2 ≤ C |t1 − t2|r

• case r = 1 is equivalent to Lipschitz continuity• Holder continuity implies uniform continuity

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 25

Page 27: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Holder Continuity and Parallelisation

‖f (t1)− f (t2)‖2 ≤ C |t1 − t2|r

Interpretation:• ‖f (t1)− f (t2)‖2 is the distance of the image points• |t1 − t2| is the distance of the indices• also: |t1 − t2| is the area of the respective

space-filling-curve partition• hence: relation between volume (number of grid

cells/points) and extent (e.g. radius) of a partition

⇒ Holder continuity gives a quantitative estimate forcompactness of partitions

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 26

Page 28: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Holder Continuity of the Hilbert Curve

Proof:• given t1, t2 ∈ I; choose n, such that

4−(n+1) < |t1 − t2| < 4−n

• 4−n is interval length for the n-th iteration⇒ [t1, t2] overlaps at most two neighbouring(!) intervals.

• due to construction of the Hilbert curve, h(t1) and h(t2) arein neighbouring subsquares with face length 2−n.

• these two subsquares build a rectangle with a diagonal oflength 2−n ·

√5; therefore: ‖h(t1)− h(t2)‖2 ≤ 2−n

√5

• as 4−(n+1) < |t1 − t2|, we have 2 · 2−n <√|t1 − t2|

⇒ result: ‖h(t1)− h(t2)‖2 ≤12

√5 |t1 − t2|1/2

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 27

Page 29: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Part IV

Outlook: Parallelisation withSpace-Filling Curves and

Refinement Trees

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 28

Page 30: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Hilbert-Order Bitstream-Encoding of a Quadtree

1 1 1 1 0 1 1 0 1 0 0 1 10 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 01111 1 10

1

1 1 1 1

0 1 1 1 1 1 1 0 0 01 1 1 1 1 1

1

1

0 0 0

0 0 0 0 0

0 01 1

1 1

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 29

Page 31: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Refinement-Tree Encoding of a Quadtree

172 44 0 16 8 4 1 0 0 0 0 0 0 16 48 12 16 16 0 24 12 8 0 0 52 12 12 12 12

0 0 0

1

0 0 0

0 0 0 0 0

0 0

1 1

4

80 16 16

44

12 1616

48

812

24

1212 1212

52

172

4 4

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 30

Page 32: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Refinement-Tree Encoding of a Quadtree (2)

REFTREE algorithm for partitioning:• attributed quadtree with number of leaves/nodes of the

subtree for each node• allows to determine whether a certain node/subtree may

be skipped by the current partition (if index of first & lastleave/node are given)

• disadvantage of data structure: required informationspread across several locations in the stream⇒ may be fixed by modified depth-first order

cmp. algorithm in Maple worksheetreftree hilbert vertexlab.mw

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 31

Page 33: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Refinement-Tree Encoding with ModifiedDepth-First Order

852244844172 0 16 8 16 0 00 1 0 0 0 12 16 16 12 0 00 1212 12124

1

4 532

96 7 8

10−25

26

27−29

30−33

34−49

50 51 5352

54−97 102−121

122−12598−101

126−137

138−141

142−145

146−149

150−173

(numbers in the tree represent position of resp. node information in the stream)

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 32

Page 34: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

Parallelisation vs. Partitioning with SFCBesides partitioning, parallelisation has to deal with:• data exchange between partitions:→ unknowns on separator between partitions→ synchronize refinement status at partition boundaries

• may exploit “stack property” of Hilbert curves

1

2

3

4

5678

9

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 33

Page 35: Perlen der Informatik - Technische Universität München · Technische Universit¨at Munc¨ hen Part I From Quadtrees to Space-Filling Curves Michael Bader: Perlen der Informatik

Technische Universitat Munchen

How to Determine Left and RightTurtle Grammars Revisited

H:

H T

LB

B:

T L

RH

L:

E L

RH

R:

L R

ET

E:

T L

RH

T:

T B

RH

Michael Bader: Perlen der Informatik

SpaceTrees and Space-Filling Curves, Winter 2012/2013 34