Dynamic Graph Algorithms Giuseppe F. Italiano University of Rome - - PowerPoint PPT Presentation

dynamic graph algorithms
SMART_READER_LITE
LIVE PREVIEW

Dynamic Graph Algorithms Giuseppe F. Italiano University of Rome - - PowerPoint PPT Presentation

Dynamic Graph Algorithms Giuseppe F. Italiano University of Rome Tor Vergata giuseppe.italiano@uniroma2.it http://people.uniroma2.it/giuseppe.italiano/ Outline Dynamic Graph Problems Quick Intro Topic 1. (Undirected Graphs) Dynamic


slide-1
SLIDE 1

Dynamic Graph Algorithms

Giuseppe F. Italiano

University of Rome Tor Vergata giuseppe.italiano@uniroma2.it

http://people.uniroma2.it/giuseppe.italiano/

slide-2
SLIDE 2

Outline

Dynamic Graph Problems – Quick Intro Topic 1. (Undirected Graphs) Dynamic Connectivity & MST Topic 2. (Undirected/Directed Graphs) Dynamic Shortest Paths Topic 3. (Non-dynamic?) 2-Connectivity in Directed Graphs

slide-3
SLIDE 3

3

Frederickson (Topology trees & clustering)

Query O(1) Update O(m1/2)

slide-4
SLIDE 4

4

Frederickson

Algorithm is quite complicated

  • Maintain graphs of degree ≤ 3
  • Compute and maintain clusters: m/z clusters with z vertices/edges,

clusters can be split and merged. This gives O(z + (m/z)2) = O(m2/3)

  • Take clusters of clusters (multilevel decomposition)
  • Describe multilevel decomposition via a tree (topology tree)
  • Define a 2D version of the topology tree
  • Show how insertions/deletions affect multilevel decomposition and

2D topology tree… Total time per update is O( z + m/z ) = O(m1/2) Will show my simpler version (unpublished)

slide-5
SLIDE 5

5

Simpler Frederickson

Tree edges solid Non-tree edges dashed

slide-6
SLIDE 6

6

Simpler Frederickson

Fix an Euler tour

slide-7
SLIDE 7

7

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 1

Fix an Euler tour

slide-8
SLIDE 8

8

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 6

Fix an Euler tour

slide-9
SLIDE 9

9

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 1

Fix an Euler tour

slide-10
SLIDE 10

10

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 1

Fix an Euler tour delete(2,4)

slide-11
SLIDE 11

11

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 6

Fix an Euler tour

slide-12
SLIDE 12

12

Simpler Frederickson

For each vertex: Sort adjacency list (non-tree edges) by Euler tour Adjacency list

  • f vertex 6

Fix an Euler tour delete(2,4)

slide-13
SLIDE 13

13

Simpler Frederickson

Each vertex v maintains its “view” of the Euler tour (non-tree edges adjacent to v sorted according to Euler tour) When a tree edge gets deleted from (inserted into) the graph:

  • Euler tour subject to constant # cut / link operations
  • Adjacency list of vertex v subject to constant # split / merge
  • perations (corresponding to cut / link operations)

This gives O(log n) work per vertex After a tree edge gets deleted, the best replacement edge incident to v can be found in time O(log n) Do this for all vertices. Total time is O(n log n) per update

slide-14
SLIDE 14

14

Simpler Frederickson

Total time is O(n log n) per update Space? Trivial: Keep the full Euler tour at each vertex. Need O(n) space per vertex. Total space is O(n2)

slide-15
SLIDE 15

15

EXERCISE 1 Can you improve the space? Say, O(nlog n) time per update and O(m) space

slide-16
SLIDE 16

16

Better bounds?

“Local” (i.e., per vertex) views have lot of similarities To improve time per update need to combine “local” views into a more “global” view Rather than maintaining n independent Euler tours, maintain something like a global (2D) Euler tour…

slide-17
SLIDE 17

Simpler Frederickson (2D)

17

slide-18
SLIDE 18

18

Simpler Frederickson (2D)

slide-19
SLIDE 19

Simpler Frederickson (2D)

19

slide-20
SLIDE 20

20

Recap

