Presentation is loading. Please wait.

Presentation is loading. Please wait.

COSC 6114 Prof. Andy Mirzaian. Voronoi Diagram & Delaunay Triangualtion Algorithms  Divide-&-Conquer  Plane Sweep  Lifting into d+1 dimensions  Edge-Flip.

Similar presentations


Presentation on theme: "COSC 6114 Prof. Andy Mirzaian. Voronoi Diagram & Delaunay Triangualtion Algorithms  Divide-&-Conquer  Plane Sweep  Lifting into d+1 dimensions  Edge-Flip."— Presentation transcript:

1 COSC 6114 Prof. Andy Mirzaian

2 Voronoi Diagram & Delaunay Triangualtion Algorithms  Divide-&-Conquer  Plane Sweep  Lifting into d+1 dimensions  Edge-Flip  Randomized Incremental Construction Applications  Proximity space partitioning and the post office problem  Height Interpolation  Euclidean: Minimum Spanning Tree, Traveling Salesman Problem,  Minimum Weight Triangulation, Relative Neighborhood Graph, Gabriel Graph. Extensions  Higher Order Voronoi Diagrams  Generalized metrics - Robot Motion Planning

3 References: [M. de Berge et al] chapters 7, 9, 13 [Preparata-Shamos’85] chapters 5, 6 [O’Rourke’98] chapter 5 [Edelsbrunner’87] chapter 13 AAW Lecture Notes 16, 17, 18, 19

4 Introduction

5 Voronoi Diagram & Delaunay Triangulation P = { p 1, p 2, …, p n } a set of n points in the plane.

6 Voronoi Diagram & Delaunay Triangulation Voronoi(P): # regions = n, # edges  3n-6, # vertices  2n-5. Nearest site proximity partitioning of the plane

7 Delaunay Triangulation = Dual of the Voronoi Diagram. Voronoi Diagram & Delaunay Triangulation DT(P): # vertices = n, # edges  3n-6, # triangles  2n-5.

8 Delaunay triangles have the “empty circle” property. Voronoi Diagram & Delaunay Triangulation

9

10 Voronoi Diagram P = { p 1, p 2, …, p n } a set of n points in the plane. Assume: no 3 points collinear, no 4 points cocircular. PB(p i, p j ) perpendicular bisector of p i p j. pipi pjpj H(p i, p j ) half-plane Voronoi Region of p i : pipi Voronoi Diagram of P:

11 Voronoi Diagram Properties  Each Voronoi region V(p i ) is a convex polygon (possibly unbounded).  V(p i ) is unbounded  p i is on the boundary of CH(P).  Consider a Voronoi vertex v = V(p i )  V(p j )  V(p k ). Let C(v) = the circle centered at v passing through p i, p j, p k.  C(v) is circumcircle of Delaunay Triangle (p i, p j, p k ).  C(v) is an empty circle, i.e., its interior contains no other sites of P.  p j = a nearest neighbor of p i  V(p i )  V(p j ) is a Voronoi edge  (p i, p j ) is a Delaunay edge.  more later …

12 Delaunay Triangulation Properties  DT(P) is straight-line dual of VD(P).  DT(P) is a triangulation of P, i.e., each bounded face is a triangle (if P is in general position).  (p i, p j ) is a Delaunay edge   an empty circle passing through p i and p j.  Each triangular face of DT(P) is dual of a Voronoi vertex of VD(P).  Each edge of DT(P) corresponds to an edge of VD(P).  Each node of DT(P), a site, corresponds to a Voronoi region of VD(P).  Boundary of DT(P) is CH(P).  Interior of each triangle in DT(P) is empty, i.e., contains no point of P.  more later …

13 ALGORITHMS

14 A brute-force VD Algorithm P = { p 1, p 2, …, p n } a set of n points in the plane. Assume: no 3 points collinear, no 4 points cocircular. Voronoi Region of p i : Voronoi Diagram of P: intersection of n-1 half-planes Voronoi region of each site can be computed in O(n log n) time. There are n such Voronoi regions to compute. Total time O(n 2 log n).

15 Divide-&-Conquer Algorithm M. I. Shamos, D. Hoey [1975], “Closest Point Problems,” FOCS, D.T. Lee [1978], “Proximity and reachability in the plane,” Tech Report No, 831, Coordinated Sci. Lab., Univ. of Illinois at Urbana. D.T. Lee [1980], “Two dimensional Voronoi Diagram in the L p metric,” JACM 27, The first O(n log n) time algorithm to construct the Voronoi Diagram of n point sites in the plane.

16 ALGORITHM Construct Voronoi Diagram (P) INPUT: P = { p 1, p 2, …, p n } sorted on x-axis. OUTPUT: CH(P) and DCEL of VD(P). 1. [BASIS]: if n  1 then return the obvious answer. 2. [DIVIDE]: Let m   n/2  Split P on the median x-coordinate into L = { p 1, …, p m } & R = { p m+1, …, p n }. 3. [RECUR]: (a) Recursively compute CH(L) and VD(L). (b) Recursively compute CH(R) and VD(R). 4. [MERGE]: (a) Compute Upper & Lower Bridges of CH(L) and CH(R) & obtain CH(P). (b) Compute the y-monotone dividing chain C between VD(L) & VD(R). (c) VD(P)  [C]  [VD(L) to the left of C]  [VD(R) to the right of C]. (d) return CH(P) & VD(P). END. O(1) O(n) T(n/2) O(n) T(n) = 2 T(n/2) + O(n) = O( n log n).

17 P = { p 1, p 2, …, p n } a set of n points in the plane.

18 VD(P) = [C]  [VD(L) to the left of C]  [VD(R) to the right of C].

19 VD(L) and CH(L)

20 VD(R) and CH(R)

21 Upper & Lower bridges between CH(L) and CH(R) & two end-rays of chain C.

22 (1,5) (3,5) (3,6) (4,6) (4,7) (2,7) Construct chain C.

23

24 Crop VD(L) & VD(R) at C.

25 VD(P) and CH(P)

26 Fortune’s Algorithm Steve Fortune [1987], “A Sweepline algorithm for Voronoi Diagrams,” Algorithmica, Guibas, Stolfi [1987], “Ruler, Compass and computer: The design and analysis of geometric algorithms,” Proc. of the NATO Advanced Science Institute, series F, vol. 40: Theoretical Foundations of Computer Graphics and CAD,  O(n log n) time algorithm by plane-sweep.  See AAW animation.  Generalization: VD of line-segments and circles.

27 The Waive Propagation View Simultaneously drop pebbles on calm lake at n sites. Watch the intersection of expanding waves.

28 Time as 3 rd dimension x y x z=time y  p p apex of the cone All sites have identical opaque cones.

29 Time as 3 rd dimension x z y All sites have identical opaque cones. cone(p)  cone(q) = vertical hyperbola h(p,q). Vertical projection of h(p,q) on the xy base plane is PB(p,q). pq base plane

30 Time as 3 rd dimension x z y Visible intersection of the cones viewed upward from z = -  is VD(P). base plane

31 Conic Sections: Focus-Directrix focus f directrix l w h Eccentricity constant: 0 = e point (focus) 0 < e < 1 ellipse e = 1 parabola e > 1hyperbola

