+ All Categories
Home > Education > 5.3 dyn algo-i

5.3 dyn algo-i

Date post: 14-Aug-2015
Category:
Upload: krishver2
View: 121 times
Download: 0 times
Share this document with a friend
Popular Tags:
53
Dynamic Graph Algorithms - I Surender Baswana Department of CSE, IIT Kanpur.
Transcript
Page 1: 5.3 dyn algo-i

Dynamic Graph Algorithms - I

Surender BaswanaDepartment of CSE, IIT Kanpur.

Page 2: 5.3 dyn algo-i

About this talk

• Prerequisite: a course on data structure and algorithms

• Survey of the results: (not the main objective of the talk)

• Main contents: -- A novel data structure

-- A fully dynamic algorithm for a fundamental graph problem AIM: To give an exposure to the beautiful area of dynamic algorithms

ANIMATION

Page 3: 5.3 dyn algo-i

A (static) Graph Algorithm

AlgorithmG=(V,E) Solution

Page 4: 5.3 dyn algo-i

A dynamic graph algorithm

• For problems involving queries (connectivity, distance,…): initial graph G=(V,E) followed by a sequence

q,u,u,q,u,u,u,q,u,q,q,u, … q: query u: insertion/deletion of edge

Each query has to be answered in an online manner.• For problems that aim to maintain some structure (matching, spanner,

min-cut,…) initial graph G=(V,E) followed by a sequence

u,u,u,u,u,u,u, … The structure has to be maintained in an online manner.

No assumption about the updates.

Page 5: 5.3 dyn algo-i

Dynamic graph algorithm

Aim: Maintain a data structure which can • answer each query efficiently (or maintain the structure), and • process each update efficiently (much faster than the static algo)

Types of dynamic graph algorithms:

• Incremental (only insertion of edges)• Decremental (only deletion of edges)• Fully dynamic (both insertion and deletion of edges)

Page 6: 5.3 dyn algo-i

A motivating example :Undirected Connectivity

u

v

a aaabb b b b bc c c cccd d d d

Static solution:

Page 7: 5.3 dyn algo-i

A motivating example :Undirected Connectivity

• Incremental Algorithm: O(log* n) update time (Disjoint Set Union Algorithm [Tarjan 1975])

• Decremental Algorithm:– O(n) update time [Even and Shiloach, 1981]

– O(log n) update time [Thorup 1997]

Page 8: 5.3 dyn algo-i

A motivating example :Undirected Connectivity

Fully Dynamic Algorithms:1. O() update time [Frederickson, 1982]

2. O() update time [Eppstein, Galil, Italiano, Nissenzweig 1991]

3. O(polylog n) expected update time, O(log n) query time [King and Henzinger 1995]

4. O(polylog n) update time, O(log n) query time [Holm, Litchenberg, Thorup 1998]

Page 9: 5.3 dyn algo-i

Outline of the talk

• Dynamic graph algorithms for some important problems

• Data structure for dynamic trees

• Fully dynamic connectivity with polylog n update time

• Open problems

Page 10: 5.3 dyn algo-i

EXAMPLES OF FULLY DYNAMIC ALGORITHMS

Page 11: 5.3 dyn algo-i

Fully dynamic algorithms for undirected graphs

1. Connectivity2. 2-edge connectivity3. Bi-connectivity4. Bipartiteness5. Min. spanning tree

O(polylog n) update time [Holm, Litchenberg, Thorup 1998]

Page 12: 5.3 dyn algo-i

Fully dynamic algorithms for undirected graphs

• Min-cut – Best static algorithm: O(m polylog n) (Randomized) [Karger, 1996]– Fully dynamic algorithm: O() update time [Thorup, 2001]

• Graph spanner Definition: A subgraph which is sparse and yet preserves all-pairs distances approximately.

– Best static algorithm: O(m) [Halperin, Zwick, 1996]– Fully dynamic algorithm: O(polylog n) update time [Baswana, Khurana, and Sarkar, 2008]

Page 13: 5.3 dyn algo-i

Dynamic algorithms for directed graphs

Maintaining BFS tree under deletion of edges : O(n) time per edge deletion [Even & Shiloach, 1981]

• Unbeaten till date.• Used in many dynamic algorithms for directed graphs.

Not as good bounds as undirected graphs

Page 14: 5.3 dyn algo-i

Dynamic algorithms for directed graphs

Transitive Closure• Incremental algorithm: O(n) update time [Italiano, 1986]• Decremental algorithm: O(n) update time

