1 / 94

Graph spanners : static, dynamic and fault tolerant

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

molly
Download Presentation

Graph spanners : static, dynamic and fault tolerant

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. 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-spanner Easy case : fewer than n½ edges

    51. Algorithm for 3-spanner Difficult case : much more than n½ edges

    52. Algorithm for 3-spanner Difficult 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-spanner Phase 1 : Clustering S : select each vertex independently with probability p.

    56. Algorithm for 3-spanner Phase 1 : Clustering S : select each vertex independently with probability p. Process each v ? V \S as follows

    57. Algorithm for 3-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 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-spanner Phase 1 : Clustering G=(V,E) G=(V1,E1)

    66. Algorithm for 3-spanner Phase 1 : Clustering G=(V,E) G=(V1,E1) Every v ? V1 is clustered

    67. Algorithm for 3-spanner Phase 1 : Clustering G=(V,E) G=(V1,E1) Every v ? V1 is clustered Every red edge (w-v) ? E1 is ......

    68. Algorithm for 3-spanner Phase 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-spanner Phase 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-spanner Difficult case : much more than n½ edges

    71. Algorithm for 3-spanner Difficult case : much more than n½ edges

    72. Algorithm for 3-spanner Phase 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 3 Property P3 holds

    79. Spanner has stretch 3 Property P3 holds

    80. Spanner has stretch 3 Property P3 holds

    81. Spanner has stretch 3 Property P3 holds

    82. Spanner has stretch 3 Property P3 holds

    83. Spanner has stretch 3 Property P3 holds

    84. Spanner has stretch 3 Property 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

More Related