To maintain dynamic MST Maintain points in a 2D space under split / concatenate operations along coordinates, and orthogonal range queries Each operation can be implemented in O(m1/2) in the worst case with cross tree, which is a (2D) cross product of two balanced trees (ET trees in our case) [Grossi & I. 1999] If you can do better than cross trees, then you can improve Frederickson’s bound…

slide-21
SLIDE 21

21

Frederickson (Topology trees & clustering)

Query O(1) Update O(m1/2)

slide-22
SLIDE 22

22

Eppstein et al. (Sparsification)

Query O(1) Update O(n1/2)

slide-23
SLIDE 23

Arbitrarily partition edges: m/n clusters with ≤ n edges each

Sparsification

slide-24
SLIDE 24

Compute spanning tree (sparse certificate) for each cluster

Sparsification

slide-25
SLIDE 25

Compute spanning tree (sparse certificate) for each cluster

Sparsification

slide-26
SLIDE 26

Form union of sparse certificates

Sparsification

slide-27
SLIDE 27

Form union of sparse certificates

Sparsification

slide-28
SLIDE 28

Compute again sparse certificate

Sparsification

slide-29
SLIDE 29

Compute again sparse certificate

Sparsification

slide-30
SLIDE 30

30

EXERCISE 2

slide-31
SLIDE 31

Parent contains union of sparse certificates of children m/n

Sparsification Tree

log2 m/n Each sparsification tree node contains:

  • graph of size O(n);
  • certificate of union of graphs at leaf nodes
slide-32
SLIDE 32

Update

Sparsification

slide-33
SLIDE 33

Update (involves only one child)

Sparsification

slide-34
SLIDE 34

Update (involves only one child)

Sparsification

slide-35
SLIDE 35

Update (involves only one child)

Sparsification

slide-36
SLIDE 36

Update (involves only one child)

Sparsification

slide-37
SLIDE 37

Update (involves only one child)

Sparsification

slide-38
SLIDE 38

Update (involves only one child)

Sparsification

slide-39
SLIDE 39

Update (involves only one child)

Sparsification

slide-40
SLIDE 40

Update (involves only one child)

Sparsification

slide-41
SLIDE 41

Update (involves only one child)

Sparsification

slide-42
SLIDE 42

Update (involves only one child)

Sparsification

slide-43
SLIDE 43

Update (involves only one child)

Sparsification

slide-44
SLIDE 44

Update (involves only one child)

Sparsification

slide-45
SLIDE 45

Update time = (log m/n )*(cost for m < 2n ) Propagate change up

Sparsification

log2 m/n With some extra care, the log can be chopped: update time = (cost for m < 2n )

slide-46
SLIDE 46

Given property P, a strong certificate for P in G = (V,E) is a graph C such that: (i) V(C) = V(G) and (ii) For any H, G ∪ H has property P iff C ∪ H has P Property you need for certificates

Certificates

slide-47
SLIDE 47

Static algorithm with running time f(m,n) yields dynamic algorithm with update time f(n) Provided that one can find sparse certificates with the right property, by using sparsification:

Sparsification

Dynamic algorithm with update time f(m,n) yields dynamic algorithm with update time f(n)

slide-48
SLIDE 48

48

Holm et al. (Dynamic decomposition)

Query O(log n) Update O(log2 n)

slide-49
SLIDE 49

49

How do we find

  • ut whether

there is a “replacement” edge for the forest or it really got disconnected ? For dynamic MSF it is not enough to find a repacement edge, we need to find the best replacement edge

slide-50
SLIDE 50

50

To find a replacement, need to traverse

  • ne of the trees,

which can be quite expensive. Randomization [Henzinger, King]: sample non-tree edges in smaller tree If sampling fails, push “sparse cut” to upper level Can we do this deterministically?

slide-51
SLIDE 51

51

Look in the smaller tree: ‘ tree edge ‘ no replacement

  • replacement

Wish to gain something (in amortized sense) by accumulating information as we do that

slide-52
SLIDE 52

52

Each edge has a level

slide-53
SLIDE 53

53

Each edge has a level

1 1 1

Increase the level of the edges in the smaller tree…

