Download presentation
Presentation is loading. Please wait.
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 ??? nn
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.