1 / 72

Fundamentals of computational geometry

Fundamentals of computational geometry. M. Ramanathan. The Art Gallery Problem. camera. How many cameras are needed to guard a gallery and How should they be placed?. Definitions. Simple Polygon Model. Model the art gallery as a region bounded by some simple

baba
Download Presentation

Fundamentals of computational geometry

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fundamentals of computational geometry M. Ramanathan Fundamentals of computational geometry

  2. The Art Gallery Problem camera How many cameras are needed to guard a gallery and How should they be placed? Fundamentals of computational geometry

  3. Definitions Fundamentals of computational geometry

  4. Simple Polygon Model Model the art gallery as a region bounded by some simple polygon (no self-crossing). Regions with holes are not allowed. convex polygon one camera an arbitrary n-gon (n vertices) Bad news: finding the minimum number of cameras for a given polygon is NP-hard (exponential time). Fundamentals of computational geometry

  5. Simple polygon Nonsimple polygons There are no holes in a simple polygon. Fundamentals of computational geometry

  6. The Art Gallery Problem How many stationary guards are needed to guard a room? Guards are located at fixed points and have 2π range of visibility. A guard cannot see through walls. A set of guards covers a polygon if every point of the polygon is visible to some guard. Problem: Find the max over all n-vertex polygons of the min number of guards needed to cover the polygons. Fundamentals of computational geometry

  7. This 12-vertex polygon needs 3 guards to cover it. This 12-vertex polygon needs 4 guards to cover it Fundamentals of computational geometry

  8. Fundamentals of computational geometry

  9. Fundamentals of computational geometry

  10. Fundamentals of computational geometry

  11. Necessity follows from the prong’s example. First Proof of sufficiency is due to Chvátal in 1975 (very complex). We’ll present a simple, four-step proof by Fisk from 1978. • Triangulation of polygon. • 3-coloring of triangulation graph. • Placing guards at a single color guarantees cover. • “Pigeon-hole principle”: placing n objects in k holes, one at least contains no more than └n/k┘ objects. Fundamentals of computational geometry

  12. Diagonals and Triangulation A diagonal of a polygon is a line segment connecting two visible vertices. Triangulation: the partition of a polygon by maximal non crossing diagonals into triangles (not unique!). Fundamentals of computational geometry

  13. n=14 Interesting, both triangulations have same number of diagonals! Notice that number of diagonals equals n-3. Fundamentals of computational geometry

  14. 3-Coloring G(V,E) is a graph defined on a triangulated polygon P. E consists of P’s edges and the triangulation diagonals, while V consists of P’s vertices. k-coloring is an assignment of k colors to the vertices of V such that no adjacent vertices have same color. We’ll show later that a triangulation graph is 3-colorable. Fundamentals of computational geometry

  15. 5 4 5 6 Assigning color to first vertex enforces the rest color assignments. 3 5 The coloring of a triangulation graph is unique! Fundamentals of computational geometry

  16. Guards Placement It is sufficient to place guards at one color only (say red). This follows since every triangle must have 3 distinct colors at its corners, hence one must be red. Therefore every triangle is covered. But the triangles cover the entire polygon P. Pigeon-hole principle: There must be one color whose number of assigned vertices doesn’t exceed └n/3┘. Fundamentals of computational geometry

  17. Art-gallery Problem in 3D An example of a polyhedron with interior points not visible from any vertex. Fundamentals of computational geometry

  18. Schönhardt Polyhedron • Schönhardt polyhedron is the smallest non-convexpolyhedron which cannot be triangulated into tetrahedra without adding new vertices. Fundamentals of computational geometry

  19. Area of Polygons Fundamentals of computational geometry

  20. Area of polygons can be found by triangulation and calculation of triangles areas. We’d like to obtain a closed-form formula, independent of triangulation. Fundamentals of computational geometry

  21. A(P) expression depends on triangulation. We’ll consider first quadrilaterals and show its area is independent of triangulation. Fundamentals of computational geometry

  22. Diagonal related terms are canceled out! Fundamentals of computational geometry

  23. v2 What happens for non-convex quadrilateral ? v3 v1 v0 Fundamentals of computational geometry

  24. We’d like to obtain the area of a general simple polygon in terms of its vertices only. Fundamentals of computational geometry

  25. Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis) Graham scan Divide and conquer Fundamentals of computational geometry

  26. Convexity • A set S is convex if x  S and y  S implies the segment xy  S x y Fundamentals of computational geometry

  27. Definitions of Convex Hull • Convex Hull of a finite set of points S in the plane is the smallest convex polygon P that encloses S which means that there is no other polygon P’ such that S P’  P • Intersection of all convex sets containing the points in S Fundamentals of computational geometry

  28. The convex hull of a set of points S in the plane is the union of all the triangles determined by points in S • Informal definition: Convex hull of a set of points in plane is the shape taken by a rubber band stretched around the nails pounded into the plane at each point • Now we define the convex hull problem: - The problem is to construct the boundary of a convex hull in two dimensions given a finite set S of n points - Four outputs can be distinguished for the above problem: 1. all the points on the hull, in arbitrary order; 2. the extreme points, in arbitrary order; 3. all the points on the hull, in boundary traversal order; 4. the extreme points, in boundary traversal order; Fundamentals of computational geometry

  29. Extreme Points • The extreme points of a set S of points in the plane are the vertices of the convex hull at which the interior angle is less than π • Also a point is extreme iff there exists a line through that point that other wise does not touch the convex hull Fundamentals of computational geometry

  30. Algorithms to find Extreme Points A] Using Non Extreme Points • Identifying non extreme points implies identifying extreme points • A point is non extreme iff it is inside some (closed) triangle whose vertices are the points of the set and is not itself a corner of that triangle. Thus given a triangle: • If a point is interior to triangle it is non extreme • Corners of the triangle might be extreme Thus as the output we will get the extreme points in some arbitrary order. Fundamentals of computational geometry

  31. Algorithm: Interior Points for each i do for each j ≠ i do for each k ≠ i ≠ j do for each l ≠ k ≠ i ≠ j do if pl Δ(pi ,pj ,pk) then pl is nonextreme • There are four nested loops in this algorithm • Hence the order is O(n4) • For each of the n3 triangles, the test for extremeness costs n • It is important to find a faster algorithm Fundamentals of computational geometry

  32. B] Extreme Edges • An edge is extreme if every point of S is on or to one side of the line determined by the edge • If we treat the edge as directed and let the left side of edge be inside then – the directed edge is not extreme if there is some point that is not left of it or on it • The output of this algorithm will be all the points on the convex hull in arbitrary order Fundamentals of computational geometry

  33. Algorithm: Extreme Edges for each i do for each j ≠ i do for each k ≠ i ≠ j do if pk is not left or on (pi ,pj) then (pi ,pj)isnot extreme • There are three nested loops in this algorithm • Hence the order is O(n3) • For each of the n2 pair of points, the test for extremeness costs n • The vertices that are extreme can now be found Fundamentals of computational geometry

  34. C] Gift Wrapping (a more realistic hull algorithm) • A minor variation of Extreme Edge algorithm can accelerate it by factor n as well as output the points in order • The idea is to use one extreme edge as an anchor for finding the next • Suppose the algorithm found an extreme edge whose unlinked endpoint is x • For each y of set S we compute the angle θ • The point that yields the smallest θ must determine an extreme edge • The output of this algorithm is all the points on the hull in boundary traversal order y e θ x Fundamentals of computational geometry

  35. Idea: Think of wrapping a gift. Put the paper in contact with the gift and continue to wrap around from one surface to the next until you get all the way around. Fundamentals of computational geometry

  36. Algorithm: Gift Wrapping Find the lowest point (smallest y coordinate) Let i0 be its index, and set i ← i0 repeat for each j ≠ i do compute counterclockwise angle θfrom previous hull edge Let k be the index of the point with the smallest θ Output (pi ,pk)as a hull edge i ← k until i =i0 • We use the lowest point as the anchor • The order is O(n2) • The cost is O(n) for each hull edge • The point set is wrapped by a string that bends the that bends with • minimum angle from previous to next hull edge Fundamentals of computational geometry

  37. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  38. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  39. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  40. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  41. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  42. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  43. Jarvis March - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  44. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  45. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  46. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  47. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  48. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  49. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

  50. Graham Scan - Example p10 p9 p6 p5 p12 p7 p3 p4 p11 p1 p8 p2 p0 Fundamentals of computational geometry

More Related