32 sweep plane sweep line  base plane x y Sweep Plane & Sweep Line z

33 sweep plane sweep line l   base plane p v w u Sweep Plane & Cone Intersection Vertical projection of intersection of cone(p) & the sweep plane on the base plane is a parabola with focus p and directrix l. x y

34 p Parabolic Evolution l focus p l x y

35 p Parabolic Evolution l focus p l x y

36 Time snapshots of moving parabola associated with site p p x y sweep line

37  Each parabolic arc of the Front is in some Voronoi region.  Each “break” between 2 consecutive parabolic arcs lies on a Voronoi edge. The parabolic front  Sweep plane opaque. So we don’t see future events.  Any part of a parabola inside another one is invisible, since a point (x,y) is inside a parabola iff at that point the cone of the parabola is below the sweep plane.  Parabolic Front = visible portions of parabola; those that are on the boundary of the union of the cones past the sweep.  Parabolic Front is a y-monotone piecewise-parabolic chain. (Any horizontal line intersects the Front in exactly one point.) sweep line

38  The breakpoints of the parabolic front trace out every Voronoi edge as the sweep line moves from x = -  to x = + .  Every point of every Voronoi edge is a breakpoint of the parabolic front at some time during the sweep. Proof: (a) Fig 1: Event w: C u is an empty circle. (b) Fig 2: At event w point u must be a breakpoint of the par. front. Otherwise: Some parabola Z covers u at v  Focus of Z is on C v and C v is inside C u  Focus of Z is inside C u  C u is not an empty circle  a contradiction. Evolution of the parabolic front p q u w CuCu Fig 1. Fig 2. wu v CuCu CvCv p q Z sweep line

39  SITE EVENT: Insert into the Parabolic Front.  CIRCLE EVENT: Delete from the Parabolic Front. The Discrete Events

40 SITE EVENT A new parabolic arc is inserted into the front when sweep line hits a new site. p q s p q s p q s 12 3

41 SITE EVENT p q s p q s p q s A parabola cannot appear on the front by breaking through from behind. The following are impossible:     t t+  t   t     A new parabolic arc is inserted into the front when sweep line hits a new site.

42  Circle event w causes parabolic arc  to disappear.   and  cannot belong to the same parabola. CIRCLE EVENT w p q s    u w p q s    w p q s   u

43 T: [SWEEP STATUS: a balanced search tree] maintains a description of the current parabolic front. Leaves: arcs of the parabolic front in y-monotone order. Internal nodes: the break points. DATA STRUCTURES (T & Q) Operations: (a) insert/delete an arc. (b) locate an arc intersecting a given horizontal line (for site event). (c) locate the arcs immediately above/below a given arc (for circle event). We also hang from this the part of the Voronoi Diagram swept so far. - Each leaf points to the corresponding site. - Each internal node points to the corresponding Voronoi edge. x y sweep direc. Par(A)Par(B) Par(C)Par(D) A B CD T:

44 Q: [SWEEP SCHEDULE: a priority queue] schedule of future events:  all future site-events &  some circle-events, i.e.,  those corresponding to 3 consecutive arcs of the current parabolic front as represented by T.  The others will be discovered & added to the sweep schedule before the sweep lines advances past them.  Conversely, not every 3 consecutive arcs of the current front specify a circle-event. Some arcs may drop out too early. DATA STRUCTURES (T & Q)

45 Event-driven simulation loop: At each iteration remove the next event (with min x-coordinate) from Q & simulate the effect of the sweep-line advancing past that event point. Event Processing & Scheduling

46 Event-driven simulation loop: At each iteration remove the next event (with min x-coordinate) from Q & simulate the effect of the sweep-line advancing past that event point. Event Processing & Scheduling death(  ) : pointing to a circle-event in Q as the meeting point of the Voronoi edges. (If the edges are diverging, then death(  ) = nil.) Remove circle-event death(  ) if: (a)  is split in two by a site-event, or (b) whenever one of the two arcs adjacent to  is deleted by a circle-event. 

47 Event-driven simulation loop: At each iteration remove the next event (with min x-coordinate) from Q & simulate the effect of the sweep-line advancing past that event point. Event Processing & Scheduling A circle-event update: each parabolic arc  (leaf of T) points to the earliest circle-event, death(  ), in Q that would cause deletion of  at the corresponding Voronoi vertex. death(  ) v s    spurious circle-event death(  ’) s   ’’  ’’ death(  ’’)

48 Event-driven simulation loop: At each iteration remove the next event (with min x-coordinate) from Q & simulate the effect of the sweep-line advancing past that event point. Event Processing & Scheduling (  ) do not define a circle-event: (a,c,d) is not a circle-event now, it is past the current sweep position. a b    c d 

49 |T| = O(n) : the front always has O(n) parabolic arcs, since splits occur at most n times by site events. Also by Davenport-Schinzel: …  …  …  …  … is impossible. [At most 2n-1 parabolic arcs in T.] ANALYSIS |Q| = O(n) : there are at most n site-events and O(n) triples of consecutive arcs on the parabolic front to define circle-events. Total # events = O(n), Time per event processing = O(log n). THEOREM: Fortune’s algorithm computes Voronoi Diagram of n sites in the plane using optimal O(n log n) time and O(n) space.

50 Delaunay Triangulation

51 Terrain Height Interpolation A perspective view of a terrain.A topographical map of a terrain.

52 Terrain Height Interpolation A perspective view of a terrain.A topographical map of a terrain. Terrain: A 2D surface in 3D such that each vertical line intersects it in at most one point. f :    2  . f(p) = height of point p in the domain A of the terrain. Method: Take a finite sample set P  A. Compute f(P), and interpolate on A. P  A f

53 Triangulations of Planar Point Sets P = {p 1, p 2, …, p n }   2. A triangulation of P is a maximal planar straight-line subdivision with vertex set P. THEOREM: Let P be a set of n points, not all collinear, in the plane. Suppose h points of P are on its convex-hull boundary. Then any triangulation of P has 3n-h-3 edges and 2n-h-2 triangles. Proof: m = # triangles 3m + h = 2E (each triangle has 3 edges; each edge incident to 2 faces) Euler: n – E + (m+1) = 2  m = 2n - h - 2, E = 3n – h – 3.

54 Delaunay Graph: Dual of Voronoi Diagram Delaunay Graph DG(P) as dual of Voronoi Diagram VD(P).

55 Delaunay Graph: Dual of Voronoi Diagram Delaunay Graph DG(P) as strainght-line dual of Voronoi Diagram VD(P).

56 Delaunay Graph is a Triangulation THEOREM: Delaunay Graph of P is  a straight-line plane graph, &  a triangulation of P. Proof: Follows from the following Lemmas. Alternative Definition of Delaunay Graph: A triangle  (p i, p j, p k ) is a Delaunay triangle iff the circumscribing circle C(p i, p j, p k ) is empty. Line segment (p i, p j ) is a Delaunay edge iff there is an empty circle passing through p i and p j, and no other point in P.

57 Delaunay Graph is a Triangulation LEMMA 1: Every edge of CH(P) is a Delaunay edge. Proof: Consider a sufficiently large circle that passes through the 2 ends of CH edge e, and whose center is separated from CH(P) by the line aff(e). e

