Top Banner
Solving connectivity problems via basic Linear Algebra Samir Datta Chennai Mathematical Institute Includes joint work with Raghav Kulkarni Anish Mukherjee Thomas Schwentick Thomas Zeume NMI Workshop on Complexity IIT Gandhinagar November 6, 2016
147

Solving connectivity problems via basic Linear Algebra

Jan 15, 2017

Download

Education

cseiitgn
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Solving connectivity problems via basic Linear Algebra

Solving connectivity problems via basic LinearAlgebra

Samir DattaChennai Mathematical Institute

Includes joint work with

Raghav Kulkarni Anish Mukherjee Thomas Schwentick

Thomas Zeume

NMI Workshop on ComplexityIIT Gandhinagar

November 6, 2016

Page 2: Solving connectivity problems via basic Linear Algebra

Outline

1 Part I: Disjoint Paths

2 Part II: Dynamic Reachability

3 Conclusion

Page 3: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 4: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 5: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 6: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 7: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 8: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 9: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 10: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 11: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 12: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 13: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 14: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 15: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 16: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 17: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 18: Solving connectivity problems via basic Linear Algebra

Disjoint Path Problem

• Definition (k-DPP)

G graph/digraph. (si , ti ) for i ∈ [k], si , ti ∈ V (G ). Do there existvertex-disjoint (si , ti )-paths?

• Distinct from k-connectivity (k-reachability)

• NP-complete for directed graphs for k = 2

• NP-complete for undirected graphs when k part of input.

• (Robertson-Seymour) Cubic time (fixed k) in undirectedgraphs.

• Special cases: Planar graphs/DAGs well studied.

Page 19: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem

• A very special case:

• k-DPP instance with undirected planar graph, and• All terminals on single face, and• Want solution with minimum total length of paths.

12

4

2k

2k − 1

3

Page 20: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem

• A very special case:• k-DPP instance with undirected planar graph, and

• All terminals on single face, and• Want solution with minimum total length of paths.

12

4

2k

2k − 1

3

Page 21: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem

• A very special case:• k-DPP instance with undirected planar graph, and• All terminals on single face, and

• Want solution with minimum total length of paths.

12

4

2k

2k − 1

3

Page 22: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem

• A very special case:• k-DPP instance with undirected planar graph, and• All terminals on single face, and• Want solution with minimum total length of paths.

12

4

2k

2k − 1

3

Page 23: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• Directed general case remains NP-hard in the plane thoughfixed parameter tractable in k .

• NP-hardness in undirected case: open for k > 2.

• (Bjorklund-Husfeldt’14) Randomized polynomial timealgorithm in undirected case for 2-DPP.

Page 24: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• Directed general case remains NP-hard in the plane thoughfixed parameter tractable in k .

• NP-hardness in undirected case: open for k > 2.

• (Bjorklund-Husfeldt’14) Randomized polynomial timealgorithm in undirected case for 2-DPP.

Page 25: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• Directed general case remains NP-hard in the plane thoughfixed parameter tractable in k .

• NP-hardness in undirected case: open for k > 2.

• (Bjorklund-Husfeldt’14) Randomized polynomial timealgorithm in undirected case for 2-DPP.

Page 26: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• (de Verdiere-Schrijver’08) Two-face case with sources andsinks on two different faces in time O(kn log n).

• (Kobayashi-Sommer’10) One-face min-sum 3-DPP inpolynomial time

• (Borradaile-Nayyeri-Zafarani’15) One-face min-sum k-DPP in“serial” configuration in polynomial time (in n as well as k).

Page 27: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• (de Verdiere-Schrijver’08) Two-face case with sources andsinks on two different faces in time O(kn log n).

• (Kobayashi-Sommer’10) One-face min-sum 3-DPP inpolynomial time

• (Borradaile-Nayyeri-Zafarani’15) One-face min-sum k-DPP in“serial” configuration in polynomial time (in n as well as k).

Page 28: Solving connectivity problems via basic Linear Algebra

One-face Min-sum Disjoint Path Problem:Motivation

• (de Verdiere-Schrijver’08) Two-face case with sources andsinks on two different faces in time O(kn log n).

• (Kobayashi-Sommer’10) One-face min-sum 3-DPP inpolynomial time

• (Borradaile-Nayyeri-Zafarani’15) One-face min-sum k-DPP in“serial” configuration in polynomial time (in n as well as k).