1 1 1 1

slide-54
SLIDE 54

54 1 1 1 1 1 1 1

… and of any edge discovered not to be a “replacement”

1 1

Each edge has a level Increase the level of the edges in the smaller tree…

slide-55
SLIDE 55

55 1 1 1 1 1 1 1 1 1

… and of any edge discovered not to be a “replacement” Each edge has a level Increase the level of the edges in the smaller tree… until you find a “replacement”

slide-56
SLIDE 56

56 1 1 1 1 1 1 1 1 1

slide-57
SLIDE 57

57 1 1 1 1 1 1 1 1 1

Intuition: Next time you have to look again for a replacement…

slide-58
SLIDE 58

58 1 1 1 1 1 1 1 1 1 1

… no need to look at non-tree edges with label 1! Intuition: Next time you have to look again for a replacement…

slide-59
SLIDE 59

59 1 1 1 1 1 1 1 1 1 1

… no need to look at non-tree edges with label 1! Intuition: Next time you have to look again for a replacement…

slide-60
SLIDE 60

60 1 1 1 1 1 1 1 1 1 1

slide-61
SLIDE 61

61 1 1 1 1 1 1 1 1 1 1

Keep on doing that upon edge deletions

slide-62
SLIDE 62

62 1 1 1 1 1 1 1 1 1

Keep on doing that upon edge deletions

slide-63
SLIDE 63

63 2 2 1 1 1 1 1 1 1

Again, increase the level of the edges in the smaller tree… Keep on doing that upon edge deletions

slide-64
SLIDE 64

64 2 2 1 1 1 1 1 2 1

… and of any edge discovered not to be a “replacement” Again, increase the level of the edges in the smaller tree… Keep on doing that upon edge deletions

slide-65
SLIDE 65

65 2 2 1 1 1 1 1 2 1

… and of any edge discovered not to be a “replacement” Again, increase the level of the edges in the smaller tree… until you find a “replacement” Keep on doing that upon edge deletions

slide-66
SLIDE 66

66 2 2 1 1 1 1 1 2 1

… and of any edge discovered not to be a “replacement” Again, increase the level of the edges in the smaller tree… until you find a “replacement” Keep on doing that upon edge deletions

slide-67
SLIDE 67

67

Terminology

G is the dynamic graph. F is a spanning forest of G. An edge is either a tree edge or a non-tree edge. Each edge has a level ℓ. Gℓ is subgraph of G induced by edges of level ≥ ℓ. Gmax ⊆ … ⊆ Gℓ ⊆ … ⊆ G2 ⊆ G1 ⊆ G0 = G Fℓ is subforest of F induced by edges of level ≥ ℓ. Fmax ⊆ … ⊆ Fℓ ⊆ … ⊆ F2 ⊆ F1 ⊆ F0 = F

slide-68
SLIDE 68

68

Invariants

(Invariant 2) The forest F is a maximum (with respect to ℓ) spanning forest, that is if (v, w) is a non-tree edge of level ℓ, then v and w are connected (i.e., in the same tree) in Fℓ è If a tree edge at level ℓ is deleted, then a replacement edge (if there is one) must be of level ≤ ℓ (Invariant 1) Each tree in Fℓ (i.e., connected component in Gℓ) has at most n/2ℓ vertices è At most (log n) levels Recall: Fℓ subforest of F induced by edges of level ≥ ℓ. Will keep the following two invariants:

slide-69
SLIDE 69

69

Flog n Fℓ F0 = F … … … … ⊆ ⊆ ⊆ ⊆

slide-70
SLIDE 70

70

Observations

Initially all edges at level 0 (both invariants satisfied) Amortization argument: Levels of an edge can only increase, so we can have ≤ log n increases per edge Intuition: When level of non-tree edge increased, it is because we discovered that its endpoints are close enough in F to fit in a smaller tree (higher level) Increasing the level of a tree edge is always safe for Invariant 2 (F is a maximum spanning forest) but it may violate Invariant 1

slide-71
SLIDE 71

71

Invariant 1

v w

T ⊆ Fℓ

Fℓ+1 Fℓ+1

= ℓ = ℓ

