Author
gay
View
45
Download
0
Tags:
Embed Size (px)
DESCRIPTION
UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001. Lecture 7 Geometric Modeling Approximate Nearest Neighbor Searching Monday, 4/23/01. Part 2. Advanced Topics Applications Manufacturing Modeling/Graphics - PowerPoint PPT Presentation
UMass Lowell Computer Science 91.504 Advanced AlgorithmsComputational Geometry Prof. Karen Daniels Spring, 2001Lecture 7Geometric ModelingApproximate Nearest Neighbor SearchingMonday, 4/23/01
Part 2 Advanced TopicsApplicationsManufacturingModeling/GraphicsWireless NetworksVisualizationTechniques(de)RandomizationApproximationRobustnessRepresentationsEpsilon-netDecomposition tree
Literature for Part II
Aspect Milenkovic/Daniels Wu/LiArya et al. Goodrich/Ramos Shewchuck
Title
Translational Polygon Containment and Minimal Enclosure using Mathematical Programming
On calculating connected dominating set for efficient routing in ad hoc wireless networks
An optimal algorithm for approximate nearest neighbor searching in fixed dimensions
Bounded-Independence Derandomization of Geometric Partitioning with Applications to Parallel Fixed-Dimensional Linear Programming
Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator
Source
Journal: ITOR
Conf: Workshop on Discrete Alg and Methods for MOBILE Computing & Communications
Journal: ACM
Journal: Discrete & Comp Geom
Conf: 1st Workshop on Applied CG
Application
Areas
manufacturing
dynamic wireless communications
knowledge discovery; data mining; pattern recognition; classification; machine learning; data compression; multimedia databases; document retrieval; statistics
linear programming
geometric modeling; graphics
Input Objects
2D nonconvex polygons
2D points representing hosts
d-dimensional points
range space
PSLG of object
Literature for Part II
Aspect Milenkovic/Daniels Wu/LiArya et al. Goodrich/Ramos Shewchuck
Dimensionality
2D
2D
arbitrary
arbitrary
2D
Problem/ Task
translational containment; overlap elimination; distance-based subdivision; minimal enclosure; visibility
dominating set
partitioning; nearest-neighbor query
geometric randomization; geometric derandomization
(constrained) Delaunay triangulation; robustness
Theory? Implementation?
both
some experiments
both
theory
implementation
ADTs & Data Structures
convex hull; visibility polygon
undirected graph
balanced box-decomposition tree
epsilon-net; epsilon-approximation
triangular mesh; (constrained) Delaunay triangulation; Voronoi diagram; convex hulls; Guibas/Stolfi quad-edge; triangular data structure; PSLG; splay tree; heap
Algorithmic
Paradigms & Techniques
subdivision; approximate algorithm; binary search
distributed; heuristic
geometric preprocessing; approximation algorithm
randomization; derandomization; parallel
sweep-line; geometric divide-and-conquer; incremental insertion
Math Topics
Minkowski sum; linear programming; monotonicity; convex distance function
graph theory: dominating set
Minkowski metric; probability
VC-dimension; linear programming; probability
duality
Geometric ModelingTriangle: Engineering a 2D Quality Mesh Generator and Delaunay TriangulatorJonathan Richard Shewchuckhttp://www.cs.cmu.edu/~jrs/jrspapers.html
GoalsConstruct 2D mesh of triangles for geometric modeling that:avoids small anglesconstrained Delaunay triangulationis efficient in time and spacecareful choice of data structures & algorithmis robustadaptive exact arithmeticC code at http://www.cs.cmu.edu/~quake/triangle.html
Approach: OverviewBased on Rupperts Delaunay Refinement AlgorithmInput: Planar Straight Line Graph (PSLG)collection of vertices and segmentsStep 1: Construct Delaunay triangulation of point set
Approach: Overview (continued)Step 2: Start with the Delaunay triangulation of the point setAdd input segmentssegments become constraintsconstrained Delaunay triangulation
some differences
Approach: Overview (continued)Step 3: Remove triangles from concavitiestriangle-eating virusStep 4: Refine mesh to satisfy additional constraints on triangles minimumangle sizearea
Step 1: Construct Delaunay Triangulation of Point SetDelaunay Triangulation Algorithms:O(nlogn) expected time:Randomized incremental insertionEdge flipping restores empty circle propertyO(nlogn) worst-case time:Compute Voronoi diagram, then dualizeFortunes plane sweep (parabolic front)O(nlogn) worst-case time:Divide-and-Conqueralternating cuts
Shewchuck experimental comparison [speed, correctness]fastestslowest[point location bottleneck]deBerg handout
Delaunay Triangulation Algorithms: Divide-and-ConquerO(nlogn) worst-case timeRecursively halve input vertex setStop when size = 2 or 3Triangulate small setforms edge(s) or triangleMerge 2 triangulationsGhost triangles allow fast convex hull traversalFit together like gear teeth
Step 2: Constrained Delaunay TriangulationForce mesh to conform to input line segmentsUser Chooses Approach:Recursive segment subdivisionInsert segment midpointFlip edges to restore Delaunay (empty circle) propertyConstrained Delaunay triangulation (default)Insert entire segmentDelete triangles it overlapsRetriangulate regions on each side of segmentNo new vertices are inserted
Step 4: Mesh Refinement Refine mesh to satisfy additional constraints on minimum triangleangle sizeareaInsert new verticesFlip edges to restore Delaunay (empty circle) propertyHalting Issue:Halts for angle constraint = 33.9o
Step 4: Mesh Refinement (continued)Vertex Insertion Rules:Segments Diametral Circlesmallest circle containing segmentany point in the circle encroaches on segmentsplit encroached segmentinsert vertex at midpointTriangles Circumcirclecircle through all 3 verticesbad triangle:angle too smallarea too largesplit bad triangleinsert vertex at circumcenter
Step 4: Mesh Refinement (continued)
Implementation Issues: RepresentationGhost triangles:connected in ring about a vertex at infinityfacilitate convex hull traversalShewchuck preference
Implementation Issues: RobustnessTests Can influence program flow of controlCan classify entities (e.g. sweep-line events)Depend on correctness of geometric predicatesOrientation (left/right/on)In-Circle (in/out/on)Each computes sign of a determinantConstructions Represent geometric objectsOften determine outputincorrectness can be serioussome incorrectness can sometimes be tolerated
Implementation Issues: Robustness (continued)Ideal Goal: real arithmetic for some operationsChallenge: compounded roundoff error in floating-point arithmetic calculations:Tests: can cause programto hangto crashto produce incorrect outputwrong topologyConstructions:can cause approximate resultsWhat causes incorrectness?
Implementation Issues: Robustness (continued)Arithmetic Alternatives to Floating-Point:Integer or rational exact arithmeticfixed precisionextended precisionFloating point + e-testingrobust topological decisionsfilter: identify adequate precision for an operation (bit complexity) if expressible as multivariate polynomial, degree gives cluefloating-point comparisons except when correctness is threatenedadaptive precision: compute quantity (e.g. sign of determinant) via successively more accurate approximationsstop when uncertainty in result is small
No single solution fits all needs. Collection of techniques is needed.
Implementation Issues: Robustness (continued)Shewchuck uses:multi-stage adaptive precision for geometric primitivesOrientation (left/right/on)In-Circle (in/out/on)Eachcomputes sign of a determinanttakes floating-pt inputsstops when uncertainty in result is smallcan reuse previous, less accurate approximationsfast arbitrary precision arithmeticfor small (yet extended) precision valuesFor general discussion of robustness issues and alternatives, see Strategic Directions in Computational Geometry Working Group Report
Approximate Nearest Neighbor SearchingAn Optimal Algorithm for Approximate Nearest Neighbor Searching in Fixed DimensionsArya, Mount, Netanyahu, Silverman, Wu
GoalsFast nearest neighbor query in d-dimensional set of n points:approximate nearest neighbordistance within factor of (1+e) of true closest neighborpreprocess using O(dnlogn) time, O(dn) spaceBalanced-Box Decomposition (BDD) treenote that space, time are indepenent of equery in O(cd,e logn) time
C++ code for simplified version is at http://www.cs.umd.edu/~mount/ANN
Approach: Distance AssumptionsUse Lp (also called Minkowski) metricassume it can be computed in O(d) timepth root need not be computed when comparing distances
Approximate nearest neighbordistance within factor of (1+e) of true closest neighbor p*Can change e or metric without rebuilding data structure
Approach: OverviewPreprocess points:Balanced-Box Decomposition (BDD) treeQuery algorithm: for query point qLocate leaf cell containing q in O(log n) timePriority search: Enumerate leaf cells in increasing distance order from qFor each leaf cell, calculate distance from q to cells pointKeep track of closest point p seen so farStop when distance from q to leaf > dist(q,p)/(1+e)Return p as approximate nearest neighbor to q.
Balanced Box Decomposition(BBD) TreeSimilar to kd-tree [Samet handout]Binary treeTree structure stored in main memoryCutting planes are orthogonal to axesAlternating dimensionsO(log n) heightSubdivides space into regions of O(d) complexity using d-dimensional rectanglesCan be built in O(dn log n) timeOne possible kd-like tree for the above points(not a BDD tree, though)
Balanced Box Decomposition(BBD) Tree (continued)Distinguishing features of BBD tree:Cell is eitherd-dimensional rectangle ordifference of 2 d-dimensional nested rectangles In this sense, BDD tree is like:Optimized kd-tree: partition points into roughly = sized setsWhile descending in tree, number of points on path decreases exponentiallySpecialized Quadtree: aspect ratio of box is bounded by a constantWhile descending in tree, size of region on path decreases exponentiallyLeaf may be associated with more than 1 point in/on cell: O(n) nodeInner boxes are sticky: if it is close to edge, it stickssubdivisiontreesplitshrink
Splitting a Box: Midpoint
Splitting a Box: Middle-Interval
Packing Constraint
Priority Search from Query Point
Incremental Distance [Arya, Mount93]Incrementally update distance from parent box to each child when split is performedMaintain sum of appropriate powers of coordinate differences between query point and nearest point of outer boxSplit: Closer child has same distance as parentFurther childs distance needs only 1-coordinate update (along splitting dimension)Makes a difference in higher dimensions!
ExperimentsExperiments generated points from a variety of probability distributions:UniformGaussianLaplaceCorrelated GaussianCorrelated LaplacianClustered GaussianClustered Segments
Experiments
Experiments
Experiments
Project Update
ProjectProposalMonday, 4/92%Interim ReportMonday, 4/235%Final PresentationMonday, 5/78%Final SubmissionMonday, 5/1410%25% of course gradeDeliverableDue Date Grade %
Guidelines: Final SubmissionAbstract: Concise overview (at most 1 page)Introduction: Motivation: Why did you choose this project?Related Work: Context with respect to CG literatureSummary of ResultsMain Body of Paper: (one or more sections)Conclusion:Summary: What did you accomplish?Future Work: What would you do if you had more time?References: Bibliography (papers, books that you used)Well- written final submissions with research content may be eligible for publishing as UMass Lowell CS technical reports.
Guidelines: Final SubmissionMain Body of Paper: If your project involves Theory/ Algorithm:Informal algorithm description (& example)PseudocodeAnalysis:CorrectnessSolutions generated by algorithm are correct account for degenerate/boundary/special casesIf a correct solution exists, algorithm finds itControl structures (loops, recursions,...) terminate correctly Asymptotic Running Time and/or Space Usage
Guidelines: Final SubmissionMain Body of Paper:If your project involves Implementation:Informal descriptionResources & Environment: what language did you code in?what existing code did you use? (software libraries, etc.)what equipment did you use? (machine, OS, compiler)Assumptionsparameter valuesTest casestables, figuresrepresentative examples
Guidelines: Interim ReportStructured like Final Submission, except: no Abstract or Conclusionfill in only what youve done so farcan be revised laterinclude a revised proposal if neededidentify any issues you have encountered and your plan for resolving them