![Page 1: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/1.jpg)
Dynamic Graph ���Algorithms
Giuseppe F. Italiano University of Rome “Tor Vergata”
[email protected] http://www.disp.uniroma2.it/users/italiano
(slides on my Web Page)
![Page 2: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/2.jpg)
Outline Dynamic Graph Problems – Quick Intro
Lecture 1. (Undirected Graphs) Dynamic Connectivity
Lecture 2. (Undirected/Directed Graphs) Dynamic Shortest Paths
Lecture 3. (Non-dynamic?) 2-Connectivity in Directed Graphs
![Page 3: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/3.jpg)
Outline Dynamic Graph Problems – Quick Intro
Lecture 1. (Undirected Graphs) Dynamic Connectivity
Lecture 2. (Undirected/Directed Graphs) Dynamic Shortest Paths
Lecture 3. (Non-dynamic?) 2-Connectivity in Directed Graphs
![Page 4: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/4.jpg)
Dynamic Graphs Graphs subject to update operations
Insert(u,v)!Delete(u,v)!
ChangeWeight(u,v,w)!Typical updates:
![Page 5: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/5.jpg)
A graph
Initialize Insert Delete Query
Dynamic Graphs
![Page 6: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/6.jpg)
Dynamic Graph Algorithms The goal of a dynamic graph algorithm is to support query and update operations as quickly as possible (usually much faster than recomputing from scratch).
We will use also amortized analysis: Total worst-case time over sequence of ops # operations
Notation: G = (V,E) n = |V| m = |E|
![Page 7: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/7.jpg)
Dynamic Graphs
Partially Dynamic Problems
Graphs subject to insertions only, or deletions only, but not both.
Fully Dynamic Problems
Graphs subject to intermixed sequences of insertions and deletions.
![Page 8: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/8.jpg)
Dynamic Graph Problems
Support queries about properties on a dynamic graph
Dynamic Connectivity (undirected graph G) Connected(): Connected(x,y): !Is G connected? Are x and y connected in G?
Dynamic Minimum Spanning Tree (undirected graph G)
Any property on a MST of G
![Page 9: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/9.jpg)
Dynamic Graph Problems
Dynamic All Pairs Shortest Paths Distance(x,y):
What is the distance from x to y in G? ShortestPath(x,y):
What is the shortest path from x to y in G?
Dynamic Transitive Closure (directed graph G) Reachable(x,y): Is y reachable from x in G?
![Page 10: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/10.jpg)
Dynamic Graph Problems Dynamic Min Cut MinCut(): Cut(x,y): Min cut? Are x and y on the same side of a
min cut of G?
Dynamic Planarity Testing planar():
Is G planar?
Dynamic k-connectivity k-connected(): k-connected(x,y): Is G k-connected? Are x and y k-connected?
![Page 11: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/11.jpg)
Dynamic Graph Problems Dynamic (Approximate) Maximum Matching Matching(): Maximum Matching? ApproximateMatching(): Approximate Maximum Matching? ValueofMatching():
Dynamic (Approximate) Minimum Vertex Cover VertexCover(): Approximate Minimum Vertex Cover?
![Page 12: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/12.jpg)
Outline Dynamic Graph Problems – Quick Intro
Lecture 1. (Undirected Graphs) Dynamic Connectivity
Lecture 2. (Undirected/Directed Graphs) Dynamic Shortest Paths
Lecture 3. (Non-dynamic?) 2-Connectivity in Directed Graphs
![Page 13: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/13.jpg)
13
Fully Dynamic Graph Connectivity Maintain an undirected graph G under an intermixed sequence of operations of the following type:
• insert(u,v) : Add a new edge (u,v)
• delete(u,v) : Remove edge (u,v) from G (assumes (u,v) in G)
• connected(u,v) : Return yes if there is a path between u and v; return no otherwise
Subproblem (basic ingredient) in many other problems
Minimum spanning trees, 2-connectivity, …
Simple problem but lots of interesting ideas!
![Page 14: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/14.jpg)
14
Applications in Computational Biology
Eyal, Halperin: Dynamic maintenance of molecular surfaces under conformational changes. Symposium on Computational Geometry 2005: 45-54
Eyal, Halperin: Improved Maintenance of Molecular Surfaces Using Dynamic Graph Connectivity. WABI 2005: 401-413
Bajaj, Chowdhury, Rasheed: A dynamic data structure for flexible molecular maintenance and informatics. SIAM/ACM Conference on Geometric and Physical Modeling 2009, 259-270, 2009
Ulitsky, Shamir: Identification of functional modules using network topology and high-throughput data. BMC Systems Biology 2007, 1:8
……
![Page 15: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/15.jpg)
15
connected(v,w)
![Page 16: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/16.jpg)
16
connected(v,w)
![Page 17: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/17.jpg)
17
connected(v,w)
![Page 18: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/18.jpg)
18
insert(v,w)
![Page 19: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/19.jpg)
19
insert(v,w)
![Page 20: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/20.jpg)
20
delete(v,w)
![Page 21: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/21.jpg)
21
delete(v,w)
![Page 22: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/22.jpg)
22
delete(v,w)
![Page 23: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/23.jpg)
23
delete(v,w)
![Page 24: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/24.jpg)
24
Without delete, a union-find data structure would be just sufficient
Observation
![Page 25: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/25.jpg)
(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]
![Page 26: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/26.jpg)
Will see 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]
![Page 27: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/27.jpg)
Will actually see 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) O(log n) 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]
![Page 28: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/28.jpg)
28
Maintain a spanning forest of the graph
We will have to link trees, cut trees, and determine whether two vertices are in the same tree in this forest
Reduce the problem to a problem on trees (i.e., maintain a certificate for the property)
![Page 29: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/29.jpg)
29
Operations we need to do on the forest
link(v,w) : Join two trees in the forest by inserting edge (v,w) (assume v and w are in different trees)
cut(v,w) : Split a tree by deleting edge (v,w) (assume v and w are adjacent in a tree)
findtree(v) : Return the tree containing vertex v in the forest
![Page 30: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/30.jpg)
30
Operations we need to do on the forest
link(v,w) : Join two trees in the forest by inserting edge (v,w) (assume v and w are in different trees)
cut(v,w) : Split a tree by deleting edge (v,w) (assume v and w are adjacent in a tree)
findtree(v) : Return the tree containing vertex v in the forest
Can do this in O(log n) per operation with several data structures, e.g., ET-trees (Euler Tour trees)
We refer to those as dynamic tree data structures
![Page 31: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/31.jpg)
31
ET-trees
ET-tree is a balanced binary tree over the Euler tour of a tree.
Can perform link, cut and findtree in O(log n)
![Page 32: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/32.jpg)
32
But dynamic tree data structures are not enough: we still have a problem with deleting a tree edge
![Page 33: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/33.jpg)
33
![Page 34: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/34.jpg)
34
![Page 35: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/35.jpg)
35
How do we find out whether there is a “replacement” edge for the forest or it really got disconnected ?
![Page 36: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/36.jpg)
36
Summarising so far
Tree Edge
Non-Tree Edge
Insert Link Easy
Delete Cut, Replacement? Easy
![Page 37: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/37.jpg)
37
To find a replacement, need to traverse one 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?
![Page 38: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/38.jpg)
38
Look in the smaller tree: ‘ tree edge ‘ no replacement - replacement
Wish to gain something (in amortized sense) by accumulating information as we do that
![Page 39: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/39.jpg)
39
Each edge has a level
![Page 40: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/40.jpg)
40
Each edge has a level
1
11
Increase the level of the edges in the smaller tree…
1
11
1
![Page 41: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/41.jpg)
41
1
11
1
11
1
… and of any edge discovered not to be a “replacement”
1
1Each edge has a level
Increase the level of the edges in the smaller tree…
![Page 42: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/42.jpg)
42
1
11
1
11
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”
![Page 43: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/43.jpg)
43
1
11
1
11
1
1
1
![Page 44: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/44.jpg)
44
1
11
1
11
1
1
1
Intuition: Next time you have to look again for a replacement…
![Page 45: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/45.jpg)
45
1
11
1
11
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…
![Page 46: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/46.jpg)
46
1
11
1
11
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…
![Page 47: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/47.jpg)
47
1
11
1
11
1
1
1
1
![Page 48: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/48.jpg)
48
1
11
1
11
1
1
1
1
Keep on doing that upon edge deletions
![Page 49: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/49.jpg)
49
1
1
1
11
1
1
1
1
Keep on doing that upon edge deletions
![Page 50: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/50.jpg)
50
2
2
1
11
1
1
1
1
Again, increase the level of the edges in the smaller tree…
Keep on doing that upon edge deletions
![Page 51: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/51.jpg)
51
2
2
1
11
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
![Page 52: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/52.jpg)
52
2
2
1
11
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
![Page 53: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/53.jpg)
53
2
2
1
11
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
![Page 54: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/54.jpg)
54
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
![Page 55: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/55.jpg)
55
Invariants
(Invariant 2) The forest F is a maximum spanning forest with respect to the levels of the edges
è 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:
è If (v, w) is a non-tree edge of level ℓ, then v and w are connected (i.e., in the same tree) in Fℓ
![Page 56: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/56.jpg)
56
Flog n
Fℓ
F0 = F
…
…
…
…
⊆
⊆
⊆
⊆
![Page 57: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/57.jpg)
57
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
![Page 58: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/58.jpg)
58
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).
![Page 59: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/59.jpg)
59
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)
![Page 60: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/60.jpg)
60
≥ ℓ
≥ ℓ
≥ ℓ
≥ ℓ
v
w
≥ ℓ
= ℓ
Suppose a tree edge of level ℓ, say (v,w), is deleted. Then (v,w) belongs to some tree T of Fℓ
![Page 61: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/61.jpg)
61
ℓ
> ℓ
≥ ℓ
≥ ℓ
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
![Page 62: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/62.jpg)
62
ℓ
> ℓ
≥ ℓ
≥ ℓ
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ℓ
![Page 63: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/63.jpg)
63
ℓ+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ℓ
![Page 64: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/64.jpg)
64
ℓ+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.
![Page 65: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/65.jpg)
65
ℓ+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
![Page 66: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/66.jpg)
66
ℓ+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
![Page 67: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/67.jpg)
67
ℓ+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 ℓ?
![Page 68: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/68.jpg)
68
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 ℓ
![Page 69: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/69.jpg)
69
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 ℓ
![Page 70: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/70.jpg)
70
Implementation
• We keep each forest F0 ⊆ F1 ⊆ … ⊆ Flog n separately
• The non-tree edges of level ℓ are kept with the nodes of Fℓ
![Page 71: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/71.jpg)
71
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.
![Page 72: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/72.jpg)
72
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
![Page 73: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/73.jpg)
73
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 one exists.
Want to be able to find a level ℓ non-tree edge incident to Tv, if any.
![Page 74: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/74.jpg)
74
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 of 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)
![Page 75: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/75.jpg)
75
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) so it O(log2n) total.
• Delete cuts and links O(log n) forests + level increases (charged to insert). Overall it takes O(log2n)
![Page 76: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/76.jpg)
(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]
![Page 77: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/77.jpg)
Best 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]
![Page 78: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/78.jpg)
Best Bounds Update Query Reference Type
O(n1/2 ) O(1) [Eppstein, Galil, I. & det/w-c
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]
Mountjoy SODA’13]
![Page 79: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/79.jpg)
Lower Bounds Update Query Reference Type
O(n1/2 ) O(1) [Eppstein, Galil, I. & det/w-c
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]
Mountjoy SODA’13]
O(x log n) Ω( ) log n log x
O(x log n) Ω( ) log n log x
[Patrascu, Demaine SICOMP’06]
![Page 80: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/80.jpg)
Open: Close the Gaps Update Query Reference Type
O(n1/2 ) O(1) [Eppstein, Galil, I. & det/w-c
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]
Mountjoy SODA’13]
O(x log n) Ω( ) log n log x
O(x log n) Ω( ) log n log x
[Patrascu, Demaine SICOMP’06]
![Page 81: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/81.jpg)
Open Problems
• Deterministic 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?
![Page 82: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/82.jpg)
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.
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.
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.
![Page 83: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/83.jpg)
References 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.
M. Patrascu and E. Demaine. Logarithmic Lower Bounds in the Cell-Probe Model. SIAM J. Comput., 35(4): 2006. See also STOC 2004.
![Page 84: University of Rome Tor Vergata - Team.inria.fr · University of Rome “Tor Vergata ... (Euler Tour trees) We refer to those as dynamic tree data structures . 31 ET-trees ET-tree](https://reader036.vdocuments.us/reader036/viewer/2022071002/5fbfaccb1fb5544f6710a38b/html5/thumbnails/84.jpg)
References 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