Fℓ+1

= ℓ

|T| ≤ n/2ℓ è |Tv| ≤ n/2ℓ+1 The replacement edge stays at level ℓ |Tv| ≤ |Tw| We can afford to push all edges of Tv from level ℓ up to level ℓ + 1 (while still preserving Invariant 1).

slide-72
SLIDE 72

72

Implementation

For each level ℓ:

  • Maintain Fℓ in a dynamic tree data structure.

For each vertex v and each level ℓ:

  • Maintain a list of incident tree edges and a list of

incident non-tree edges at that level. (So each vertex has 2 lists per level, i.e., a total of 2 log n lists.) Each vertex replicated in at most log n levels Thus, space usage will be O(m + n log n)

slide-73
SLIDE 73

73 ≥ ℓ ≥ ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ = ℓ

Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ

slide-74
SLIDE 74

74 ℓ > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ ℓ

Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ If there is a replacement at level ℓ then it must be incident to one of the pieces of T

slide-75
SLIDE 75

75 ℓ > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ ℓ

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ

slide-76
SLIDE 76

76 ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ ℓ

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. We increase to ℓ+1 the edges of level ℓ in Tv Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ

slide-77
SLIDE 77

77 ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ ℓ

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. We increase to ℓ+1 the edges of level ℓ in Tv Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ Next, we traverse all level ℓ non-tree edges incident to Tv to find a level-ℓ replacement edge.

slide-78
SLIDE 78

78 ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ+1 ℓ

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. We increase to ℓ+1 the edges of level ℓ in Tv Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ Next, we traverse all level ℓ non-tree edges incident to Tv to find a level-ℓ replacement edge. If a traversed edge is not a replacement we increase its level to ℓ+1

slide-79
SLIDE 79

79 ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ+1 ℓ

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. We increase to ℓ+1 the edges of level ℓ in Tv Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ Next, we traverse all level ℓ non-tree edges incident to Tv to find a level-ℓ replacement edge. If a traversed edge is not a replacement we increase its level to ℓ+1 If there is a replacement edge at level ℓ, then we are done

slide-80
SLIDE 80

80 ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ+1

Let Tv and Tw be the pieces of T in Fℓ containing respectively v and w after deleting edge (v,w). W.l.o.g. assume | Tv | ≤ | Tw |. We increase to ℓ+1 the edges of level ℓ in Tv Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ Next, we traverse all level ℓ non-tree edges incident to Tv to find a level-ℓ replacement edge. If a traversed edge is not a replacement we increase its level to ℓ+1 What if there is a no replacement edge at level ℓ?

slide-81
SLIDE 81

81

If there is no replacement edge of level ℓ we look for replacement edges of level ℓ - 1

ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ+1 ℓ -1 ℓ -1

Let Tv and Tw be the trees in Fℓ-1 after deleting (v,w) containing v and w respectively Assume | Tv | ≤ | Tw | : then we increase the level of edges of level ℓ-1 in Tv to be ℓ and we start traversing the non-tree edges of level ℓ-1 incident to Tv

ℓ -1 ℓ -1 ℓ -1 ℓ -1 ℓ

slide-82
SLIDE 82

82

We keep going down like that level by level and either we find a replacement edge or we conclude that no replacement edge exists As we go, we keep our invariants

ℓ+1 > ℓ ≥ ℓ ≥ ℓ v w ≥ ℓ ℓ+1 ℓ -1 ℓ -1 ℓ -1 ℓ -1 ℓ -1 ℓ -1 ℓ

slide-83
SLIDE 83

83

Implementation

  • We keep each forest F0 ⊆ F1 ⊆ … ⊆ Flog n

separately

  • The non-tree edges of level ℓ are kept with

the nodes of Fℓ

slide-84
SLIDE 84

84

Implementing the operations

connected(v,w) : Check whether v and w are in the same tree of F0 insert(v,w) : If v and w are in different trees of F0 add the edge to F0 (i.e., at level 0).. Otherwise, just add a non-tree edge of level 0 to v and w. Both invariants are still satisfied.

slide-85
SLIDE 85

85

Implementing the operations

delete(v,w): Let ℓ be the level of edge (v,w).

  • If (v,w) is a non-tree edge of level ℓ then simply

