geometric algorithms
play

Geometric Algorithms Quadtrees and Meshing Motivation: VLSI Design - PowerPoint PPT Presentation

Geometric Algorithms Quadtrees and Meshing Motivation: VLSI Design simulation of heat emission on printed circuit boards Motivation: VLSI Design To simulate heat emission: finite element method: partition board into small homogeneous


  1. Geometric Algorithms Quadtrees and Meshing

  2. Motivation: VLSI Design simulation of heat emission on printed circuit boards

  3. Motivation: VLSI Design To simulate heat emission: finite element method: • partition board into small homogeneous elements (e.g. triangles) → mesh • based on heat emission of each element and influence of neighbors • numerically approximate of overall heat emission

  4. Motivation: VLSI Design To simulate heat emission: finite element method: • partition board into small homogeneous elements (e.g. triangles) → mesh • based on heat emission of each element and influence of neighbors • numerically approximate of overall heat emission http://www.antics1.demon.co.uk/finelms.html

  5. Motivation: VLSI Design To simulate heat emission: finite element method: • partition board into small homogeneous elements (e.g. triangles) → mesh • based on heat emission of each element and influence of neighbors • numerically approximate of overall heat emission

  6. Motivation: VLSI Design To simulate heat emission: finite element method: • partition board into small homogeneous elements (e.g. triangles) → mesh • based on heat emission of each element and influence of neighbors • numerically approximate of overall heat emission quality criteria: • finer mesh → better approximation • coarser mesh → faster computation • compact elements → faster convergence

  7. Motivation: VLSI Design To simulate heat emission: finite element method: • partition board into small homogeneous elements (e.g. triangles) → mesh • based on heat emission of each element and influence of neighbors • numerically approximate of overall heat emission quality criteria: • finer mesh → better approximation • coarser mesh → faster computation • compact elements → faster convergence • non-uniform mesh – small at boundaries, larger otherwise goal: • well-shaped triangles – not too thin

  8. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. wanted: triangular mesh of Q with the following properties

  9. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. non-conforming wanted: triangular mesh of Q with the following properties • conforming: exactly one triangle on each side of interior edges

  10. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. not part of mesh wanted: triangular mesh of Q with the following properties • conforming: exactly one triangle on each side of interior edges • respect input: input: edges of input must be part of union of mesh edges

  11. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. angles too small wanted: triangular mesh of Q with the following properties • conforming: exactly one triangle on each side of interior edges • respect input: input: edges of input must be part of union of mesh edges • well-shaped: angles between 45 ◦ and 90 ◦

  12. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. uniform mesh wanted: triangular mesh of Q with the following properties • conforming: exactly one triangle on each side of interior edges • respect input: input: edges of input must be part of union of mesh edges • well-shaped: angles between 45 ◦ and 90 ◦ • non-uniform: fine near boundaries, coarse otherwise

  13. Non-Uniform Meshes given: octilinear polygons with integer coordinates within a square Q = [0 , U ] × [0 , U ] with U = 2 j a power of two. Do we need Steiner points (i.e. non-input vertices)? uniform mesh wanted: triangular mesh of Q with the following properties • conforming: exactly one triangle on each side of interior edges • respect input: input: edges of input must be part of union of mesh edges • well-shaped: angles between 45 ◦ and 90 ◦ • non-uniform: fine near boundaries, coarse otherwise

  14. Triangulation of Subdivision? • maximize smallest angle?

  15. Triangulation of Subdivision? • maximize smallest angle? • without Steiner points: might have very small angles

  16. Triangulation of Subdivision? • maximize smallest angle? • without Steiner points: might have very small angles • with Steiner points:

  17. Triangulation of Subdivision? • maximize smallest angle? • without Steiner points: might have very small angles • with Steiner points: well-shaped, but uniform well-shaped, non-uniform 512 triangles 52 triangles

  18. Quadtrees http://donar.umiacs.umd.edu/quadtree/ , in particular http://donar.umiacs.umd.edu/quadtree/points/prquad.html http://www.maptiler.org/ google-maps-coordinates-tile-bounds-projection

  19. Quadtrees Def.: A quadtree is a rooted tree, in which every interior node has 4 children. Every node corresponds to a square, and the squares of children are the quadrants of the parent’s square. NE NW SW SE

  20. Quadtrees Def.: A quadtree is a rooted tree, in which every interior node has 4 children. Every node corresponds to a square, and the squares of children are the quadrants of the parent’s square. sides edges NE NW SW SE vertices neighbors

  21. Quadtrees Def.: A quadtree is a rooted tree, in which every interior node has 4 children. Every node corresponds to a square, and the squares of children are the quadrants of the parent’s square. Def.: For a point set P in a square Q = [ x Q , x ′ Q ] × [ y Q , y ′ Q ] it holds for the quadtree T ( P ) • if | P | ≤ 1 , then T ( P ) is a leaf, storing P and Q x Q + x ′ y Q + y ′ Q Q • otherwise let x mid = and y mid = and 2 2 := { p ∈ P | p x > x mid and p y > y mid } P NE PNW PNE { p ∈ P | p x ≤ x mid and p y > y mid } := P NW { p ∈ P | p x ≤ x mid and p y ≤ y mid } := P SW PSW PSE := { p ∈ P | p x > x mid and p y ≤ y mid } P SE T ( P ) consists of a root v storing Q with for children for P i and Q i ( i ∈ { NE, NW, SW, SE } ). NE NW SW SE

  22. Example

  23. Example

  24. Example

  25. Example

  26. Example

  27. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm

  28. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm What is the depth on a quadtree on n nodes?

  29. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm What is the depth on a quadtree on n nodes? Lemma 1: Let c be the smallest distance between any two points in a point set P , and let s be the side length of the initial (biggest) square. Then the depth of a quadtree for P is at most log( s/c ) + 3 / 2 .

  30. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm What is the depth on a quadtree on n nodes? Lemma 1: Let c be the smallest distance between any two points in a point set P , and let s be the side length of the initial (biggest) square. Then the depth of a quadtree for P is at most log( s/c ) + 3 / 2 . proof: consider square σ of depth i side length of σ is s/ 2 i √ 2 s/ 2 i maximum distance between two points in σ : √ 2 s/ 2 i ≥ c ⇒ if depth is i : √ transformed: i ≤ log( 2 s/c ) = log( s/c ) + 1 / 2

  31. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm What is the depth on a quadtree on n nodes? Lemma 1: Let c be the smallest distance between any two points in a point set P , and let s be the side length of the initial (biggest) square. Then the depth of a quadtree for P is at most log( s/c ) + 3 / 2 . Thm 1: A quadtree of depth d storing n points has O (( d + 1) n ) nodes and can be constructed in O (( d + 1) n ) time.

  32. Quadtree Properties The recursive definition of a quadtrees immediately results in an algorithm What is the depth on a quadtree on n nodes? Lemma 1: Let c be the smallest distance between any two points in a point set P , and let s be the side length of the initial (biggest) square. Then the depth of a quadtree for P is at most log( s/c ) + 3 / 2 . Thm 1: A quadtree of depth d storing n points has O (( d + 1) n ) nodes and can be constructed in O (( d + 1) n ) time. proof: Every inner node has exactly 4 children ⇒ #leaves = 1 + 3#inner nodes. inner nodes correspond to disjoint squares with ≥ 2 points ⇒ ≤ n squares per layer corresponding to inner nodes. ⇒ for depth d overall O (( d + 1) n ) nodes.

  33. Finding Neighbors NorthNeighbor( v, T ) NN( v Input: node v in Quadtree T Output: deepest v ′ not deeper than v v with v ′ .Q north neighbor of v.Q if v = root ( T ) then return nil π ← parent( v ) if v = SW -/ SE -child of π then return NW -/ NE -child of π µ ← NorthNeighbor( π, T ) if µ = nil or µ leaf then return µ else if v = NW -/ NE -child of π then return SW -/ SE -child of µ

Recommend


More recommend