Presentation is loading. Please wait.

Presentation is loading. Please wait.

Voronoi Graph Voronoi region Vor(p) (p in set S) Voronoi Graph VOR(S)

Similar presentations


Presentation on theme: "Voronoi Graph Voronoi region Vor(p) (p in set S) Voronoi Graph VOR(S)"— Presentation transcript:

1 Voronoi Graph Voronoi region Vor(p) (p in set S) Voronoi Graph VOR(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 w
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: x2 p3 y p2
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 x x1

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: x1 x2 x3 xn 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)


Download ppt "Voronoi Graph Voronoi region Vor(p) (p in set S) Voronoi Graph VOR(S)"

Similar presentations


Ads by Google