– Randomized [Roditty and Zwick, 2002]– Deterministic [Lacki, 2011 ]

• Fully Dynamic algorithm: O() update time [Roditty, 2003]

All-pairs Shortest paths• Fully dynamic algorithms:

– Amortized O() update time [Demetrescu and Italiano, 2003]– Worst case O() update time [Thorup, 2005]

Page 15: 5.3 dyn algo-i

DATA STRUCTURE FOR DYNAMIC TREES

Page 16: 5.3 dyn algo-i

Data structures

• Stacks• Queues• Binary heap • Binary search tree ...• Fibinaacci heap

• Too elementary• Limited applications

• Too complex• Hardly any application !

Page 17: 5.3 dyn algo-i

Power of Data structures:An inspirational example

Maintain n records r(1),…,r(n) under the following operations• Add(i,j,x) : Add x to each record from r(i),…,r(j).• All-swap(i,j) : r(i)↔r(j), r(i+1) ↔ r(j-1), r(i+2) ↔ r(j-2).• Report(i) : report record r(i).• Report-min(i,j) : report the smallest record from r(i),…,r(j).

Each operation in O(log n) worst case time.

Page 18: 5.3 dyn algo-i

Balanced Binary Tree : a very powerful data structure

: Additional information

Page 19: 5.3 dyn algo-i

Dynamic Trees

ef

a

u

c

gj

d

b

w v u

Page 20: 5.3 dyn algo-i

Dynamic Trees

Aim : Maintain a forest of trees on n vertices under the following operation. • Link(u,v) : Add an edge between u and v• Cut(u,v) : Delete an edge between u and v

• Update() : Update information associated with nodes/edges• Query() :

– Topological– information associated with a tree, or a path

Page 21: 5.3 dyn algo-i

Data Structures for Dynamic Trees

• ST Tree [Sleator & Tarjan, 1983]

Operations and queries on edges of paths

• ET tree [Henzinger and King, 1995]

Operations and queries on nodes of a tree

• Top tree [Alstrup et al., TALG 2005] (generalization of Topology Tree [Frederickson, 1982])

Topological properties (diameter, center)

Page 22: 5.3 dyn algo-i

Dynamic Trees

query and updates on trees

Operations :• Link(u,v)• Cut(u,v)

• Update-weight-node(v,a): weight(v) a

• Add-weight-tree(v,x): add x to weight of each node of tree of v

• ReportMin(u):

report min weight in the entire tree containing u

a

u

c

g

ef

j

d

b

w v u

5

12-3

741

172

32

3

44 67 15

Page 23: 5.3 dyn algo-i

Dynamic Trees

query and updates on trees

ReportMin(v) = 12

Operations :• Link(u,v)• Cut(u,v)

• Update-weight-node(v,a): weight(v) a

• Add-weight-tree(v,x): add x to weight of each node of tree of v

• ReportMin(u):

report min weight in the entire tree containing u

a

u

c

g

ef

j

d

b

w v u

5

12-3

741

172

32

3

44 67 15

Page 24: 5.3 dyn algo-i

Dynamic Trees

query and updates on trees

ReportMin(v) changes …

Operations :• Link(u,v)• Cut(u,v)

• Update-weight-node(v,a): weight(v) a

• Add-weight-tree(v,x): add x to weight of each node of tree of v

• ReportMin(u):

report min weight in the entire tree containing u

a

u

c

g

ef

j

d

b

w v u

5

12-3

741

172

32

3

44 67 1

Page 25: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

b-c-d-c-b-a-e-f-e-g-e-h-e-a-b

b d b e e

c

c

a

f

e

g

h

a

e b

How to transform a tree into a one dimensional data

structure ?

Page 26: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees

: minimum value of all nodes in the subtree.

a b ce

f

g

h d

b-c-d-c-b-a-e-f-e-g-e-h-e-a-b

b d b e e

c

c

a

f

e

g

h

a

e b

a

f

bc

de

gh

Page 27: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

b-c-d-c-b-a- e-f-e-g-e-h-e -a-b

Page 28: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

b-c-d-c-b-a-e-f-e-g-e-h-e-a-b

Page 29: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

a-bb-c-d-c-b-a

e-f-e-g-e-h-e

T1 T2

T1

Page 30: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

a-bb-c-d-c-b-a

T1 T2

T1

T1

e-f-e-g-e-h-e

Page 31: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

a-bb-c-d-c-b-a

e-f-e-g-e-h-e

T1 T2

T1

T1

Page 32: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees a b ce

f

g

h d