Page 29: Solving connectivity problems via basic Linear Algebra

One-face min-sum Disjoint Path Problem:Our Results

Theorem

• The count of One-face min-sum k-DPP solutions can bereduced to O(4k) determinant computations.

• Finding a witness to the problem can be randomly reduced toO(4k) determinant computations.

• Can also do the above sequentially in deterministic O(4knω)time (ω matrix multiplication constant).

Page 30: Solving connectivity problems via basic Linear Algebra

One-face min-sum Disjoint Path Problem:Our Results

Theorem

• The count of One-face min-sum k-DPP solutions can bereduced to O(4k) determinant computations.

• Finding a witness to the problem can be randomly reduced toO(4k) determinant computations.

• Can also do the above sequentially in deterministic O(4knω)time (ω matrix multiplication constant).

Page 31: Solving connectivity problems via basic Linear Algebra

One-face min-sum Disjoint Path Problem:Our Results

Theorem

• The count of One-face min-sum k-DPP solutions can bereduced to O(4k) determinant computations.

• Finding a witness to the problem can be randomly reduced toO(4k) determinant computations.

• Can also do the above sequentially in deterministic O(4knω)time (ω matrix multiplication constant).

Page 32: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}

• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 33: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 34: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 35: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 36: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 37: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 38: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 39: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 40: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 41: Solving connectivity problems via basic Linear Algebra

Determinant

• Let G be a weighted graph with V (G ) = {1, . . . , n}• Let A be the weighted adjacency matrix of G

• Permutation π ∈ Sn can be written as a product of cycles

• sgn(π) = (−1)#transpositions in π = (−1)n+c(π)

• where, c(π) is the number of cycles in π

• w(π) :=∏

1≤i≤n Ai ,π(i).

• det(A) =∑

π∈Sn sgn(π)w(π)

• = signed sum of weights of cycle covers in G

• cycle cover is a covering of vertices of G by disjoint cycles

• (cycles include self loops)

Page 42: Solving connectivity problems via basic Linear Algebra

Solving a special case

1

23 k-1

k

k+1

k+22k-22k-1

2k

• Add edge from sink ti to si inside the face

• Subdivide edge at ri

• Put self loops on all vertices in graph except ri ’s

• Put weight x on each original edge and 1 on self-loops

Page 43: Solving connectivity problems via basic Linear Algebra

Solving a special case

1

23 k-1

k

k+1

k+22k-22k-1

2k

• Add edge from sink ti to si inside the face

• Subdivide edge at ri

• Put self loops on all vertices in graph except ri ’s

• Put weight x on each original edge and 1 on self-loops

Page 44: Solving connectivity problems via basic Linear Algebra

Solving a special case

1

23 k-1

k

k+1

k+22k-22k-1

2k

• Add edge from sink ti to si inside the face

• Subdivide edge at ri

• Put self loops on all vertices in graph except ri ’s

• Put weight x on each original edge and 1 on self-loops

Page 45: Solving connectivity problems via basic Linear Algebra

Solving a special case

1

23 k-1

k

k+1

k+22k-22k-1

2k

• Add edge from sink ti to si inside the face

• Subdivide edge at ri

• Put self loops on all vertices in graph except ri ’s

• Put weight x on each original edge and 1 on self-loops

Page 46: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:

• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 47: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:

• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 48: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:

• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 49: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:

• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 50: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:• Same weight = x` (` = length of min-sum k-DPP)

• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 51: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 52: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 53: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 54: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Bijection between k-DPP’s and cycle covers

• No k-DPP implies determinant = 0

