streaming model of computation

Streaming Model of Computation A streaming algorithm processes a data - PowerPoint PPT Presentation

Streaming Model of Computation A streaming algorithm processes a data stream : Input is presented as a sequence of items and can be examined in only a few passes (typically just one). The algorithm has limited memory and cannot


  1. Streaming Graph Algorithms Graph Laplacian Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → 𝑆 Laplacian of 𝐻 : 𝑜 × 𝑜 real matrix 𝑀 𝐻 , 𝑜 = |𝑊| ෍ 𝑥 𝑗, 𝑙 , 𝑗 = 𝑘 𝑗,𝑙 ∈𝐹 where 𝑥(𝑗, 𝑘) = 0 if (𝑗, 𝑘) ∉ 𝐹 𝑀 𝐻 𝑗, 𝑘 = −𝑥 𝑗, 𝑘 , 𝑗 ≠ 𝑘 1 2 3 14 −3 −9 −2 −3 4 −1 0 8 3 𝑀 𝐻 = 9 −9 −1 18 −8 −2 0 −8 10 1 4 2

  2. Streaming Graph Algorithms Graph Laplacian Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → 𝑆 Laplacian of 𝐻 : 𝑜 × 𝑜 real matrix 𝑀 𝐻 , 𝑜 = |𝑊| ෍ 𝑥 𝑗, 𝑙 , 𝑗 = 𝑘 𝑗,𝑙 ∈𝐹 where 𝑥(𝑗, 𝑘) = 0 if (𝑗, 𝑘) ∉ 𝐹 𝑀 𝐻 𝑗, 𝑘 = −𝑥 𝑗, 𝑘 , 𝑗 ≠ 𝑘 𝑦 1 be a real vector in ℝ 𝑜 . Recall that 𝑦 𝑈 = 𝑦 1 Let 𝑦 = ⋯ 𝑦 𝑜 ⋮ 𝑦 𝑜

  3. Streaming Graph Algorithms Graph Laplacian Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → 𝑆 Laplacian of 𝐻 : 𝑜 × 𝑜 real matrix 𝑀 𝐻 , 𝑜 = |𝑊| ෍ 𝑥 𝑗, 𝑙 , 𝑗 = 𝑘 𝑗,𝑙 ∈𝐹 where 𝑥(𝑗, 𝑘) = 0 if (𝑗, 𝑘) ∉ 𝐹 𝑀 𝐻 𝑗, 𝑘 = −𝑥 𝑗, 𝑘 , 𝑗 ≠ 𝑘 𝑦 1 be a real vector in ℝ 𝑜 . Recall that 𝑦 𝑈 = 𝑦 1 Let 𝑦 = ⋯ 𝑦 𝑜 ⋮ 𝑦 𝑜 Then 2 𝑦 𝑈 𝑀 𝐻 𝑦 = ෍ 𝑥(𝑗, 𝑘) 𝑦 𝑗 − 𝑦 𝑘 (𝑗,𝑘)∈𝐹

  4. Streaming Graph Algorithms Spectral Sparsification Graph 𝐻 = (𝑊, 𝐹) A weighted subgraph 𝐼 = (𝑊, 𝐹 𝐼 , 𝑥) of 𝐻 is a (1 + 𝜁) spectral sparsifier of 𝐻 if 1 − 𝜁 ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 ≤ 𝑦 𝑈 𝑀 𝐼 𝑦 ≤ (1 + 𝜁) ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 for all real vectors 𝑦 ∈ ℝ 𝑜

  5. Streaming Graph Algorithms Spectral Sparsification Graph 𝐻 = (𝑊, 𝐹) A weighted subgraph 𝐼 = (𝑊, 𝐹 𝐼 , 𝑥) of 𝐻 is a (1 + 𝜁) spectral sparsifier of 𝐻 if 1 − 𝜁 ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 ≤ 𝑦 𝑈 𝑀 𝐼 𝑦 ≤ (1 + 𝜁) ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 for all real vectors 𝑦 ∈ ℝ 𝑜 A spectral sparsifier of 𝐻 can approximate: • Size of all cuts • Eigenvalues • Effective resistances (in the corresponding electrical network) • Properties of random walks

  6. Streaming Graph Algorithms Spectral Sparsification Graph 𝐻 = (𝑊, 𝐹) A weighted subgraph 𝐼 = (𝑊, 𝐹 𝐼 , 𝑥) of 𝐻 is a (1 + 𝜁) spectral sparsifier of 𝐻 if 1 − 𝜁 ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 ≤ 𝑦 𝑈 𝑀 𝐼 𝑦 ≤ (1 + 𝜁) ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 for all real vectors 𝑦 ∈ ℝ 𝑜 A (1 + 𝜁) spectral sparsifier with O(𝑜 log 𝑜 /𝜁 2 ) Theorem [Spielman and Teng] edges can be constructed in O(𝑛 polylog(𝑜)/𝜁 2 ) , where 𝑜 is the number of vertices and 𝑛 is the number of edges of the input graph.

  7. Streaming Graph Algorithms Spectral Sparsification Graph 𝐻 = (𝑊, 𝐹) A weighted subgraph 𝐼 = (𝑊, 𝐹 𝐼 , 𝑥) of 𝐻 is a (1 + 𝜁) spectral sparsifier of 𝐻 if 1 − 𝜁 ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 ≤ 𝑦 𝑈 𝑀 𝐼 𝑦 ≤ (1 + 𝜁) ∙ 𝑦 𝑈 𝑀 𝐻 𝑦 for all real vectors 𝑦 ∈ ℝ 𝑜 A (1 + 𝜁) spectral sparsifier with O(𝑜 log 𝑜 /𝜁 2 ) Theorem [Spielman and Teng] edges can be constructed in O(𝑛 polylog(𝑜)/𝜁 2 ) , where 𝑜 is the number of vertices and 𝑛 is the number of edges of the input graph. Theorem [Batson, Spielman and Srivastava] A graph with 𝑜 vertices has a (1 + 𝜁) spectral sparsifier with O(𝑜/𝜁 2 ) edges.

  8. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model • Use as a black box any existing algorithm ALG that returns a (1 + 𝛿) spectral sparsifier. • ALG returns a spectral sparsifier with 𝑡𝑗𝑨𝑓(𝛿) = O(𝑜/𝛿 2 ) number of edges.

  9. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model • Use as a black box any existing algorithm ALG that returns a (1 + 𝛿) spectral sparsifier. • ALG returns a spectral sparsifier with 𝑡𝑗𝑨𝑓(𝛿) = O(𝑜/𝛿 2 ) number of edges. We use the following properties of spectral sparsification • Mergeable: Suppose 𝐼 1 and 𝐼 2 are 𝛾 spectral sparsifiers of two graphs 𝐻 1 and 𝐻 2 on the same set of vertices. Then 𝐼 1 ∪ 𝐼 2 is a 𝛾 spectral sparsifier of 𝐻 1 ∪ 𝐻 2 . • Composable: If 𝐼 3 is a 𝛾 spectral sparsifier for 𝐼 2 and 𝐼 2 is a 𝜀 spectral sparsifier for 𝐼 1 then 𝐼 3 is a 𝛾𝜀 spectral sparsifier for 𝐼 1 .

  10. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model Let 𝐻 = (𝑊, 𝐹) be the input graph with 𝑜 = |𝑊| and 𝑛 = 𝐹 Data stream 𝑇 = the 𝑛 edges of 𝐻 Set 𝑢 = 𝑛/𝑡𝑗𝑨𝑓(𝛿) . For simplicity assume that 𝑢 is a power of 2 We divide 𝑇 into 𝑢 segments of 𝑡𝑗𝑨𝑓(𝛿) edges 0 = graph that consists of the edges in the 𝑗 -th segment 𝐻 𝑗 … 𝑇 𝑡𝑗𝑨𝑓(𝛿) 𝑡𝑗𝑨𝑓(𝛿) 𝑡𝑗𝑨𝑓(𝛿) 0 0 0 𝐻 𝑢 𝐻 1 𝐻 2

  11. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model Set 𝑢 = 𝑛/𝑡𝑗𝑨𝑓(𝛿) . For simplicity assume that 𝑢 is a power of 2 ( 𝑢 = 2 𝑙 , 𝑙 = lg 𝑢 ) We divide 𝑇 into 𝑢 segments of 𝑡𝑗𝑨𝑓(𝛿) edges 0 = graph that consists of the edges in the 𝑗 -th segment 𝐻 𝑗 𝑘 = 𝐻 2𝑗−1 𝑘−1 ∪ 𝐻 2𝑗 𝑘−1 For 𝑗 = 1,2, … , lg 𝑢 and 𝑘 = 1,2, … , 𝑢/2 𝑗 define 𝐻 𝑗 E.g., for 𝑢 = 4 0 0 0 0 𝐻 1 𝐻 3 𝐻 2 𝐻 4 1 = 𝐻 1 0 ∪ 𝐻 2 1 = 𝐻 3 0 ∪ 𝐻 4 0 0 𝐻 1 𝐻 2 2 = 𝐻 1 1 ∪ 𝐻 2 1 = 𝐻 𝐻 1

  12. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model Set 𝑢 = 𝑛/𝑡𝑗𝑨𝑓(𝛿) . For simplicity assume that 𝑢 is a power of 2 ( 𝑢 = 2 𝑙 , 𝑙 = lg 𝑢 ) We divide 𝑇 into 𝑢 segments of 𝑡𝑗𝑨𝑓(𝛿) edges 0 = graph that consists of the edges in the 𝑗 -th segment 𝐻 𝑗 𝑘 = 𝐻 2𝑗−1 𝑘−1 ∪ 𝐻 2𝑗 𝑘−1 For 𝑗 = 1,2, … , lg 𝑢 and 𝑘 = 1,2, … , 𝑢/2 𝑗 define 𝐻 𝑗 𝑘 define a weighted subgraph 𝐼 𝑗 𝑘 : For each 𝐻 𝑗 0 = 𝐻 𝑗 0 • 𝐼 𝑗 𝑘 = ALG(𝐼 2𝑗−1 𝑘−1 ∪ 𝐼 2𝑗 𝑘−1 ), 𝑘 > 0 • 𝐼 𝑗

  13. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model Set 𝑢 = 𝑛/𝑡𝑗𝑨𝑓(𝛿) . For simplicity assume that 𝑢 is a power of 2 ( 𝑢 = 2 𝑙 , 𝑙 = lg 𝑢 ) We divide 𝑇 into 𝑢 segments of 𝑡𝑗𝑨𝑓(𝛿) edges 0 = graph that consists of the edges in the 𝑗 -th segment 𝐻 𝑗 𝑘 = 𝐻 2𝑗−1 𝑘−1 ∪ 𝐻 2𝑗 𝑘−1 For 𝑗 = 1,2, … , lg 𝑢 and 𝑘 = 1,2, … , 𝑢/2 𝑗 define 𝐻 𝑗 𝑘 define a weighted subgraph 𝐼 𝑗 𝑘 : For each 𝐻 𝑗 0 = 𝐻 𝑗 0 • 𝐼 𝑗 𝑘 = ALG(𝐼 2𝑗−1 𝑘−1 ∪ 𝐼 2𝑗 𝑘−1 ), 𝑘 > 0 • 𝐼 𝑗 lg 𝑢 is a (1 + 𝛿) lg 𝑢 sparsifier of 𝐻 By the mergeable and composable properties 𝐼 1

  14. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model lg 𝑢 is a (1 + 𝛿) lg 𝑢 sparsifier of 𝐻 By the mergeable and composable properties 𝐼 1 Set 𝛿 = 𝜁/(2 lg 𝑢) ⇒ (1 + 𝛿) lg 𝑢 ~ (1 + 𝜁) lg 𝑢 is a (1 + 𝜁) sparsifier of 𝐻 Then 𝐼 1

  15. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model lg 𝑢 is a (1 + 𝛿) lg 𝑢 sparsifier of 𝐻 By the mergeable and composable properties 𝐼 1 Set 𝛿 = 𝜁/(2 lg 𝑢) ⇒ (1 + 𝛿) lg 𝑢 ~ (1 + 𝜁) lg 𝑢 is a (1 + 𝜁) sparsifier of 𝐻 Then 𝐼 1 𝑘−1 and 𝐼 2𝑗 𝑘−1 𝑘−1 𝑘−1 𝐼 2𝑗−1 𝐼 2𝑗 Delete 𝐼 2𝑗−1 Space required 𝑘 is computed as soon as 𝐼 𝑗 ⇒ 𝑘 𝑘 = ALG 𝐼 2𝑗−1 𝑘−1 ∪ 𝐼 2𝑗 For each 𝑘 we need to store 𝐼 𝑗 𝑘−1 𝐼 𝑗 only for two values of 𝑗

  16. Streaming Graph Algorithms Spectral Sparsification – Construction in the semi-streaming model lg 𝑢 is a (1 + 𝛿) lg 𝑢 sparsifier of 𝐻 By the mergeable and composable properties 𝐼 1 Set 𝛿 = 𝜁/(2 lg 𝑢) ⇒ (1 + 𝛿) lg 𝑢 ~ (1 + 𝜁) lg 𝑢 is a (1 + 𝜁) sparsifier of 𝐻 Then 𝐼 1 𝑘−1 and 𝐼 2𝑗 𝑘−1 𝑘−1 𝑘−1 𝐼 2𝑗−1 𝐼 2𝑗 Delete 𝐼 2𝑗−1 Space required 𝑘 is computed as soon as 𝐼 𝑗 ⇒ 𝑘 𝑘 = ALG 𝐼 2𝑗−1 𝑘−1 ∪ 𝐼 2𝑗 For each 𝑘 we need to store 𝐼 𝑗 𝑘−1 𝐼 𝑗 only for two values of 𝑗 So at any given time we need to store ≤ 2 ∙ 𝑡𝑗𝑨𝑓 𝛿 ∙ lg 𝑢 = O(𝑜 lg 3 𝑜/𝜁 2 )

  17. Streaming Graph Algorithms Matchings Graph 𝐻 = (𝑊, 𝐹) Matching: Subset of edges 𝑁 ⊆ 𝐹 such that each vertex is adjacent to at most one edge in 𝑁 Goal: Find a maximum cardinality matching 𝑁 ∗

  18. Streaming Graph Algorithms Matchings Graph 𝐻 = (𝑊, 𝐹) Matching: Subset of edges 𝑁 ⊆ 𝐹 such that each vertex is adjacent to at most one edge in 𝑁 Goal: Find a maximum cardinality matching 𝑁 ∗

  19. Streaming Graph Algorithms Matchings Graph 𝐻 = (𝑊, 𝐹) Matching: Subset of edges 𝑁 ⊆ 𝐹 such that each vertex is adjacent to at most one edge in 𝑁 Goal: Find a maximum cardinality matching 𝑁 ∗ Greedy Matching Algorithm 1. 𝑁 ← ∅ 2. for or each edge 𝑓 ∈ 𝑇 do do 3. if if 𝑁 ∪ {𝑓} is a matching the then add 𝑓 to 𝑁 4. ret eturn 𝑁

  20. Streaming Graph Algorithms Matchings Graph 𝐻 = (𝑊, 𝐹) Matching: Subset of edges 𝑁 ⊆ 𝐹 such that each vertex is adjacent to at most one edge in 𝑁 Goal: Find a maximum cardinality matching 𝑁 ∗ The Greedy Matching Algorithm computes a matching 𝑁 with cardinality 𝑁 ≥ 𝑁 ∗ /2

  21. Streaming Graph Algorithms Matchings Graph 𝐻 = (𝑊, 𝐹) Matching: Subset of edges 𝑁 ⊆ 𝐹 such that each vertex is adjacent to at most one edge in 𝑁 Goal: Find a maximum cardinality matching 𝑁 ∗ The Greedy Matching Algorithm computes a matching 𝑁 with cardinality 𝑁 ≥ 𝑁 ∗ /2 ∈ 𝑁 ∗ 𝑤 ′ Consider an edge (𝑣, 𝑤) ∈ 𝑁 ∗ 𝑣 ′ 𝑓 ∈ 𝑁 If (𝑣, 𝑤) ∉ 𝑁 then 𝑁 must contain at least one edge 𝑓 adjacent to 𝑣 or to 𝑤 𝑣 𝑤 ∈ 𝑁 ∗ 𝑓 is adjacent to at most 2 edges of 𝑁 ∗

  22. Streaming Graph Algorithms Weighted Matchings Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → ℝ + ( 𝑥(𝑓) > 0 , ∀𝑓 ∈ 𝐹 ) Goal: Find a maximum weight matching 𝑁 ∗ As before, we process the edges of the stream 𝑇 as they arrive and try to augment the current matching 𝑁

  23. Streaming Graph Algorithms Weighted Matchings Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → ℝ + ( 𝑥(𝑓) > 0 , ∀𝑓 ∈ 𝐹 ) Goal: Find a maximum weight matching 𝑁 ∗ As before, we process the edges of the stream 𝑇 as they arrive and try to augment the current matching 𝑁 Let 𝑓 be the next edge read from 𝑇 . Let 𝐷 be the edges of 𝑁 that are in conflict with 𝑓 : and edge in 𝐷 and 𝑓 are adjacent to a common vertex.

  24. Streaming Graph Algorithms Weighted Matchings Weighted graph 𝐻 = (𝑊, 𝐹, 𝑥) . Edge weights 𝑥 ∶ 𝐹 → ℝ + ( 𝑥(𝑓) > 0 , ∀𝑓 ∈ 𝐹 ) Goal: Find a maximum weight matching 𝑁 ∗ As before, we process the edges of the stream 𝑇 as they arrive and try to augment the current matching 𝑁 Let 𝑓 be the next edge read from 𝑇 . Let 𝐷 be the edges of 𝑁 that are in conflict with 𝑓 : and edge in 𝐷 and 𝑓 are adjacent to a common vertex. 𝐷 has at most two edges. Let 𝑥(𝐷) be the total weight of the ∈ 𝑁 edges in 𝐷 . 𝑓 If 𝑥(𝑓) > 𝑥(𝐷) then we increase the weight of 𝑁 by including 𝑓 and deleting the edges of 𝐷 . ∈ 𝑁

  25. Streaming Graph Algorithms Weighted Matchings Let 𝑓 be the next edge read from 𝑇 . Let 𝐷 be the edges of 𝑁 that are in conflict with 𝑓 : and edge in 𝐷 and 𝑓 are adjacent to a common vertex. ∈ 𝑁 𝑥(𝐷) = total weight of the edges in 𝐷 . 𝑓 If 𝑥(𝑓) > 𝑥(𝐷) then we increase the weight of 𝑁 by including 𝑓 and deleting the edges of 𝐷 . ∈ 𝑁 Greedy Weighted Matching Algorithm 1. 𝑁 ← ∅ 2. for or each edge 𝑓 ∈ 𝑇 do do 3. let 𝐷 be the set of edges that are in conflict with 𝑓 4. if if 𝑥 𝑓 > 𝑥(𝐷) th then add 𝑓 to 𝑁 and delete 𝐷 from 𝑁 5. ret eturn 𝑁

  26. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {}

  27. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(1,2)}

  28. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(1,2)}

  29. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(2,3)}

  30. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(2,3)}

  31. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(3,4)}

  32. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(3,4)}

  33. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(3,4)}

  34. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(4,5)}

  35. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(4,5)}

  36. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 = {(5,6)} 𝑥(𝑁) = 1 + 5𝜁

  37. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 𝑁 = {(5,6)} 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 𝑥(𝑁) = 1 + 5𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 𝑁 ∗ = { 1,2 , 3,4 , (5,6)} 1 2 3 4 5 6 𝑥(𝑁 ∗ ) = 3 + 9𝜁 1 + 3𝜁 1 + 4𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁

  38. Streaming Graph Algorithms Weighted Matchings Consider the following scenario 𝑇 = (1,2), (2,3), (3,4), … , (𝑜, 𝑜 − 1) Edge 𝑓 𝑗 = (𝑗, 𝑗 + 1) has weight 𝑥(𝑓 𝑗 ) = 1 + 𝑗𝜁 , for a small 𝜁 > 0 The computed matching 𝑁 has weight 𝑥(𝑁) = 1 + (𝑜 − 1)𝜁 The optimal matching 𝑁 has weight 𝑥(𝑁 ∗ ) = σ 𝑗 1 + 2𝑗 − 1 𝜁 > (𝑜 − 1)/2 𝑥(𝑁 ∗ ) 1 + 𝑜 − 1 𝜁 ~ 𝑜 (𝑜 − 1)/2 𝑥(𝑁) > Hence, the approximation ratio is 2

  39. Streaming Graph Algorithms Weighted Matchings trailing edges 𝑁 = {(5,6)} 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 𝑥(𝑁) = 1 + 5𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 The problem is that the trailing edges of 𝑇 that were once inserted into 𝑁 but removed later may have much larger total weight than the edges added later.

  40. Streaming Graph Algorithms Weighted Matchings ∈ 𝑁 Modified algorithm 𝑓 We include 𝑓 in 𝑁 If 𝑥 𝑓 > 𝛾𝑥(𝐷) for some constant 𝛾 = 1 + 𝛿 > 1 . ∈ 𝑁 Greedy Weighted Matching Algorithm 1. 𝑁 ← ∅ 2. for or each edge 𝑓 ∈ 𝑇 do do 3. let 𝐷 be the set of edges that are in conflict with 𝑓 4. if if 𝑥 𝑓 > (1 + 𝛿) ∙ 𝑥(𝐷) th then add 𝑓 to 𝑁 and delete 𝐷 from 𝑁 5. ret eturn 𝑁

  41. Streaming Graph Algorithms Weighted Matchings trailing edges 𝑁 = {(5,6)} 1 2 3 4 5 6 1 + 3𝜁 1 + 4𝜁 𝑥(𝑁) = 1 + 5𝜁 1 + 𝜁 1 + 2𝜁 1 + 5𝜁 The problem is that the trailing edges of 𝑇 that were once inserted into 𝑁 but removed later may have much larger total weight than the edges added later. We include 𝑓 in 𝑁 If 𝑥 𝑓 > 𝛾𝑥(𝐷) for some constant 𝛾 = 1 + 𝛿 > 1 . For an edge 𝑓 define • 𝐷 0 = {𝑓} • 𝐷 𝑗 = edges removed when an edge in 𝐷 𝑗−1 was added to 𝑁 • 𝑈 𝑓 = 𝐷 1 ∪ 𝐷 2 ∪ ⋯ Then 𝑥(𝑈 𝑓 ) ≤ 𝑥(𝑓)/𝛿

  42. Streaming Graph Algorithms Weighted Matchings It can be shown that 𝑥(𝑁 ∗ ) ≤ (1 + 𝛿) ∙ ෍ (𝑥 𝑈 𝑓 + 2𝑥(𝑓)) 𝑓∈𝑁 𝑥(𝑁 ∗ ) 𝑥(𝑁) < 5.828 By applying a careful charging scheme we get

  43. Streaming Graph Algorithms Weighted Matchings Multi-pass Algorithm 𝑇 Greedy Weighted 𝑁 Matching Algorithm 𝑁 = ∅ We can get a (2 + 𝜁) -approximation with O(𝜁 −3 ) passes over 𝑇 , where 𝛿 = O(𝜁)

  44. Streaming Graph Algorithms Graph Sketches Random linear projection 𝑁 ∶ ℝ 𝑜 → ℝ 𝑙 , where 𝑙 ≪ 𝑜 For any vector 𝒘 ∈ ℝ 𝑜 , the projection 𝑁𝒘 ∈ ℝ 𝑙 preserves properties of 𝒘 with high probability 𝑁 𝒘 = 𝑁𝒘 ∈ ℝ 𝑙 ∈ ℝ 𝑙×𝑜 ∈ ℝ 𝑜 Many applications: estimating entropy, heavy hitters, estimating norms, fitting polynomials,… Rich theory: dimensionality reduction, sparse recovery, metric embeddings ,…

  45. Streaming Graph Algorithms Graph Sketches Can we use this approach for graphs? That is, can we project the adjacency matrix 𝐵 𝐻 of a graph 𝐻 to a smaller matrix 𝑁𝐵 𝐻 , so that we can use 𝑁𝐵 𝐻 to compute properties of 𝐻 ? For a graph 𝐻 with n vertices, 𝐵 𝐻 has O 𝑜 2 dimensions. • • To work in the semi-streaming model we want 𝑁𝐵 𝐻 to have O(𝑜 polylog(𝑜)) dimensions.

  46. Streaming Graph Algorithms Graph Sketches Picture from https://people.cs.umass.edu/~mcgregor/711S12/lec-2-2.pdf

  47. Streaming Graph Algorithms Graph Sketches Dynamic graph stream 𝑇 = 𝑏 1 , 𝑏 2 , … where 𝑏 𝑗 = (𝑓 𝑗 , Δ 𝜅 ) 𝑓 𝑗 = an edge of the graph +1, 𝑓 𝑗 is inserted Δ 𝑗 = ቐ −1, 𝑓 𝑗 is deleted 𝑔 𝑓 = ෍ Δ 𝑗 Multiplicity of edge 𝑓 : 𝑗∶ 𝑓 𝑗 =𝑓 For simplicity we will assume that 𝑔 𝑓 ∈ 0,1 , for all edges e.

  48. Streaming Graph Algorithms Graph Sketches 𝑜 Vector of edge multiplicities 𝒈 ∈ 0,1 2 Each entry of 𝒈 is a multiplicity 𝑔 𝑓 of a (potential) edge 𝑓 of 𝐻 (a simple graph with 𝑜 vertices has up to 𝑜 2 edges). 𝑔 𝑓 13 1 𝑓 12 1 3 𝑔 𝒈 = = 0 𝑓 13 𝑓 12 𝑓 23 2 1 𝑔 𝑓 23

  49. Streaming Graph Algorithms Graph Sketches 𝑜 Vector of edge multiplicities 𝒈 ∈ 0,1 2 Each entry of 𝒈 is a multiplicity 𝑔 𝑓 of a (potential) edge 𝑓 of 𝐻 (a simple graph with 𝑜 vertices has up to 𝑜 2 edges). 𝑜 Index vector of edge 𝑓 : 𝒋 𝑓 ∈ 0,1 2 . The only nonzero entry of 𝒋 𝑓 is the one that corresponds to edge 𝑓 . 𝑗 𝑓 12 𝑓 13 0 1 3 𝒋 𝒇 𝟑𝟒 = 𝑗 𝑓 13 = 0 𝑓 12 𝑓 23 𝑗 𝑓 23 2 1

  50. Streaming Graph Algorithms Graph Sketches 𝑜 Vector of edge multiplicities 𝒈 ∈ 0,1 2 Each entry of 𝒈 is a multiplicity 𝑔 𝑓 of a (potential) edge 𝑓 of 𝐻 (a simple graph with 𝑜 vertices has up to 𝑜 2 edges). 𝑜 Index vector of edge 𝑓 : 𝒋 𝑓 ∈ 0,1 2 . The only nonzero entry of 𝒋 𝑓 is the one that corresponds to edge 𝑓 . Sketch of 𝒈 : 𝐵(𝒈) ∈ ℝ 𝑒 , 𝑒 = dimensionality of the sketch When we read the next item 𝑓, Δ from the stream, we can update the sketch as follows: 𝐵 𝒈 = 𝐵 𝒈 + Δ ∙ 𝐵(𝒋 𝑓 )

  51. Streaming Graph Algorithms Homomorphic Sketches 𝑜 Vector of edge multiplicities 𝒈 ∈ 0,1 2 Each entry of 𝒈 is a multiplicity 𝑔 𝑓 of a (potential) edge 𝑓 of 𝐻 (a simple graph with 𝑜 vertices has up to 𝑜 2 edges). For a vertex 𝑤 let 𝒈 𝒘 ∈ 0,1 𝑜−1 be the restriction of 𝒈 to the coordinates that involve 𝑤 (i.e., the 𝑜 − 1 edges that can be adjacent to 𝑤 in 𝐻 ) 𝑔 𝑓 13 1 𝑓 12 1 3 𝑔 𝒈 = = 0 𝑓 13 𝑓 12 𝑓 23 2 1 𝑔 𝑓 23 𝑔 = 1 𝑓 12 𝒈 𝟐 = 𝑔 0 𝑓 13

  52. Streaming Graph Algorithms Homomorphic Sketches 𝑜 Vector of edge multiplicities 𝒈 ∈ 0,1 2 Each entry of 𝒈 is a multiplicity 𝑔 𝑓 of a (potential) edge 𝑓 of 𝐻 (a simple graph with 𝑜 vertices has up to 𝑜 2 edges). For a vertex 𝑤 let 𝒈 𝒘 ∈ 0,1 𝑜−1 be the restriction of 𝒈 to the coordinates that involve 𝑤 (i.e., the 𝑜 − 1 edges that can be adjacent to 𝑤 in 𝐻 ) The sketches of 𝒈 are formed by concatenation ( ∘ ) of the sketches of each 𝒈 𝒘 𝐵 𝒈 = 𝐵 1 𝒈 𝒘 𝟐 ∘ 𝐵 2 𝒈 𝒘 𝟑 ∘ ⋯ ∘ 𝐵 𝑜 𝒈 𝒘 𝒐 Homomorphic sketches: For each operation on 𝐻 there is a corresponding operation on the sketches

  53. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6

  54. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) Let’s begin with a simple (non -sketch) algorithm Connectivity Algorithm 1. rep epeat 2. for each vertex 𝑤 of the current graph do do 3. select an edge incident to 𝑤 4. contract all selected edges 5. un until the current graph has no edges

  55. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6

  56. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6 34 12 567

  57. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6 super-vertices 34 12 567

  58. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6 34 12 567 34 12 567

  59. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) 4 5 1 3 7 2 6 new super-vertices 34 12 567 34 12 567

  60. Streaming Graph Algorithms Connectivity via Sketches We wish to maintain a spanning forest of a graph 𝐻 = (𝑊, 𝐹) Let’s begin with a simple (non -sketch) algorithm Connectivity Algorithm 1. rep epeat 2. for each vertex 𝑤 of the current graph do do 3. select an edge incident to 𝑤 4. contract all selected edges 5. un until the current graph has no edges Finds the connected components of 𝐻 , and a spanning forest, in O(log 𝑜) rounds

  61. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 2. Apply ℓ 0 -sampling via linear sketches

  62. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 2. Apply ℓ 𝟏 -sampling via linear sketches ℓ 𝟏 -sampling Let 𝐿 = polylog(𝑂) . There is a distribution over matrices 𝑁 ∈ ℝ 𝐿×𝑂 such that for any 𝒚 ∈ ℝ 𝑂 , a random non-zero element of 𝒚 can be reconstructed from 𝑁𝒚 with high probability.

  63. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝑜 For each vertex 𝑤 𝑗 we define a vector 𝒃 𝒋 ∈ −1,0,1 2 with entries +1, if 𝑗 = 𝑘 < 𝑙 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 𝑗 𝒃 (𝑘,𝑙) = ቐ −1, if 𝑘 < 𝑙 = 𝑗 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 0, otherwise

  64. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 1 3 4 2 𝑈 𝒃 𝒋 = 𝒃 1,2 𝑗 𝑗 𝑗 𝑗 𝑗 𝑗 𝒃 1,3 𝒃 (1,4) 𝒃 2,3 𝒃 2,4 𝒃 3,4 Vector of vertex 𝑗 :

  65. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 1 3 4 2 𝑈 𝒃 𝒋 = 𝒃 1,2 𝑗 𝑗 𝑗 𝑗 𝑗 𝑗 𝒃 1,3 𝒃 (1,4) 𝒃 2,3 𝒃 2,4 𝒃 3,4 Vector of vertex 𝑗 : 𝒃 𝟐 = 1 𝒃 𝟒 = 0 0 𝑈 1 𝑈 1 0 0 0 −1 0 −1 0 𝒃 𝟑 = −1 𝒃 𝟓 = 0 0 𝑈 −1 𝑈 0 0 1 0 0 0 0 0

  66. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝒃 𝟐 + 𝒃 𝟑 = 1 3 4 0 𝑈 0 1 0 1 0 2 𝑈 𝒃 𝒋 = 𝒃 1,2 𝑗 𝑗 𝑗 𝑗 𝑗 𝑗 𝒃 1,3 𝒃 (1,4) 𝒃 2,3 𝒃 2,4 𝒃 3,4 Vector of vertex 𝑗 : 𝒃 𝟐 = 1 𝒃 𝟒 = 0 0 𝑈 1 𝑈 1 0 0 0 −1 0 −1 0 𝒃 𝟑 = −1 𝒃 𝟓 = 0 0 𝑈 −1 𝑈 0 0 1 0 0 0 0 0

  67. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝒃 𝟐 + 𝒃 𝟑 = 1 3 4 0 𝑈 0 𝟐 0 𝟐 0 2 𝑈 𝒃 𝒋 = 𝒃 1,2 𝑗 𝑗 𝑗 𝑗 𝑗 𝑗 𝒃 1,3 𝒃 (1,4) 𝒃 2,3 𝒃 2,4 𝒃 3,4 Vector of vertex 𝑗 : 𝒃 𝟐 = 1 𝒃 𝟒 = 0 0 𝑈 1 𝑈 1 0 0 0 −1 0 −1 0 𝒃 𝟑 = −1 𝒃 𝟓 = 0 0 𝑈 −1 𝑈 0 0 1 0 0 0 0 0

  68. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝑜 For each vertex 𝑤 𝑗 we define a vector 𝒃 𝒋 ∈ −1,0,1 2 with entries +1, if 𝑗 = 𝑘 < 𝑙 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 𝑗 𝒃 (𝑘,𝑙) = ቐ −1, if 𝑘 < 𝑙 = 𝑗 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 0, otherwise 𝒃 𝒋 For any subset of vertices 𝑉 ⊆ 𝑊 , let 𝒃 𝑉 = ෍ 𝑤 𝑗 ∈𝑉

  69. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝑜 For each vertex 𝑤 𝑗 we define a vector 𝒃 𝒋 ∈ −1,0,1 2 with entries +1, if 𝑗 = 𝑘 < 𝑙 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 𝑗 𝒃 (𝑘,𝑙) = ቐ −1, if 𝑘 < 𝑙 = 𝑗 and (𝑤 𝑘 , 𝑤 𝑙 ) ∈ 𝐹 0, otherwise 𝒃 𝒋 For any subset of vertices 𝑉 ⊆ 𝑊 , let 𝒃 𝑉 = ෍ 𝑤 𝑗 ∈𝑉 The non-zero entries of 𝒃(𝑉) correspond to 𝜀 𝐻 𝑉 = the set of edges of 𝐻 that cross the cut (𝑉, 𝑊\U)

  70. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝒃 𝒋 For any subset of vertices 𝑉 ⊆ 𝑊 , let 𝒃 𝑉 = ෍ 𝑤 𝑗 ∈𝑉 The non-zero entries of 𝒃(𝑉) correspond to 𝜀 𝐻 𝑉 = the set of edges of 𝐻 that cross the cut (𝑉, 𝑊\U)

  71. Streaming Graph Algorithms Connectivity via Sketches To design an algorithm that uses sketches we have to: 1. Define an appropriate graph representation 𝒃 𝒋 For any subset of vertices 𝑉 ⊆ 𝑊 , let 𝒃 𝑉 = ෍ 𝑤 𝑗 ∈𝑉 The non-zero entries of 𝒃(𝑉) correspond to 𝜀 𝐻 𝑉 = the set of edges of 𝐻 that cross the cut (𝑉, 𝑊\U) Thus σ 𝑤 𝑗 ∈𝑉 𝑁𝒃 𝒋 = 𝑁 σ 𝑤 𝑗 ∈𝑉 𝒃 𝒋 gives a random edge in 𝜀 𝐻 𝑉

  72. Streaming Graph Algorithms Connectivity via Sketches Connectivity via Sketches Algorithm I: Compute the Sketches in a Single Pass 1. Choose 𝑢 = O(log 𝑜) 2. for or 𝑗 = 1,2, … , 𝑜 and 𝑘 = 1,2, … , 𝑢 do do 𝑘 𝒃 𝑗 3. Construct the random projection 𝑁 4. for or 𝑗 = 1,2, … , 𝑜 do do Compute 𝐵 𝑗 𝒈 𝒘 𝒋 = (𝑁 1 𝒃 𝑗 ) ∘ (𝑁 2 𝒃 𝑗 ) ∘ ⋯ ∘ (𝑁 𝑢 𝒃 𝑗 ) 5.

  73. Streaming Graph Algorithms Connectivity via Sketches Connectivity via Sketches Algorithm I: Compute the Sketches in a Single Pass 1. Choose 𝑢 = O(log 𝑜) 2. for or 𝑗 = 1,2, … , 𝑜 and 𝑘 = 1,2, … , 𝑢 do do 𝑘 𝒃 𝑗 3. Construct the random projection 𝑁 4. for or 𝑗 = 1,2, … , 𝑜 do do Compute 𝐵 𝑗 𝒈 𝒘 𝒋 = (𝑁 1 𝒃 𝑗 ) ∘ (𝑁 2 𝒃 𝑗 ) ∘ ⋯ ∘ (𝑁 𝑢 𝒃 𝑗 ) 5. • Each sketch 𝐵 𝑗 has dimension O(polylog𝑜) • Since there are n sketches, the required space is O(𝑜 polylog𝑜)

  74. Streaming Graph Algorithms Connectivity via Sketches Connectivity via Sketches Algorithm II: Emulate Connectivity Algorithm Let ෠ 1. 𝑊 = 𝑊 be the initial set of super-vertices 2. for or 𝑗 = 1,2, … , 𝑢 do do or each super-vertex 𝑉 ∈ ෠ 3. for 𝑊 do do use σ 𝑤 𝑗 ∈𝑉 𝑁𝒃 𝒋 to sample an edge between 𝑉 and another super-vertex 𝑋 4. 5. collapse 𝑉 and 𝑋 to form a new super-vertex

  75. Streaming Graph Algorithms Connectivity via Sketches Connectivity via Sketches Algorithm II: Emulate Connectivity Algorithm Let ෠ 1. 𝑊 = 𝑊 be the initial set of super-vertices 2. for or 𝑗 = 1,2, … , 𝑢 do do or each super-vertex 𝑉 ∈ ෠ 3. for 𝑊 do do use σ 𝑤 𝑗 ∈𝑉 𝑁𝒃 𝒋 to sample an edge between 𝑉 and another super-vertex 𝑋 4. 5. collapse 𝑉 and 𝑋 to form a new super-vertex The update time (to process the next edge in 𝑇 ) is O(polylog𝑜)

  76. Streaming Graph Algorithms Concluding remarks • Many graph algorithms in the data stream model are known for basic problems. E.g., estimating connectivity, approximating distances, finding approximate matchings, counting subgraphs, … • But limited work on directed graphs! • Space constraints: semi-stream model not suited for sparse graphs ( 𝑛 = O(𝑜 polylog𝑜) )

Recommend


More recommend