a-bb-c-d-c-b-a

e-f-e-g-e-h-e

T1 T2

T1

T1

Page 33: 5.3 dyn algo-i

Euler tour tree :A data structure for

dynamic trees

• Split(T,(e,a))

• Merge(T1,T2,(u,v))

• Change-origin(T,x) : change the origin of Euler tour to vertex x.

a b ce

f

g

h d

b-c-d-c-b-a-be-f-e-g-e-h-e

T1 T2

T1

T1

T2

T2

Page 34: 5.3 dyn algo-i

FULLY DYNAMIC ALGORITHM FOR CONNECTIVITY

Page 35: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Page 36: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Maintain ET tree for each tree in the spanning forest

Page 37: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Maintain ET tree for each tree in the spanning forest

Page 38: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

A Hierarchical algorithm

1

2

3

2 log n

Page 39: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with O() update time

1

2

A 2-level algorithm

Page 40: 5.3 dyn algo-i

Decremental O() update time algorithm for connectivity

Key tools in addition to ET tree data structure:

• Trivial algorithm (for handling deletion of a tree edge) : Let (u,v) be a tree edge in the spanning forest. Let its deletion creates trees T1 and T2. Let µ be the number of non-tree edges incident on T2. Replacement edge can be found in time O(µ log n) time.

• Random sampling

Page 41: 5.3 dyn algo-i

The role of random sampling

• Exercise: If none of 2k log n balls is blue, then with probability , the fraction of blue balls is less than 1/k.

Uniform random sampling with replacement

Page 42: 5.3 dyn algo-i

Handling the deletion of a tree edge

T2T1 T

T2

How to augment ET-tree to sample an edge ?

Few samplings needed if the

fraction of blue edges is large

What if fraction of blue edges is small ?

Page 43: 5.3 dyn algo-i

Handling the deletion of a tree edge2-Level approach

• A partition of E into two levels : (E1, E2) In the beginning, E1 = E and E1 = Ø • F1 : spanning forest of E1

• F2 : spanning forest of E, F1 is subset of F2

Level 1

Level 2

Page 44: 5.3 dyn algo-i

Handling the deletion of a tree edge

Level 1

Level 2

Page 45: 5.3 dyn algo-i

Handling the deletion of a tree edge

Level 1

Level 2

Trivial algorithm at level 2

Random sampling at level 1

Page 46: 5.3 dyn algo-i

Algorithm for handling deletion of a tree edge

If (e ϵ F2 \ F1) scan non-tree edges at level 2 to find replacement edge.Else Let T be the tree to which e belongs; (T1,T2) Split(T,e); Repeat k log n times { (u,v) Sample-edge(T2); If (u,v) is a cut-edge { add (u,v) to F1; Merge(T1,T2, (u,v)); return; } } Scan all non-tree edges incident on T2; If less than 1/k fraction are cut-edges move all edges of cut(T1,T2) to Level 2 and add one of them to F2. Else add an edge of cut(T1,T2) to F1

O(µ2) time

O(k logn) time

O(µ1(T2)) timeprobability

Page 47: 5.3 dyn algo-i

Bounding µ2 (number of non-tree edges at level 2)

Upon splitting T into T1 and T2, how many edges are passed to level 2 ?

≤ charge to each ϵ T2

Level 1

Level 2

T2T1

Page 48: 5.3 dyn algo-i

Analysis

• A vertex v is processed only O(log n) times. Whenever v is processed

The processing cost of v is O(deg(v)) The number of edges that move to level 2 is less than

Hence µ2 , the number of edges at level 2 is O(log n)

• Processing cost per update : log n + k + O(m) = O()

Page 49: 5.3 dyn algo-i

Transforming to fully dynamic environment

• Add every newly inserted edge to level 2.

• Periodically rebuild the data structure after every () insertions.

Expected amortized time per update : O()

Page 50: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

• A partition of E into 2log n levels : (E1, E2, …) In the beginning, E1 = E and Ei = Ø for all i>1• F1 : spanning forest of E1

• Fi : spanning forest of • Fi-1 is subset of Fi for all i>1

Page 51: 5.3 dyn algo-i

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

A Hierarchical algorithm

1

2

2 log n

c

2

Page 52: 5.3 dyn algo-i

OPEN PROBLEMS

Page 53: 5.3 dyn algo-i

Open problems

• Amortized cost versus worst case bounds

• Specific problems : Min-cut, s-t min cut, max-flow, …

• Specific graph family : Planar graphs

• Better lower bounds ?


Recommended