• Preserves weight (= x#edges in k-DPP)

• All min-sum k-DPPs are:• Same weight = x` (` = length of min-sum k-DPP)• Same sign = (−1)n+(n−`)+k

• Lighter than any other cycle cover

• coefficient of smallest degree term counts #-min-sum k-DPPs

• As easy as determinant

Page 55: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time

• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC

• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 56: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges

• Discard any edge after removing which count remains > 0

• Search in RNC

• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 57: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC

• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 58: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC

• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 59: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP

• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 60: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e

• Discard any edge removing which doesn’t affect min weightexponent

Page 61: Solving connectivity problems via basic Linear Algebra

Solving a special case

• Search reduces to counting in polynomial time• Sequentially consider edges• Discard any edge after removing which count remains > 0

• Search in RNC• Use Isolation Lemma [MVV] to isolate a min-sum k-DPP• Use isolating weights w(e) as exponent of x on e• Discard any edge removing which doesn’t affect min weight

exponent

Page 62: Solving connectivity problems via basic Linear Algebra

Issues with general case

1

2 3

4

5

67

8

• Spurious cycle covers in addition to good ones

• No bijection between required k-DPP paths and cycle covers

• Spurious cycle covers for different terminal pairing/demands

Page 63: Solving connectivity problems via basic Linear Algebra

Issues with general case

1

2 3

4

5

67

8

• Spurious cycle covers in addition to good ones

• No bijection between required k-DPP paths and cycle covers

• Spurious cycle covers for different terminal pairing/demands

Page 64: Solving connectivity problems via basic Linear Algebra

Issues with general case

1

2 3

4

5

67

8

• Spurious cycle covers in addition to good ones

• No bijection between required k-DPP paths and cycle covers

• Spurious cycle covers for different terminal pairing/demands

Page 65: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

1

2 3

4

5

67

8

1

2 3

4

5

67

8

1

2 3

4

5

67

8

• Spurious cycle covers canceled by cycle covers with newdemands

• Further spurious cycles - canceled by another demand set -etc.

• Need to prove that process converges

Page 66: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

1

2 3

4

5

67

8

1

2 3

4

5

67

8

1

2 3

4

5

67

8

• Spurious cycle covers canceled by cycle covers with newdemands

• Further spurious cycles - canceled by another demand set -etc.

• Need to prove that process converges

Page 67: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

1

2 3

4

5

67

8

1

2 3

4

5

67

8

1

2 3

4

5

67

8

• Spurious cycle covers canceled by cycle covers with newdemands

• Further spurious cycles - canceled by another demand set -etc.

• Need to prove that process converges

Page 68: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

• Define a function len mapping demands to N

• Prove: len of spurious demands strictly greater

• Prove: len of parallel demands maximum

• Recursively express k-DPP for demand as

• Sum of determinant and k-DPP for demands of greater len.

Page 69: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

• Define a function len mapping demands to N• Prove: len of spurious demands strictly greater

• Prove: len of parallel demands maximum

• Recursively express k-DPP for demand as

• Sum of determinant and k-DPP for demands of greater len.

Page 70: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

• Define a function len mapping demands to N• Prove: len of spurious demands strictly greater

• Prove: len of parallel demands maximum

• Recursively express k-DPP for demand as

• Sum of determinant and k-DPP for demands of greater len.

Page 71: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

• Define a function len mapping demands to N• Prove: len of spurious demands strictly greater

• Prove: len of parallel demands maximum

• Recursively express k-DPP for demand as

• Sum of determinant and k-DPP for demands of greater len.

Page 72: Solving connectivity problems via basic Linear Algebra

Fixing issues with general case

• Define a function len mapping demands to N• Prove: len of spurious demands strictly greater

• Prove: len of parallel demands maximum

• Recursively express k-DPP for demand as

• Sum of determinant and k-DPP for demands of greater len.

Page 73: Solving connectivity problems via basic Linear Algebra

Outline

1 Part I: Disjoint Paths

2 Part II: Dynamic Reachability

3 Conclusion

Page 74: Solving connectivity problems via basic Linear Algebra

Two fundamental problems

• Definition (Reachability)

G directed graph and s, t ∈ V (G ). Is there a path from s to t?

• Complete for NL

• Optimization version: shortest path also in NL

• Definition (Connectivity)

G undirected graph, s, t ∈ V (G ). Is there a path joining s, t?

• Complete for SL

• (Reingold) SL = L

• Optimization version: shortest path in NL

Page 75: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:

• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:

• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 76: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot

• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:

• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 77: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.

• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:

• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 78: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:

• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 79: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:

• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 80: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices

• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 81: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added

• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 82: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted

• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 83: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?

• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 84: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs

• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 85: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step

• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 86: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string

• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 87: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query

• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 88: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity

• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 89: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 90: Solving connectivity problems via basic Linear Algebra

Dynamic Complexity

• Static complexity:• Input graph G presented in one shot• Algorithm outputs whether G satisfies a property.• Complexity: Time/space/circuit depth/... of algorithm

• Dynamic Complexity:• Start out with empty graph G on fixed number n of vertices• Edge Insertion: Edge e = (u, v) is added• Edge Deletion: Edge e = (u, v) is deleted• Query: Is property satisfied by current graph?• At every time step either insertion/deletion/query occurs• Algorithm input: string output at last step• Algorithm output: new string• One (specific) bit must be answer to query• Complexity: in terms of circuit or descriptive complexity• DynAC0: update circuit is AC0

• DynFO: updates are First Order computable

Page 91: Solving connectivity problems via basic Linear Algebra

Dynamic Reachability

TheoremReach is in DynFO.

Proof Outline:

• Rank: What is the rank of a given n × n-matrix?

• Step 1 Reduce Reach to Rank

• Step 2 Rank ∈ uniform DynAC0

• Step 3 DynFO ≈ uniform DynAC0

Page 92: Solving connectivity problems via basic Linear Algebra

Dynamic Reachability

TheoremReach is in DynFO.

Proof Outline:

• Rank: What is the rank of a given n × n-matrix?

• Step 1 Reduce Reach to Rank

• Step 2 Rank ∈ uniform DynAC0

• Step 3 DynFO ≈ uniform DynAC0

Page 93: Solving connectivity problems via basic Linear Algebra

Dynamic Reachability

TheoremReach is in DynFO.

Proof Outline:

• Rank: What is the rank of a given n × n-matrix?

• Step 1 Reduce Reach to Rank

• Step 2 Rank ∈ uniform DynAC0

• Step 3 DynFO ≈ uniform DynAC0

Page 94: Solving connectivity problems via basic Linear Algebra

Dynamic Reachability

TheoremReach is in DynFO.

Proof Outline:

• Rank: What is the rank of a given n × n-matrix?

• Step 1 Reduce Reach to Rank

• Step 2 Rank ∈ uniform DynAC0

• Step 3 DynFO ≈ uniform DynAC0

Page 95: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

Page 96: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

Page 97: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

Page 98: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

• Crux: t is not reachable from s• iff (s, t)-entry of B−1 is zero where B

def= I − 1

nA

Page 99: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

• Crux: t is not reachable from s• iff (s, t)-entry of B−1 is zero where B

def= I − 1

nA• iff ~x = B−1~et with xs = 0

Page 100: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

• Crux: t is not reachable from s• iff (s, t)-entry of B−1 is zero where B

def= I − 1

nA• iff ~x = B−1~et with xs = 0• iff B~x = ~et has unique solution ~x with xs = 0

Page 101: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

• Crux: t is not reachable from s• iff (s, t)-entry of B−1 is zero where B

def= I − 1

nA• iff ~x = B−1~et with xs = 0• iff B~x = ~et has unique solution ~x with xs = 0

• This equation system can be phrased as rank-problem...and one change in A leads to one change in B

Page 102: Solving connectivity problems via basic Linear Algebra

Reducing Reach to Rank

• Approach: Map a graph G to a matrix B such that• s-t-Reachability in G corresponds to full rank of B.• A change of G can be simulated by a constant number of

changes of B.

• Denote the adjacency matrix of G by A.

• Recall: (s, t)-entry of Ai is the number of paths from s to t

• Observe: I − 1nA is invertible and

(I − 1

nA)−1 =

∞∑i=0

(1

nA)i

• Crux: t is not reachable from s• iff (s, t)-entry of B−1 is zero where B

def= I − 1

nA• iff ~x = B−1~et with xs = 0• iff B~x = ~et has unique solution ~x with xs = 0

• This equation system can be phrased as rank-problem...and one change in A leads to one change in B

• Technical detail: Use Bdef= nI − A instead of B

def= I − 1

nA

Page 103: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 104: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 105: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 106: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 107: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 108: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒

• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 109: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 110: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 111: Solving connectivity problems via basic Linear Algebra

Reducing Rank to mod-p-Rank

• rk(A) = maxp∈[n2] rkp(A)

• rk(A) ≥ k iff

• ∃A′, k × k submatrix of A such that rk(A′) = k iff

• det(A′) 6= 0 iff

• ∃p, small prime not dividing det(A′) iff

• rkp(A′) = k =⇒• rkp(A) ≥ k

• But, rkp(A) ≤ rk(A), since

• Linear relation over integers =⇒ linear relation over Zp

Page 112: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition

• Leading (left-most non-zero)entry in every row is 1,

• in column of leading entry: otherentries zero

• Rows are sorted in “diagonal”fashion

• Given matrix A

• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 113: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,

• in column of leading entry: otherentries zero

• Rows are sorted in “diagonal”fashion

• Given matrix A

• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 114: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero

• Rows are sorted in “diagonal”fashion

• Given matrix A

• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 115: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A

• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 116: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A

• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 117: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A• Maintain B invertible

• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 118: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A• Maintain B invertible• Maintain E in row echelon form

• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 119: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 120: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Definition• Leading (left-most non-zero)

entry in every row is 1,• in column of leading entry: other

entries zero• Rows are sorted in “diagonal”

fashion

• Given matrix A• Maintain B invertible• Maintain E in row echelon form• such that E = BA

• Rank(A) is #non-zero rows of E

1 4 0 2 0 20 0 1 3 0 40 0 0 0 1 70 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

Page 121: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:

• new leading entry with max # of consecutive 0’s in row aftercolumn j

• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 122: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:

• new leading entry with max # of consecutive 0’s in row aftercolumn j

• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 123: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:

• new leading entry with max # of consecutive 0’s in row aftercolumn j

• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 124: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j

• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 125: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 126: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,

• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 127: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 128: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,

• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 129: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j

• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 130: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 131: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1

• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 132: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 133: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:

• move the (at most two) rows above with changed leadingentries to correct positions

Page 134: Solving connectivity problems via basic Linear Algebra

Maintaining row-echelon form

• Change A[i , j ] to yield A′.

• BA′ is E + i-th column of B as j-th column

• If column j has more than one leading entry of BA′:• new leading entry with max # of consecutive 0’s in row after

column j• by row operations:

• set new leading entry to 1,• set all other entries of column j to 0

• If leading entry of row k is lost in column j ,• new leading entry next non-zero in row k and column ` > j• by row operations:

• set leading entry to 1• set all other entries of column ` to 0,

• If needed:• move the (at most two) rows above with changed leading

entries to correct positions

Page 135: Solving connectivity problems via basic Linear Algebra

Outline

1 Part I: Disjoint Paths

2 Part II: Dynamic Reachability

3 Conclusion

Page 136: Solving connectivity problems via basic Linear Algebra

Conclusion

• Considered two connectivity problems:

• One-face k-DPP• Dynamic Reachability

• Writing and solving linear equations, key to solution

• Scratched the surface of Linear Algebra

Page 137: Solving connectivity problems via basic Linear Algebra

Conclusion

• Considered two connectivity problems:• One-face k-DPP

• Dynamic Reachability

• Writing and solving linear equations, key to solution

• Scratched the surface of Linear Algebra

Page 138: Solving connectivity problems via basic Linear Algebra

Conclusion

• Considered two connectivity problems:• One-face k-DPP• Dynamic Reachability

• Writing and solving linear equations, key to solution

• Scratched the surface of Linear Algebra

Page 139: Solving connectivity problems via basic Linear Algebra

Conclusion

• Considered two connectivity problems:• One-face k-DPP• Dynamic Reachability

• Writing and solving linear equations, key to solution

• Scratched the surface of Linear Algebra

Page 140: Solving connectivity problems via basic Linear Algebra

Conclusion

• Considered two connectivity problems:• One-face k-DPP• Dynamic Reachability

• Writing and solving linear equations, key to solution

• Scratched the surface of Linear Algebra

Page 141: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?

• From 4knO(1) to kO(1)nO(1)?• Serial/parallel cases can be deparameterized [Borradaile et al.]• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 142: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?

• From 4knO(1) to kO(1)nO(1)?• Serial/parallel cases can be deparameterized [Borradaile et al.]• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 143: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?• From 4knO(1) to kO(1)nO(1)?

• Serial/parallel cases can be deparameterized [Borradaile et al.]• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 144: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?• From 4knO(1) to kO(1)nO(1)?• Serial/parallel cases can be deparameterized [Borradaile et al.]

• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 145: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?• From 4knO(1) to kO(1)nO(1)?• Serial/parallel cases can be deparameterized [Borradaile et al.]• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 146: Solving connectivity problems via basic Linear Algebra

Open Questions

• Derandomize construction of One-face k-DPP solution?

• “Deparameterize” counting or even decision of above?• From 4knO(1) to kO(1)nO(1)?• Serial/parallel cases can be deparameterized [Borradaile et al.]• Contrariwise, does there exist a crossover gadget?

• Is directed distance in DynAC0? What about pathconstruction?

Page 147: Solving connectivity problems via basic Linear Algebra

Thanks!