1 / 10

Voronoi Graph

Voronoi Graph. Voronoi region Vor(p) (p in set S) the set of points on the plane that are closer to p than to any other point in S Voronoi Graph VOR(S) dual to Voronoi region graph two points are adjacent if their Voronoi regions have common contiguous boundary (segment). Voronoi Graph.

Download Presentation

Voronoi Graph

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. Voronoi Graph • Voronoi region Vor(p) (p in set S) • the set of points on the plane that are closer to p than to any other point in S • Voronoi Graph VOR(S) • dual to Voronoi region graph • two points are adjacent if their Voronoi regions have common contiguous boundary (segment)

  2. Voronoi Graph • Voronoi Graph in the rectilinear plane • Rectilinear distance: p = (x, y); p’=(x’,y’) Voronoi region of b ab b a bc c ac

  3. Voronoi Graph Fact: In any cycle the longest edge does not belong to MST. Proof: if it is the longest edge in a cycle, it would be the longest edge in MST. Claim 1: Voronoi graph contains minimum spanning tree. Claim 2: For any x,y S if (x,y) Vor (S), then x,y MST(S) Proof:  x,y-path P in Vor(S) s.t.  eP |e| < |xy|

  4. Voronoi Graph Proof: (at least 2 edges in Voronoi groph will intersect the “red edge”) w y a p pw < yp+pw (pw<px, p closer to w than to x -in Voronoi region on w) < yp+px = xy x b a<b

  5. Voronoi Graph Proof in general case: Let xy intersect Voronoi diagram in points p1,p2,.... pipi+1 will be in a same Voronoi region (of some point) pi pi+1  Vor(xi) Construct x x1 x2 ... xi-1 y any edge on this path is shorter than xy |xi xi+1| < |pi y| x2 p3 y p2 p1 x1 x

  6. Voronoi Graph Theorem: For n points in the plane MST can be found in O(n log n) Claim: Finding Voronoi graph for n points is at least as difficult as sorting n numbers. Proof: if the points are on the same line: xn x1 x2 x3 it is equivalent to sorting n numbers by Master Theorem (for “divide and conquer”): T(n)=2T(n/2)+O(n) for merging O(n log n)

  7. Mehlhorn (‘88) O( E+ V log V) 2-approximation of Steiner trees G=(V,E,w) S  V terminals find T  G, T  S, w(T)  min. 2-approx. algorithm: 1) Find all shortest paths between any pair of points: Find GS=(S,E’,w’) , GS is a complete graph w(s,s’)=w(e)=weight of the shortest path between s and s’ in G 2) Find MST of this graph, replace any edge with paths in G TS=MST(GS) 3) T’=  pathG(e) (this may not be a tree), last step: eTS 4) T=MST(T’) Running time of this algorithm: S (V log V+E) (all shortest path) (bottle neck) S2+S log S=O(S2) (to find T)

  8. Definition of Voronoi graph in graphs (not in the plane) - we’ll be able to get O(V log V+E) 1 Voronoi regions 1.3 2 1.5 0.5 1 shortest path conn.these 2 points 1 terminals S v Voronoi region of v Vor(v) weight = shortest path weight in G between 2 terminals - all the weights we find we’ll be in the shortest path

  9. Definition of Voronoi graph in graphs For any vVor(s) (s  S) we need to know:  (s,v) =  (v) (  ) - shortest path between s1,s2: for each eE, e=(a,b) v  r(v) (terminals closest to v) if r(a)  r(b) (they do not belong to same region) w’(a,b) =  (a) + w(a,b) +  (v) if  (a) + w(a,b) +  (v) <  (r(a),r(b)) then  (r(a),r(b)) =w’(a,b)as result we’ll find all the edges of Vor. Graph Problem: find (  ) how to find for any node distance to its root? Find  (v) for any v!

  10. How to find  (v) for any v r(v) (auxiliary node) v A terminals other nodes - run Dijkstra (find shortest path to any node) - any shortest path should go through 1 terminal (if it goes through some terminal, it belongs to that region)  (v) =  (A,v)=  (r(v),v) O(E+V log V)

More Related