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 µ

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend