960 likes | 1.19k Views
Graph Spanners. Definition : Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties . Graph Spanners. Definition : Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial propertiessparse
E N D
1. Graph spanners : static, dynamic and fault tolerant Surender Baswana
Department of CSE
IIT Kanpur
2. Graph Spanners Definition :
Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties
3. Graph Spanners Definition :
Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties
sparse
4. Graph Spanners Definition :
Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties
sparse
preserves approximate distances pair-wise.
5. Graph Spanners Definition :
Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties
sparse
preserves approximate distances pair-wise.
d(u,v) = ds(u,v) = t d(u,v) for some constant t = 1
6. Graph Spanners Definition :
Given a graph G=(V,E), a spanner is a sub-graph G=(V,Es) which has the following two crucial properties
sparse
preserves approximate distances pair-wise.
d(u,v) = ds(u,v) = t d(u,v) for some constant t = 1
7. Communication network :Motivation for spanners
8. Communication network :Motivation for spanners
9. Communication network :Motivation for spanners Minimizing the total cost : sparseness is desirable
10. Communication network :Motivation for spanners Minimizing the total cost : sparseness is desirable
11. Communication network :Motivation for spanners Minimizing the pair-wise distances : small stretch is desirable
12. Communication network :Motivation for spanners Minimizing the pair-wise distances : small stretch is desirable
13. Graph spanners A trade off between sparseness and stretch
14. Graph spanners A trade off between sparseness and stretch
Sparse
d(u,v) = ds(u,v) = t d(u,v)
15. Graph spanners A trade off between sparseness and stretch
Sparse
d(u,v) = ds(u,v) = t d(u,v)
t-Spanner
16. Aim :
The sparsest spanner of a weighted graph with stretch t.
17. Organization of the talk Optimal size of a t-spanner
Spanners :
Static Spanner
Dynamic spanners
Fault Tolerant Spanners
A simple and linear time algorithm for static spanner (how problem itself guides to its solution)
A simple algorithm for fault-tolerant spanner
18. Optimal size of a t-spanner
19. Optimal size of a t-spanner
20. Optimal size of a t-spanner
21. Optimal size of a t-spanner
22. Optimal size of a t-spanner
23. Optimal size of a t-spanner
24. Optimal size of a t-spanner
25. Optimal size of a t-spanner Let k be any positive integer
There are graphs whose (2k-1)-spanner (a 2k-spanner) must have O(n1+1/k) edges
26. Optimal size of a t-spanner Let k be any positive integer
There are graphs whose (2k-1)-spanner (a 2k-spanner) must have O(n1+1/k) edges
27. Static spanners
28. Aim of an Algorithmist To design an algorithm A such that
29. Dynamic spanners
30. A dynamic spanner an initial graph G=(V,E) followed by an online sequence of updates:
i,i,d,i,d,i,i,d,d,i,i,d, ....
31. A dynamic spanner an initial graph G=(V,E) followed by an online sequence of updates:
i,i,d,i,d,i,i,d,d,i,i,d, ....
Aim :
To maintain a t-spanner in online manner efficiently
32. Dynamic algorithms for graph spanners
33. Fault Tolerant spanners
34. Why do we need a fault tolerant spanner ? For networks where
Failures occur rarely
There is simultaneous repair going on
At any time, there are at most f edges which may be dead.
35. What is a fault tolerant spanner ? A subgraph Es is called f-fault tolerant spanner if for any set F
of f edges from E,
Es -F is a (2k-1)-spanner of E-F
36. Results on size of fault tolerant spanners
37. A simple and linear time algorithm for static spanner
38. Earlier algorithms for graph spanners
39. Can we compute a (2k-1)-spanner in O(m) time ?
40. Local approach Let G=(V,ES) be a spanner of G=(V,E)
41. Local approach Let G=(V,ES) be a spanner of G=(V,E)
42. Local approach Let G=(V,ES) be a spanner of G=(V,E)
43. Local approach Let G=(V,ES) be a spanner of G=(V,E)
44. Local approach Let G=(V,ES) be a spanner of G=(V,E)
45. External memory algorithms for (2k-1)-spanner
Time complexity : Integer sorting
46. Distributed Algorithms for (2k-1)-spanner
Number of Rounds : O(k) ,
Communication complexity : O(km) (linear)
47. Streaming Algorithm for (2k-1)-spanner
For Unweighted graphs
Number of passes : 1
Processing time per edge : O(1)
48. Algorithm for 3-spanner
49. Aims : Given a graph G=(V,E)
The number of edges = O(n3/2 )
Stretch = 3
Computation time = O(m)
50. Algorithm for 3-spannerEasy case : fewer than n½ edges
51. Algorithm for 3-spannerDifficult case : much more than n½ edges
52. Algorithm for 3-spannerDifficult case : much more than n½ edges
53. Algorithm for 3-spanner Phase 1 : Clustering
Phase 2 : Adding edges between vertices and clusters
54. Algorithm for 3-spanner Phase 1 : Clustering
Phase 2 : Adding edges between vertices and clusters
55. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p.
56. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p.
Process each v ? V \S as follows
57. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p.
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex
58. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p .
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex.
59. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p .
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
60. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p.
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
If v is adjacent to some sampled vertex
61. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p .
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
If v is adjacent to some sampled vertex.
62. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p.
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
If v is adjacent to some sampled vertex.
63. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
If v is adjacent to some sampled vertex.
64. Algorithm for 3-spannerPhase 1 : Clustering S : select each vertex independently with probability p
Process each v ? V \S as follows
If v is not adjacent to any sampled vertex. add all its edges.
If v is adjacent to some sampled vertex.
65. Algorithm for 3-spannerPhase 1 : Clustering G=(V,E) G=(V1,E1)
66. Algorithm for 3-spannerPhase 1 : Clustering G=(V,E) G=(V1,E1)
Every v ? V1 is clustered
67. Algorithm for 3-spannerPhase 1 : Clustering G=(V,E) G=(V1,E1)
Every v ? V1 is clustered
Every red edge (w-v) ? E1 is ......
68. Algorithm for 3-spannerPhase 1 : Clustering G=(V,E) G=(V1,E1)
Every v ? V1 is clustered
Every red edge (w-v) ? E1 is at-least as heavy as (v-o)
69. Algorithm for 3-spannerPhase 1 : Clustering G=(V,E) G=(V1,E1)
Every v ? V1 is clustered
Every red edge (w-v) ? E1 is at-least as heavy as (v-o)
70. Algorithm for 3-spannerDifficult case : much more than n½ edges
71. Algorithm for 3-spannerDifficult case : much more than n½ edges
72. Algorithm for 3-spannerPhase 2 : adding edges between vertices and clusters
73. Analysis of the algorithm
Size of the spanner
Edges added during Phase 1 + Edges added during Phase 2
Correctness ??
74. Analysis of the algorithm
Size of the spanner
Edges added during Phase 1 + Edges added during Phase 2
Correctness ??
75. Analysis of the algorithm
Size of the spanner
Edges added during Phase 1 + Edges added during Phase 2
n/p
Correctness ??
76. Analysis of the algorithm
Size of the spanner
Edges added during Phase 1 + Edges added during Phase 2
n/p + n2p
Correctness ??
77. Analysis of the algorithm
Size of the spanner
Edges added during Phase 1 + Edges added during Phase 2
n/p + n2p
= n3/2 , for p = 1/vn
Correctness ??
78. Spanner has stretch 3Property P3 holds
79. Spanner has stretch 3Property P3 holds
80. Spanner has stretch 3Property P3 holds
81. Spanner has stretch 3Property P3 holds
82. Spanner has stretch 3Property P3 holds
83. Spanner has stretch 3Property P3 holds
84. Spanner has stretch 3Property P3 holds
85. Algorithm for (2k-1)-spanner
86. Algorithm for (2k-1)-spanner
87. Algorithm for (2k-1)-spanner Invariant : At level i, we have graph G=(Vi,Ei)
Every vertex in Vi is clustered
For every edge e ? Ei
88. Algorithm for fault tolerant spanner
89. Algorithm for f-edge fault tolerant spanners Given graph (V,E);
Es = F;
For i=1 to f+1 do
{
Ei = spanner(E-Es ,2k-1);
Es = Es U Ei;
}
return Es ;
90. Algorithm for f-edge fault tolerant spanners Given graph G=(V,E);
Es = F;
For i=1 to f+1 do
{
Ei = spanner(E-Es ,2k-1);
Es = Es U Ei;
}
return Es ;
Observation : Ei and Ej are edge disjoint for i<>j.
91. Algorithm for f-edge fault tolerant spanners Let F be any set of f edges.
Let (u,v) ? E-F ;
Aim :
There has to be a path of length at most 2k-1 between u and v in E-Es
92. Algorithm for f-edge fault tolerant spanners Let F be any set of i edges.
Let (u,v) ? E-F ;
Aim :
There is a path of length 2k-1 between u and v in E-Es
(follows from observation)
93. Summary Simple and efficient algorithms exist for graph spanners
Static spanners
Dynamic spanners
Fault tolerant spanners
Open problems (exist for additive spanners)
94. Thank you