Upload
harper-jenkins
View
44
Download
5
Tags:
Embed Size (px)
DESCRIPTION
Overlay Stitch Meshing. A competitive algorithm for no-large-angle triangulation. Don Sheehy Joint work with Gary Miller and Todd Phillips To appear at ICALP 2007. The Problem. Input: A Planar Straight Line Graph. The Problem. Input: A Planar Straight Line Graph. - PowerPoint PPT Presentation
Citation preview
5/2/2007 Don SheehyOverlay Stitch Meshing
1
Overlay Stitch MeshingOverlay Stitch Meshing
5/2/2007 Don SheehyOverlay Stitch Meshing
2
A competitive algorithm for A competitive algorithm for no-large-angle triangulationno-large-angle triangulation
Don SheehyDon Sheehy
Joint work with Gary Miller Joint work with Gary Miller and Todd Phillipsand Todd Phillips
To appear at ICALP 2007To appear at ICALP 2007
5/2/2007 Don SheehyOverlay Stitch Meshing
3
The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line
GraphGraph
5/2/2007 Don SheehyOverlay Stitch Meshing
4
The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line
GraphGraph
Output: A Conforming TriangulationOutput: A Conforming Triangulation
5/2/2007 Don SheehyOverlay Stitch Meshing
5
The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line
GraphGraph
Output: A Conforming TriangulationOutput: A Conforming Triangulation
5/2/2007 Don SheehyOverlay Stitch Meshing
6
Why would you want to do that?Why would you want to do that?
5/2/2007 Don SheehyOverlay Stitch Meshing
7
5/2/2007 Don SheehyOverlay Stitch Meshing
8
5/2/2007 Don SheehyOverlay Stitch Meshing
9
5/2/2007 Don SheehyOverlay Stitch Meshing
10
5/2/2007 Don SheehyOverlay Stitch Meshing
11
5/2/2007 Don SheehyOverlay Stitch Meshing
12
What went wrong?What went wrong?
5/2/2007 Don SheehyOverlay Stitch Meshing
13
What if you don’t know the function?What if you don’t know the function?
?? ??
5/2/2007 Don SheehyOverlay Stitch Meshing
14
2 Definitions of Quality2 Definitions of Quality
1. No Large Angles [Babuska, Aziz 1. No Large Angles [Babuska, Aziz 1976]1976]
5/2/2007 Don SheehyOverlay Stitch Meshing
15
2 Definitions of Quality2 Definitions of Quality
1. No Large Angles [Babuska, Aziz 1. No Large Angles [Babuska, Aziz 1976]1976]
2. No Small Angles2. No Small Angles
5/2/2007 Don SheehyOverlay Stitch Meshing
16
No Small AnglesNo Small Angles
5/2/2007 Don SheehyOverlay Stitch Meshing
17
No Small AnglesNo Small Angles
You may have heard of these You may have heard of these before.before.
Delaunay RefinementDelaunay Refinement
Sparse Voronoi RefinementSparse Voronoi Refinement
QuadtreeQuadtree
5/2/2007 Don SheehyOverlay Stitch Meshing
18
Paying for the spreadPaying for the spread
LL
ss
Spread = L/sSpread = L/s
5/2/2007 Don SheehyOverlay Stitch Meshing
19
Paying for the spreadPaying for the spread
Optimal No-Large-Angle TriangulationOptimal No-Large-Angle Triangulation
5/2/2007 Don SheehyOverlay Stitch Meshing
20
Paying for the spreadPaying for the spreadWhat if we don’t allow small angles?What if we don’t allow small angles?
5/2/2007 Don SheehyOverlay Stitch Meshing
21
Paying for the spreadPaying for the spread
O(L/s)O(L/s) triangles! triangles!
What if we don’t allow small angles?What if we don’t allow small angles?
5/2/2007 Don SheehyOverlay Stitch Meshing
22
Paying for the spreadPaying for the spread
O(L/s)O(L/s) triangles! triangles!
What if we don’t allow small angles?What if we don’t allow small angles?Fact: For inputs with Fact: For inputs with NO NO edgesedges, no-small-angle , no-small-angle
meshing algorithms produce meshing algorithms produce output with output with O(n log L/s)O(n log L/s) size size and angles between 30and angles between 30oo and and
120120oo
5/2/2007 Don SheehyOverlay Stitch Meshing
23
What to do?What to do?
Small input angles can force even smaller Small input angles can force even smaller ouput angles. [Shewchuk ’02]ouput angles. [Shewchuk ’02]
5/2/2007 Don SheehyOverlay Stitch Meshing
24
No Large AnglesNo Large Angles
5/2/2007 Don SheehyOverlay Stitch Meshing
25
Polygons with HolesPolygons with Holes[Bern, Mitchell, Ruppert 95] – [Bern, Mitchell, Ruppert 95] –
- All triangles are - All triangles are nonobtuse. nonobtuse.
- Output has O(n) triangles.- Output has O(n) triangles.
5/2/2007 Don SheehyOverlay Stitch Meshing
26
Polygons with HolesPolygons with Holes[Bern, Mitchell, Ruppert 95] – [Bern, Mitchell, Ruppert 95] –
- All triangles are - All triangles are nonobtuse. nonobtuse.
- Output has O(n) triangles.- Output has O(n) triangles.
Does not work for arbitrary PSLGsDoes not work for arbitrary PSLGs
5/2/2007 Don SheehyOverlay Stitch Meshing
27
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
28
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
29
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
30
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
31
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
32
Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.
O(n) O(n) pointpoint
ss
O(n) O(n) lineline
ss
5/2/2007 Don SheehyOverlay Stitch Meshing
33
Propagating PathsPropagating Paths
5/2/2007 Don SheehyOverlay Stitch Meshing
34
Propagating PathsPropagating Paths
5/2/2007 Don SheehyOverlay Stitch Meshing
35
Propagating PathsPropagating Paths
First introduced by Mitchell [93]First introduced by Mitchell [93]
Later Improved by Tan [96]Later Improved by Tan [96]
Worst Case Optimal Size O(nWorst Case Optimal Size O(n22))
Angle bounds: 132Angle bounds: 132oo
5/2/2007 Don SheehyOverlay Stitch Meshing
36
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
37
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
Results:Results:1.1. Angles bounded by 170Angles bounded by 170oo
2.2. O(log L/s) competitive sizeO(log L/s) competitive size
5/2/2007 Don SheehyOverlay Stitch Meshing
38
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
39
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
40
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
41
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
42
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
43
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
44
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
45
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
46
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
47
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
48
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
5/2/2007 Don SheehyOverlay Stitch Meshing
49
The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)
• An Overlay Edge is An Overlay Edge is keptkept if if1. It does not intersect the input,1. It does not intersect the input,
OROR
2. It forms a 2. It forms a goodgood intersection with the intersection with the input.input.
at least 30at least 30oo
5/2/2007 Don SheehyOverlay Stitch Meshing
50
Angle GuaranteesAngle Guarantees
5/2/2007 Don SheehyOverlay Stitch Meshing
51
Angle GuaranteesAngle Guarantees
5/2/2007 Don SheehyOverlay Stitch Meshing
52
Angle GuaranteesAngle Guarantees
We want to show that angles at We want to show that angles at stitchstitch vertices are bounded by vertices are bounded by
170170oo
5/2/2007 Don SheehyOverlay Stitch Meshing
53
Angle GuaranteesAngle Guarantees
An Overlay TriangleAn Overlay Triangle
5/2/2007 Don SheehyOverlay Stitch Meshing
54
Angle GuaranteesAngle Guarantees
An Overlay TriangleAn Overlay Triangle
An Overlay EdgeAn Overlay Edge
5/2/2007 Don SheehyOverlay Stitch Meshing
55
Angle GuaranteesAngle Guarantees
An Overlay TriangleAn Overlay Triangle
An Overlay EdgeAn Overlay Edge
Gap BallGap Ball
5/2/2007 Don SheehyOverlay Stitch Meshing
56
Angle GuaranteesAngle Guarantees
A Good IntersectionA Good Intersection
5/2/2007 Don SheehyOverlay Stitch Meshing
57
Angle GuaranteesAngle Guarantees
A Bad IntersectionA Bad Intersection
5/2/2007 Don SheehyOverlay Stitch Meshing
58
Angle GuaranteesAngle Guarantees
A Bad IntersectionA Bad Intersection
5/2/2007 Don SheehyOverlay Stitch Meshing
59
Angle GuaranteesAngle Guarantees
A Bad IntersectionA Bad Intersection
How Bad can it How Bad can it be?be?
5/2/2007 Don SheehyOverlay Stitch Meshing
60
Angle GuaranteesAngle GuaranteesHow Bad can it How Bad can it
be?be?
About 10About 10oo
About 170About 170oo
5/2/2007 Don SheehyOverlay Stitch Meshing
61
Angle GuaranteesAngle GuaranteesHow Bad can it How Bad can it
be?be?
About 10About 10oo
Theorem: If any input Theorem: If any input edge makes a edge makes a goodgood intersection with an intersection with an overlay edge then any overlay edge then any other intersection on other intersection on that edge is that edge is not too not too badbad..
About 170About 170oo
5/2/2007 Don SheehyOverlay Stitch Meshing
62
Size BoundsSize Bounds
5/2/2007 Don SheehyOverlay Stitch Meshing
63
Size BoundsSize BoundsHow big is the resulting triangulation?How big is the resulting triangulation?
5/2/2007 Don SheehyOverlay Stitch Meshing
64
Size BoundsSize BoundsHow big is the resulting triangulation?How big is the resulting triangulation?
Goal: log(L/s)-competitive with optimalGoal: log(L/s)-competitive with optimal
5/2/2007 Don SheehyOverlay Stitch Meshing
65
Local Feature SizeLocal Feature Size
lfs(x) = distance to second nearest input vertex.lfs(x) = distance to second nearest input vertex.
xxlfs(x)lfs(x)
Note: lfs is defined on Note: lfs is defined on the whole plane before the whole plane before
we do any meshing.we do any meshing.
5/2/2007 Don SheehyOverlay Stitch Meshing
66
Ruppert’s IdeaRuppert’s Idea
rr
cc
r = r = (lfs(c))(lfs(c))
area(area() = ) = (lfs(c)(lfs(c)22))
# of triangles = # of triangles = ((ssss 1/lfs(x,y) 1/lfs(x,y)22 dxdy) dxdy)
5/2/2007 Don SheehyOverlay Stitch Meshing
67
Ruppert’s IdeaRuppert’s Idea
rr
cc
r = r = (lfs(c))(lfs(c))
area(area() = ) = (lfs(c)(lfs(c)22))
# of triangles = # of triangles = ((ssss 1/lfs(x,y) 1/lfs(x,y)22 dxdy) dxdy)
dydy
dxdxThis represents a This represents a (dxdy/lfs(x,y)(dxdy/lfs(x,y)22)) fraction of the fraction of the
triangle.triangle.
5/2/2007 Don SheehyOverlay Stitch Meshing
68
Ruppert’s IdeaRuppert’s Idea
rr
cc
r = r = (lfs(c))(lfs(c))
area(area() = ) = (lfs(c)(lfs(c)22))
# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)
CaveatCaveat: Only Works for meshes : Only Works for meshes
with bounded with bounded smallestsmallest angle. angle.
5/2/2007 Don SheehyOverlay Stitch Meshing
69
ExtendingExtending Ruppert’s Idea Ruppert’s Idea
An input edge An input edge e e intersecting intersecting
the overlay meshthe overlay mesh
# of triangles along # of triangles along ee = = ((sszz22 e e lfs(z) lfs(z)-1-1 dz) dz)
# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)
5/2/2007 Don SheehyOverlay Stitch Meshing
70
ExtendingExtending Ruppert’s Idea Ruppert’s Idea
Now we can compute the Now we can compute the size of our output mesh. We size of our output mesh. We just need to compute these just need to compute these
integrals.integrals.
# of triangles along # of triangles along ee = = ((sszz22 e e lfs(z) lfs(z)-1-1 dz) dz)
# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)
5/2/2007 Don SheehyOverlay Stitch Meshing
71
Output SizeOutput Size
Stitch Vertices Added = Stitch Vertices Added = ((sszz22 E E lfs(z) lfs(z)-1-1 dz) dz)
Overlay Mesh Size = Overlay Mesh Size = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy) O(n log L/s)O(n log L/s)
O(log L/s)O(log L/s)££ |OPT| |OPT|
We’ll Prove this nowWe’ll Prove this now
5/2/2007 Don SheehyOverlay Stitch Meshing
72
What can we say about the What can we say about the optimal optimal no-large-angle no-large-angle
triangulation?triangulation?
5/2/2007 Don SheehyOverlay Stitch Meshing
73
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
9090oo
5/2/2007 Don SheehyOverlay Stitch Meshing
74
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
??oo
5/2/2007 Don SheehyOverlay Stitch Meshing
75
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
5/2/2007 Don SheehyOverlay Stitch Meshing
76
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
5/2/2007 Don SheehyOverlay Stitch Meshing
77
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
Suppose we have a triangulation with all angles at least 170Suppose we have a triangulation with all angles at least 170oo..
the optimalthe optimal
5/2/2007 Don SheehyOverlay Stitch Meshing
78
Competitive AnalysisCompetitive AnalysisWarm-upWarm-up
Suppose we have a triangulation with all angles at least 170Suppose we have a triangulation with all angles at least 170oo..
the optimalthe optimal Every input edge is Every input edge is covered by empty covered by empty
lenses.lenses.
5/2/2007 Don SheehyOverlay Stitch Meshing
79
Competitive AnalysisCompetitive AnalysisThis is what we have to integrate over.This is what we have to integrate over.
We show that in each lens, we We show that in each lens, we put O(log (L/s)) points on the put O(log (L/s)) points on the
edge.edge.
In other words:In other words:
sse’e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))
ee’’
5/2/2007 Don SheehyOverlay Stitch Meshing
80
Competitive AnalysisCompetitive Analysis
ee’’
sszz22 e’ e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))
5/2/2007 Don SheehyOverlay Stitch Meshing
81
Competitive AnalysisCompetitive Analysissszz22 e’ e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))
ee’’
11stst trick: lfs trick: lfs ¸̧ s everywhere s everywhere
22ndnd trick: lfs trick: lfs ¸̧ ct for t ct for t22 [0,[0,ll/2]/2]
tt
sszz22 e’ e’ 1/lfs(z) dz 1/lfs(z) dz ·· 2 2ss00ss 1/s + 2 1/s + 2ssss
ll/2/2 1/x 1/x dx dx
= O(1) + O(log = O(1) + O(log ll/s)/s)
= O(log L/s)= O(log L/s)
Parametrize e’ as [0, Parametrize e’ as [0, ll]]
5/2/2007 Don SheehyOverlay Stitch Meshing
82
ConclusionsConclusions
5/2/2007 Don SheehyOverlay Stitch Meshing
83
ConclusionConclusion• A new algorithm for no-large-angle A new algorithm for no-large-angle
triangulation.triangulation.• The output has bounded degree The output has bounded degree
triangles.triangles.• The first log-competitive analysis for The first log-competitive analysis for
such an algorithm.such an algorithm.• We used some of the high school We used some of the high school
calculus you thought you forgot.calculus you thought you forgot.
5/2/2007 Don SheehyOverlay Stitch Meshing
84
Where to go from here?Where to go from here?• 3D?3D?• Better angle bounds?Better angle bounds?• Leverage lower bound technology for Leverage lower bound technology for
constant competitive algorithm.constant competitive algorithm.
5/2/2007 Don SheehyOverlay Stitch Meshing
85
Thank you.Thank you.