Dynamic graph algorithms i
This presentation is the property of its rightful owner.
Sponsored Links
1 / 53

Dynamic Graph Algorithms - I PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on
  • Presentation posted in: General

Dynamic Graph Algorithms - I. Surender Baswana Department of CSE, IIT Kanpur. About this talk. Prerequisite: a course on data structure and algorithms S urvey of the results: ( not the main objective of the talk) Main contents: -- A novel data structure

Download Presentation

Dynamic Graph Algorithms - I

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Dynamic graph algorithms i

Dynamic Graph Algorithms - I

SurenderBaswana

Department of CSE, IIT Kanpur.


About this talk

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


A static graph algorithm

A (static) Graph Algorithm

Algorithm

G=(V,E)

Solution


A dynamic graph algorithm

A dynamic graph algorithm

No assumption about the updates.

  • 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.


Dynamic graph algorithm

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)


A motivating example undirected connectivity

A motivating example :Undirected Connectivity

u

Static solution:

v

b

d

b

d

c

c

d

b

a

a

b

a

b

d

c

c

c

b

a

c


A motivating example undirected connectivity1

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]


A motivating example undirected connectivity2

A motivating example :Undirected Connectivity

Fully Dynamic Algorithms:

  • O()update time [Frederickson, 1982]

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

  • O(polylog n) expected update time, O(log n)query time

    [King and Henzinger1995]

    4. O(polylog n)update time,O(log n)query time

    [Holm, Litchenberg, Thorup 1998]


Outline of the talk

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


Dynamic graph algorithms i

Examples of fully dynamic algorithms


Fully dynamic algorithms for undirected graphs

Fully dynamic algorithms for undirected graphs

  • Connectivity

  • 2-edge connectivity

  • Bi-connectivity

  • Bipartiteness

  • Min. spanning tree

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


Fully dynamic algorithms for undirected graphs1

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]


Dynamic algorithms for directed graphs

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


Dynamic algorithms for directed graphs1

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]


Dynamic graph algorithms i

Data structure for dynamic trees


Data structures

Data structures

  • Stacks

  • Queues

  • Binary heap

  • Binary search tree

    ...

  • Fibinaacci heap

  • Too elementary

  • Limited applications

  • Too complex

  • Hardly any application !


Power of data structures an inspirational example

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.


Balanced binary tree a very powerful data structure

Balanced Binary Tree : a very powerful data structure

: Additional information


Dynamic trees

Dynamic Trees

j

g

a

b

f

e

c

d

u

u

v

w


Dynamic trees1

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


Data structures for dynamic trees

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)


Dynamic trees query and updates on trees

Dynamic Treesquery and updates on trees

j

g

a

b

17

2

3

5

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

41

f

e

7

32

c

d

-3

12

u

44

15

67

u

v

w


Dynamic trees query and updates on trees1

Dynamic Treesquery and updates on trees

ReportMin(v) = 12

j

g

a

b

17

2

3

5

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

41

f

e

7

32

c

d

-3

12

u

44

15

67

u

v

w


Dynamic trees query and updates on trees2

Dynamic Treesquery and updates on trees

ReportMin(v) changes …

j

g

a

b

17

2

3

5

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

41

f

e

7

32

c

d

-3

12

u

44

1

67

u

v

w


Euler tour tree a data structure for dynamic trees

Euler tour tree :A data structure for dynamic trees

h

d

g

c

a

b

e

f

How to transform a tree into a one dimensional data structure ?

f

c

h

c

g

a

a

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

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

-a-b

e

b

e

b

b

d

e

e


Euler tour tree a data structure for dynamic trees1

Euler tour tree :A data structure for dynamic trees

h

d

g

c

a

b

e

: minimum value of all nodes in the subtree.

f

f

a

b

c

h

c

d

c

g

a

a

e

f

g

e

b

e

b

b

d

e

e

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

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

-a-b

h


Euler tour tree a data structure for dynamic trees2

Euler tour tree :A data structure for dynamic trees

h

d

g

c

a

b

e

f

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

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

-a-b


Euler tour tree a data structure for dynamic trees3

Euler tour tree :A data structure for dynamic trees

h

d

g

c

a

b

e

f

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

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

-a-b


Euler tour tree a data structure for dynamic trees4

Euler tour tree :A data structure for dynamic trees

h

d

g

T2

T1

c

a

b

e

f

b-c-d-c-b-a

a-b

T1

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


Euler tour tree a data structure for dynamic trees5

Euler tour tree :A data structure for dynamic trees

h

d

g

T2

T1

c

a

b

e

f

b-c-d-c-b-a

a-b

T1

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

T1


Euler tour tree a data structure for dynamic trees6

Euler tour tree :A data structure for dynamic trees

h

d

g

T2

T1

c

a

b

e

f

b-c-d-c-b-a

a-b

T1

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

T1


Euler tour tree a data structure for dynamic trees7

Euler tour tree :A data structure for dynamic trees

h

d

g

T2

T1

c

a

b

e

f

b-c-d-c-b-a

a-b

T1

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

T1


Euler tour tree a data structure for dynamic trees8

Euler tour tree :A data structure for dynamic trees

h

d

g

T2

T1

c

a

b

e

Split(T,(e,a))

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

Change-origin(T,x) :

change the origin of Euler tour to vertex x.

f

T1

T2

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

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

T1

T2


Dynamic graph algorithms i

Fully dynamic algorithm for connectivity


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time1

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Maintain ET tree for each tree in the spanning forest


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time2

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

Maintain ET tree for each tree in the spanning forest


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time3

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

A Hierarchical algorithm

2 log n

3

2

1


Fully dynamic randomized algorithm for connectivity with o update time

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

A 2-level algorithm

2

1


Decremental o update time algorithm for connectivity

DecrementalO()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


The role of random sampling

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


Handling the deletion of a tree edge

Handling the deletion of a tree edge

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 ?

T2

T2

T1

T


Handling the deletion of a tree edge 2 level approach

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, F1is subset of F2

Level 2

Level 1


Handling the deletion of a tree edge1

Handling the deletion of a tree edge

Level 2

Level 1


Handling the deletion of a tree edge2

Handling the deletion of a tree edge

Trivial algorithm at level 2

Level 2

Level 1

Random sampling at level 1


Algorithm for handling deletion of a tree edge

Algorithm for handling deletion of a tree edge

probability

O(µ1(T2))time

O(µ2) time

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(k logn) time


Bounding 2 number of non tree edges at level 2

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 2

Level 1

T1

T2


Analysis

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


Transforming to fully dynamic environment

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


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time4

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

  • A partition of E into 2log nlevels : (E1, E2,…)

    In the beginning, E1 =E and Ei= Øfor all i>1

  • F1 : spanning forest of E1

  • Fi: spanning forest of

  • Fi-1is subset of Fi for all i>1


Fully dynamic randomized algorithm for connectivity with polylogarithmic update time5

Fully dynamic randomized algorithm for connectivity with polylogarithmic update time

A Hierarchical algorithm

2 log n

2

2

c

1


Dynamic graph algorithms i

Open Problems


Open problems

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 ?


  • Login