Title: Graph spanners : static, dynamic and fault tolerant
1Graph spanners static, dynamic and fault
tolerant
- Surender Baswana
- Department of CSE
- IIT Kanpur
2Graph Spanners
- Definition
- Given a graph G(V,E), a spanner is a sub-graph
G(V,Es) which has the following two crucial
properties -
-
3Graph 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
-
4Graph 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.
5Graph 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
6Graph 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
t stretch of the spanner
7Communication network Motivation for spanners
8Communication network Motivation for spanners
- Each edge has
- cost
- weight (length)
9Communication network Motivation for spanners
- Minimizing the total cost sparseness is
desirable
10Communication network Motivation for spanners
- Minimizing the total cost sparseness is
desirable
u
v
11Communication network Motivation for spanners
- Minimizing the pair-wise distances small
stretch is desirable
12Communication network Motivation for spanners
- Minimizing the pair-wise distances small
stretch is desirable
13Graph spanners
- A trade off between sparseness and stretch
14Graph spanners
- A trade off between sparseness and stretch
- Sparse
- d(u,v) ds(u,v) t d(u,v)
15Graph 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.
17Organization 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
18Optimal size of a t-spanner
19Optimal size of a t-spanner
v
u
20Optimal size of a t-spanner
v
u
21Optimal size of a t-spanner
v
u
???
Length of Smallest cycle t
22Optimal size of a t-spanner
v
u
stretch t-1
Length of Smallest cycle t
23Optimal size of a t-spanner
v
u
stretch t-1
Length of Smallest cycle t
How dense can a graph with shortest cycle length
t be ?
24Optimal size of a t-spanner
v
u
stretch t-1
Length of Smallest cycle t
Girth Conjecture Erdös1960, Bondy
Simonovits 1974, Bollobas 1978
There are graph with shortest cycle length gt 2k
and O(n11/k) edges
25Optimal size of a t-spanner
- Let k be any positive integer
- There are graphs whose (2k-1)-spanner (a
2k-spanner) must have O(n11/k) edges
26Optimal size of a t-spanner
- Let k be any positive integer
- There are graphs whose (2k-1)-spanner (a
2k-spanner) must have O(n11/k) edges
4- spanner and 3-spanner O(n3/2) 6-spanner and
5-spanner O(n5/4) 8-spanner and 7-spanner
O(n7/6)
27Static spanners
28Aim of an Algorithmist
- To design an algorithm A such that
A
G(V, Es)
G(V, E)
(2k-1)-Spanner
Input Graph
ES O (minimum (m , n11/k))
29Dynamic 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, ....
Deletion of an edge
Insertion of an edge
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
Deletion of an edge
Insertion of an edge
32Dynamic algorithms for graph spanners
33Fault Tolerant spanners
34Why 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.
35What 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
36Results on size of fault tolerant spanners
37A simple and linear time algorithm for static
spanner
38Earlier algorithms for graph spanners
39Can we compute a (2k-1)-spanner in O(m) time ?
Question
40Local approach
- Let G(V,ES) be a spanner of G(V,E)
Edge in Spanner
Edge not in Spanner
41Local approach
- Let G(V,ES) be a spanner of G(V,E)
Edge in Spanner
Edge not in Spanner
42Local approach
- Let G(V,ES) be a spanner of G(V,E)
Edge in Spanner
2
Edge not in Spanner
w
w
1
t-1
w
w
w
- Pt For each edge not in the spanner , there is
a path in the spanner - connecting its endpoints
- with at-most t edges
- none heavier than the edge
43Local approach
- Let G(V,ES) be a spanner of G(V,E)
Edge in Spanner
2
Edge not in Spanner
w
w
1
t-1
w
w
w
u
v
- Pt For each edge not in the spanner , there is
a path in the spanner - connecting its endpoints
- with at-most t edges
- none heavier than the edge
44Local approach
- Let G(V,ES) be a spanner of G(V,E)
Edge in Spanner
2
Edge not in Spanner
w
w
1
t-1
t-spanner
w
w
w
u
v
- Pt For each edge not in the spanner , there is
a path in the spanner - connecting its endpoints
- with at-most t edges
- none heavier than the edge
45External memory algorithms for (2k-1)-spanner
- Time complexity Integer sorting
46Distributed Algorithms for (2k-1)-spanner
-
- Number of Rounds O(k) ,
- Communication complexity O(km) (linear)
47Streaming Algorithm for (2k-1)-spanner
- For Unweighted graphs
- Number of passes 1
- Processing time per edge O(1)
48Algorithm for 3-spanner
49Aims
- Given a graph G(V,E)
- The number of edges O(n3/2 )
- Stretch 3
- Computation time O(m)
50Algorithm for 3-spannerEasy case fewer than n½
edges
51Algorithm for 3-spannerDifficult case much
more than n½ edges
52Algorithm for 3-spannerDifficult case much
more than n½ edges
Which n½ edges to select ?
53Algorithm for 3-spanner
Initially all edges are Red
- Phase 1 Clustering
- Phase 2 Adding edges between vertices and
clusters
54Algorithm for 3-spanner
Initially all edges are Red
- Phase 1 Clustering
- Phase 2 Adding edges between vertices and
clusters
center
55Algorithm for 3-spannerPhase 1 Clustering
- S select each vertex independently with
probability p.
56Algorithm for 3-spannerPhase 1 Clustering
- S select each vertex independently with
probability p. - Process each v ? V \S as follows
57Algorithm 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
58Algorithm 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.
v
S
V \S
59Algorithm 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.
v
S
V \S
60Algorithm 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
S
V \S
61Algorithm 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.
v
S
V \S
x
weights
62Algorithm 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.
-
v
S
V \S
x
weights
63Algorithm 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.
-
v
S
V \S
x
weights
64Algorithm 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.
-
v
S
V \S
x
weights
65Algorithm for 3-spannerPhase 1 Clustering
Remaining Red edges
Red edges
66Algorithm for 3-spannerPhase 1 Clustering
- G(V,E) G(V1,E1)
- Every v ? V1 is clustered
Remaining Red edges
Red edges
v
o
67Algorithm for 3-spannerPhase 1 Clustering
- G(V,E) G(V1,E1)
- Every v ? V1 is clustered
- Every red edge (w-v) ? E1 is ......
Remaining Red edges
Red edges
v
o
68Algorithm 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)
Remaining Red edges
Red edges
v
o
69Algorithm 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)
Red edges
Remaining Red edges
v
o
Observation I
70Algorithm for 3-spannerDifficult case much
more than n½ edges
Which n½ edges to select ?
71Algorithm for 3-spannerDifficult case much
more than n½ edges
v
72Algorithm for 3-spannerPhase 2 adding edges
between vertices and clusters
v
73Analysis of the algorithm
- Size of the spanner
- Edges added during Phase 1 Edges added during
Phase 2 -
-
- Correctness ??
74Analysis of the algorithm
- Size of the spanner
- Edges added during Phase 1 Edges added during
Phase 2 -
-
- Correctness ??
How many coin tosses to get a HEAD
75Analysis of the algorithm
- Size of the spanner
- Edges added during Phase 1 Edges added during
Phase 2 - n/p
-
- Correctness ??
76Analysis of the algorithm
- Size of the spanner
- Edges added during Phase 1 Edges added during
Phase 2 - n/p n2p
-
- Correctness ??
77Analysis 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 ??
78Spanner has stretch 3Property P3 holds
x
y
79Spanner has stretch 3Property P3 holds
x
y
Both x and y are clustered
80Spanner has stretch 3Property P3 holds
x
y
y
x
81Spanner has stretch 3Property P3 holds
x
y
y
x
Observation I
82Spanner has stretch 3Property P3 holds
x
y
o
y
x
y
x
83Spanner has stretch 3Property P3 holds
x
y
z
a
o
y
x
ß
y
x
84Spanner has stretch 3Property P3 holds
x
y
z
a
o
y
x
ß
y
x
Observation I
85Algorithm for (2k-1)-spanner
86Algorithm for (2k-1)-spanner
Vertices
Clusters
n1/k
n1-1/k
n
87Algorithm 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
e
88Algorithm for fault tolerant spanner
89Algorithm for f-edge fault tolerant spanners
- Given graph (V,E)
- Es F
- For i1 to f1 do
-
- Ei spanner(E-Es ,2k-1)
- Es Es U Ei
-
- return Es
90Algorithm for f-edge fault tolerant spanners
- Given graph G(V,E)
- Es F
- For i1 to f1 do
-
- Ei spanner(E-Es ,2k-1)
- Es Es U Ei
-
- return Es
- Observation Ei and Ej are edge disjoint for
iltgtj.
91Algorithm 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
92Algorithm 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)
93Summary
- Simple and efficient algorithms exist for graph
spanners - Static spanners
- Dynamic spanners
- Fault tolerant spanners
- Open problems (exist for additive spanners)
94Thank you