58 Delaunay Graph is a Triangulation LEMMA 2: No two Delaunay triangles overlap. Proof: Consider circumscribing circles of two such triangles. Line L separates the two triangles. L empty area

59 Delaunay Graph is a Triangulation LEMMA 3: p i & p j are Voronoi neighbors  (p i, p j ) is a Delaunay edge. Proof: Consider the circle that passes through p i & p j and whose center is in the relative interior of the common Voronoi edge between V(p i ) & V(p j ). V(p i ) V(p j ) pipi pjpj

60 Delaunay Graph is a Triangulation LEMMA 4: If p j and p k are two (rotationally) successive Voronoi neighbors of p i &  p j p i p k < 180 , then  (p i, p j, p k ) is a Delaunay triangle. Proof: p j & p k must also be Voronoi neighbors. Now apply Lemma 3 to (p i, p j ), (p i, p k ), (p j, p k ).

61 Delaunay Graph is a Triangulation LEMMA 4: If p j and p k are two (rotationally) successive Voronoi neighbors of p i &  p j p i p k < 180 , then  (p i, p j, p k ) is a Delaunay triangle. Proof: p j & p k must also be Voronoi neighbors. Now apply Lemma 3 to (p i, p j ), (p i, p k ), (p j, p k ). COROLLARY 5: For each p i  P, the Delaunay triangles incident to p i completely cover a small open neighborhood of p i inside CH(P). pipi pipi CH(P)

62 Delaunay Graph is a Triangulation LEMMA 6: Every point inside CH(P) is covered by some Delaunay triangle in DG(P). Proof: Let q be an arbitrary point in CH(P). Let (p i, p j ) be the Delaunay edge immediately below q. ((p i, p j ) exists because all convex-hull edges are Delaunay by Lemma 1.) From Corollary 5 let  (p i,p j,p k ) be the next Delaunay triangle incident to p i as in the Figure below. Then, either q   (p i,p j,p k ), or the choice of (p i, p j ) is contradicted. pipi pjpj pkpk q pipi pjpj pkpk q pipi pjpj pkpk q The THEOREM follows from Lemmas 2-6. We now use DT(P) to denote the Delaunay triangulation of P.

63 Angles in Delaunay Triangulation THEOREM: DT(P) is the unique triangulation of P that lexicographically maximizes A( T ). Proof: Later. DEFINITION: T = an arbitrary triangulation (with m triangles) of point set P.  1,  2, …,  3m = the angles of triangles in T, sorted in increasing order. A( T ) = (  1,  2, …,  3m ) is called the angle-vector of T. COROLLARY: DT(P) maximizes the smallest angle. Useful for terrain approximation by triangulation & linear interpolation. Small angles (long skinny triangles) cause large approximation errors.

64 DT & VD via CH K.Q. Brown [1979], “Voronoi diagrams from convex hulls,” IPL K.Q. Brown [1980], “Geometric transforms for fast geometric algorithms,” PhD. Thesis, CMU-CS Guibas, Stolfi [1987], “Ruler, Compass and computer: The design and analysis of geometric algorithms,” Proc. of the NATO Advanced Science Institute, series F, vol. 40: Theoretical Foundations of Computer Graphics and CAD, Guibas, Stolfi [1985], “Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams,” ACM Trans. Graphics 4(2), [Edelsbrunner’87] pp: Aurenhammer [1987], “Power diagrams: properties, algorithms, and applications,” SIAM J. Computing 16,

65 DT in  d  CH in  d+1 y x z= (x,y) Paraboloid of Revolution   : (x,y)  (x,y, x 2 +y 2 )

66 SUMMARY: Consider a plane  in  3 and the paraboloid of revolution . (1)Projection of  down to  2 is a circle C. (2)Every point of  below  projects down to interior of C. (3)Every point of  above  projects down to exterior of C. 2D (“Nearest-Point” and “Farthest-Point”) Delaunay Triangulation algorithm via 3D-convex-hull in O(n log n) time. DT in  2  CH in  3

67 DT in  d  CH in  d+1 x y z  CH( (P)) DT(P)

68 DT in  d  CH in  d+1 P = {p 1, p 2, …, p n }   d. (P) = { (p 1 ), (p 2 ), …, (p n )}   d+1. Assume P is in general position. THEOREM: (1)Projection of lower convex-hull of (P) down to  d is the “nearest-point” DT(P). (2)Projection of upper convex-hull of (P) down to  d is the “farthest-point” DT(P).

69 VD in  d   Half-Spaces in  d+1 y x z= (x,y) Paraboloid of Revolution   : (x,y)  (x,y, x 2 +y 2 ) p (p)  (p)

70 VD in  d   Half-Spaces in  d+1 A d=1 example: 11  (p) r p  : y = x 2   s t Observation: dist(s,t) = dist(p,r) 2.

71 VD in  d   Half-Spaces in  d+1 A d=1 example: 11  (q)  (p) qp  : y = x 2

72 VD in  d   Half-Spaces in  d+1 p  (p) q  (q) (q) (p) PB(p,q) dd

73 VD in  d   Half-Spaces in  d+1 The projection of  (p)   (q) down to  d is the perpendicular-bisector of p & q.  (p) is above  (q) at points of  d that are closer to q.  + (p) = the closed half-space in  d above  (p). THEOREM: Voronoi Diagram in  d is obtained by projecting down the intersection of half-spaces  + (p), i=1..n, in  d+1. Duality Reminder: Intersection of half-spaces  Convex-Hull of Points.

74 VD in  d   Half-Spaces in  d+1 LEMMA: The projection down to  d of the intersection of any non-vertical hyper-plane in  d+1 with the paraboloid of revolution  : x d+1 = x x … + x d 2 is a sphere in  d. Proof:

75 COROLLARY: Consider 4 points p i = (x i, y i ), i=1..4 in  2, and their immage (p i ) = (x i, y i, x i 2 + y i 2 ) in  3. 1.p i are cocircular in  2  (p i ) are coplanar in  3. 2.Point D=p 4 is inside the circumcircle of A=p 1, B=p 2, C=p 3   1 +   )  (D) is below the plane passing through (A), (B), (C).   (A,B,C,D) and  (A,B,C) have the same sign. i.e., P   2  (P)   3 A B C D 22 44 11 33 Incircle(A,B,C,D)

76 A simple O(n 2 ) time DT Algorithm D C A B Step 1: Let T be an arbitrary triangulation of P   2. [e.g., use sweep in O(n log n) time] Step 2: while T has a quadrangle of the form below with  A +  B > 180  do flip diagonal CD (i.e., replace it with diagonal AB). [O(n 2 ) iterations] D C A B flip CD don’t flip CD C A B D Fact 1: 6 sorted angles are lexicographically increased

77 A snapshot of the Algorithm

78 e1 FLIP e1

79 A snapshot of the Algorithm

80 e2 FLIP e2

81 A snapshot of the Algorithm

82 FLIP e3 e3

83 A snapshot of the Algorithm

84

