* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Survey
Document related concepts
Knapsack problem wikipedia , lookup
Genetic algorithm wikipedia , lookup
Fisher–Yates shuffle wikipedia , lookup
Computational complexity theory wikipedia , lookup
Clique problem wikipedia , lookup
Selection algorithm wikipedia , lookup
Simplex algorithm wikipedia , lookup
Algorithm characterizations wikipedia , lookup
Fast Fourier transform wikipedia , lookup
Expectation–maximization algorithm wikipedia , lookup
K-nearest neighbors algorithm wikipedia , lookup
Travelling salesman problem wikipedia , lookup
Smith–Waterman algorithm wikipedia , lookup
Time complexity wikipedia , lookup
Factorization of polynomials over finite fields wikipedia , lookup
Transcript
Answering distance queries in directed graphs using fast matrix multiplication Raphael Yuster University of Haifa Uri Zwick Tel Aviv University 1 Single-Source Shortest Paths SSSP algorithm Distance vector s n Input: A weighted directed graph G=(V,E), where |E|=m and |V|=n, and a source vertex s. Output: The distances from s to all other vertices. Can be solved in O(mn) time, [Belman ’58], [Ford ’58] 2 All-Pairs Shortest Paths APSP algorithm n by n distance matrix Input: A weighted directed graph G=(V,E), where |E|=m and |V|=n. Output: An nn distance matrix. Can be solved in: mn + n2 log n [Johnson ’77] (with Fibonacci Heaps) mn + n2 log log n [Thorup ’99, Hagerup ’00, Pettie ’02] 3 Answering distance queries Generalizes both SSSP and APSP Preprocessing: u,v data structure Query answering: δ(u,v) 4 Single-source Shortest Paths in directed graphs with bounded integer edge weights Running time Authors mn1/2log(n) mn1/2 [Gabow-Tarjan ’89] [Goldberg ’95] For dense graphs, the running time is O(n2.5) ! 5 Assuming bounded integer edge weights: 2.5-ε O(n ) Can we get an algorithm for the SSSP problem? Can we get an O(n3-ε) algorithm for the APSP problem? Yes! If we are using fast matrix multiplication 6 All-Pairs Shortest Paths in directed graphs with bounded integer weights Running time Authors n2.58 [Zwick ’98] Improves results of [Alon-Galil-Margalit ’91] [Takaoka ’98] 7 New result: Answering distance queries Directed graphs, bounded integer weights. Preprocessing time Query time Authors n2.38 n [Yuster-Zwick ’05] In particular, any n1.38 distances can be computed in n2.38 time. For dense enough graphs this improves on Goldberg’s SSSP algorithm. n2.38 vs. mn0.5 8 Min-Plus Products 6 3 10 1 3 7 8 4 5 2 5 3 0 7 2 1 7 5 8 5 2 1 2 5 C A B cij min {aik bkj } k 10 Solving the APSP problem by repeated squaring If W is an n by n matrix containing the edge weights of a graph. Then Wn is the distance matrix. DW for i 1 to log2n do D D*D Thus: APSP(n) MPP(n) log n 11 Algebraic Product Min-Plus Product C A B C A B cij a b ik kj k O(n2.38) [Strassen ’69] … [CoppersmithWinograd ’90] cij min{ aik bkj } k The fast algebraic algorithms cannot be used, as the min operation has no inverse 12 Using matrix multiplication to compute max-plus products c11 c12 c21 c22 c '11 c '12 c '21 c '22 c 'ij x a11 a12 a21 a22 a11 xa x 21 aik bkj b11 b12 b21 b22 x x a12 a22 b11 xb x 21 Assume: 0 ≤ aij , bij ≤ M cij max{aik bkj } k x x b12 b22 cij deg(c 'ij ) k n2.38 polynomial products M operations per polynomial product = Mn2.38 operations per max-plus product 13 Trying to implement the repeated squaring algorithm Consider an easy case: all weights are 1. * Iteration Max size of elements Cost 1 2 i log n 1 2 2i n n2.38 2·n2.38 2i·n2.38 n·n2.38 14 The preprocessing algorithm D W ; BV Choose a subset of B for i 1 to log3/2n do of size (9n ln n)/s { s (3/2)i+1 B rand(B,(9n ln n)/s) D[V,B] min{D[V,B] , D[V,B]*D[B,B] } D[B,V] min{D[B,V] , D[B,B]*D[B,V] } } Select the columns of D whose indices are in B Select the rows and columns of D whose indices are in B 15 Twice Sampled Distance Products In the i-th iteration, the set B is of size n ln n / s, where s = (3/2)i n D[V,B]*D[B,B] n The matrices get smaller and smaller but the elements get larger and larger = |B| n |B| |B| 16 Complexity of preprocessing algorithm The i-th iteration: n ln n / s n ln n / s n s=(3/2)i+1 n ln n / s blocks The elements are of absolute value at most s (n/s)2.38 s s ≤ n2.38 17 The query answering algorithm δ(u,v) D[{u},V]*D[V,{v}] v u Query time: O(n) 18 The preprocessing algorithm: Correctness B1 B 2 B3 … Let Bi be the i-th sample. Invariant: After the i-th iteration, if (uV and vBi) or (vV and uBi) and there is a shortest path from u to v that uses at most (3/2)i edges, then D(u,v)=δ(u,v). Consider a shortest path that uses at most (3/2)i+1 edges at most 1 3 2 2 i 1 3 2 2 at most i 1 3 2 2 i 19 The query answering algorithm: Correctness Suppose that the shortest path from u to v uses between (3/2)i and (3/2)i+1 edges at most 1 3 2 2 i 1 3 2 2 at most i 1 3 2 2 i u v 20