Voronoi Graph

10
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)

description

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. - PowerPoint PPT Presentation

Transcript of Voronoi Graph

Page 1: 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)

Page 2: Voronoi Graph

Voronoi Graph• Voronoi Graph in the rectilinear plane• Rectilinear distance: p = (x, y); p’=(x’,y’)

a

b

c

bc

ac

ab Voronoi region of b

Page 3: Voronoi Graph

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. eP |e| < |xy|

Page 4: Voronoi Graph

Voronoi Graph

x

ywa

b

a<b

(at least 2 edges in Voronoi grophwill intersect the “red edge”)

ppw < yp+pw

(pw<px, p closer to w than to x-in Voronoi region on w)

< yp+px = xy

Proof:

Page 5: Voronoi Graph

Voronoi GraphProof 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|

p1

p2

p3

x1

x2

x

y

Page 6: Voronoi Graph

Voronoi GraphTheorem: 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 x3xn

it is equivalent to sorting n numbers

by Master Theorem (for “divide and conquer”):T(n)=2T(n/2)+O(n)

O(n log n)for merging

Page 7: Voronoi Graph

Mehlhorn (‘88)O( E+ V log V) 2-approximation of Steiner treesG=(V,E,w)S V terminalsfind 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 G2) 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: eTS

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)

Page 8: Voronoi Graph

Definition of Voronoi graph in graphs(not in the plane)

- we’ll be able to get O(V log V+E)

Voronoi regions1

1.51.3

0.52

terminals S

v

Voronoi region of v Vor(v)

1

1shortest path conn.these 2 points

weight = shortest path weight in G between 2 terminals

- all the weights we find we’ll be in the shortest path

Page 9: Voronoi Graph

Definition of Voronoi graph in graphs

For any vVor(s) (s S) we need to know: (s,v) = (v) ( )

- shortest path between s1,s2: for each eE, 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. GraphProblem: find ( )how to find for any node distance to its root?Find (v) for any v!

Page 10: Voronoi Graph

How to find (v) for any v

A

(auxiliary node)

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)

r(v)

v