85 FACTS Proof: (1) There are at most O(n 2 ) edges in the tetrahedronization in 3D. After an edge is flipped out, it cannot reappear.  O(n 2 ) flips at most (2) Euler: n nodes, e edges, f faces, t tetrahedra, h hull vertices: n – e + f– t = 1 & 4t + (2h –4) = 2f  t = e – (n + h – 3) = O(n 2 ). FACT 1: The flip operation cd  ab is like attaching the tetrahedron (a,b,c,d) to the “lifted convex-hull” in 3D constructed so far [so its volume increases].

86 FACTS The O(n 2 ) bound on the number of flips is tight: flip “inside out”

87 FACTS FACT 2: Let C abc denote the circumcircle of triangle (a,b,c). b a c d

88 FACTS FACT 3: A flip lexicographically increases the sorted sequence of 6 angles of the pairs of triangles involved before and after the flip. COROLLARY 4: Each flip lexicographically increases the angle-vector of the triangulation. THEOREM: DT(P) is the unique triangulation of P that lexicographically maximizes A( T ).

89 Randomized Incremental Construction Guibas, Knuth, Sharir [1990], “Randomized Incremental Construction of Delaunay and Voronoi Diagrams,” Proc. 17 th Annual Int’l Coll. Automata & Lang. Progr. (CALP’90), LNCS 443, Springer-Verlag, Edelsbrunner, Shah [1992], “Incremental Topological Flipping works for regular Triangulations,” CG,

90 Randomized Incremental DT Algorithm 1. Randomly permute the given sites, say  p 1, p 2, …, p n . 2. Construct Delaunay Triangulation of p 1, p 2, p for i  4.. n do (a) Find triangle (or outer-face) of DT that contains p i. (b) Add p i to that face and triangulate it. (c) Perform repeated “Incircle-Test” and do edge-flips. 4. return resulting DT. end flip pipi Inserting a new site p i :

91 Step 3(c): Use the “Histroy DAG”  Maintain all versions of the DT on top of one another, plus appropriate links between overlapping “old” & “new” triangles.  This hierarchical structure will be used to perform the point-location step 3(a) also.  No more preprocessing needed for nearest-neighbor queries.  The Voronoi Diagram can also be constructed in a similar randomized manner with a hierarchical representation of all the past history of insertions.

92 ALGORITHM Randomized Incremental DT Construction 1.Initialize DT to “bounding-box” triangle  1  2  3 (3 points at  ). 2. for k  1.. n do 3. select a random site P not yet selected. 4. locate triangle ABC that contains P. 5. replace ABC by PAB, PBC, PCA 6. X  A ; progress  true 7. repeat 8. Y  3 rd vertex of triangle left of PX 9. if X & Y are not both some  i (at  ) then do 10. find Z  P s.t. XYZ is a current triangle 11. if Incircle(P,X,Y,Z) then do 12. flip triangles PXY & ZXY to PXZ & PZY 13. progress  false 14. end if 15. if progress then X  Y 16. end if 17. until X = A and progress end P A B C X Y PZ expected time = O(n log n) expected space = O(n)

93 Triangulation 11 22 33 split  1 22 33 p r s flip rs 55 33 p r s 44 flip rt 55 77 p r s 66 t t 11 22 33 11 22 33 11 22 33 55 44 11 22 33 55 44 66 77 History DAG

94 History DAG will be used for Nearest Site Point Location query answering. Each node in History DAG has out-degree at most 3. When inserting a new site, all Delaunay edges created due to edge-flips are incident to the new site. pipi pipi

95 THEOREM 1: The randomized Delaunay Triangulation algorithm satisfies the following properties on all inputs of size n: (a)The expected total number of structural changes (i.e., edge-flips …) that happen to the diagram is only O(n). [The worst-case is  (n 2 ).] (b)Using the History DAG, the amortized expected cost per site insertion is O(log n), i.e., the overall expected time is O(n log n). THEOREM 2: Suppose the Delaunay diagram of m sites is already computed and n additional sites are to be added. If the new sites are randomly and incrememntally inserted into the diagram, then the total number of structural changes has expected value O(m log n + n) [and this bound is tight]. Proof: See next slides.

96 x y=1 Worst-case  (n 2 ) edge-flips: insert first insert next Note: In any triangulation of the n sites: # triangles = 2n – h – 2  2n # edges = 3n –h – 3  3n where h  3 is the # hull vertices.

97 LEMMA 1: Expected # triangles created by the RIA is at most 9n + 1 = O(n). Proof: P k = { p 1, p 2, …, p k } the first k points (random). T k = Delaunay Triangulation of P k  {  1,  2,  3 }. # edges of T k  3(k+3) –6 = 3k + 3. # edges of T k excluding triangle (  1,  2,  3 )  3k.  E[degree of p k in T k ]  (2  3k) / k = 6. Backwards analysis: p k can be any of the points in P k with equal probability. # triangles created at iteration k  2  [degree of p k in T k ] – 3.  E[# triangles created in iteration k]  2  6 –3 = 9.  E[# triangles created in all iter.]  9n. [by linearity of expectation] (The one extra in 9n+1 is the initial “bounding triangle (  1,  2,  3 ).