delete it from v and w in Fℓ.

  • Otherwise, delete (v,w) from the trees containing it

in Fℓ , Fℓ-1 , … , F0 and find a replacement edge as described before (at the highest possible level). If a replacement edge (x,y) is found at level k ≤ ℓ, then add (x,y) to Fk, Fk-1, … , F0

slide-86
SLIDE 86

86

Operations we need to do on the forests

For each ℓ, wish to maintain the forest Fℓ together with all non-tree edges on level ℓ. For any vertex v, wish to find the tree Tv in Fℓ containing it Want to be able to compute the size of Tv Want to be able to find an edge of Tv on level ℓ, if

  • ne exists.

Want to be able to find a level ℓ non-tree edge incident to Tv, if any.

slide-87
SLIDE 87

87

Operations we need to do on the forests

Trees in Fℓ may be cut (when an edge is deleted) and linked (when a replacement edge is found, an edge is inserted or the level of a tree edge is increased). Moreover, non-tree edges may be introduced and any edge may disappear on level ℓ (when the level

  • f an edge is increased or when non-tree edges are

inserted or deleted). All this can be done in O(log n) time (by suitably augmenting ET-trees)

slide-88
SLIDE 88

88

Analysis

  • Query takes O(log n)
  • Insert takes O(log n) time + charge the time

to increase the level of the edge. Each level increase costs O(log n) (ET tree) so it O(log2n) total.

  • Delete cuts and links O(log n) forests +

level increases (charged to insert). Overall it takes O(log2n)

slide-89
SLIDE 89

(Main) History of the Problem

Update Query Reference

O(log3 n) [Henzinger, King JACM’99] [Holm, de Lichtenberg & log n log log n O( )

Type

O(m1/2 ) O(1) [Frederickson SICOMP’85] det/w-c O(n1/2 ) O(1) [Eppstein, Galil, I. & det/w-c rand/amort O(log2 n) [Henzinger, Thorup log n log log n O( ) rand/amort O(log2 n) log n log log n O( ) det/amort O(log n (log log n)) log n log log log n O( ) rand/amort [Thorup STOC’00] [Wulff-Nilsen SODA’13] log n log log n O( ) log2 n log log n O( ) det/amort O(log5 n) [Kapron, King & O( ) rand/w-c log n log log n Nissenzweig JACM’97]

  • Rand. Struct. & Algs. ’97]

Thorup JACM’01] Mountjoy SODA’13]

slide-90
SLIDE 90

Best (Published) Bounds

Update Query Reference

O(log3 n) [Henzinger, King JACM’99] [Holm, de Lichtenberg & log n log log n O( )

Type

O(m1/2 ) O(1) [Frederickson SICOMP’85] det/w-c O(n1/2 ) O(1) [Eppstein, Galil, I. & det/w-c rand/amort O(log2 n) [Henzinger, Thorup log n log log n O( ) rand/amort O(log2 n) log n log log n O( ) det/amort O(log n (log log n)) log n log log log n O( ) rand/amort [Thorup STOC’00] [Wulff-Nilsen SODA’13] log n log log n O( ) log2 n log log n O( ) det/amort O(log5 n) [Kapron, King & O( ) rand/w-c log n log log n Nissenzweig JACM’97]

  • Rand. Struct. & Algs. ’97]

Thorup JACM’01] Mountjoy SODA’13]

slide-91
SLIDE 91

Best Bounds

Update Query Reference Type

O(log n (log log n)) log n log log log n O( ) rand/amort [Thorup STOC’00] [Wulff-Nilsen SODA’13] log n log log n O( ) log2 n log log n O( ) det/amort O(log4 n) [Gibb, Kapron, King & O( ) rand/w-c log n log log n Thorn arXiv’15] n log n O( ( )½ log log n ) O(1) [Keilberg-Rasmussen, det/w-c Thorup, arXiv’15] Kopelowitz, Pettie &

slide-92
SLIDE 92

Lower Bounds

Update Query Reference Type

