Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri.

Similar presentations


Presentation on theme: "1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri."— Presentation transcript:

1 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri Zwick Tel Aviv University

2 2 Matrix multiplication  = AuthorsComplexity folklore n3n3 Strassen (1969) n 2.81 Coppersmith, Winograd (1990) n 2.38 ??? nn

3 3 Rectangular Matrix multiplication =  a b c a b c c b c a a b  = M(a,b,c) = M(b,c,a) = M(c,a,b) =...

4 4 Rectangular Matrix multiplication  a b c c = a There are also improved specially designed rectangular matrix multiplication algorithms

5 5 Chain Matrix Product Let A i be an n i  n i+1 matrix. Compute A 1 A 2 …A k. Matrix multiplication is associative, so all association orders give the same result, but may have vastly different cost. Easy to solve using dynamic programming.

6 6 Chain Matrix Product (cont.) Let P(i,j) be the cost of computing A i …A j. Complexity of naïve solution is O(k 3 ). For M(a,b,c)=abc, there is a much more complicated O(k log k) algorithm.

7 7 Finding triangles A triangle A graph Does the graph contain a triangle? Yes!

8 8 Algorithms for finding triangles Let A be the adjacency matrix of a graph G. Then, G contains a triangle iff A 2  A T ≠0. AuthorsRunning time folklore mn folklore n  < n 2.38 Itai-Rodeh ’78m 3/2 AYZ ’97m 2  /(  +1) < m 1.41

9 9 Finding triangles in O(m 2  /(  +1) ) time [AYZ ’97] Let  be a parameter.. High degree vertices: vertices of degree  . Low degree vertices: vertices of degree < . There are at most 2m/  high degree vertices =  = m (  -1) /(  +1)

10 10 Finding longer cycles A graph G contains a C k iff A k-1  A T ≠0 ? We want simple cycles!

11 11 Color coding [AYZ ’95] Assign each vertex v a random number c(v) from {0,1,...,k-1}. Remove all edges (u,v) for which c(v)≠c(u)+1 (mod k). All cycles of length k in the graph are now simple. If a graph contains a C k then with a probability of at least k - k it still contains a C k after this process. An improved version works with probability 2 - O(k). Can be derandomized at a logarithmic cost.

12 12 Finding C 2k in O(m 2-1/k ) time [AYZ ’97] Let  be a parameter.. High degree vertices: vertices of degree  . Low degree vertices: vertices of degree < . There are at most 2m/  high degree vertices  = m 1/k Finding paths of length k Finding a cycle passing through a high degree vertex =

13 13 Algorithms for finding a C k AuthorsRunning time Monien ’85 mn AYZ ’95 n  < n 2.38 AYZ ’97 m 2-1/  k/2  [AYZ ’97]: “We have not been able to use fast matrix multiplication to obtain faster algorithms for finding C k, for k  4, in sparse graphs.”

14 14 Finding even cycles even faster [YZ ’97] In undirected graphs, a C 2k, for any fixed k, can be found in O(n 2 ) time! We are still working on: Finding odd cycles עוד יותר מהר

15 15 Algorithms for finding a C 4 AuthorsRunning time Monien ’85 mn AYZ ’95 n  < n 2.38 AYZ ’97 m 3/2 Eisenbrand, Grandoni ’03 m 2-2/  n 1/  YZ ’03 m (4  -1)/(2  +1) <m 1.48

16 16 Let  be a parameter.. High degree vertices: vertices of degree  . Low degree vertices: vertices of degree < . There are at most 2m/  high degree vertices Finding C 4 ’s in O(m 2-2/  n 1/  ) time [Eisendbrand, Grandoni ’03]

17 17 Finding C 4 ’s in O(m 2-2/  n 1/  ) time [EG ’03]

18 18 Let  be a parameter. High degree vertices:  ≤ deg(v) Medium degree vertices:  1/2 ≤ deg(v) <  Low degree vertices: deg(v) <  1/2 There are at most 2m/  high degree vertices. There are at most 2m/  1/2 medium degree vertices. Finding C 4 ’s in O(m (4  -1)/(2  +1) ) time [YZ ’03]

19 19 Finding C 4 ’s in O(m (4  -1)/(2  +1) ) time [YZ ’03]

20 20 Where do we go from here? Why just three degree classes? How many cases will we have for C 5, C 6, …?

21 21 The general case Partition the vertices into log n degree classes: V i ={ v  V | 2 i ≤ deg(v) ≤ 2 i+1 } Number of cycle classes is only (log n) k. What is the most efficient way of handling each class?

22 22 Handling a given cycle class Choose i and j. Find all paths of length j-i that pass through vertices of degrees d i,…, d j. Find all paths of length k-(j-i) that pass through vertices of degrees d j,…, d i. Check whether the graph contains a cycle from the class.

23 23 Finding paths Degree: Size of class: We get a chain matrix product problem! We can use the sparsity of the matrices.

24 24 Finding paths (cont.) Degree: Size of class: It is convenient to express everything as a power of m.

25 25 Finding cycles Theorem: There is an time algorithm for finding C k ’s in directed graphs.

26 26 Finding C 5 ’s Theorem: Requires a non-constant number of degree classes. The worst-case running time is obtained for regular graphs.

27 27 Finding C 6 ’s Conjecture: If the conjecture is true, then c 6 <1.65.

28 28 Finding odd cycles Conjecture: for odd k  3. The conjecture holds for k=3,5.

29 29 Open problems Is it possible to extend the technique presented to obtain improved algorithms? Find a feasible way for rigorously computing c 6, c 7, etc. Other applications?


Download ppt "1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri."

Similar presentations


Ads by Google