98 Definition: Consider a triangle  = (p i, p j, p k ). C(  ) = circumcircle of triangle .  (  ) = set of points in P that are in the interior of C( . width(  ) = ||  (  ) ||. pipi pjpj pkpk Random-Sampling technique of Clarkson-Shor. width = 0   is a Delaunay triangle.

99 Expected time for all point-locations = O( n +   width(  ) ) [where  is a Delaunay triangle at some iteration] Why? Point-location for insertion of site p: Starting with (  1,  2,  3 ) in the History DAG, trace the path of all triangles that contain p. Charge the cost of each visited triangle node to either (  1,  2,  3 ) or a triangle  that was Delaunay at some time. The total charge will be as above. (See next slide.) Expected time = point locations + History DAG construction Expected time excluding point-location = expected size of the History DAG = expected # triangles created by RIA = O(9n + 1) = O(n).

100 Expected time for all point-locations = O( n +   width(  ) ) [where  is a Delaunay triangle at the end of some iteration] Width(  ) = W   will be charged by at most W points, at most once for each. Why? Suppose point-location of p visits a triangle . So, p is inside , hence p   (  ). (i) If  is Delaunay at the time of its creation, then charge that visit to . (ii) If  is not Delaunay at the time of its creation, then charge that visit to its neighbor  ’. (  ’ must have been Delaunay.) p    p   (  ’).  ’’

101 LEMMA 2: E [   width(  ) ] = O(n log n). Proof: P k = { p 1, p 2, …, p k } (random). T k = DT of P k  {  1,  2,  3 }. [p k is incident to .] Definition: for a point q  P - P k : R(P k,q) = # triangles   T k s.t. q   (  ). R(P k,q, p k ) = # triangles   T k s.t. q   (  ), and p k is a vertex of .

102 THEOREM 3: The randomized incremental algorithm calculates the Delaunay Triangulation of a set of n points in the plane in expected time O(n log n) & expected space O(n). Remark: This expected time is optimum, since there is a linear time reduction from sorting to DT (i.e., x i  (x i, x i 2 ) ) and expected time for sorting in the algebraic decision-tree model of computation is  (n log n).

103 Generalizations & Applications

104 RIA for 3D Convex Hull Incremental construction of 3D Convex Hulls: Generalize the following idea to CH of any set P of n points in 3D. THEOREM 4: The expected overall # of faces that appear during the randomized incremental construction of the lower-CH of a set P of n points in 3D is O(n). Proof: width(XYZ) = # points of P that lie below the plane of XYZ. The rest of the proof is again by the random-sampling technique of Clarkson-Shor. THEOREM 5: The randomized incremental construction of 3D convex hull takes optimal expected time O(n log n) and expected space O(n). [Worst-case could be  (n 2 ) time and space.]

105 RIA for Voronoi Diagram IDEA: radial triangulation of Voronoi regions: THEOREM 6:  The expected size of the structure is O(n).  The structure can be built in expected O(n log n) time.  The above point-location structure can be used to locate the final radial triangle that contains an arbitrary query point q in expected O(log 2 n) time. Now apply previous ideas on these type of triangles. Each radial triangle is determined by at most 4 sites. No need for further point-location preprocessing for nearest-neighbors queries. The constructed structure will have that.

106 The Post Office Problem PROBLEM: Preprocess a given set P of n points in the plane for: Nearest Neighbor Query: Given a query point q, determine which point in P is nearest to q. Shamos [1976]: Slab Method: Query Time:O(log n) Preprocessing Time:O(n 2 ) Space:O(n 2 ) Kirkpatrick [1983]: Triangulation refinement method for planar point location: Query Time:O(log n) Preprocessing Time:O(n log n) Space:O(n) Construct Voronoi Diagram. Each Voronoi region is convex, hence monotone. Triangulate the Voronoi regions in O(n) time. Then apply Kirkpatrick’s method. Andoni, Indyk [2006] “Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions,” FOCS’06.

107 Largest Empty Circle Problem PROBLEM: Determine the largest empty circle with center in CH(P). O(n) Candidate centers. All can be found in O(n) time (after VD(P) is given): (1) Voronoi vertex inside CH(P), (2) Intersection of a Voronoi edge and an edge of CH(P).

108  Gabriel Graph  Relative Neighborhood Graph  Euclidean Minimum Spanning Tree  Nearest Neighbor Graph Subgraphs of Delaunay Triangulation

109 Nearest Neighbor Graph: (p,q) is a directed edge in NNG   r  P-{p,q}: d(p,q)  d(p,r). NNG  EMST  RNG  GG  DT p q Delaunay Triangulation: (p,q) is a DT edge   empty circle through p and q. pq Gabriel Graph: (p,q) is a GG edge   empty circle with diameter (p,q), (i.e., (p,q) intersects its dual Voronoi edge). p q lune(p,q) Relative Neighborhood Graph: (p,q) is an RNG edge   r  P-{p,q}: (p,q) is NOT the longest edge of triangle (p,q,r) (i.e., d(p,q)  max{d(p,r), d(q,r)}) (i.e., lune(p,q) is empty). Euclidean Minimum Spanning Tree: (p,q) is in EMST   cycles: (p,q) is NOT the longest edge of the cycle.

110 NNG  EMST  RNG  GG  DT Delaunay Triangulation

111 NNG  EMST  RNG  GG  DT Gabriel Graph:

112 NNG  EMST  RNG  GG  DT Gabriel Graph:

113 NNG  EMST  RNG  GG  DT Relative Neighborhood Graph:

114 NNG  EMST  RNG  GG  DT Euclidean Minimum Spanning Tree:

115 NNG  EMST  RNG  GG  DT Delaunay TriangulationNearest Neighbor Graph:

116 Euclidean Minimum Spanning Tree General (m edge, n vertex graph) MST algorithms (See also AAW): Kruskal or Prim O(m log n) or O(m + n log n) time. Yao or Cheriton-Tarjan: O(m log log n) time Chazelle: O(m  (m,n)) time. EMST requires  (n log n) time in the worst-case. [Linear time reduction from the Closest Pair Problem.] EMST in O(n log n) time: (1) Compute DT in O(n log n) time (# edges in DT  3n –6). (2) Apply Prim or Kruskal MST algorithm to DT. Next we will show EMST can be obtained from DT in only O(n) time.

117 Euclidean Minimum Spanning Tree D. Cheriton, R.E. Tarjan [1976] “Finding minimum spanning trees,” SIAM J. Comp. 5(4), Also appears in §6.1 of [Preparata-Shamos’85]. Cheriton-Tarjan’s MST algorithm works on general graphs. When applied to a planar graph with n vertices and arbitrary edge-weights, it takes only O(n) time. The following graph operations preserve planarity: (a) vertex or edge removal, (b) edge contraction (shrink the edge & identify its two ends): e

118 Cheriton-Tarjan: MST algorithm (overview) Input: edge-weighted graph G=(V,E) 1. Q   (* queue of sub-trees *) for v  V do enqueue (v, Q) (* n single-node trees in Q *) 2. while |Q|  2 do - let T 1 be the tree at the front of Q - find edge (u,v)  E with minimum weight s.t. u  T 1 and v  T 1 - let T 2 be the tree (in Q) that contains v - T  MERGE (T 1, T 2 ) by adding edge (u,v) - remove T 1 and T 2 from Q - add T to the end of Q - CLEAN-UP after each stage (see next slide) end

119 Cheriton-Tarjan Invariants: (a) stage numbers of trees in Q form a non-decreasing sequence. (b) stage(T)=j implies T has at least 2 j nodes. So, stage(T)  log |T|. (c) after completion of stage j (i.e., the first time stage(T) > j,  T  Q) there are  n/(2 j ) trees in Q. CLEAN-UP: After the completion of each stage do “clean-up”, i.e., shrink G to G*, where G* is G with each edge in the same tree contracted, i.e., each tree in Q is contracted to a single node, with only those edges (u,v)  G*, u  T, v  T’, That are shortest incident edges between disjoint trees T, T’.

120 Cheriton-Tarjan: Algorithm PROCEDURE MST of a Graph G=(V,E) 1. Q   (* initialize queue *) for v  V do stage(v)  0 ; enqueue (v, Q) j  1 2. while |Q|  2 do - let T 1 be the tree at the front of Q - if stage(T 1 ) = j then CLEAN-UP; j  j+1 - (u,v)  shortest edge, s.t. u  T 1 and v  T 1 - let T 2 be the tree (in Q) that contains v - T  MERGE (T 1, T 2 ) by adding edge (u,v) - stage(T)  1 + min{ stage(T 1 ), stage(T 2 )} - remove T 1 and T 2 from Q - add T to the end of Q end

121 Cheriton-Tarjan: Analysis FACTS: (a) A planar graph with m vertices has O(m) edges. (b) Shrunken version of a planar graph is also planar (c) CLEAN-UP of stage j takes O(n/2 j ) time. (d) # stages   log n  (e) During stage j each of the < 3n/ 2 j edges of G* are checked at most twice (once from each end). So, stage j takes O(n/ 2 j ) time. (f) Cheriton-Tarjan’s algorithm on planar graphs takes:

122 THEOREM: The MST of any weighted connected planar graph with n vertices can be computed in optimal O(n) time. COROLLARY: Given DT(P) of a set P of n points in the plane, the following can be constructed in O(n) time: (a) GG(P), (b) RNG(P), (c) EMST(P), (d) NNG(P). Proof: (a) & (d): obvious. (c): use Cheriton-Tarjan on DT(P). (b): see Exercise.

123 Traveling Salesman Problem (TSP) Input: An n  n positive distance matrix D=(d ij ), i,j = 1..n, where d ij is the travel distance from city i to city j. Output: A traveling salesman tour T. T starts from the home city (say, city 1) and visits each city exactly once and returns to home city. Goal: minimize total distance traveled on tour T: T OPT  (1, 3, 4, 2)  ((1, 3), (3,4), (4,2), (2,1)) C(T OPT ) = d 13 + d 34 + d 42 + d 21 = = 15

124 Some Classes of TSP General TSP : distance matrix D is arbitrary Metric-TSP:D satisfies the metric axioms Euclidean-TSP:n cities as n points in the plane with Euclidean inter-city distances These are all NP-hard. Related Problems: Minimum Spanning Tree Hamiltonian Cycle Graph Matching Eulerian Graphs

125 Hamiltonian Cycle Problem (HCP) HCP: Given a graph G(V,E), does G have a Hamiltonian Cycle (HC)? HC is any simple spanning cycle of G, i.e., a cycle that goes through each vertex exactly once. HCP is known to be NP-hard. Hamiltonian (skeleton of dodecahedron) Non-Hamiltonian (Peterson graph)

126 Graph Matching Definition: A matching M in a graph G(V,E) is a subset of the edges of G such that no two edges in M are incident to a common vertex. Weight of M is the sum of its edge weights. A perfect matching is one in which every vertex is matched. A perfect matching M of weight =16 in graph G. FACT: Minimum weight maximum cardinality matching can be obtained in polynomial time [Jack Edmonds 1965]

127 Min Weight Euclidean Matching Given 2n points in the Euclidean plane, match them in pairs with n matching edges of minimum total length.  O(n 3 ) on general weighted graphs: Jack Edmonds [1965]  O(n 2.5 log 4 n): P.M. Vaidya [1989], SICOMP 18(6),  Mirzaian [1993], “Minimum weight Euclidean matching and weighted relative neighborhood graphs,” WADS,

128 Eulerian Graph Definition: A graph G(V,E) is Eulerian if it has an Euler walk. Euler Walk is a cycle that goes through each edge of G exactly once. FACT 1: A graph G is Eulerian if and only if (a) G is connected and (b) every vertex of G has even degree. An Eulerian graph G An Euler walk of G FACT 2: An Euler walk of an Eulerian graph can be found in linear time.

129 General TSP THEOREM: Let  >1 be any constant.  -approximation of general TSP is also NP-hard. [So, there is no polynomial-time  -approximation algorithm for general TSP, unless P=NP.] Proof: Reduction from Hamiltonian Cycle Problem (HCP). HCP: Given G(V,E), is G Hamiltonian? G is Hamiltonian  C(T OPT ) = n. G is not Hamiltonian  C(T OPT )  n +  n   (1+  ) n >  n. Suppose there were a poly-time  -approx TSP algorithm producing a tour T. C(T)/C(T OPT )    G has HC if and only if C(T) = n. This would provide a poly-time algorithm for the HCP! Reduction: Let n = |V|. Define the TSP distance matrix as:

130 Metric & Euclidean TSP  Metric Traveling Salesman Problem (metric-TSP):  special case of general TSP (distance matrix is metric)  NP-hard  2-approximation: Rosenkrants-Stearns-Lewis [1974]  1.5-approximation: Christofides [1976]  Euclidean Traveling Salesman Problem (ETSP):  special case of Metric-TSP (with Euclidean metric)  NP-hard  PTAS: Sanjeev Arora [1996] [CSE4101/5101 Lecture Note 10].

131 2-approximation of metric-TSP Rosenkrants-Stearns-Lewis [1974] (See also AAW) C(T)  2  C(T OPT ) Minimum Spanning Tree (MST) FACT 2: C(T)  2  C(MST)  2  C(T OPT ). Bypass repeated nodes on the Euler walk. Euler walk around double-MST FACT 1: Triangle inequality implies bypassing nodes cannot increase length of walk.

132  = 2 is tight (even for Euclidean instances) Euclidean Instance MST Euler walk of double MST Tour T Tour T OPT

133 1.5-approximation for metric-TSP Christofides [1976]: C(T)  1.5  C(T OPT ) MST Odd degree nodes in MST M = Minimum weight perfect matching on odd-degree nodes E = MST + M is Eulerian. Find an Euler walk of E. Bypass repeated nodes on the Euler walk to get a TSP tour T. FACTS: Any graph has even # of odd degree nodes. (Hence, M exists.) C(MST)  C(T OPT ) C(M)  0.5  C(T OPT ) (See next slide.) C(E) = C(MST) + C(M)  1.5  C(T OPT ) C(T)  C(E)  1.5  C(T OPT )

134 C(M)  0.5  C(T OPT ) Odd degree node in MST T OPT

135 C(M)  0.5  C(T OPT ) C(M)  C(M 1 ) M1M1 Odd degree node in MST T OPT

136 C(M)  0.5  C(T OPT ) C(M)  C(M 2 ) M2M2 Odd degree node in MST T OPT

137 C(M)  0.5  C(T OPT ) C(M)  C(M 1 ) C(M)  C(M 2 ) 2  C(M)  C(M 1 ) + C(M 2 )  C(T OPT ) M1M1 M2M2 Odd degree node in MST T OPT

138  = 1.5 is tight (even for Euclidean instances) Euclidean instance: MST: MST + M: Tour T: Tour T OPT :

139 Open Problem Weighted Relative Neighborhood Graph (WRNG): RNG of a set of circular disks This arises in EMWM computation [Mirzaian’93] weighted distance (triangle inequality not satisfied): FACT: WRNG  WGG  WDT. WDT and WGG can be computed in O(n log n) time. Open Problem: Can WRNG be computed in O(n log n) time?

140 Minimum Weight Triangulation Problem: Given a set P of n points in the Euclidean plane, find a triangulation of P with minimum total edge length. MWT is NP-hard: [LN16: Mulzer-Rote, SoCG’06] See LN17 & LN18 also. Delaunay Triangulation can give  (n) approximation ratio:  DT MWT

141 In general, dynamic programming can be used for triangulation of point sets or polygons. Point sets: 1. Maximize the minimum angle: Delaunay Triangulation, O(n log n) 2. Minimize the maximum angle: SoCG’89-90, O(n 2 log n) 3. Minimize the longest edge: Use RNG 4. Minimize total edge length: MWT [LN16,17,18]

142 Extensions of Voronoi Diagrams  Voronoi Diagram of line-segments, circles, …  Medial Axis  Order k Voronoi Diagram  Farthest Point Voronoi Diagram (order n-1 VD)  Weighted Voronoi Diagram & Power Diagrams  Generalized metric (e.g., L p metric)

143 VD of line-segments & circles parabola par line par hyperbola line

144 Medial Axis MA: Locus of centers of empty circles that touch 2 or more data points. [Blum’76] Applications: pattern recognition, medical CAT scan imaging, … MA of polygons in linear time: convex polygons: [Aggarwal et al. 1989] simple polygons: [Chin-Snoeyink-Wang, Discrete Comp. Geom.1999]

145 Higher Order VD [PrS85] § 6.3 [Ede87] § [ORo98] § 6.6. Aurenhammer [1987], “Power diagrams: properties, algorithms, and applications,” SIAM J. Computing 16, D.T. Lee [1982], “On k-Nearest Neighbors Voronoi Diagram in the Plane,” IEEE Trans. Computers, C-31,

146 , ,3 3,7 7,8 6,8 5,8 5,6 2,5 2,4 4,5 1,4 4,6 3,4 4,7 6,7 Example: Order 2 Voronoi Diagram Some Voronoi regions of order 2 are empty, e.g. (5,7). Order k Voronoi Diagram Given a set of n sites in space, partition the space into regions where any two points belong to the same region iff they have the same set of k nearest sites.

147 Order k Voronoi Diagram of P: Order k Voronoi Diagram Voronoi region of T (a convex polyhedron, possibly empty) pipi pjpj H(p i, p j ) half-space possible subsets of size k. Most have empty Voronoi regions. In 2D only O(k(n-k)) of them are non-empty [D.T. Lee’82].

148 VD k in  d  k-belt of arrangement of hyperplanes in  d+1 k-belt = region between level k and level (k+1) in the arrangement. Level 2 Level 3 2-belt

149 Example: VD 2 in  1 p1p1 p2p2 p3p3 p4p4 1,2 2,3 3,4 x y y=x 2

150 ALGORITHM Order-k VD of P   2 1. For each point p  P do - lift p onto  : z = x 2 + y 2, call it (p) -  (p)  plane tangent to  at (p) 2. Construct k-belt of the arrangement of the planes  (p), p  P, in  Project down this k-belt onto the base plane  2. This is the k-th order Voronoi Diagram of P. FACT 1: In O(n 3 ) time we can compute all k-levels of the arrangement and find the k-th order VD. Improvement by [D.T. Lee 1982]: FACT 2: [Preparata-Shamos’85]: k-th order VD of n points in the plane can be obtained in time O(min { k 2, (n-k) 2 } n log n). COROLLARY 3: Complexity of the k nearest neighbors query problem is: O(k + log n)Query Time O(k 2 n log n)Preprocessing Time O(kn)Space.

151 VD in L p metric L  metric: || p 1 – p 2 ||  = max { | x 1 – x 2 |, |y 1 – y 2 | } “unit circle” p1p1 p2p2 L 1 metric: || p 1 – p 2 || 1 = | x 1 – x 2 | + |y 1 – y 2 | “unit circle” p1p1 p2p2 PB

152 VD in L p metric Voronoi Diagram in L  metric in O(n log n) time & O(n) space. Largest empty square in O(n log n) time.

153 Robot Motion Planning A B robot obstacle Assume robot moves by translation only (no rotation).

154 Robot Motion Planning Approach: 1. Voronoi Diagram 2. Minkowski Sum A  B = { p + q | p  A, q  B }  = q p -q A ANAN  = p-q diameter(A) AANAAN

155 Exercises

156 1.(a) Draw the Voronoi diagram of 10 points all on a line. (b) Draw separately the Voronoi diagram of 10 points all on a circle. (c) Draw the Voronoi diagram of 10 random points in the plane using the L 1 metric instead of the L 2 metric. Show an example of a Voronoi cell that is not convex. 2.Let P and Q be two point sets in the plane, and let p  P and q  Q be the two points from these sets that minimize dist(p,q). True or false: line-segment (p,q) is an edge of DT(P  Q). Explain. 3. Dynamic maintenance of Voronoi Diagrams: We are given the Voronoi Diagram VD(P) of a set P of n points in general position in the plane. (a) Show how to delete a given point p  P, thereby constructing the Voronoi Diagram of P-{p}. Your method should take O(k log k) time where k is the number of edges on the boundary of the Voronoi region corresponding to p. (b) Optional: Can you improve the running time of your algorithm for part (a) to O(k)? (c) We are given a point q  P and a Delaunay triangle in DT(P) whose circumscribing circle contains q. Show how to insert q, thereby constructing the Voronoi Diagram of P  {q}. Your method should take O(k) time, where k is size of the combinatorial “change” in the VD. [Note: DT(P) is not given.] 4. Modified Delaunay Triangulation: We are given the Delaunay Triangulation of a set P of n point in the plane. Suppose the x-coordinate of each point in P with positive x-coordinate is increased by 1. There are no other changes to the coordinates of the points in P. How fast can you algorithmically update the Delaunay Triangulation of the modified P? Describe and justify your answer in detail. 5.Let S be a set of n segments in the Euclidean plane. The distance between two segments s 1, s 2 is defined as d(s 1, s 2 ) = min { d(p, q) | p  s 1, q  s 2 }. Describe a randomized algorithm for computing a nearest (respectively, farthest) pair of segments in S whose expected running time is O(n log n).

157 6. Farthest Point Voronoi Diagram: The following problems have to do with the farthest-point Voronoi diagram. For a set S of n points in the plane, define the farthest-point Voronoi diagram of S, denoted FVD(S), as the union of farthest-point cells, where we define for each point p  S, FV(p) to be the set of all points that have p as their farthest neighbor in S. (a) Give an example of a set S and a point p  S such that FV(p) is empty. (b) Show that each non-empty region in a farthest-point Voronoi diagram is unbounded and associated with a point on the convex hull of S. (c) Show that FVD(S) in the plane is a tree. (d) Define the farthest-point Delaunay Triangulation FDT(S) as the graph-theoretic planar dual of FVD(S). Derive a relationship between FDT(S) and the convex hull of the 3-dimensional set of points defined by mapping each point (x,y)  S to the point (x,y, x 2 +y 2 ). Use this fact to design a simple O(n log n) time algorithm for constructing FVD(S). (e) Prove that each vertex v of FVD(S) corresponds to a circle C determined uniquely by the sites defining v such that C contains all the points of S. (f) Show how to use FVD(S) to compute the smallest-radius circle that contains S. What is the running time of your method? 7. Minkowski Sum: Let A and B be two convex polygons in the plane, with m and n vertices respectively. If we regard a point in the plane as a vector, then the Minkowski sum of A and B is defined as A  B = {a + b  a  A, b  B}. Show that A  B is a convex polygon with at most m + n vertices. How fast can one compute A  B?

158 8. Hausdorf Distance: The set distance between two sets of points A and B is defined as d(A,B) = min {d(p,q) | p  A, q  B }, where d(p,q) is the Euclidean distance between points p and q. The directed Hausdorf distance from a set of points A to a set of points B is H(A,B) = max {d(p,B) | p  A }, and the Hausdorf distance between a set of points A and a set of points B is D(A,B) = max { H(A,B), H(B,A)}. [This metric is used to measure similarity between two sets of points.] Outline an efficient algorithm for computing the Hausdorf distance between two sets, A and B, each containing n points in the plane. What is the running time of your method? 9. Voronoi Diagram in L  metric: The L  distance is dist  (p, q) = max( |p x − q x |, | p y − q y | ). (a) Given a point q, describe the set of points that are at L  distance w from q. (b) Given two points p and q, describe the set of points that are equidistant from p and q in the L  distance. [Hint: The bisector is a polygonal curve. As a function of the coordinates of p and q, indicate how many vertices this curve has and where these vertices are located. Give exact formula, and not just a high-level description.] (c) Argue that the Voronoi diagram for n sites in the L  metric has O(n) line-segments and vertices. [Hint: First show that each cell of the Voronoi diagram is connected. Take care in your application of Euler's formula, since some vertices may have degree two.] (d) Assuming that the L  Voronoi diagram is given, describe a method to compute the largest empty axis-aligned square centered at a query point q. Your method should involve O(n) space and O(log n) query time. [You are not required to show how to build the data structure, only to argue its existence.]

159 10.Let P = {p 1, p 2, …, p n } be the vertices of a convex polygon, given in counterclockwise order. The purpose of this problem is to modify the randomized incremental Delaunay triangulation algorithm to run in O(n) expected time. Unlike the algorithm presented in class, we do not put all the sites within a large bounding triangle. We start with the triangle defined by three random sites from P. The remaining sites are inserted in random order; each new site is connected to the convex hull, and edge flips are performed until the circumcircle condition is satisfied. (See the figure below.) (a) Give a backwards analysis to show that the expected number of edge-flips performed with each insertion is O(1). (b) Whenever a new site is added, we need to determine where along the current convex hull it is to be added. Explain how to do this in O(1) expected time. You are allowed to preprocess the sites in O(n) time.

160 11.Given a set P of n points in the plane in general position (no 3 collinear & no 4 cocircular), the objective of this problem is to determine the pair of concentric circles C 1 and C 2 such that every point of P lies between these circles, and the area of the region between these two circles is minimized. [Note: There is a harder variant of this problem in which the goal is to minimize the width of this region.] Consider the subdivision S formed by overlaying NVD(P) and FVD(P), the nearest and farthest Voronoi diagrams of P, respectively. The vertices of S consist of the union of the vertices of the two Voronoi diagrams together with the points at which two edges, one from each diagram, intersect each other. (a) Prove that the center of the optimum concentric circles cannot lie in the interior of any face of S. (b) Prove that the center of the optimum concentric circles cannot lie in the relative interior of any edge of S. (c) Using (a) and (b), give an O(k + n log n)-time algorithm for solving this problem, where k is the number of vertices of S. (Assume NVD(P) and FVD(P) can be computed in O(n log n) time.) (d) Show that the problem can be solved in O(n) time by using the fact that linear programming with O(n) constraints and a constant number of variables can be solved in O(n) time. C1C1 C2C2

161 12.Determining whether a general graph has a spanning tree of degree at most three is NP-complete. In this problem, we consider this problem for planar triangulations. Given a connected graph G = (V,E), a spanning subgraph of G is any graph G’= (V,E’) with E’  E. A spanning tree is a connected acyclic spanning subgraph of G. Recall that a triangulation of a point set V is a PSLG whose vertex set is V, whose external face consists of the edges of the convex hull of V, and whose internal faces are triangles. Prove that any triangulation of a set of points in the plane (viewed as a planar graph) has a spanning tree of degree at most three. See Fig. (a). [Hint: First prove the following by induction on the number of vertices. Consider any PSLG triangulation whose external face is homeomorphic to a circle. Such a graph is characterized by three conditions: its internal faces are triangles, there are at least three vertices on its external face, and every vertex on its external face has exactly two neighbors on the external face. Prove that such a PSLG has a connected spanning subgraph of degree at most three such that every edge of the external face is in that subgraph. See Fig. (b).] (a) (b)

162 13.The Delaunay triangulation has an interesting monotonicity property with respect to ray shooting. To illustrate it, let us consider a triangulation T spanning a set P of n points in the plane. Let p be an arbitrary point in the plane. For any triangles t i and t j in T, we write t i


163 14.Computing geometric properties of a union of spheres is important to many applications in bioinformatics. The following problem is a 2-dimensional simplification of one of these problems. (a) You are given a set P of atoms representing a protein, which for our purposes will be represented by a collection of circles in the plane, all of equal radius r a. Such a protein lives in a solution of water. We will model a molecule of water by a circle of radius r b > r a. A water molecule cannot intersect the interior of any protein atom, but it can be tangent to one. We say that an atom a  P is solvent-accessible if there exists a placement of a water molecule that is tangent to a, and the water molecule does not intersect any other atoms in P. In the figure below, all atoms are solvent-accessible except for three (as indicated). Given a protein molecule P of n atoms, devise an O(n log n) time algorithm to determine all solvent- inaccessible molecules of P. (b) Solve the problem when atoms in P are of non-uniform size, i.e., they are circles of varying radii.

164 15. Kinetic Delaunay Triangulation: We are given a set P = {p 1,..., p n } of n stationary points and a moving point p 0, all in the plane. Point p 0 moves on a line trajectory with a given constant speed, i.e., at time t, this point is at location p 0 (t) = a  t  b, where a and b are given 2-vectors. Assume P is in general position (i.e., no three points collinear and no four points cocircular), and the trajectory line of p 0 does not hit P. Consider the kinetic set Q t = P  {p 0 (t)} and its time varying Delaunay Triangulation DT(Q t ). We want to preprocess Q t into a compact data structure so that for any given query time t, we can efficiently extract DT(Q t ) from it. (a) Derive a bound on the combinatorial size of changes in DT(Q t ) as t goes from -  to . (b) Design and analyze the preprocessing and query answering algorithms and the data structure. 16. Relative Neighborhood Graph: Suppose we are given the Delaunay Triangulation DT(P) of a set P of n points, in general position, in the plane. We know that a Delaunay edge e is in RNG iff lune(e) is empty. Consider a Delaunay edge e that is not in RNG. Then, there must be some point p  P (distinct from two ends of e) such that p  lune(e). We say such a site p kills edge e. (a) Show that if a Delaunay edge e is killed by a site p, then there is a sequence of one or more Delaunay edges (e 1, e 2, …, e k ), all killed by p, e = e k, (p, e 1 ) is a Delaunay triangle, and for i = 1..k-1, e i and e i+1 are two edges of a (common) Delaunay triangle. (b) Start with the Delaunay triangulation and assume its edges are coloured blue. Consider a triangle incident to site p whose opposite side is a blue edge e killed by p. Update the triangulation by an edge-flip that (permanently) removes blue edge e and adds a new red edge incident to p. Is it possible to remove all Delaunay edges killed by p with repeated application of such an edge-flipping process? (c) Can we make the blue edge removals in part (b) permanent, while we continue applying the same process, restarting with different sites p? In other words, is it true that after the process in part (b) is sequentially applied to all sites p, the surviving blue edges form the RNG? (d) Show that given DT(P), RNG(P) can be computed in O(n) time. (e) What is the computational complexity of the Weighted RNG (WRNG)?

165 END


Download ppt "COSC 6114 Prof. Andy Mirzaian. Voronoi Diagram & Delaunay Triangualtion Algorithms  Divide-&-Conquer  Plane Sweep  Lifting into d+1 dimensions  Edge-Flip."

Similar presentations


Ads by Google