O(log n (log log n)) log n log log log n O( ) rand/amort [Thorup STOC’00] [Wulff-Nilsen SODA’13] log n log log n O( ) log2 n log log n O( ) det/amort O(log4 n) [Gibb, Kapron, King & O( ) rand/w-c log n log log n Thorn arXiv’15] n log n O( ( )½ log log n ) O(1) [Keilberg-Rasmussen, det/w-c Thorup, arXiv’15] Kopelowitz, Pettie & O(x log n) Ω( ) log n log x O(x log n) Ω( ) log n log x [Patrascu, Demaine SICOMP’06]

slide-93
SLIDE 93

Open Problems: Close the Gaps

Update Query Reference Type

O(log n (log log n)) log n log log log n O( ) rand/amort [Thorup STOC’00] [Wulff-Nilsen SODA’13] log n log log n O( ) log2 n log log n O( ) det/amort O(log4 n) [Gibb, Kapron, King & O( ) rand/w-c log n log log n Thorn arXiv’15] n log n O( ( )½ log log n ) O(1) [Keilberg-Rasmussen, det/w-c Thorup, arXiv’15] Kopelowitz, Pettie & O(x log n) Ω( ) log n log x O(x log n) Ω( ) log n log x [Patrascu, Demaine SICOMP’06]

slide-94
SLIDE 94

Open Problems

  • Improve best known bounds, and in particular:
  • Deterministic algorithm with O(polylog n) update and query

in the worst case?

  • Randomized Las Vegas algorithm with O(polylog n) update

and query in the worst case?

  • Deterministic / randomized algorithm with O(log n) update

and query?

  • Deterministic / randomized algorithm with o(log n) update

and O(polylog n) query?

slide-95
SLIDE 95

References

  • D. Eppstein, Z. Galil, G. F. Italiano, and A. Nissenzweig.

Sparsification - a technique for speeding up dynamic graph

  • algorithms. J. ACM, 44(5):669–696, 1997. See also FOCS’92.
  • G. N. Frederickson. Data structures for on-line updating of

minimum spanning trees, with applications. SIAM J. Comput., 14(4):781–798, 1985. See also STOC’83.

  • R. Grossi, G. F. Italiano, Efficient splitting and merging

algorithms for order decomposable problems. Inform. Comput. 154(1):1-33, 1999.

  • M. R. Henzinger and V. King. Randomized dynamic graph

algorithms with polylogarithmic time per operation. Proc. 27th ACM Symposium on Theory of Computing (STOC), 1995, pp. 519–527.

slide-96
SLIDE 96

References

  • M. R. Henzinger and M. Thorup. Sampling to provide or to

bound: With applications to fully dynamic graph algorithms. Random Structures and Algorithms, 11(4):369–379,

  • 1997. See also ICALP’96.
  • J. Holm, K. de Lichtenberg, and M. Thorup. Poly-logarithmic

deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity. J. ACM, 48(4): 723–760, 2001. See also STOC’98.

  • B. M. Kapron, V. King, and B. Mountjoy. Dynamic graph

connectivity in polylogarithmic worst case time. 24th ACM- SIAM Symposium on Discrete Algorithms (SODA) 2013: 1131-1142.

slide-97
SLIDE 97

References

  • M. Patrascu and E. Demaine. Logarithmic Lower Bounds in the

Cell-Probe Model. SIAM J. Comput., 35(4): 2006. See also STOC 2004.

  • M. Thorup. Near-optimal fully-dynamic graph connectivity.
  • Proc. 32nd ACM Symposium on Theory of Computing (STOC),

2000, pp. 343–350.

  • C. Wulff-Nilsen: Faster Deterministic Fully-Dynamic Graph
  • Connectivity. 24th ACM-SIAM Symposium on Discrete

Algorithms (SODA) 2013: 1757-1769

slide-98
SLIDE 98

References (New Papers)

David Gibb, Bruce Kapron, Valerie King, Nolan Thorn. Dynamic graph connectivity with improved worst case update time and sublinear space. arXiv:1509.06464. Casper Kejlberg-Rasmussen, Tsvi Kopelowitz, Seth Pettie, Mikkel Thorup. Faster Worst Case Deterministic Dynamic

  • Connectivity. arXiv:1507.05944.