Algorithms for Scientific Computing

Algorithms for Scientific Computing

Algorithms for Scientific Computing Space-Filling Curves in 2D and 3D Michael Bader Technical University of Munich Summer 2016 Classification of Space-filling Curves Definition: (recursive space-filling curve) A space-filling curve f : I ! Q ⊂ Rn is called recursive, if both I and Q can be divided in m subintervals and sudomains, such that (µ) (µ) • f∗(I ) = Q for all µ = 1;:::; m, and • all Q(µ) are geometrically similar to Q. Definition: (connected space-filling curve) A recursive space-filling curve is called connected, if for any two neighbouring intervals I(ν) and I(µ) also the corresponding subdomains Q(ν) and Q(µ) are direct neighbours, i.e. share an (n − 1)-dimensional hyperplane. Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 2 Connected, Recursive Space-filling Curves Examples: • all Hilbert curves (2D, 3D, . ) • all Peano curves Properties: connected, recursive SFC are • continuous (more exact: Holder¨ continuous with exponent 1=n) • neighbourship-preserving • describable by a grammar • describable in an arithmetic form (similar to that of the Hilbert curve) Related terms: • face-connected, edge-connected, node-connected, . • also used for the induced orders on grid cells, etc. Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 3 Approximating Polygons of the Hilbert Curve Idea: Connect start and end point of iterate on each subcell. Definition: The straight connection of the 4n + 1 points h(0); h(1 · 4−n); h(2 · 4−n);:::; h((4n − 1) · 4−n); h(1) is called the n-th approximating polygon of the Hilbert curve Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 4 Properties of the Approximating Polygon • the approximating Polygon connects the corners of the recursively divided subsquares • the connected corners are start and end points of the space-filling curve within each subsquare ) assists in the construction of space-filling curves • approximating polygons are constructed by recursive repetition of a so-called Leitmotiv ) similarity to Koch and other fractal curves • the sequence of corresponding functions pn(t) converges uniformly towards h ) additional proof of continuity of the Hilbert curve Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 5 Part I 3D Hilbert Curves Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 6 3D Hilbert Curves • Wanted: connected, recursive SFC, based on division-by-2 ) leads to 3 basic patterns: • in addition: symmetric forms, change of orientation • always two different orientations of the components ) numerous different Hilbert curves expected Exercise: construct a 3D Hilbert curve! Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 7 3D Hilbert Curves – Iterations 1st iteration 2nd iteration Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 8 3D Hilbert Curve – Arithmetic Representation t given in the octal system, t = 08:k1k2k3k4 :::, then 0 0 1 h(08:k1k2k3k4 :::) = Hk1 ◦ Hk2 ◦ Hk3 ◦ Hk4 ◦ · · · @ 0 A 0 with operators 0 1 x + 0 1 0 1 z + 0 1 0 x 1 2 0 x 1 2 B 1 C B 1 1 C H0 @ y A = B z + 0 C H1 @ y A = B y + C @ 2 A @ 2 2 A z 1 z 1 2 y + 0 2 x + 0 0 1 x + 1 1 0 1 z + 1 1 0 x 1 2 2 0 x 1 2 2 B 1 1 C B 1 1 C H2 @ y A = B y + C H3 @ y A = B − x + C @ 2 2 A @ 2 2 A z 1 z 1 1 2 z + 0 − 2 y + 2 Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 9 3D Hilbert Curve – Arithmetic Representation (continued) 0 − 1 z + 1 1 0 1 x + 1 1 0 x 1 2 0 x 1 2 2 B 1 1 C B 1 1 C H4 @ y A = B − x + C H5 @ y A = B y + C @ 2 2 A @ 2 2 A z 1 1 z 1 1 2 y + 2 2 z + 2 0 − 1 z + 1 1 0 1 x + 0 1 0 x 1 2 2 0 x 1 2 B 1 1 C B 1 1 C H6 @ y A = B y + C H7 @ y A = B − z + C @ 2 2 A @ 2 2 A z 1 z 1 − 2 x + 1 − 2 y + 1 ) leads to algorithm analog to 2D Hilbert and 2D Peano ) uses only one pattern; each in only one orientation Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 10 3D Hilbert Curves – Variants Different approximating polygons: • same basic pattern: same order of the eight sub-cubes • differences only noticeable from the 2nd iteration Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 11 3D Hilbert Curves – Variants (2) Different orientation of the sub-cubes: • same basic pattern Grundmotiv, same approximating polygon • differences only visible from 2nd iteration Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 12 Part II Peano Curves in Higher Dimensions Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 13 Construction of the Peano Curve Recursive Construction: • divide quadratic domain into 9 subsquares • construct Peano curve for each subsquare • join the partial curves to build a higher level curve Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 14 Approximating Polygons of the Peano Curve Definition: The straight connection between the 9n + 1 points p(0); p(1 · 9−n); p(2 · 9−n);:::; p((9n − 1) · 9−n); p(1) is called n-th approximating polygon of the Peano curve Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 15 3D Peano Curves • Concentration on “serpentine” Peano curves (no Meander-type) • still lots of different variants • especially interesting are dimension-recursive variants: in each 3D cut, the sub-cubes are again traversed in Peano order Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 16 2D Peano Curve – Dimension-Recursive Grammar Illustration of patterns: P P R P Q QQS P Q P Q Q P P Q Construction of Grammar: P − Py ! Ry ! Py Py − P " Q " P Q − Qy Sy Qy Qy − Q " P " Q Note: dimensional “stretching” implied via index notation (y) Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 17 Arithmetic Formulation of the Peano Function In addition to the classical 2D-construction in the “nonal” system, there is also a dimension-splitting approach based on ternary system: t = 03:t1t2t3t4 :::, then x y x y 0 p(03:t1t2t3t4 :::) = P ◦ P ◦ P ◦ P ◦ · · · : t1 t2 t3 t4 0 with the operators ! ! ! x x + 0 x −x + 1 x x + 0 Px = Px = Px = 0 y 1 1 y 1 1 2 y 1 2 3 y + 0 3 y + 3 3 y + 3 and Py analogously. Key idea: each ternary digit defines scaling in only one dimension! Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 18 Peano’s Representation of the Peano Curve Definition: (Peano curve, original construction by G. Peano) • each t 2 I := [0; 1] has a ternary representation t = (03:t1t2t3t4 :::) • define the mapping p : I!Q := [0; 1] × [0; 1] as t t +t 03:t1 k 2 (t3) k 2 4 (t5) ::: p(t) := t t +t 03:k 1 (t2) k 1 3 (t4) ::: j where k(ti ) := 2 − ti for ti = 0; 1; 2 and k is the j-times concatenation of the function k Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 19 Peano’s Representation of the Peano Curve (2) Still to prove: • p is independent of the ternary representation • the Peano curve p : I!Q defines a space-filling curve. Comments: • the direction of “switchback” can be both vertical (see definition), horizontal, or mixed; • actually, 272 different Peano curves of the switchback type can be constructed using the same principles; For comparison: there are only two different 2D Hilbert curves • in addition: Peano-Meander curves Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 20 Part III Fractal Curves Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 21 Recall: Approximating Polygons First approximating polygons of the Hilbert curve: • polygon results from recursive repetition of a basic pattern ! “Leitmotiv” • note: Leitmotiv “added” to alternating sides of the polygon (compare location of entry/exit points in the illustration) • strong similarity to Fractal curves Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 22 Example: Koch Curve Michael Bader j Algorithms for Scientific Computing j Space-Filling Curves in 2D and 3D j Summer 2016 23 How Long are Approximating Polygons? Example: Hilbert curve • polygon results from recursive repetition of the Leitmotiv • every recursion step doubles the length of the polygon in each subsquare ) length of the n-th polygon is 2n ! 1 for n ! 1.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    29 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us