Presentation is loading. Please wait.

Presentation is loading. Please wait.

Raphael Yuster Haifa University Uri Zwick Tel Aviv University

Similar presentations


Presentation on theme: "Raphael Yuster Haifa University Uri Zwick Tel Aviv University"— Presentation transcript:

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

2 Matrix multiplication
= Authors Complexity folklore n3 Strassen (1969) n2.81 Coppersmith, Winograd (1990) n2.38 ??? n

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

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

5 Chain Matrix Product Let Ai be an ni ni+1 matrix. Compute A1A2…Ak.
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 Chain Matrix Product (cont.)
Let P(i,j) be the cost of computing Ai…Aj. Complexity of naïve solution is O(k3). For M(a,b,c)=abc, there is a much more complicated O(k log k) algorithm.

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

8 Algorithms for finding triangles Let A be the adjacency matrix of a graph G. Then, G contains a triangle iff A2AT≠0. Authors Running time folklore mn n < n2.38 Itai-Rodeh ’78 m3/2 AYZ ’97 m2 /(+1) < m1.41

9 Finding triangles in O(m2 /(+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 =

10 A graph G contains a Ck iff Ak-1AT≠0 ?
Finding longer cycles A graph G contains a Ck iff Ak-1AT≠0 ? We want simple cycles!

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 Ck then with a probability of at least k - k it still contains a Ck after this process. An improved version works with probability 2 - O(k). Can be derandomized at a logarithmic cost.

12 Finding C2k in O(m2-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 = Finding paths of length k Finding a cycle passing through a high degree vertex

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

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

15 Algorithms for finding a C4
Authors Running time Monien ’85 mn AYZ ’95 n < n2.38 AYZ ’97 m3/2 Eisenbrand, Grandoni ’03 m 2-2/ n1/ YZ ’03 m(4-1)/(2+1)<m1.48

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

17 Finding C4’s in O(m 2-2/ n1/) time [EG ’03]

18 Finding C4’s in O(m(4-1)/(2+1)) time [YZ ’03]
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.

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

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

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

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

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

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

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

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

27 If the conjecture is true, then c6<1.65.
Finding C6’s Conjecture: If the conjecture is true, then c6<1.65.

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

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


Download ppt "Raphael Yuster Haifa University Uri Zwick Tel Aviv University"

Similar presentations


Ads by Google